选课系统 (MySQL+Java )

时间:2024-01-21 07:20:35

简介:

  本文介绍博主的Java练手小项目,由MySQL管理数据库,Java控制台做输入输出,新手上路,多多包涵。

项目主要功能点:

1.数据库设计:

  本选课系统因为只是练手,只做了必要的属性设计,较为简陋,设计如下:

    1.1 user表(即学生表)

    1.2 course表(课程表)

    1.3 manage表(管理员表)

    1.4 user_course表(学生课程信息表)

2.项目设计

   2.1 项目结构

   2.2 项目设计

学生端设计:  

    设计User实体类

 1 package com.epoint.model;
 2 
 3 public class User {
 4     private String username;
 5     private String password;
 6 
 7 
 8     public String getUsername() {
 9         return username;
10     }
11     public void setUsername(String username) {
12         this.username = username;
13     }
14     public String getPassword() {
15         return password;
16     }
17     public void setPassword(String password) {
18         this.password = password;
19     }
20     
21     
22 }

 

         设计Course实体类

 1 package com.epoint.model;
 2 
 3 public class Course {
 4     private String c_id;
 5     private String c_name;
 6     private String teacher;
 7     
 8     public String getC_id() {
 9         return c_id;
10     }
11     public void setC_id(String i) {
12         this.c_id = i;
13     }
14     public String getC_name() {
15         return c_name;
16     }
17     public void setC_name(String c_name) {
18         this.c_name = c_name;
19     }
20     public String getTeacher() {
21         return teacher;
22     }
23     public void setTeacher(String teacher) {
24         this.teacher = teacher;
25     }
26     
27 
28 }
View Code

 

      设计UserDao接口类

 1 package com.epoint.Dao;
 2 
 3 import com.epoint.model.User;
 4 
 5 public interface UserDao {
 6     public User login(User user);
 7     public void changePass(User user);
 8     public void getStuCourse(String username);
 9     public void getAvaCourse(String username);
10     public void chooseCourse(String username,String c_id);
11     public void deleteCourse(String username,String c_id);
12 
13 }
View Code

      设计UserDaoImpl类实现UserDao接口

  1 package com.epoint.Dao.Impl;
  2 
  3 import java.sql.Connection;
  4 import java.sql.PreparedStatement;
  5 import java.sql.ResultSet;
  6 
  7 import javax.swing.plaf.synth.SynthScrollBarUI;
  8 
  9 import com.epoint.Dao.UserDao;
 10 import com.epoint.utils.*;
 11 import com.epoint.model.Course;
 12 import com.epoint.model.User;
 13 
 14 public class UserDaoImpl implements UserDao{
 15 
 16     @Override
 17     public User login(User user) {
 18         // TODO Auto-generated method stub
 19         Connection con = null;
 20         PreparedStatement ps= null;
 21         ResultSet rs=null;
 22         try {
 23             con=BaseDao.getCon();
 24             String sql="select * from user where username=? and password=?";
 25             ps=con.prepareStatement(sql);
 26             ps.setString(1, user.getUsername());
 27             ps.setString(2, user.getPassword());
 28             rs=ps.executeQuery();
 29             User users=null;
 30              if(rs.next()){
 31                     users=new User();
 32                     //从数据库中获取值设置到实体类的setter方法中
 33                     users.setUsername(rs.getString("username"));
 34                     users.setPassword(rs.getString("password")); 
 35                     return users;
 36                 }else{
 37                     return null;
 38                 }
 39         } 
 40         catch (Exception e) {
 41             // TODO Auto-generated catch block
 42             e.printStackTrace();
 43         }
 44     return null;
 45     }
 46 
 47     @Override
 48     public void changePass(User user) {
 49         // TODO Auto-generated method stub
 50         Connection con = null;
 51         PreparedStatement ps= null;
 52         ResultSet rs=null;
 53         try {
 54             con=BaseDao.getCon();
 55             String sql = "update user set password=? where username=?";
 56             ps=con.prepareStatement(sql);
 57             ps.setString(1, user.getPassword());
 58             ps.setString(2, user.getUsername());
 59             int a =ps.executeUpdate();
 60         
 61         }    catch (Exception e) {
 62             // TODO Auto-generated catch block
 63             e.printStackTrace();
 64         }
 65     }
 66 
 67     @Override
 68     public void chooseCourse(String username,String c_id) {
 69         // TODO Auto-generated method stub
 70         Connection con = null;
 71         PreparedStatement ps= null;
 72         ResultSet rs=null;
 73         try {
 74             con=BaseDao.getCon();
 75             String sql ="insert into user_course (username,c_id) values(?,?)";
 76             ps=con.prepareStatement(sql);
 77             ps.setString(1, username);
 78             ps.setString(2, c_id);
 79             int a =ps.executeUpdate();
 80             if(a>0){
 81                 System.out.println("选课成功");
 82             }
 83             else{
 84                 System.out.println("输入ID有误,选课失败");
 85             }
 86         } catch (Exception e) {
 87             // TODO Auto-generated catch block
 88             e.printStackTrace();
 89         }
 90     }
 91     //删除选课
 92     @Override
 93     public void deleteCourse(String username,String c_id) {
 94         // TODO Auto-generated method stub
 95         
 96         Connection con = null;
 97         PreparedStatement ps= null;
 98         ResultSet rs=null;
 99         try {
100             con=BaseDao.getCon();
101             String sql="delete from user_course where username=? and c_id=? ";
102             ps=con.prepareStatement(sql);
103             ps.setString(1, username);
104             ps.setString(2, c_id);
105             int a =ps.executeUpdate();
106             if(a>0){
107                 System.out.println("删除成功");
108             }
109             else{
110                 System.out.println("输入ID有误,删除失败");
111             }
112             
113         } catch (Exception e) {
114             // TODO Auto-generated catch block
115             e.printStackTrace();
116         }
117     }
118     //查询已选课程
119     @Override
120     public void getStuCourse(String username) {
121         // TODO Auto-generated method stub
122         Connection con = null;
123         PreparedStatement ps= null;
124         ResultSet rs=null;
125         try {
126             con=BaseDao.getCon();
127         
128             String sql ="select * from course where c_id in (select c_id from user_course where username=?)";
129             ps=con.prepareStatement(sql);
130             ps.setString(1, username);
131             rs=ps.executeQuery();
132             while (rs.next()) {
133                 //System.out.println(6);
134                 Course course = new Course();
135                 course.setC_id(rs.getString("c_id"));
136                 course.setC_name(rs.getString("c_name"));
137                 course.setTeacher(rs.getString("teacher"));
138  
139                 System.out.println(course.getC_id()+" "+course.getC_name()+" "+course.getTeacher());
140             }
141         } catch (Exception e) {
142             // TODO Auto-generated catch block
143             e.printStackTrace();
144         }
145         
146         
147     }
148     //查询可选课程
149     @Override
150     public void getAvaCourse(String username) {
151         // TODO Auto-generated method stub
152         Connection con = null;
153         PreparedStatement ps= null;
154         ResultSet rs=null;
155         try {
156             con=BaseDao.getCon();
157             String sql = "select * from course where c_id not in (select c_id from user_course where username=?)";
158             ps=con.prepareStatement(sql);
159             ps.setString(1, username);
160             rs=ps.executeQuery();
161             while (rs.next()) {
162                 Course course = new Course();
163                 course.setC_id(rs.getString("c_id"));
164                 course.setC_name(rs.getString("c_name"));
165                 course.setTeacher(rs.getString("teacher"));
166  
167                 System.out.println(course.getC_id()+" "+course.getC_name()+" "+course.getTeacher());
168             }
169         } catch (Exception e) {
170             // TODO Auto-generated catch block
171             e.printStackTrace();
172         }
173     }
174 
175 }
View Code

 

        设计UserService类进行业务逻辑处理

 1 package com.epoint.service;
 2 import java.util.Scanner;
 3 
 4 import com.epoint.Dao.UserDao;
 5 import com.epoint.Dao.Impl.UserDaoImpl;
 6 import com.epoint.model.User;
 7 import com.epoint.utils.StuMenu;
 8 
 9 public class UserService {
10     static Scanner sc = new Scanner(System.in);
11     public void userLogin(String username,String password){
12         UserDao dao = new UserDaoImpl();
13         User user =new User();
14         user.setUsername(username);
15         user.setPassword(password);
16         dao.login(user);
17         if(dao.login(user)!=null){
18             System.out.println("登录成功");
19             StuMenu.showMenu(username);            
20         }
21         else{
22             System.out.println("用户名或密码错误");
23         }
24             
25     }
26     public static void userChangePassWord(String username){
27         UserDao dao = new UserDaoImpl();
28         User user =new User();
29         System.out.println("请输入新密码");
30         String password = sc.nextLine();
31         if(password==""||password.length()>10){
32             System.exit(0);
33         }
34         else{
35             user.setUsername(username);
36             user.setPassword(password);
37             dao.changePass(user);
38             System.out.println("修改密码成功,新密码为:"+password);
39             StuMenu.showMenu(username);
40         }
41         
42     }
43     public static void userStuCourse(String username){
44         UserDao dao = new UserDaoImpl();
45         System.out.println("_________________________");
46         System.out.println("已选课程为:");
47         dao.getStuCourse(username);
48         StuMenu.showMenu(username);
49     }
50     public static void userDeleteCourse(String username){
51         UserDao dao = new UserDaoImpl();
52         System.out.println("_________________________");
53         System.out.println("想要删除的课程ID为:");
54         String c_id=sc.nextLine();
55         dao.deleteCourse(username, c_id);
56         StuMenu.showMenu(username);
57         
58     }
59     public static void userAvaCourse(String username){
60         UserDao dao = new UserDaoImpl();
61         System.out.println("_________________________");
62         System.out.println("可选课程为:");
63         dao.getAvaCourse(username);
64         StuMenu.showMenu(username);
65     }
66     public static void userChooserCourse(String username){
67         UserDao dao = new UserDaoImpl();
68         System.out.println("_________________________");
69         System.out.println("想要选择的课程ID为:");
70         String c_id=sc.nextLine();
71         dao.chooseCourse(username, c_id);
72         StuMenu.showMenu(username);
73     }
74 
75 }
View Code

 

 管理员端设计

          设计Manager实体类

 1 package com.epoint.model;
 2 
 3 public class Manager {
 4     private String m_name;
 5     private String m_password;
 6     public String getM_name() {
 7         return m_name;
 8     }
 9     public void setM_name(String m_name) {
10         this.m_name = m_name;
11     }
12     public String getM_password() {
13         return m_password;
14     }
15     public void setM_password(String m_password) {
16         this.m_password = m_password;
17     }
18 
19 }
View Code

 

       设计ManagerDao接口类

 1 package com.epoint.Dao;
 2 
 3 import com.epoint.model.Course;
 4 import com.epoint.model.Manager;
 5 import com.epoint.model.User;
 6 
 7 public interface ManagerDao {
 8     public Manager login(Manager manager);
 9     
10     public void addCourse(Course course);
11     public void deleteCourse(String c_id);
12     public void updateCourse(Course course);
13     public void selectOneCourse(String c_id);
14     public void selectAllCourse();
15     
16     public void addUser(User user);
17     public void deleteUser(String username);
18     public void updateUser(User user);
19     public void selectOneUser(String username);
20     public void selectAllUser();
21 
22 }
View Code

       设计ManagerDaoImpl类实现ManagerDao接口

  1 package com.epoint.Dao.Impl;
  2 
  3 import java.sql.Connection;
  4 import java.sql.PreparedStatement;
  5 import java.sql.ResultSet;
  6 
  7 import com.epoint.Dao.ManagerDao;
  8 import com.epoint.model.Course;
  9 import com.epoint.model.Manager;
 10 import com.epoint.model.User;
 11 import com.epoint.utils.BaseDao;
 12 
 13 public class ManagerDaoImpl implements ManagerDao{
 14     //管理员登录
 15     @Override
 16     public Manager login(Manager manager) {
 17         // TODO Auto-generated method stub
 18         Connection con = null;
 19         PreparedStatement ps= null;
 20         ResultSet rs=null;
 21         try {
 22             con=BaseDao.getCon();
 23             String sql="select * from manager where m_name=? and m_password=?";
 24             ps=con.prepareStatement(sql);
 25             ps.setString(1, manager.getM_name());
 26             ps.setString(2, manager.getM_password());
 27             rs=ps.executeQuery();
 28             Manager  managers=null;
 29             if(rs.next()){
 30                 managers=new Manager();    
 31                 managers.setM_name(rs.getString("m_name"));
 32                 managers.setM_password(rs.getString("m_password"));
 33                 return managers;
 34                 
 35             }
 36             else
 37                 return null;
 38             
 39         } catch (Exception e) {
 40             // TODO Auto-generated catch block
 41             e.printStackTrace();
 42         }
 43         
 44         return null;
 45     }
 46     //添加课程
 47     @Override
 48     public void addCourse(Course course) {
 49         // TODO Auto-generated method stub
 50         Connection con = null;
 51         PreparedStatement ps= null;
 52         ResultSet rs=null;
 53         try {
 54             con=BaseDao.getCon();
 55             String sql="insert into course (c_id,c_name,teacher) values(?,?,?)";
 56             ps=con.prepareStatement(sql);
 57             ps.setString(1, course.getC_id());
 58             ps.setString(2, course.getC_name());
 59             ps.setString(3, course.getTeacher());
 60             int a = ps.executeUpdate();
 61         } catch (Exception e) {
 62             // TODO Auto-generated catch block
 63             e.printStackTrace();
 64         }
 65         
 66     }
 67     //删除课程
 68     @Override
 69     public void deleteCourse(String c_id) {
 70         // TODO Auto-generated method stub
 71         Connection con = null;
 72         PreparedStatement ps= null;
 73         ResultSet rs=null;
 74         try {
 75             con=BaseDao.getCon();
 76             String sql = "delete from course where c_id=?";
 77             ps=con.prepareStatement(sql);
 78             ps.setString(1, c_id);
 79             int a=ps.executeUpdate();
 80             if(a>0){
 81                 System.out.println("删除成功");
 82                 String sql2="delete from user_course where c_id=?";
 83                 ps=con.prepareStatement(sql2);
 84                 ps.setString(1, c_id);
 85                 int b=ps.executeUpdate();
 86             }
 87             else{
 88                 System.out.println("输入ID有误,删除失败");
 89         }
 90         }catch (Exception e) {
 91             // TODO Auto-generated catch block
 92             e.printStackTrace();
 93         }
 94         
 95     }
 96     //修改课程
 97     @Override
 98     public void updateCourse(Course course) {
 99         // TODO Auto-generated method stub
100         Connection con = null;
101         PreparedStatement ps= null;
102         ResultSet rs=null;
103         try {
104             con=BaseDao.getCon();
105             String sql="update course set c_name=?,teacher=? where c_id=?";
106             ps=con.prepareStatement(sql);
107             ps.setString(1, course.getC_name());
108             ps.setString(2, course.getTeacher());
109             ps.setString(3, course.getC_id());
110             int a = ps.executeUpdate();
111             if(a>0){
112                 System.out.println("课程修改成功");
113             }
114             else{
115                 System.out.println("输入ID有误,课程修改失败");
116         }
117             
118         } catch (Exception e) {
119             // TODO Auto-generated catch block
120             e.printStackTrace();
121         }
122         
123     }
124     //    查看某一课程
125     @Override
126     public void selectOneCourse(String c_id) {
127         // TODO Auto-generated method stub
128         Connection con = null;
129         PreparedStatement ps= null;
130         ResultSet rs=null;
131         try {
132             con=BaseDao.getCon();
133             String sql ="select * from course where c_id=?";
134             ps=con.prepareStatement(sql);
135             ps.setString(1, c_id);
136             rs=ps.executeQuery();
137             Course course=null;
138             if(rs.next()){
139                 course = new Course();
140                 course.setC_id(rs.getString("c_id"));
141                 course.setC_name(rs.getString("c_name"));
142                 course.setTeacher(rs.getString("teacher"));
143                 System.out.println(course.getC_id()+" "+course.getC_name()+" "+course.getTeacher());
144             }
145         } catch (Exception e) {
146             // TODO Auto-generated catch block
147             e.printStackTrace();
148         }
149     }
150     //查看全部课程
151     @Override
152     public void selectAllCourse() {
153         // TODO Auto-generated method stub
154         Connection con = null;
155         PreparedStatement ps= null;
156         ResultSet rs=null;
157         try {
158             con=BaseDao.getCon();
159             String sql ="select * from course ";
160             ps=con.prepareStatement(sql);
161             rs=ps.executeQuery();
162             Course course=null;
163             while(rs.next()){
164                 course = new Course();
165                 course.setC_id(rs.getString("c_id"));
166                 course.setC_name(rs.getString("c_name"));
167                 course.setTeacher(rs.getString("teacher"));
168                 System.out.println(course.getC_id()+" "+course.getC_name()+" "+course.getTeacher());
169             }
170         } catch (Exception e) {
171             // TODO Auto-generated catch block
172             e.printStackTrace();
173         }
174         
175     }
176     //添加学生
177     @Override
178     public void addUser(User user) {
179         // TODO Auto-generated method stub
180         Connection con = null;
181         PreparedStatement ps= null;
182         ResultSet rs=null;
183         try {
184             con=BaseDao.getCon();
185             String sql="insert into user (username,password) values(?,?)";
186             ps=con.prepareStatement(sql);
187             ps.setString(1, user.getUsername());
188             ps.setString(2, user.getPassword());
189             int a = ps.executeUpdate();
190             if(a>0){
191                 System.out.println("学生添加成功");
192             }
193             else{
194                 System.out.println("学生添加失败");
195         }
196         } catch (Exception e) {
197             // TODO Auto-generated catch block
198             e.printStackTrace();
199         }
200     }
201     //删除学生
202     @Override
203     public void deleteUser(String username) {
204         // TODO Auto-generated method stub
205         Connection con = null;
206         PreparedStatement ps= null;
207         ResultSet rs=null;
208         try {
209             con=BaseDao.getCon();
210             String sql = "delete from user where username=?";
211             ps=con.prepareStatement(sql);
212             ps.setString(1, username);
213             int a=ps.executeUpdate();
214             if(a>0){
215                 System.out.println("删除成功");
216                 String sql2="delete from user_course where username=?";
217                 ps=con.prepareStatement(sql2);
218                 ps.setString(1, username);
219                 int b=ps.executeUpdate();
220             }
221             else{
222                 System.out.println("输入用户名有误,删除失败");
223         }
224         }catch (Exception e) {
225             // TODO Auto-generated catch block
226             e.printStackTrace();
227         }
228     }
229     //修改用户
230     @Override
231     public void updateUser(User user) {
232         // TODO Auto-generated method stub
233         Connection con = null;
234         PreparedStatement ps= null;
235         ResultSet rs=null;
236         try {
237             con=BaseDao.getCon();
238             String sql="update user set password=? where username=?";
239             ps=con.prepareStatement(sql);
240             ps.setString(1, user.getPassword());
241             ps.setString(2, user.getUsername());
242             int a = ps.executeUpdate();
243             if(a>0){
244                 System.out.println("用户修改成功");
245             }
246             else{
247                 System.out.println("输入有误,用户修改失败");
248         }
249             
250         } catch (Exception e) {
251             // TODO Auto-generated catch block
252             e.printStackTrace();
253         }
254     }
255     //查看某一学生
256     @Override
257     public void selectOneUser(String username) {
258         // TODO Auto-generated method stub
259         Connection con = null;
260         PreparedStatement ps= null;
261         ResultSet rs=null;
262         try {
263             con=BaseDao.getCon();
264             String sql ="select * from user where username=?";
265             ps=con.prepareStatement(sql);
266             ps.setString(1, username);
267             rs=ps.executeQuery();
268             User user=null;
269             if(rs.next()){
270                 user = new User();
271                 user.setUsername(rs.getString("username"));
272                 user.setPassword(rs.getString("password"));
273                 System.out.println(user.getUsername()+" "+user.getPassword());
274             }
275         } catch (Exception e) {
276             // TODO Auto-generated catch block
277             e.printStackTrace();
278         }
279     }
280     //查看全部课程
281     @Override
282     public void selectAllUser() {
283         // TODO Auto-generated method stub
284         Connection con = null;
285         PreparedStatement ps= null;
286         ResultSet rs=null;
287         try {
288             con=BaseDao.getCon();
289             String sql ="select * from user ";
290             ps=con.prepareStatement(sql);
291             rs=ps.executeQuery();
292             User user=null;
293             while(rs.next()){
294                 user = new User();
295                 user.setUsername(rs.getString("username"));
296                 user.setPassword(rs.getString("password"));
297                 System.out.println(user.getUsername()+" "+user.getPassword());
298             }
299         } catch (Exception e) {
300             // TODO Auto-generated catch block
301             e.printStackTrace();
302         }
303     }
304 
305 }
View Code

 

       设计ManagerService类进行业务逻辑处理

  1 package com.epoint.service;
  2 
  3 import java.util.Scanner;
  4 
  5 import com.epoint.Dao.ManagerDao;
  6 import com.epoint.Dao.Impl.ManagerDaoImpl;
  7 import com.epoint.model.Course;
  8 import com.epoint.model.Manager;
  9 import com.epoint.model.User;
 10 import com.epoint.utils.ManMenu;
 11 import com.epoint.utils.StuMenu;
 12 
 13 public class ManagerService {
 14     static Scanner sc = new Scanner(System.in);
 15     //管理员登录
 16     public void manLogin(String username,String password){
 17         ManagerDao dao = new ManagerDaoImpl();
 18         Manager manager = new Manager();
 19         manager.setM_name(username);
 20         manager.setM_password(password);
 21         dao.login(manager);
 22         if(dao.login(manager)!=null){
 23             System.out.println("登录成功");    
 24             ManMenu.ShowMenu();
 25             
 26         }
 27         else{
 28             System.out.println("用户名或密码错误");
 29         }
 30     }
 31     //添加课程
 32     public static void manAddCourse(){
 33         ManagerDao dao = new ManagerDaoImpl();
 34         Course course=new Course();
 35         System.out.println("请输入要填加的课程ID:");
 36         course.setC_id(sc.nextLine());
 37         System.out.println("请输入要填加的课程名:");
 38         course.setC_name(sc.nextLine());
 39         System.out.println("请输入要填加的课程教师:");
 40         course.setTeacher(sc.nextLine());
 41         dao.addCourse(course);
 42         ManMenu.ShowMenu();
 43     }
 44     //删除课程
 45     public static void manDeleteCourse(){
 46         ManagerDao dao = new ManagerDaoImpl();
 47         System.out.println("请输入要删除的课程ID:");
 48         String c_id = sc.nextLine();
 49         dao.deleteCourse(c_id);
 50         ManMenu.ShowMenu();
 51     }
 52     //修改课程
 53     public static void manUpdateCourse(){
 54         ManagerDao dao = new ManagerDaoImpl();
 55         Course course=new Course();
 56         System.out.println("请输入要修改的课程ID:");
 57         course.setC_id(sc.nextLine());
 58         System.out.println("请输入修改后的课程名:");
 59         course.setC_name(sc.nextLine());
 60         System.out.println("请输入修改后的课程教师:");
 61         course.setTeacher(sc.nextLine());
 62         dao.updateCourse(course);
 63         ManMenu.ShowMenu();
 64     }
 65     //查看某一课程
 66     public static void manOneCourse(){
 67         ManagerDao dao = new ManagerDaoImpl();
 68         System.out.println("请输入要查看的课程ID:");
 69         String c_id=sc.nextLine();
 70         dao.selectOneCourse(c_id);
 71         ManMenu.ShowMenu();
 72     }
 73     //查看全部课程
 74     public static void manAllCourse(){
 75         ManagerDao dao = new ManagerDaoImpl();
 76         System.out.println("已有课程如下:");
 77         dao.selectAllCourse();
 78         ManMenu.ShowMenu();
 79     }
 80     //添加学生
 81     public static void manAddUser(){
 82         ManagerDao dao = new ManagerDaoImpl();
 83         User user = new User();
 84         System.out.println("请输入要填加的学生用户名:");
 85         user.setUsername(sc.nextLine());
 86         System.out.println("请输入密码:");
 87         user.setPassword(sc.nextLine());
 88         dao.addUser(user);
 89         ManMenu.ShowMenu();
 90     }
 91     //删除学生
 92         public static void manDeleteUser(){
 93             ManagerDao dao = new ManagerDaoImpl();
 94             System.out.println("请输入要删除的用户名:");
 95             String username = sc.nextLine();
 96             dao.deleteUser(username);
 97             ManMenu.ShowMenu();
 98         }
 99         //修改学生
100         public static void manUpdateUser(){
101             ManagerDao dao = new ManagerDaoImpl();
102             User user= new User();
103             System.out.println("请输入要修改的用户名:");
104             user.setUsername(sc.nextLine());
105             System.out.println("请输入修改后的密码:");
106             user.setPassword(sc.nextLine());
107             dao.updateUser(user);
108             ManMenu.ShowMenu();
109         }
110         //查看某一学生
111         public static void manOneUser(){
112             ManagerDao dao = new ManagerDaoImpl();
113             System.out.println("请输入要查看的用户名:");
114             String username=sc.nextLine();
115             dao.selectOneUser(username);
116             ManMenu.ShowMenu();
117         }
118         //查看全部学生
119         public static void manAllUser(){
120             ManagerDao dao = new ManagerDaoImpl();
121             System.out.println("已有学生信息如下:");
122             dao.selectAllUser();
123             ManMenu.ShowMenu();
124         }
125 
126 }
View Code

 

