JAVA程序设计报告-------学生信息管理系统.docx

上传人:叶*** 文档编号:50258749 上传时间:2022-10-14 格式:DOCX 页数:15 大小:54.13KB
返回 下载 相关 举报
JAVA程序设计报告-------学生信息管理系统.docx_第1页
第1页 / 共15页
JAVA程序设计报告-------学生信息管理系统.docx_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《JAVA程序设计报告-------学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计报告-------学生信息管理系统.docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1JAVA程序设计报告-学生信息管理系统辅导老师:张松敏系别:计算机系专业:软件技术学号:0640836姓名:夏中成日期:2008-6-132目录一一 需求分析需求分析。3二二 功能分析功能分析。3三三 模块设计模块设计。3四四 软件设计分析软件设计分析。3(一)(一)数据库设计数据库设计。3(二)(二)模块及窗体设计模块及窗体设计。31 数据库模块设计。32 用户登录识别模块。53 用户信息管理模块。6(1)密码修改。6(2)用户信息添加和删除。84 学生息管理模块。10(1)添加信息。10(2)信息查看。11(3)信息修改。12(4)删除信息。145 系统管理模块。156 主窗体菜单设计。

2、15五五 总结总结。15参考资料参考资料:3一一 需求分析需求分析本系统的主要目的就是实现学生信息管理,使学生信息管理工作更加容易,从而提高工作效率,降低管理成本.系统中需要对拥护身份进行管理,采取登陆进入系统的形式.二二 功能分析功能分析1 用户登录信息管理2 用户信息管理学生信息管理系统管理三三 模块设计模块设计1 数据库设计模块2 用户登录识别模块3 用户信息管理模块4 学生息管理模块5 系统管理模块四四 软件设计分析软件设计分析(一)(一)数据库设计数据库设计数据库名称:student表名:user,stud,grade表 user:存放登陆用户的用户名和密码表 stud:存放学生基本

3、信息表 grade:存放学生成绩信息(二)(二)模块及窗体设计模块及窗体设计1 数据库模块设计将数据库的连接包装在一个 database 类中,以便其他模块能够轻松调用,避免每次重写数据库连接代码。下表是他的基本属性系统首页用户登陆信息管理用户信息管理学生信息管理通过身份请求添加删除用户修改密码添加查看修改删除系统管理重新登陆退出登陆4文件名成员变量成员方法database.javapublic static Connection cn;public static Statement st;public static ResultSetrs;public static boolean join

4、DB()public static boolean executeSQL(String sqlString)public static boolean query(String sqlString)代码如下:import java.sql.*;/引入包public class database public static Connection cn;/定义一个连接对象public static Statement st;/定义一个 SQL 语句对象public static ResultSet rs;/定义一个数据集public static boolean joinDB()/用来判断是否连接

