课程设计说明文档学生选课管理系统的设计与实现学校:华南理工大学广州汽车学院系别:计算机工程系专业班级:信息与计算科学姓名:学号:一、课程设计目的通过这次的设计,主要是做出一个小型的管理系统,来加强对JAVA所学知识的巩固和融会贯通,可以说是对一个学期所学知识的一个小结,加深对JAVA数据库的理解。二、需求分析功能需求分析:该系统具备管理学生信息、课程信息、选课信息的功能:用户通过输入账号和密码进下该系统后,可以进行一些基础维护(学生信息维护、课程信息维护、选课信息维护)。全部都可以进行增加、修改、删除、模糊查询。三、数据项:1表admin(用户表)FieldTypeNullKeyCommentUsernamechar(10)——PRI用户名passwordchar(10)————密码NameChar(10)————用户昵称2表S(学生信息表)FieldTypeNullKeyCommentSnonvarchar(50)——PRI学号Snamenvarchar(50)————姓名Sxnvarchar(50)————系别3表C(课程信息表)FieldTypeNullKeyCommentCnonvarchar(50)——PRI课号Cnamenvarchar(50)————课名4表SC(学生信息表)FieldTypeNullKeyCommentCnonvarchar(50)——PRI课号Snonvarchar(50)——PRI学号Cnvarchar(50)————成绩四、系统功能描述该小型系统主要是用于管理学生及课程的基本信息,主要功能包括四方面的:1.管理学生信息,其中包括添加,删除,修改等操作。2.管理课程信息,其中包括添加,删除,修改等操作。3.管理选课信息,其中包括添加,删除,修改等操作。4.查询信息,其中包括查询学生信息,查询课程信息,查询选课信息等操作。学生信息管理系统学生管理课程管理选课管理查询管理添加信息修改信息删除信息添加信息修改信息删除信息添加信息修改信息删除信息学生信息课程信息选课信息五、代码分析连接数据库方法:这是java连接数据库的驱动,有关数据库的操作都要用到他。publicstaticConnectionCONN(){StringdriverName=com.microsoft.sqlserver.jdbc.SQLServerDriver;//加载JDBC驱动StringdbURL=jdbc:sqlserver://localhost:1433;DatabaseName=student;//连接服务器和数据库test,此处student是数据库名StringuserName=sa;//默认用户名StringuserPwd=mima;//密码ConnectiondbConn=null;try{Class.forName(driverName);dbConn=DriverManager.getConnection(dbURL,userName,userPwd);System.out.println(ConnectionSuccessful!);//如果连接成功控制台输出ConnectionSuccessful!}catch(Exceptione){e.printStackTrace();}returndbConn;}用户登录界面user.java:登录时,凡是账号密码未填写、输入错误账号密码都会提出错误提示框。在填写好账号密码后,会读取数据库里admin表,并查询其输入是否存在,若无误,则登录到用户界面。publicclassUserextendsJFrame{privateJLabeluse,password;privateJTextFieldk1;//用户名输入框privateJPasswordFieldk2;//密码输入框privateJButtonb1,b2;//登录窗口publicUser(JFramef){super(系统登录);Containerc=getContentPane();c.setLayout(newFlowLayout());use=newJLabel(username:);use.setFont(newFont(Serif,Font.PLAIN,20));password=newJLabel(password:);password.setFont(newFont(Serif,Font.PLAIN,20));k1=newJTextField(12);k2=newJPasswordField(12);b1=newJButton(登录);b2=newJButton(退出);//设置登录方法BHandlerb=newBHandler();EXITd=newEXIT();b1.addActionListener(b);b2.addActionListener(d);//添加控件c.add(use);c.add(k1);c.add(password);c.add(k2);c.add(b1);c.add(b2);setBounds(600,300,250,150);setVisible(true);setResizable(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}//主函数publicstaticvoidmain(String[]args){Userf1=newUser(newJFrame());}效果图:用户界面:Menu.java用户界面能菜单栏有4个一级菜单,学生管理、课程管理、选课管理都能添加、修改、删除数据,分别操作数据库里的S表(学生),C表(课程),SC表(选课)。查询管理则可进行三个表的查询。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassMenuextendsJFrameimplementsActionListener{Addstu增加学生界面;Updatastu修改学生界面;Delstu删除学生界面;AddC增加课程界面;DelC删除课程界面;UpdateC修改课程界面;AddSC增加选课界面;DelSC删除选课界面;UpdateSC修改选课界面;Selstu学生查询界面;JPanelpCenter;CardLayoutcard=null;JLabellabel=null;JMenuBarmb=newJMenuBar();//菜单栏JMenum1=newJMenu(学生管理);JMenuItemadd1=newJMenuItem(add1);JMenuItemupdata1=newJMenuItem(updata1);JMenuItemdelete1=newJMenuItem(delete1);JMenum2=newJMenu(课程管理);JMenuItemadd2=newJMenuItem(add2);JMenuItemupdata2=newJMenuItem(updata2);JMenuItemdelete2=newJMenuItem(delete2);JMenum3=newJMenu(选课管理);JMenuItemadd3=newJMenuItem(add3);JMenuItemupdata3=newJMenuItem(updata3);JMenuItemdelete3=newJMenuItem(delete3);JMenum4=newJMenu(查询管理);JMenuItem学生查询=newJMenuItem(查询信息);JMenuItemm5=newJMenuItem(系统退出);Fontt=newFont(sanerif,Font.PLAIN,12);publicMenu(){this.setTitle(学生选课管理系统);try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exceptione){System.err.println(不能设置外观:+e);}//组合菜单addMenu1();addMenu2();addMenu3();addMenu4();addJMenuBar();setJMenuBar(mb);label=newJLabel(选课管理系统,JLabel.CENTER);label.setFont(newFont(宋体,Font.BOLD,36));label.setHorizontalTextPosition(SwingConstants.CENTER);label.setForeground(Color.red);//点击事件add1.addActionListener(this);updata1.addActionListener(this);delete1.addActionListener(this);m5.addActionListener(this);add2.addActionListener(this);delete2.addActionListener(this);updata2.addActionListener(this);add3.addActionListener(this);delete3.addActionListener(this);updata3.addActionListener(this);学生查询.addActionListener(this);card=newCardLayout();pCenter=newJPanel();pCenter.setLayout(card);增加学生界面=newAddstu();修改学生界面=newUpdatastu();删除学生界面=newDelstu();增加课程界面=newAddC();删除课程界面=newDelC();修改课程界面=newUpdateC();增加选课界面=newAddSC();删除选课界面=newDelSC();修改选课界面=newUpdateSC();学生查询界面=newSelstu();pCenter.add(欢迎界面,label);pCenter.add(增加学生界面,增加学生界面);pCenter.add(修改学生界面,修改学生界面);pCenter.add(删除学生界面,删除学生界面);pCenter.add(增加课程界面,增加课程界面);pCenter.add(删除课程界面,删除课程界面);pCenter.add(修改课程界面,修改课程界面);pCenter.add(增加选课界面,增加选课界面);pCenter.add(删除选课界面,删除选课界面);pCenter.add(修改选课界面,修改选课界面);pCenter.add(学生查询界面,学生查询界面);add(pCenter,BorderLayout.CENTER);validate();setVisible(true);setBounds(400,150,400,280);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);addWindowListener(newWindowAdapter(){//关闭程序时的操作publicvoidwindowClosing(WindowEvente){System.exit(0);}});validate();}privatevoidaddJMenuBar(){mb.add(m1);mb.add(m2);mb.add(m3);mb.add(m4);mb.add(m5);}privatevoidaddMenu4(){m4.add(学生查询);m4.setFont(t);}privatevoidaddMenu3(){m3.add(add3);m3.add(updata3);m3.add(delete3);m3.setFon