Utils包设计 (包含一些菜单类以及公共的数据库连接类)

       设计BaseDao类做为公共的数据库连接类

 1 package com.epoint.utils;
 2 
 3 import java.sql.*;
 4 
 5 public class BaseDao {
 6     
 7     private static String driver="com.mysql.jdbc.Driver";
 8     private static String url="jdbc:mysql://localhost:3306/select_course";
 9     private static String user="root";
10     private static String password="Gepoint";
11     
12     /**
13      * 连接数据库
14      * @throws Exception 
15      */
16     public static Connection getCon () throws Exception{
17         Class.forName(driver);
18         //System.out.println("加载");
19         Connection con =DriverManager.getConnection(url, user, password);
20         //System.out.println("连接");
21         return con;
22     }
23     /**
24      * 关闭数据库
25      */
26     public static void close(Connection con,PreparedStatement ps,ResultSet rs){
27         if(rs!=null){//关闭资源,避免出现异常
28             try {
29                 rs.close();
30             } catch (SQLException e) {
31                  // TODO Auto-generated catch block
32                  e.printStackTrace();
33             }
34         }
35         if(ps!=null){//关闭资源,避免出现异常
36             try {
37                 ps.close();
38             } catch (SQLException e) {
39                  // TODO Auto-generated catch block
40                  e.printStackTrace();
41             }
42         }
43         if(con!=null){//关闭资源,避免出现异常
44             try {
45                 con.close();
46             } catch (SQLException e) {
47                  // TODO Auto-generated catch block
48                  e.printStackTrace();
49             }
50         }
51         
52     }
53 //    public static void main(String[] args) {
54 //        try {
55 //            BaseDao.getCon();
56 //            System.out.println("成功");
57 //        } catch (Exception e) {
58 //            // TODO Auto-generated catch block
59 //            e.printStackTrace();
60 //        }
61 //        
62 //    }
63     
64 }
View Code

 

       菜单类设计

 1 package com.epoint.utils;
 2 
 3 import java.util.Scanner;
 4 import com.epoint.service.*;
 5 /**
 6  * 学生界面
 7  * @author zhai
 8  *
 9  */
