下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA 程序设计报告学生信息管理系统辅导老师:张松敏系别:计算机系专业:软件技术学号:0640836姓名:夏中成日期:2008-6-13目录需求分析。功能分析。模块设计。软件设计分析。数据库设计。模块及窗体设计。数据库模块设计用户登录识别模块用户信息管理模块1) 密码修改2)用户信息添加和删除104 学生息管理模块1)添加信息102)信息查看113)信息修改124)删除信息1415155 系统管理模块6 主窗体菜单设计五 总结。ooooooooooooooooo15参考资料:一 需求分析本系统的主要目的就是实现学生信息管理,使学生信息管理工作更加容易 ,从而提高工作效率,降低管理成本 .系统
2、中需要对拥护身份进行管理,采取登陆进入系统的形式功能分析1用户登录信息管理2用户信息管理3学生信息管理4系统管理模块设计数据库设计模块 用户登录识别模块 用户信息管理模块 息管理模块 理模块 计分析 数据库设计stude nt学生5用统四用(信息,户管 件设用户信'息管理数据库名称:J: use吊tuq,grdde表user:存放登陆用户的'用户名和密码'系统首页学生信息管理系统管理,生基本信息 添加成绩修改息,"一 I密码修改退出登陆重新登陆添加(请份库模块及用除设计将数据库的连接包装在一个dat/bOse类中,e:其目h块、1模块厶,避Sst库连接代码。F
3、表是他的基本属性文件名成员变量成员方法database.javapublic static Conn ecti on cn; public static Statement st; public static ResultSet rs;public static boolea n join DB()public static boolean executeSQL(String sqlString)public static boolean query(String sqlString)代码如下:import java.sql.*;/ 引入包public class database publi
4、c static Connection cn; / 定义一个连接对象public static Statement st;/ 定义一个 SQL 语句对象public static ResultSet rs;/ 定义一个数据集public static boolean joinDB() /用来判断是否连接成功boolea n joinF lag;try joinF lag = true;通过调用java.lang中的Class类的forName方法来实现JDBC ODBC桥接器cn = DriverMa nager.getCo nn ectio n("jdbc:odbc:stude n
5、t","sa","");/ 创建一个连接对 象cn.setCatalog("student");/ 加载数据库st = cn.createStateme nt(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONL Y);返回一个可滚动的结果集,数据库变化时结果集跟着变化;不能用结果集更新数据库中的表return joi nF lag; catch (SQLExcepti on sqlEx) joinF lag = false; return joi nF lag;
6、 catch (ClassNotF oun dExcepti on notfoun dEX) joinF lag = false; return joi nF lag;public static boolean executeSQL(String sqlString) boolea n executeFlag;try st.execute(sqlStri ng); executeFlag = true; catch (Excepti on e) executeFlag = false;retur n executeFlag;public static boolean query(String
7、sqlString) try rs = n ull;rs = st.executeQuery(sqlStri ng); catch (Excepti on Ex) return false;return true;2用户登录识别模块代码封装在类Land里,所用到的信息保存在表user里F表是他的基本属性文件名控件成员方法Lan d.javaJLabel:labelname=newJLabel("用户名") labelmima=new JLabel("密码") Jbutton: btenter= new JButton("确定"); b
8、tcancel=new JButton("清空");private void Judge(String sqlString)判断用户名和密码是否正确的成员方法代码:private void Judge(String sqlString) if (database.joi nDB() /如果数据库连接成功if (database.query(sqlString)如果 SQL 语句执行成功try/如果指向记录集的在第一条记录的前面jf.setVisible(false);/ 窗体不可见/关闭数据库连接new Main();/ 主窗体else newJOptio nPa ne()
9、.showMessageDialog( null,"用户名或密码错误!","",JOptio nPan e.ERROR_MESSAGE);catch(Excepti on ex) else按钮“确定”的监听事件代码:public void acti on Performed (Actio nEvent e)if(text name.getText().equals("")new JOptionPane().showMessageDialog(null,"用户名不能为空!");else if(textmima.get
10、Text().equals("")new JOptionPane().showMessageDialog(null,"密码不能为空!");elseString sql="select * from user where user_id = '" + text name.getText() +"'and password = '" + textmima.getText()+ ""'Judge(sql);/调用成员方法,判断是否用户名和密码正确3用户信息管理模块(1)
11、密码修改用户名将自动从表 user里检索出来,供用户选择 以下是它的基本属性文件名控件名称xgmima.javaJlabel: lbe2、lbe3、lbe4、lbe5JcomboBox: tfJpasswordField:pas1、pas2、pas3Jbutton: b1= new JButton("确定"); b2=new JButton("清空");将所有用用户名读出来database.joi nDB(); 连接数据库String sql="select * from user" tryif(database.query(sql)
12、依次将用户名读出 tf.addltem (n ame);catch(Excepti on e)确定“按钮”的监听事件代码:bl.addAct ion Liste ner(new Actio nListe ner()public void action Performed(Acti onEvent e)String name="" + tf.getSelectedltem();Stri ng sql="select * from user where user_id='"+ n ame +""'tryif(databas
13、e.query(sql)String ps1=pas1.getText();if(ps1.equals(password)if(pas2.getText().equals(pas3.getText()String supdate="update user set password='"+ pas3.getText()+"' where user_id='"+ n ame +""'database.executeSQL(supdate);new JOptionPane().showMessageDialo
14、g(null,"密码更改成功!");elsenew JOptionPane().showMessageDialog(null,"两次密码不同!");elsenew JOptionPane().showMessageDialog(null,"旧密码不正确!");catch(Excepti on el);(2)用户信息添加和删除上半部分用来添加用户,下半部分用来删除用户 基本属性如下文件名控件名AddDeleteUser.javaprivate JButton butACa ncel,butDCa ncel,butDelete,butOk
15、; private JComboBox cbUserName;private JLabel jLabel1,jLabel2,jLabel3,jLabel4,jLabel5; private JPasswordField pas1,pas2,pas3;private JTextField txtn ame;/将所有用用户名读出来database.jo in DB();String sql="select * from user"tryif(database.query(sql)/记录集若有记录则通过循环将数据依次读出cbUserName.addItem(name);catch
16、(Exception e)/为添加按钮加事件 butOk.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)if(txtname.getText().equals("")/判断是否为空new JOptionPane().showMessageDialog(null," 用户名不能为空 !");else if(pas1.getText().equals("")new JOptionPane().showMessageDialog
17、(null," 密码不能为空 !");else if(pas1.getText().equals(pas2.getText()String sql="insert into user values('"+ txtname.getText() +"','"+ pas1.getText() +"')"tryif(database.executeSQL(sql)/ 若 SQL 执行成功new JOptionPane().showMessageDialog(null," 添加成功!
18、 "); cbUserName.addItem(txtname.getText();catch(Exception ea);删除按钮监听事件代码butDelete.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)String name="" + cbUserName.getSelectedItem();/ 得到用户名String sql="select * from user where user_id='"+ name +&
19、quot;'"tryif(database.query(sql)String pas=pas3.getText();if(pas.equals(password)/ 比较密码是否与记录集里对应一致String sdelete="delete from user where user_id='"+ name +"'"if(database.executeSQL(sdelete)new JOptionPane().showMessageDialog(null," 删除成功! "); pas3.setTex
20、t("");cbUserName.removeAllItems();/ 将删除的条目从 JcomboBox 中删除String sql1="select * from user"if(database.query(sql1)/ 更新 JcomboBox 条目 cbUserName.addItem(name1); elsenew JOptionPane().showMessageDialog(null," 密码不正确! "); catch(Exception el) );4 学生息管理模块(1)添加信息该添加是按照先添加学生信息, 再添
21、加学生成绩的次序进行的当学生信息添加完后, 添加学 生成绩窗口的学号会自动将学生信息里没有添加过成绩的成绩显示出来 添加学生信息中的“添加“按钮代码:butOk.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) if(jtf1.getText().equals("")new JOptionPane().showMessageDialog(null," 学号不能为空 "); else if(jtf2.getText().equals("
22、")new JOptionPane().showMessageDialog(null," 姓名不能为空 ");else if(jtf3.getText().equals("")new JOptionPane().showMessageDialog(null," 性别不能为空 ");else String sql="insert into stud values('"+ jtf1.getText() +"','"+ jtf2.getText() +"
23、39;,'"+ jtf3.getText()+"','"+ jtf4.getText()+"','"+ jtf5.getText()+"','"+ jtf6.getText()+"','"+ jtf7.getText()+"')"try if(database.executeSQL(sql) new JOptionPane().showMessageDialog(null," 添加成功! &quo
24、t;); catch(Exception ea) );添加学生成绩信息读取学号信息database.joinDB();String sql="select 学号 from stud where 学号 NOT IN(select 学号 from grade)" tryif(database.query(sql)jnu m.addltem( name);catch(Excepti on ea)添加学生成绩信息“添加“按钮代码:butOk.addAct ion Liste ner(new Actio nListe ner()public void actio nPerformed
25、(Actio nEvent e)String n ame="" + jnu m.getSelectedltem();String sql="insert into grade values('"+ name+"',"'+ jtf2.getText() +"','"+ jtf3.getText()+"',”'+ jtf4.getText()+"','"+ jtf5.getText()+"','
26、;"+ jtf6.getText()+"','"+ jtf7.getText()+"')"tryif(database.executeSQL(sql)new JOptionPane().showMessageDialog(null,"添加成功!");catch(Excepti on ea);(2 )信息查看分为查看学生基本信息和查看学生成绩信息,因为代码和窗体大致相识,进取其一讲述F面是他的属性文件名称控件名称v iewstud.javaJtextArea: te=new JTextArea();代码
27、为:class viewstud exte nds Jin ternalFrame viewstud()super(”查看学生基本信息");/窗体显示得名称Container con=getContentPane(); 创建 JinternalFrame 的容器对象 con.setLayout(new BorderLayout(); 设定窗体布局JTextArea te=new JTextArea();JScrollPane croll=new JScrollPane(te); / 加载垂直水平滚动条con .add(croll,BorderLayout.CENTER);databa
28、se.joi nDB(); / 连接数据库Stri ng sql="SELECT * FROM stud"try if(database.query(sql)te.appe nd("n");catch(SQLExcepti on ex) this.setClosable(true);/ 关闭窗口可用setVisible(true);/ 窗体可见setBou nds(20,70,600,350);(3 )信息修改信息修改分为学生基本信息修改,学生成绩信息修改,由于原理相似就以修改学生基本信息作为例子进行介绍F面是他的属性信息文件名称控件名称x iugai.
29、javaprivate JButton butCancel,butOk,butShow;private JLabel jLabel1,jLabel2,jLabel3,jLabel4,jLabel5,jLabel6,jLabel7; private JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7;显示信息按钮的监听事件代码如下:database.jo in DB();butShow.addActio nListe ner(new Actio nListe ner()public void action Performed(Acti onEvent e)
30、if(jtf1.getText().equals("")new JOptionPane().showMessageDialog(null,"请输入学号");else Stri ng sql="select * from grade where 学号="+ ""' +jtf1.getText() +""' tryif(database.query(sql)/ 此处用了个 database.executeSQL(sql)提示 resultset 关闭JOptionPane.showM
31、essageDialog(null,"没有该学生信息.");下面是用来显示其他文本框里的内容else butOk.setE nabled(true); catch(NullPo in terExceptio n upe)catch(SQLExcepti on sqle)catch(Excepti on ex);(4 )删除信息删除时可以如果表grade里有该生成绩信息,则一并删除,如果没有则只删除表 stud里的信息F面是窗口属性文件名称控件名称sha nchu.javaprivate JButton butCancel,butOk;private JLabel jLabe
32、ll;private JTextField jtfl;private JPa nel p; butOk=new JButton("删除");butCancel=new JButton(” 清空")删除按钮监听事件代码如下:butOk.addAct ion Liste ner(new Actio nListe ner()public void action Performed(Acti onEvent e) if(jtf1.getText().equals("")new JOptionPane().showMessageDialog(null,"请输入学号");else Stri ng sql="select * from stud where 学号="+ ""' +jtf1.getText() +""' tryif(database.query(sql) 此处用了个 database.executeSQL(sql)提示 resultset 关闭 JOptionPane.showMessageDialog(null,"没有该学生信息.");els
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年广东省揭阳市辅警公共基础知识题库(附答案)
- 2025年广东省广州市辅警招聘公安基础知识题库附含答案
- 2025年特种设备作业人员考试(压力容器作业快开门式压力容器操作R1)全真模拟试题及答案
- 省属虚拟市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)有完整答案详解
- 2025年高血压急症的紧急处理与护理考试试题及答案
- 2025年高血糖知识测试题及答案
- 2025年高校管理真题及答案
- 白银市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(名校卷)
- 巴音郭楞蒙古自治州农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(培优a卷)
- 随州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(完整版)
- 富血小板血浆治疗护理
- (2025)营养指导员考试真题库(含答案)
- 动力柜施工方案
- 2025年食品安全知识竞赛考试题库(含答案)
- 2025年注安道路运输安全实务真题卷(附解析)
- 西铁运校单招试卷及答案
- 玻璃体切除术护理
- 水利工程施工质量自检检测计划
- 重大危险源安全培训
- 2025年(广东省协会 )房屋安全检测鉴定技术培训-机考历年真题考前冲刺题
- 冲压件检验判定标准
评论
0/150
提交评论