5、成功boolean joinFlag;try joinFlag=true;Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/通过调用 java.lang 中的 Class类的 forName 方法来实现 JDBCODBC 桥接器cn=DriverManager.getConnection(jdbc:odbc:student,sa,);/创建一个连接对象cn.setCatalog(student);/加载数据库System.out.println(数据库连接成功);st=cn.createStatement(ResultSet.TYPE_SCROLL_SE

6、NSITIVE,ResultSet.CONCUR_READ_ONLY);/返回一个可滚动的结果集,数据库变化时结果集跟着变化;不能用结果集更新数据库中的表return joinFlag;catch(SQLException sqlEx)System.out.println(sqlEx.getMessage();joinFlag=false;return joinFlag;catch(ClassNotFoundException notfoundEX)System.out.println(notfoundEX.getMessage();joinFlag=false;return joinFlag

7、;public static boolean executeSQL(String sqlString)boolean executeFlag;try st.execute(sqlString);executeFlag=true;catch(Exception e)executeFlag=false;System.out.println(sql exception:+e.getMessage();5return executeFlag;public static boolean query(String sqlString)try rs=null;rs=st.executeQuery(sqlSt

8、ring);catch(Exception Ex)System.out.println(sql exception:+Ex);return false;return true;2 用户登录识别模块代码封装在类 Land 里,所用到的信息保存在表 user 里下表是他的基本属性文件名控件成员方法Land.javaJLabel:labelname=newJLabel(用户名)labelmima=new JLabel(密码)Jbutton:btenter=new JButton(确定);btcancel=new JButton(清空);private void Judge(String sqlStr

9、ing)判断用户名和密码是否正确的成员方法代码:private void Judge(String sqlString)if(database.joinDB()/如果数据库连接成功if(database.query(sqlString)/如果 SQL 语句执行成功tryif(database.rs.isBeforeFirst()/如果指向记录集的在第一条记录的前面System.out.println(密码正确);jf.setVisible(false);/窗体不可见.close();/关闭数据库连接new Main();/主窗体else System.out.println(错误);6newJ

10、OptionPane().showMessageDialog(null,用户名或密码错误!,JOptionPane.ERROR_MESSAGE);catch(Exception ex)System.out.println(ex.getMessage();elseSystem.out.println(连接数据库不成功!);按钮“确定”的监听事件代码:public void actionPerformed(ActionEvent e)if(textname.getText().equals()new JOptionPane().showMessageDialog(null,用户名不能为空!);el

11、se if(textmima.getText().equals()new JOptionPane().showMessageDialog(null,密码不能为空!);elseString sql=select*from user where user_id=+textname.getText()+and password=+textmima.getText()+;System.out.println(sql);Judge(sql);/调用成员方法,判断是否用户名和密码正确3 用户信息管理模块(1)密码修改用户名将自动从表 user 里检索出来,供用户选择以下是它的基本属性文件名控件名称xgmi

12、ma.javaJlabel:lbe2、lbe3、lbe4、lbe5JcomboBox:tfJpasswordField:pas1、pas2、pas3Jbutton:b1=new JButton(确定);7b2=new JButton(清空);将所有用用户名读出来database.joinDB();/连接数据库String sql=select*from user;tryif(database.query(sql)while(database.rs.next()/依次将用户名读出String name=database.rs.getString(user_id);tf.addItem(name)

13、;catch(Exception e)确定“按钮”的监听事件代码:b1.addActionListener(newActionListener()public void actionPerformed(ActionEvent e)String name=+tf.getSelectedItem();System.out.println(name);String sql=select*from user where user_id=+name+;System.out.println(sql);tryif(database.query(sql)database.rs.next();String ps

14、1=pas1.getText();String password=database.rs.getString(Password);if(ps1.equals(password)if(pas2.getText().equals(pas3.getText()String supdate=update user set password=+pas3.getText()+where user_id=+name+;database.executeSQL(supdate);new JOptionPane().showMessageDialog(null,密码更改成功!);elsenew JOptionPa

15、ne().showMessageDialog(null,两次密码不同!);elsenew JOptionPane().showMessageDialog(null,旧密码不正确!);catch(Exception el)System.out.println(el);8);(2)用户信息添加和删除上半部分用来添加用户,下半部分用来删除用户基本属性如下文件名控件名AddDeleteUser.javaprivate JButton butACancel,butDCancel,butDelete,butOk;private JComboBox cbUserName;private JLabel jLa

16、bel1,jLabel2,jLabel3,jLabel4,jLabel5;private JPasswordField pas1,pas2,pas3;private JTextField txtname;/将所有用用户名读出来database.joinDB();String sql=select*from user;tryif(database.query(sql)while(database.rs.next()/记录集若有记录则通过循环将数据依次读出String name=database.rs.getString(user_id);cbUserName.addItem(name);catc

17、h(Exception e)/为添加按钮加事件-butOk.addActionListener(newActionListener()public void actionPerformed(ActionEvent e)if(txtname.getText().equals()/判断是否为空new JOptionPane().showMessageDialog(null,用户名不能为空!);9else if(pas1.getText().equals()new JOptionPane().showMessageDialog(null,密码不能为空!);else if(pas1.getText()

18、.equals(pas2.getText()String sql=insert into user values(+txtname.getText()+,+pas1.getText()+);tryif(database.executeSQL(sql)/若 SQL 执行成功new JOptionPane().showMessageDialog(null,添加成功!);cbUserName.addItem(txtname.getText();catch(Exception ea);删除按钮监听事件代码butDelete.addActionListener(newActionListener()pu

19、blic void actionPerformed(ActionEvent e)String name=+cbUserName.getSelectedItem();/得到用户名String sql=select*from user where user_id=+name+;tryif(database.query(sql)database.rs.next();String pas=pas3.getText();String password=database.rs.getString(Password);System.out.println(password);if(pas.equals(pa

20、ssword)/比较密码是否与记录集里对应一致String sdelete=delete from user where user_id=+name+;if(database.executeSQL(sdelete)new JOptionPane().showMessageDialog(null,删除成功!);pas3.setText();cbUserName.removeAllItems();/将删除的条目从JcomboBox中删除String sql1=select*from user;if(database.query(sql1)while(database.rs.next()/更新 Jc

21、omboBox 条目String name1=database.rs.getString(user_id);cbUserName.addItem(name1);elsenew JOptionPane().showMessageDialog(null,密码不正确!);catch(Exception el)10System.out.println(el););4 学生息管理模块(1)添加信息该添加是按照先添加学生信息,再添加学生成绩的次序进行的当学生信息添加完后,添加学生成绩窗口的学号会自动将学生信息里没有添加过成绩的成绩显示出来添加学生信息中的“添加“按钮代码:butOk.addActionLi

22、stener(newActionListener()public void actionPerformed(ActionEvent e)if(jtf1.getText().equals()new JOptionPane().showMessageDialog(null,学号不能为空);else if(jtf2.getText().equals()new JOptionPane().showMessageDialog(null,姓名不能为空);else if(jtf3.getText().equals()new JOptionPane().showMessageDialog(null,性别不能为

23、空);else String sql=insert into stud values(+jtf1.getText()+,+jtf2.getText()+,+jtf3.getText()+,+jtf4.getText()+,+jtf5.getText()+,+jtf6.getText()+,+jtf7.getText()+);tryif(database.executeSQL(sql)new JOptionPane().showMessageDialog(null,添加成功!);catch(Exception ea)11);添加学生成绩信息读取学号信息database.joinDB();Stri

24、ng sql=select 学号 from stud where 学号 NOT IN(select 学号 from grade);tryif(database.query(sql)while(database.rs.next()String name=database.rs.getString(学号);jnum.addItem(name);catch(Exception ea)添加学生成绩信息“添加“按钮代码:butOk.addActionListener(newActionListener()public void actionPerformed(ActionEvent e)String n

25、ame=+jnum.getSelectedItem();String sql=insert into grade values(+name+,+jtf2.getText()+,+jtf3.getText()+,+jtf4.getText()+,+jtf5.getText()+,+jtf6.getText()+,+jtf7.getText()+);tryif(database.executeSQL(sql)new JOptionPane().showMessageDialog(null,添加成功!);catch(Exception ea);(2)信息查看分为查看学生基本信息和查看学生成绩信息,因

26、为代码和窗体大致相识,进取其一讲述12下面是他的属性文件名称控件名称v iewstud.javaJtextArea:te=new JTextArea();代码为:class viewstud extends JInternalFrameviewstud()super(查看学生基本信息);/窗体显示得名称Container con=getContentPane();/创建 JinternalFrame 的容器对象con.setLayout(new BorderLayout();/设定窗体布局JTextArea te=new JTextArea();JScrollPane croll=new JS

27、crollPane(te);/加载垂直水平滚动条con.add(croll,BorderLayout.CENTER);database.joinDB();/连接数据库String sql=SELECT*FROM stud;try if(database.query(sql)while(database.rs.next()te.append(学号:+database.rs.getString(1)+);te.append(姓名:+database.rs.getString(2)+);te.append(性别:+database.rs.getString(3)+);te.append(年龄:+da

28、tabase.rs.getString(4)+);te.append(政治面貌:+database.rs.getString(5)+);te.append(系别:+database.rs.getString(6)+);te.append(班级:+database.rs.getString(7)+);te.append(n);catch(SQLException ex)System.out.println(ex);this.setClosable(true);/关闭窗口可用setVisible(true);/窗体可见setBounds(20,70,600,350);(3)信息修改信息修改分为学生

29、基本信息修改,学生成绩信息修改,由于原理相似就以修改学生基本信息作为例子进行介绍下面是他的属性信息文件名称控件名称x iugai.javaprivate JButton butCancel,butOk,butShow;private JLabel jLabel1,jLabel2,jLabel3,jLabel4,jLabel5,jLabel6,jLabel7;private JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7;13显示信息按钮的监听事件代码如下:database.joinDB();butShow.addActionListener(newA

30、ctionListener()public void actionPerformed(ActionEvent e)if(jtf1.getText().equals()new JOptionPane().showMessageDialog(null,请输入学号);else String sql=select*from grade where 学号=+jtf1.getText()+;tryif(database.query(sql)/此处用了个 database.executeSQL(sql)提示 resultset 关闭if(!database.rs.first()JOptionPane.sho

31、wMessageDialog(null,没有该学生信息.);/下面是用来显示其他文本框里的内容else database.rs.first();jtf2.setText(database.rs.getString(VBA 开发);jtf3.setText(database.rs.getString(大学英语);jtf4.setText(database.rs.getString(java 开发);jtf5.setText(database.rs.getString(SQLServer);jtf6.setText(database.rs.getString(高等数学);jtf7.setText(

32、database.rs.getString(网站建设);butOk.setEnabled(true);catch(NullPointerException upe)System.out.println(upe.toString();14catch(SQLException sqle)System.out.println(sqle.toString();catch(Exception ex)System.out.println(ex.toString(););(4)删除信息删除时可以如果表 grade 里有该生成绩信息,则一并删除,如果没有则只删除表 stud 里的信息下面是窗口属性文件名称控件

33、名称shanchu.javaprivate JButton butCancel,butOk;private JLabel jLabel1;private JTextField jtf1;private JPanel p;butOk=new JButton(删除);butCancel=new JButton(清空)删除按钮监听事件代码如下:butOk.addActionListener(newActionListener()public void actionPerformed(ActionEvent e)if(jtf1.getText().equals()new JOptionPane().s

34、howMessageDialog(null,请输入学号);else String sql=select*from stud where 学号=+jtf1.getText()+;tryif(database.query(sql)/此处用了个 database.executeSQL(sql)提示 resultset 关闭if(!database.rs.first()JOptionPane.showMessageDialog(null,没有该学生信息.);else String sqq=delete from stud where 学号=+jtf1.getText()+;String qll=del

35、ete from grade where 学号=+jtf1.getText()+;String slq=select*from grade where 学号=+jtf1.getText()+;15if(database.query(slq)if(database.rs.first()if(database.executeSQL(qll)if(database.executeSQL(sqq)JOptionPane.showMessageDialog(null,删除成功);5 系统管理模块重新登陆监听事件代码:land.addActionListener(newActionListener()/重

36、新登陆监听public void actionPerformed(ActionEvent e)System.out.println(Land);setVisible(false);new Land(););退出菜单监听事件代码:exit.addActionListener(newActionListener()/退出系统监听public void actionPerformed(ActionEvent e)setVisible(false););6 主窗体菜单设计分为三个主菜单:系统管理、用户管理、学生信息管理系统管理分为:重新登陆和退出用户管理:密码修改、添加/删除用户学生信息管理:删除学生

37、信息及二级菜单-添加记录、信息查看、信息修改添加记录:学生基本信息添加、学生成绩信息添加信息查看:基本信息查看,成绩信息查看修改信息:基本信息修改,成绩信息修改五五 总结总结本次 java 课程设计主要侧重在对学生信息管理里的添加、删除、修改、查看等最基本的操作,掌握这些最基本的设计思想是很重要的,能够帮助我们开发更加复杂的软件提供依据和基础,所以看似简单的课程设计,却是对我们设计软件的一次考验,一次磨练,所以我一直都保持着很认真地精神来进行设计的,通过这次课程设计对 java 类和对象的概念有了更深一步的了解,也培养了我们对 java 课程设计的兴趣的,增强了设计软件的思维能力,虽然时间很短,但还是收获了很多,每次课程设计都是一种锻炼。在今后的学习里,一定要更加努力,学好这门编程语言。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作总结

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