10 public class StuMenu {
11     public static void showMenu(String username){
12         Scanner sc = new Scanner(System.in);
13         System.out.println("_________________________");
14         System.out.println("      欢迎"+username+"使用选课系统         ");
15         System.out.println("    1.修改学生密码");
16         System.out.println("    2.查看已选课程");
17         System.out.println("    3.选择可选课程");
18         System.out.println("    4.查看可选课程");
19         System.out.println("    5.删除已选课程");
20         System.out.println("    6.退出选课系统");
21         System.out.println("_________________________");
22         int a = sc.nextInt();
23         switch(a){
24         case 1:  UserService.userChangePassWord(username);
25             break;
26         case 2:  UserService.userStuCourse(username);
27             break;
28         case 3:     UserService.userChooserCourse(username);
29             break;
30         case 4:     UserService.userAvaCourse(username);
31             break;
32         case 5:     UserService.userDeleteCourse(username);
33             break;
34         case 6:  System.out.println("用户成功退出!");
35                  System.exit(0);
36             break;
37         default:
38             System.out.println("输入数字不合法,程序退出");
39             System.exit(0);
40         }
41         
42         
43     }
44 
45 }
View Code
 1 package com.epoint.utils;
 2 
 3 import java.util.Scanner;
 4 /**
 5  * 管理员界面
 6  * @author zhai
 7  *
 8  */
 9 public class ManMenu {
10     public static void ShowMenu(){
11         Scanner sc = new Scanner(System.in);
12         System.out.println("_________________________");
13         System.out.println("      欢迎使用选课系统         ");
14         System.out.println("    1.课程管理");
15         System.out.println("    2.学生管理");
16         System.out.println("    3.退出系统");
17         System.out.println("_________________________");
18         int a =sc.nextInt();
19         switch(a){
20         case 1:
21             CourseControlMenu.ShowMenu();
22             break;
23         case 2:
24             UserControlMenu.ShowMenu();
25             break;
26         case 3:
27             System.out.println("用户成功退出!");
28             System.exit(0);
29             break;
30         default:
31             System.out.println("输入数字不合法,程序退出");
32             System.exit(0);
33         }
34     }
35     
36 
37 }
View Code
 1 package com.epoint.utils;
 2 
 3 import java.util.Scanner;
 4 /**
 5  * 课程管理界面
 6  */
 7 import com.epoint.service.ManagerService;
 8 public class CourseControlMenu {
 9     public static void ShowMenu(){
10         Scanner sc = new Scanner(System.in);
11         System.out.println("_________________________");
12         System.out.println("    1.课程新增");
13         System.out.println("    2.课程查看");
14         System.out.println("    3.课程删除");
15         System.out.println("    4.课程修改");
16         System.out.println("_________________________");
17         int a =sc.nextInt();
18         switch(a){
19         case 1:
20             ManagerService.manAddCourse();
21             break;
22         case 2:
23             CourseLookMenu.ShowMenu();
24             break;
25         case 3:
26             ManagerService.manDeleteCourse();
27             break;
28         case 4:
29             ManagerService.manUpdateCourse();
30             break;
31         default:
32             System.out.println("输入数字不合法,程序退出");
33             System.exit(0);
34             
35         }
36     }
37 
38 }
View Code
 1 package com.epoint.utils;
 2 /**
 3  * 课程查看界面
 4  */
 5 import java.util.Scanner;
 6 import com.epoint.service.ManagerService;
 7 public class CourseLookMenu {
 8     
 9     public static void ShowMenu(){
10         Scanner sc = new Scanner(System.in);
11         System.out.println("_________________________");
12         System.out.println("    1.查看某一课程");
13         System.out.println("    2.查看全部课程");
14         System.out.println("_________________________");
15         int a =sc.nextInt();
16         switch(a){
17         case 1:
18             ManagerService.manOneCourse();
19             break;
20         case 2:
21             ManagerService.manAllCourse();
22         default:
23             System.out.println("输入数字不合法,程序退出");
24             System.exit(0);
25         }
26     }
27 
28 }
View Code
 1 package com.epoint.utils;
 2 
 3 import java.util.Scanner;
 4 
 5 import com.epoint.service.ManagerService;
 6 /**
 7  * 学生管理界面
 8  * @author zhai
 9  *
10  */
11 public class UserControlMenu {
12     public static void ShowMenu(){
13         Scanner sc = new Scanner(System.in);
14         System.out.println("_________________________");
15         System.out.println("    1.学生新增");
16         System.out.println("    2.学生查看");
17         System.out.println("    3.学生删除");
18         System.out.println("    4.学生修改");
19         System.out.println("_________________________");
20         int a =sc.nextInt();
21         switch(a){
22         case 1:
23             ManagerService.manAddUser();
24             break;
25         case 2:
26             UserLookMenu.ShowMenu();
27             break;
28         case 3:
29             ManagerService.manDeleteUser();
30             break;
31         case 4:
32             ManagerService.manUpdateUser();
33             break;
34         default:
35             System.out.println("输入数字不合法,程序退出");
36             System.exit(0);
37         }
38     }
39 
40 }
View Code
 1 package com.epoint.utils;
 2 
 3 import java.util.Scanner;
 4 
 5 import com.epoint.service.ManagerService;
 6 /**
 7  * 学生信息查看界面
 8  * @author zhai
 9  *
10  */
11 public class UserLookMenu {
12     public static void ShowMenu(){
13         Scanner sc = new Scanner(System.in);
14         System.out.println("_________________________");
15         System.out.println("    1.查看某一学生");
16         System.out.println("    2.查看全部学生");
17         System.out.println("_________________________");
18         int a =sc.nextInt();
19         switch(a){
20         case 1:
21             ManagerService.manOneUser();
22             break;
23         case 2:
24             ManagerService.manAllUser();
25             break;
26         default:
27             System.out.println("输入数字不合法,程序退出");
28             System.exit(0);
29         }
30     }
31 }
View Code

      测试类设计

 1 package com.epoint.utils;
 2 
 3 import com.epoint.service.ManagerService;
 4 import com.epoint.service.UserService;
 5 import java.util.Scanner;
 6 
 7 public class Test {
 8 
 9     public static void main(String[] args) {
10         // TODO Auto-generated method stub
11         Scanner sc = new Scanner(System.in);
12         System.out.println("欢迎使用选课系统");
13         System.out.println("请输入登录名:");
14         String username = sc.nextLine();
15         System.out.println("请输入密码");
16         String password = sc.nextLine();
17         System.out.println("请选择您的身份");
18         System.out.println("1.管理员");
19         System.out.println("2.学生");
20         int a = sc.nextInt();
21         switch(a){
22         case 1:
23             new ManagerService().manLogin(username, password);
24             break;
25         case 2:
26             new UserService().userLogin(username, password); 
27             break;
28         default:
29             System.out.println("输入数字不合法,程序退出");
30             System.exit(0);
31         }
32     }
33 
34 }
View Code

 

 总结:

      本项目还有一些问题需要解决,例如数据库可插入重复数据等,解决后再更。

      才疏学浅,倘若对您有一些启发,深感荣幸!