JAVA课程设计(论文)学生学籍管理系统

上传人:仙*** 文档编号:30669929 上传时间:2021-10-11 格式:DOC 页数:23 大小:1.26MB
收藏 版权申诉 举报 下载
JAVA课程设计(论文)学生学籍管理系统_第1页
第1页 / 共23页
JAVA课程设计(论文)学生学籍管理系统_第2页
第2页 / 共23页
JAVA课程设计(论文)学生学籍管理系统_第3页
第3页 / 共23页
资源描述:

《JAVA课程设计(论文)学生学籍管理系统》由会员分享,可在线阅读,更多相关《JAVA课程设计(论文)学生学籍管理系统(23页珍藏版)》请在装配图网上搜索。

1、装订线长 春 大 学 课程设计纸目 录一、 设计目的2二、 功能介绍21、 系统功能要求22、 其他要求2三、 程序流程31、 数据库设计32、 应用程序设计4四、 设计步骤61、 连接数据库类DBConnect62、 用户登录面板63、 应用程序功能81. 查询全部82. 条件查询93. 个人信息显示144. 添加信息155. 删除信息186. 修改密码217. 注销22五、 设计总结23六、 参考资料23一、 设计目的通过课程设计,使学生提高理论联系实际解决实际问题的能力;也使学生对基于面向对象的理论进行系统设计过程中的诸多具体问题有感性的认识和深入的理解;进而提高学生的学习兴趣为其将来顺

2、利进入毕业环节作必要的准备。由教师布置课程设计的题目与思路,学生每56人一个题目,按照教师给出的思路和计划进度安排独立完成课程设计,最后每人提交一份课程设计报告。二、 功能介绍(一)系统功能要求:(1)具有新用户注册功能。(2)具有注册用户登录功能。(3)具有学生学籍的录入功能。(4)具有数据查询功能,可以实现查询全部信息和按条件执行查询。(5)具有按条件删除数据功能。(二)其它要求:(1)只能使用Java语言,采用面向对象方法进行设计,要求源程序要有适当的注释,使程序容易阅读。(2)程序必须与数据库进行通信。(3)系统必须是图形用户界面的形式并连接数据库。(4)学生可根据自身情况酌情增加新功

3、能(视情况可另外加分)。(5)独立完成课程设计,并完成课程设计报告,报告应记录设计的过程,尤其是分析/设计/实现过程中的决策。三、 程序流程1、 数据库设计1.admin表的设计表1 admin表2.student_info表的设计表2 student_info表2、应用程序设计1.程序功能表视图图1 功能视图2.程序流程图图2 流程图四、 设计步骤1. 设计连接数据库类DBConnect。功能说明:该类主要用于数据库的连接。方法:public static Connection getConnect();方法实现:public static Connection getConnect() t

4、hrows ExceptionString driver = com.mysql.jdbc.Driver;String url = jdbc:mysql:/localhost:3306/student;String user = root;String password = root;Class.forName(driver);return DriverManager.getConnection(url,user,password);2. 设计欢迎使用面板功能说明:显示用户登录欢迎界面,当用户选择不同类型用户登录时,设置不同的下一页面显示信息。方法:public void loginButto

5、n_actionPerformed(ActionEvent e); 效果展示:图3 欢迎界面方法实现:public void loginButton_actionPerformed(ActionEvent e)if(e.getSource()=adminLoginButton)flag = true;user = 管理员;else if(e.getSource()=userLoginButton)flag = false;user = 普通;this.setTitle(学生学籍管理系统-+user+用户登录);LoginInfo.setText(欢迎+user+用户登录);setInfo();

6、3. 设计用户登录面板功能说明:该面板主要用于填写用户登录信息,并根据用户登录信息查询数据库。点击提交按钮,查询数据库,若数据库中有该用户信息并且输入密码正确,则登录成功,否则提示错误。点击重置按钮则清空文本框,点击返回则返回上一级欢迎面板。方法:public void submit_actionPerformed(ActionEvent e); public void cancel_actionPerformed(ActionEvent e); public void back_actionPerformed(ActionEvent e);效果展示:图4 填写登录信息方法实现:/点击提交按钮

7、public void submit_actionPerformed(ActionEvent e) throws Exceptionconnection = DBConnect.getConnect();statement = connection.createStatement();String textField = jTextField.getText().toString();String password = jPasswordField.getText().toString();String select = null;if(flag = true)select = select

8、password from admin where username = +textField+;elseselect = select password from student_info where sno = +textField+;rs = statement.executeQuery(select);if(rs.next()&rs.getString(password).equals(password)username = textField;jTextField.setText();jPasswordField.setText();showInfo();elseJOptionPan

9、e.showMessageDialog(this, 用户名或密码错误,请重新输入);jPasswordField.setText();rs.close();/点击重置按钮public void cancel_actionPerformed(ActionEvent e)jTextField.setText();jPasswordField.setText();/点击返回按钮public void back_actionPerformed(ActionEvent e)this.setTitle(欢迎使用学生学籍管理系统);jTextField.setText();jPasswordField.se

10、tText();try welcome(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();4. 设计应用程序功能1. 查询全部 功能说明:当该用户是管理员用户的时候,该用户具有查询全部学生信息和全部管理员信息的权限,当该用户是普通学生用户时,只有查询全部学生信息的功能。在查询全部标签下,点击学生信息或管理员信息按钮,程序就会将所有查询信息显示在右下角的表格里。方法:public void jButtonQurryAll_ationPerformed(ActionEvent e);效果展示图

11、5 查询全部学生信息图6 查询全部管理员信息方法实现:public void jButtonQurryAll_actionPerformed(ActionEvent e)if(e.getSource()=jButtonQurryAllAd)selectFlag = true;jTable.setModel(JTableInfo.tableModelAd);JTableInfo.setColumnWidth(jTable);qurryString = select username, name, sex, people, age, dept from admin;else if(e.getSou

12、rce()=jButtonQurryAllSt)selectFlag = false;jTable.setModel(JTableInfo.tableModelSt);JTableInfo.setColumnWidth(jTable);qurryString = select sno, sname, sex, people, age, sid, address, dept, sclass, inscore from student_info;try cnt = setJTableInfo(); catch (Exception e1) / TODO Auto-generated catch b

13、locke1.printStackTrace();if(jComboBoxQuery.isEnabled() jComboBoxQuery.setEnabled(false);if(jComboBoxCon.isEnabled()jComboBoxCon.setEnabled(false);if(jButtonUpdateInfo.isEnabled() jButtonUpdateInfo.setEnabled(false);if(jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(false);if(jTextFieldQuery

14、.isVisible() jTextFieldQuery.setVisible(false);if(jButtonQueryOK.isEnabled() jButtonQueryOK.setEnabled(false);2. 条件查询功能说明:当该用户是管理员用户的时候,该用户具有按条件查询学生信息和管理员信息的权限,当该用户是普通学生用户时,只有按条件查询学生信息的功能。在条件查询标签下,点击学生信息或管理员信息按钮,之后在查询条件下拉列表里选择要查询的条件并填写相应的值之后点击查询按钮,在面板的右下角的表格中就会显示查询结果,若没有记录则给出提示。方法:public void jButto

15、nQurryPrt_actionPerformed(ActionEvent e); public void jButtonQueryOK_actionPerformed(ActionEvent e); public void jComboBoxQuery_actionPerformed(ActionEvent e);效果展示:图7 按条件查询学生信息成功图8 按条件查询管理员信息成功图9 没有符合条件的信息方法实现:/search as conditionpublic void jButtonQurryPrt_actionPerformed(ActionEvent e)jComboBoxQue

16、ry.removeAllItems();jComboBoxCon.removeAllItems();if(e.getSource()=jButtonQurryPrtSt)selectFlag = false;jTable.setModel(JTableInfo.tableModelSt);for(int i = 0; i cbxStringSt.length; i +)jComboBoxQuery.addItem(cbxStringSti);else if(e.getSource()=jButtonQurryPrtAd)selectFlag = true;jTable.setModel(JTa

17、bleInfo.tableModelAd);for(int i = 0; i cbxStringAd.length; i +)jComboBoxQuery.addItem(cbxStringAdi);JTableInfo.setColumnWidth(jTable);JTableInfo.setJTableEmpty(jTable);if(jButtonUpdateInfo.isEnabled() jButtonUpdateInfo.setEnabled(false);if(!jComboBoxQuery.isEnabled() jComboBoxQuery.setEnabled(true);

18、if(!jButtonQueryOK.isEnabled() jButtonQueryOK.setEnabled(true);/查询按钮事件处理public void jButtonQueryOK_actionPerformed(ActionEvent e)if(jTextFieldQuery.isEnabled() &jTextFieldQuery.isVisible()&(jTextFieldQuery.getText().toString() = null|jTextFieldQuery.getText().toString().equals() JOptionPane.showMess

19、ageDialog(this, 请输入查询的值);elseif(selectFlag)jTable.setModel(JTableInfo.tableModelAd);JTableInfo.setColumnWidth(jTable);qurryString = select username, name, sex, people, age, dept from admin where ;if(jComboBoxQuery.getSelectedIndex()=0)qurryString += username = +jTextFieldQuery.getText()+;else if(jCo

20、mboBoxQuery.getSelectedIndex()=1)qurryString += name like %+jTextFieldQuery.getText().toString()+%;else if(jComboBoxQuery.getSelectedIndex()=2)qurryString +=age ;if(jComboBoxCon.getSelectedIndex()=0)qurryString += +jTextFieldQuery.getText()+;else if(jComboBoxCon.getSelectedIndex()=1)qurryString += +

21、jTextFieldQuery.getText()+;else qurryString += =+jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=3)qurryString += dept = +jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=4)if(jComboBoxCon.getSelectedIndex()=0)qurryString += sex = 男;else qurryString += sex =

22、女;else qurryString += people = +jTextFieldQuery.getText()+;try cnt = setJTableInfo(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();elsejTable.setModel(JTableInfo.tableModelSt);JTableInfo.setColumnWidth(jTable);qurryString = select sno, sname, sex, people, age, sid, addr

23、ess, dept, sclass, inscore from student_info where ;if(jComboBoxQuery.getSelectedIndex()=0)qurryString += sno = +jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=1)qurryString += sname like %+jTextFieldQuery.getText().toString()+%;else if(jComboBoxQuery.getSelectedIndex()=2)qurry

24、String +=age ;if(jComboBoxCon.getSelectedIndex()=0)qurryString += +jTextFieldQuery.getText()+;else if(jComboBoxCon.getSelectedIndex()=1)qurryString += +jTextFieldQuery.getText()+;else qurryString += =+jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=3)qurryString += dept = +jText

25、FieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=4)if(jComboBoxCon.getSelectedIndex()=0)qurryString += sex = 男;else qurryString += sex = 女;else if(jComboBoxQuery.getSelectedIndex()=5)qurryString += people = +jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=6)qurryS

26、tring += address = +jTextFieldQuery.getText()+;else if(jComboBoxQuery.getSelectedIndex()=7)qurryString += sclass = +jTextFieldQuery.getText()+;else qurryString +=inscore ;if(jComboBoxCon.getSelectedIndex()=0)qurryString += +jTextFieldQuery.getText()+;else if(jComboBoxCon.getSelectedIndex()=1)qurrySt

27、ring += +jTextFieldQuery.getText()+;else qurryString += =+jTextFieldQuery.getText()+;try cnt = setJTableInfo(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();if(cnt = 0) JOptionPane.showMessageDialog (this, 没有符合条件的信息);/jComboBoxQuery 第一个下拉列表事件public void jComboBoxQuery_a

28、ctionPerformed(ActionEvent e)jTextFieldQuery.setText();if(jComboBoxQuery.getSelectedIndex() = 2|jComboBoxQuery.getSelectedIndex() = 4|jComboBoxQuery.getSelectedIndex() = 8)jComboBoxCon.setEnabled(true);if(jComboBoxQuery.getSelectedIndex() = 4)jComboBoxCon.removeAllItems();for(int i = 0; i cbxStringS

29、exCon.length; i +)jComboBoxCon.addItem(cbxStringSexConi);if(jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(false);if(jTextFieldQuery.isVisible() jTextFieldQuery.setVisible(false);elseif(!jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(true);if(!jTextFieldQuery.isVisible() jTextFie

30、ldQuery.setVisible(true);jComboBoxCon.removeAllItems();for(int i = 0; i cbxStringCon.length; i +)jComboBoxCon.addItem(cbxStringConi);elseif(!jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(true);if(!jTextFieldQuery.isVisible() jTextFieldQuery.setVisible(true);jComboBoxCon.setEnabled(false);

31、3. 个人信息显示功能说明:主要显示个人信息,当用户点击个人信息标签下的显示信息按钮时,在面板的右下角显示用户个人信息方法:public void jButtonUpdate_actionPerformed(ActionEvent e);效果展示:图10 显示当前用户信息方法实现:/show own infopublic void jButtonUpdate_actionPerformed(ActionEvent e)if(flag)jTable.setModel(JTableInfo.tableModelAd);JTableInfo.setColumnWidth(jTable);qurryS

32、tring = select username, name, sex, people, age, dept from admin where username = +username+;selectFlag = true;elsejTable.setModel(JTableInfo.tableModelSt);JTableInfo.setColumnWidth(jTable);selectFlag = false;qurryString = select sno, sname, sex, people, age, sid, address, dept, sclass, inscore from

33、 student_info where sno = +username+;try cnt = setJTableInfo(); catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();if(jComboBoxQuery.isEnabled() jComboBoxQuery.setEnabled(false);if(jComboBoxCon.isEnabled() jComboBoxCon.setEnabled(false);if(jButtonUpdateInfo.isEnabled() jButto

34、nUpdateInfo.setEnabled(false);if(jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(false);if(jTextFieldQuery.isVisible() jTextFieldQuery.setVisible(false);if(jButtonQueryOK.isEnabled() jButtonQueryOK.setEnabled(false);4. 添加信息功能说明:主要用于添加学生记录和管理员。当点击添加信息标签下的学生记或管理员用户时,在面板右下角的表格中就会有一个空行,在空行中填写你要

35、添加的记录,点击添加按钮,若数据库中没有该学号的学生或用户名唯一,则会提示添加成功,否则提示添加失败方法:public void jButtonAdd_actionPerformed(ActionEvent e); public void jBtuuonUpdateInfo_actionPerformed(ActionEvent e);效果展示:图11 添加学生记录成功图12 添加管理员用户失败方法实现:/add infopublic void jButtonAdd_actionPerformed(ActionEvent e)if(e.getSource()=jButtonAddSt)sele

36、ctFlag = false;jTable.setModel(JTableInfo.tableModelSt);JTableInfo.setJTableEmpty(jTable);JTableInfo.setColumnWidth(jTable);DefaultTableModel tableModel = (DefaultTableModel)jTable.getModel();tableModel.addRow(new Objectnull, null, null, null, null, null, null, null, null, null);else if(e.getSource(

37、)=jButtonAddAd)selectFlag = true;jTable.setModel(JTableInfo.tableModelAd);JTableInfo.setJTableEmpty(jTable);JTableInfo.setColumnWidth(jTable);DefaultTableModel tableModel = (DefaultTableModel)jTable.getModel();tableModel.addRow(new Objectnull,null,null,null,null,null);if(jComboBoxQuery.isEnabled()jC

38、omboBoxQuery.setEnabled(false);if(jComboBoxCon.isEnabled()jComboBoxCon.setEnabled(false);if(!jButtonUpdateInfo.isEnabled() jButtonUpdateInfo.setEnabled(true);if(jLabelQurryValue.isVisible() jLabelQurryValue.setVisible(false);if(jTextFieldQuery.isVisible() jTextFieldQuery.setVisible(false);if(jButton

39、QueryOK.isEnabled() jButtonQueryOK.setEnabled(false);/添加信息public void jButtonUpdateInfo_actionPerformed(ActionEvent e)qurryString = insert into ;if(selectFlag)qurryString += admin values(;Admin ad = new Admin();ad.setUserName(String)jTable.getValueAt(0, 0);ad.setName(String)jTable.getValueAt(0, 1);a

40、d.setSex(String)jTable.getValueAt(0, 2);ad.setPeople(String)jTable.getValueAt(0, 3);if(jTable.getValueAt(0, 4)!=null)ad.setAge(Integer.parseInt(String)jTable.getValueAt(0, 4);ad.setDept(String)jTable.getValueAt(0, 5);ad.setPassword(String)jTable.getValueAt(0, 0);if(ad.getSex()!= null&!ad.getSex().eq

41、uals()&!ad.getSex().equals(男)&!ad.getSex().equals(女)JOptionPane.showMessageDialog(this, 性别只能为男或女);elseBoolean fg = false;qurryString +=ad.getUserName()+, +ad.getName()+, +ad.getSex()+, +ad.getPeople()+, +ad.getAge()+, +ad.getDept()+, +ad.getPassword()+);try statement.executeUpdate(qurryString); catc

42、h (SQLException e1) fg = true;JOptionPane.showMessageDialog(this, 用户已存在或性别为空);if(!fg)JOptionPane.showMessageDialog(this, 添加成功);elsequrryString += student_info values(;Student st = new Student();st.setSno(String)jTable.getValueAt(0, 0);st.setName(String)jTable.getValueAt(0, 1);st.setSex(String)jTable

43、.getValueAt(0, 2);st.setPeople(String)jTable.getValueAt(0, 3);if(jTable.getValueAt(0, 4)!=null)st.setAge(Integer.parseInt(String)jTable.getValueAt(0, 4);st.setSID(String)jTable.getValueAt(0, 5);st.setAddress(String)jTable.getValueAt(0, 6);st.setDept(String)jTable.getValueAt(0, 7);st.setClass(String)

44、jTable.getValueAt(0, 8);if(jTable.getValueAt(0, 9)!=null)st.setInScore(Integer.parseInt(String)jTable.getValueAt(0, 9);st.setPassword(String)jTable.getValueAt(0, 0);if(st.getSex()!=null& !st.getSex().equals() & !st.getSex().equals(男)& !st.getSex().equals(女)JOptionPane.showMessageDialog(this, 性别只能为男或

45、女);elseBoolean fg = false;qurryString += st.getSno()+, +st.getName()+, +st.getSex()+, +st.getPeople()+, +st.getAge()+, +st.getSID()+, +st.getAddress()+, +st.getDept()+, +st.getSClass()+, +st.getInScore()+, +st.getPassword()+);try statement.executeUpdate(qurryString); catch (SQLException e1) fg = tru

46、e;JOptionPane.showMessageDialog(this, 已有该学号的学生记录或性别为空);if(!fg)JOptionPane.showMessageDialog(this, 添加成功);5. 删除记录功能说明:主要用于删除学生记录和管理员用户。在表格中选择你要删除的信息后,当点击删除信息标签下的学生信息或管理员信息时,应用程序就会提示你是否真的要删除你选择的信息,若点是,则应用程序会删除你要删除的信息,点击其他则取消删除。方法:public jBottonDelete_actionPerformed(ActionEvent e);效果展示:图13 删除学生信息图14 删除

47、管理员用户成功方法实现:/delete infopublic void jButtonDelete_actionPerformed(ActionEvent e) throws ExceptionString sql = null;boolean isRight = true;int selectRows = jTable.getSelectedRows().length;DefaultTableModel tableModel = (DefaultTableModel)jTable.getModel();if(e.getSource() = jButtonDeleteSt)if(selectF

48、lag)isRight = false;JOptionPane.showMessageDialog(this, 请选择删除管理员记录);else sql = delete from student_info where sno = ;else if(e.getSource() = jButtonDeleteAd)if(!selectFlag)isRight = false;JOptionPane.showMessageDialog(this, 请选择删除学生记录);else sql = delete from admin where username = ;if(isRight)if(sele

49、ctRows = 0)JOptionPane.showMessageDialog(this, 请选择要删除的行);else if(selectRows = 1)int selectRowIndex = jTable.getSelectedRow();if(String)jTable.getValueAt(selectRowIndex, 0)=null|(String)jTable.getValueAt(selectRowIndex, 0).equals()tableModel.removeRow(selectRowIndex);else if(String)jTable.getValueAt(

50、selectRowIndex, 0).equals(username)JOptionPane.showMessageDialog(this, 不能删除自己);sql += (String)jTable.getValueAt(selectRowIndex, 0)+;int ifDelete = JOptionPane.showConfirmDialog(this, 确定删除这条记录吗?);if(ifDelete = JOptionPane.OK_OPTION)Boolean fg = false;try statement.executeUpdate(sql); catch (SQLExcept

51、ion e1) fg =true;JOptionPane.showMessageDialog(this, 删除失败!);if(!fg)JOptionPane.showMessageDialog(this, 删除成功!);tableModel.removeRow(selectRowIndex);elseint selectRowIndexs = null;selectRowIndexs = jTable.getSelectedRows();int k = -1;int ifDelete = JOptionPane.showConfirmDialog(this, 确定删除这些记录吗?);for(int i = 0; i selectRowIndexs.length; i +)if(selectFlag)sql = delete from admin where username = +(String)jTable.getValueAt(selectRowIndexsi, 0)+;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!