下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA程序设计报告学生信息管理系统辅导老师:张松系别:计算机系专业:软件技术目录需析。台匕能析。o o o o计。四析。模。块。o o o o( 计。( 计。1计。2件。计。o o3 )。数。据。库。块。数。据。库。模。块。学号:0640836姓名:夏中成日期:2008-6-13。 。53用户块。 。 。 。 。 。6(1改。 。 。 。 。 。 。6(2)用除。 。 。 。84学块。 。 。 。 。 。 。10(1息。 。 。 。 。 。 。 。10(2看。 。 。 。 。 。 。 。11(3改。 。 。 。 。 。 。 。12(4息。 。 。 。 。 。 。 。145系块。 。 。 。
2、。 。 。156主计。 。 。 。 。o o o信息。)。户信息。生息。)添。)信。)信。)删。统管。窗体。管理模。密码修。添加和删。管理模。加信。息查。息修。除信。理模。菜单设。ooooooooooooooooooooooooooooooooo参考 料:.15一 需求分析本系统的主要目的就是实现学生信息管理,使学生信息管理工作更加容易 ,从而提高工作效率,降低管理成本 .系统中需要对拥护身份进行管理,采取登陆进入系统的形式 .二 功能分析1 用户登录信息管理ooooooooooooooo15五2 用户信息管理3学生信息管理4系统管理三模块设计1 数据库设计模块2 用户登录识别模块3 用户信息
3、管理模块将数据库的连接包装在一 - tabase 类中,据库连接代码。F表是他的基本属性文件名成员变量成员方法database.javapublic static Connection cn。public static Statementst。public static ResultSet rs。public static boolea n join DB() publicstatic booleanexecuteSQL(String sqlString) public static booleanquery(String sqlString)代码如下:import java.sql.*。/引
4、入包public class database public static Connection cn。/定义一个连接对象public static Statement st。定义一个 SQL 语句对象public static ResultSet rs。/定义一个数据集public static boolean joi nDB() /用来判断是否连接成功boolean joinFlag。try joi nF lag = true。Class.forName(sun.jdbc.odbc.JdbcOdbcDriver)。 通过调用 java.lang 中的 Class 类的 forName方法来
5、实现 JDBC ODBC 桥接器cn = DriverMa nager.getCo nn ectio n(jdbc:odbc:stude nt,sa,)。创建一个连接对象cn.setCatalog(student)。加载数据库System.out.println(” 数据库连接成功)。st = cn .createStateme nt(ResultSet.TYPE_SCROLL_SENSITIVE,广系统首、页4 学-1系统管理模块用户5四登陆(信息_数据库名称: 管理J飞名:user,表 user:存放登陆用户的用户名和密码设计分析数据库设计stuQe ntstUd,gade表、stUq:存
6、放学生基本信息存放删块及窗块设用表通过表通过模(请求模1 数据库模添加成绩除殳计:修改添加学生信息管理查看删除重新登陆系统管理ResultSet.CONCUR_READ_ONLY)。返回一个可滚动的结果集,数据库变化时结果集跟着变化;不能用结果集更新数据库中的表return joinFlag 。 catch (SQLException sqlEx) System.out.println(sqlEx.getMessage() 。 joinFlag = false 。 return joinFlag 。 catch (ClassNotFoundException notfoundEX) Syste
7、m.out.println(notfoundEX.getMessage() 。joinFlag = false 。return joinFlag 。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() 。return exec
8、uteFlag 。public static boolean query(String sqlString) try rs = null 。rs = st.executeQuery(sqlString) 。 catch (Exception Ex) System.out.println(sql exception: + Ex) 。 return false 。return true 。2 用户登录识别模块蜀陆代码封装在类 Land 里,所用到的信息保存在表user 里F 表是他的基本属性文件名控件成员方法Lan d.javaJLabel:labelname=newJLabel(用户名)labe
9、lmima=new JLabel(密码) Jbutton:btenter= new JButton(确定)。btcancel=newJButton(” 清空 )。private void Judge(String sqlString)判断用户名和密码是否正确的成员方法代码:private void Judge(String sqIString) if (database.joinDB() /如果数据库连接成功if (database.query(sqlString) / 如果 SQL 语句执行成功tryif(database.rs.isBeforeFirst() /如果指向记录集的在第一条记录
10、的前面 System.out.println(” 密码正确)。jf.setVisible(false)。/窗体不可见.close()o /关闭数据库连接new Main()。/主窗体else System.out.println(” 错误)。newJOptio nPan e().showMessageDialog( null,用 户 名 或 密 码 错误!,JOptio nPan e.ERROR_MESSAGE)。catch(Exceptio n ex) System.out.println(ex.getMessage()。elseSystem.out.println(连接数据库不成功!!)。
11、按钮“确定”的监听事件代码:public void acti on Performed (Actio nEvent e)if(text name.getText().equals()用尸名密码new JOptionPane().showMessageDialog(null,用户名 不能为空!)。else if(textmima.getText().equals()new JOptionPane().showMessageDialog(null,密码不 能为空!)。elseString sql=select * from user where user_id = + textname.getTe
12、xt() + and password = + textmima.getText()+ 。System.out.println(sql)。Judge(sql)。/调用成员方法,判断是否用户名和密 码正确3 用户信息管理模块(1)密码修改用户名将自动从表 user 里检索出来,供用户选择 以下是它的基本属性文件名控件名称xgmima.javaJlabel: Ibe2、lbe3、lbe4、lbe5 JcomboBox: tfJpasswordField:pas1、pas2、pas3 Jbutton: b1= newJButton(确定)。b2=new JButton(清空)。将所有用用户名读出来d
13、atabase.joinDB()。/连接数据库String sql=select * from user。tryif(database.query(sql)while(database.rs.next()/ 依次将用户名读出String name=database.rs.getString(user_id)。tf.addItem(name)。catch(Exception e)确定“按钮”的监听事件代码:b1.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)String name=
14、+ 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 ps1=pas1.getText() 。String password=database.rs.getString(Password) 。if(ps1.equals(password) if(pas2.getText().equals(pa
15、s3.getText()String supdate=update user set password=+ pas3.getText()+ where user_id=+ name + 。database.executeSQL(supdate)。new JOptionPane().showMessageDialog(null, 密码更改成功!)。elsenew JOptionPane().showMessageDialog(null, 两次密码不同!)。elsenew JOptionPane().showMessageDialog(null, 旧密码不正确!)。catch(Exception
16、el)System.out.println(el) 。)。(2)用户信息添加和删除用户信息添加刑删隐:冈上半部分用来添加用户,下半部分用来删除用户 基本属性如下文件名控件名AddDeleteUser.javaprivate JButton butACancel,butDCancel,butDelete,butOk。privateJComboBox cbUserName。private JLabel jLabel1,jLabel2,jLabel3,jLabel4,jLabel5。privateJPasswordField pas1,pas2,pas3。private JTextField txt
17、name。/将所有用用户名读出来database.joinDB()。String sql=select * from user。tryif(database.query(sql)while(database.rs.next()记录集若有记录则通过循环将数据依次读出String name=database.rs.getString(user_id)。cbUserName.addltem (n ame)。catch(Excepti on e)为添加按钮加事件-butOk.addAct ion Liste ner(new Actio nListe ner()public void action Pe
18、rformed(Acti onEvent e)if(txtname.getText().equals()/ 判断是否为空new JOptionPane().showMessageDialog(null,用户名 不能为空!)。else if(pas1.getText().equals()new JOptionPane().showMessageDialog(null,密码不能为空 !) 。else if(pas1.getText().equals(pas2.getText()String sql=insert into user values(+ txtname.getText() +,+ pa
19、s1.getText()+) 。try成功if(database.executeSQL(sql)/若 SQL 执行添加成功!new JOptionPane().showMessageDialog(null,)。cbUserName.addItem(txtname.getText() 。 catch(Exception ea)。 删除按钮监听事件代码 butDelete.addActionListener(new ActionListener() public voidactionPerformed(ActionEvent e) String name= + cbUserName.getSele
20、ctedItem() 。 /得到用户名 Stringsql=select * from user where user_id=+ name + 。 try if(database.query(sql) database.rs.next()。String pas=pas3.getText() 。String password=database.rs.getString(Password) 。System.out.println(password) 。 if(pas.equals(password)/ 比较密码是否与记录集里对应一 致String sdelete=delete from user
21、where user_id=+ name + 。if(database.executeSQL(sdelete) newJOptionPane().showMessageDialog(null, 删除成 功! )。pas3.setText() 。 cbUserName.removeAllItems() 。 /将删除的条目从 JcomboBox中删除String sql1=select * from user 。if(database.query(sql1) while(database.rs.next()/ 更新 JcomboBox 条目Stringname1=database.rs.getSt
22、ring(user_id) 。cbUserName.addItem(name1) 。elsenew JOptionPane().showMessageDialog(null,密码不 正确!)。catch(Excepti on el)System.out.println(el)。该添加是按照先添加学生信息,再添加学生成绩的次序进行的当学生信息添加完后,添加 学生成绩窗口的学号会自动将学生信息里没有添加过成绩的成绩显示出来 添加学生信息中的“添加“按钮代码:butOk.addAct ion Liste ner(new Actio nListe ner()public void action Per
23、formed(Acti onEvent 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,性别不能为空)。else String sql=insert into stud values(+ j
24、tf1.getText() +,+ jtf2.getText() +,+ jtf3.getText() +,+jtf4.getText()+,+ jtf5.getText()+,+ jtf6.getText()+,+ jtf7.getText()+) 。)。4 学生息管理模块(1 )添加信息鬥添加学生信息二滾強能塗班:;匚:因鬥添加学生成绩魯恋述:疔冈 学号0640825VBMF发犬学英逵java开发SQL Server高等数学何站建设tryif(database.executeSQL(sql) newJOptionPane().showMessageDialog(null, 添加成功! )
25、。catch(Exception ea)。添加学生成绩信息读取学号信息 database.joinDB() 。 String sql=select 学号 from stud where 学号 NOTIN(select 学号 from grade) 。 tryif(database.query(sql) while(database.rs.next()String name=database.rs.getString(”学号)。jnum.addItem(name) 。 catch(Exception ea) 添加学生成绩信息“添加“按钮代码: butOk.addActionListener(ne
26、wActionListener()public void actionPerformed(ActionEvent e)String name= + jnum.getSelectedItem() 。String sql=insert into grade values(+ name+,+ jtf2.getText() +,+ jtf3.getText()+,+jtf4.getText()+,+jtf5.getText()+,+jtf6.getText()+,+jtf7.getText()+) 。try if(database.executeSQL(sql) newJOptionPane().sh
27、owMessageDialog(null, 添加成功! )。catch(Exception ea)。(2)信息查看分 为 查 看 学 生 基 本 信 息 和 查 看 学 生 成 绩 信 息 , 因 为 代 码 和 窗 体 大 致 相 识 , 进 取 其 一 讲 述F 面是他的属性文件名称控件名称v iewstud.javaJtextArea: te=new JTextArea()。代码为:class viewstud exte nds Jin ternalFrameviewstud()super(”查看学生基本信息)。/窗体显示得名称Container con=getContentPane()
28、。/仓 U 建 JinternalFrame 的容器对象 con.setLayout(newBorderLayout()。设定窗体布局JTextArea te=new JTextArea()。JScrollPane croll=new JScrollPane(te)。/加载垂直水平滚动条con.add(croll,BorderLayout.CENTER)。database.joinDB()。/连接数据库Stri ng sql=SELECT * FROM stud。try if(database.query(sql)while(database.rs .n ext()te.append(学号:+
29、database.rs.getString(1)+)。te.append(姓名:+database.rs.getString(2)+)。te.append(性别:+database.rs.getString(3)+)。te.append(年龄:+database.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(SQLExc
30、epti on ex) System.out.println(ex) 。 this.setClosable(true)。/关闭窗 口可用 setVisible(true)。/窗体可见 setBou nds(20,70,600,350)。(3 )信息修改信息修改分为学生基本信息修改,学生成绩信息修改,由于原理相似就以修改学生基本信 息作为例子进行介绍F 面是他的属性信息文件名称控件名称x iugai.javaprivate JButton butCancel,butOk,butShow。privateJLabeljLabel1,jLabel2,jLabel3,jLabel4,jLabel5,jL
31、abel6,jLabel7 。 private JTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7。B維改学生信盒:!S Q修改删信息:因显示信息按钮的监听事件代码如下:database.joinDB()。butShow.addActio nListe ner(new Actio nListe ner()public void action Performed(Acti onEvent e)if(jtf1.getText().equals()new JOptionPane().showMessageDialog(null,请输入else String sq
32、l=select * from grade where 学号=+ tryif(database.query(sql)/ 此处用了个 database.executeSQL(sql)提示 resultset 关if(!database.rs.first()学号)。+jtf1.getText() +”JOptionPane.showMessageDialog(null,没有该学生信息.)。 /下面是用来显示其他文本框里的内容else database.rs.first()。jtf2.setText(database.rs.getString(VBA 开发)。jtf3.setText(databas
33、e.rs.getString(大学英语)。jtf4.setText(database.rs.getString(java 开发)。jtf5.setText(database.rs.getString(SQLServer)。jtf6.setText(database.rs.getString(高等数学)。jtf7.setText(database.rs.getString(网站建设)。butOk.setEnabled(true)。 catch(NullPo in terExceptio n upe)System.out.println(upe.toString()。catch(SQLExcept
34、i on sqle) System.out.println(sqle.toString()。catch(Excepti on ex)System.out.println(ex.toString()。)。(4 )删除信息删除时可以如果表grade 里有该生成绩信息,则一并删除,如果没有则只删除表stud 里的信息F 面是窗口属性文件名称控件名称sha nchu.javaprivate JButton butCancel,butOk。private JLabel jLabel1。private JTextField jtf1。private JPa nel p。 butOk=new JButton
35、(删除)。butCancel=new JButton(” 清空)删除按钮监听事件代码如下:butOk.addAct ion Liste ner(new Actio nListe ner()public void actionPerformed(ActionEvent e)if(jtf1.getText().equals()new JOptionPane().showMessageDialog(null, 请输入else String sql=select * from stud where 学 号 = + tryif(database.query(sql) 此处用了个 database.executeSQL(sq
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 衢州市人民医院创伤骨科影像学判读考核
- 莆田市人民医院冰冻切片技术考核
- 龙岩市人民医院通路影像评估考核
- 无人机训练设备管理与维护方案
- 快速冷却技术应用方案
- 食堂就餐高效管理方案
- 小区给排水管道施工技术规范方案
- 污水处理厂化学处理技术方案
- 人防设备技术维护方案
- 矿山地下采矿技术改造方案
- 人员无效走动管理办法
- 职业生涯规划第一课课件
- 职业心理健康教育课件
- (完整版)新视野大学英语(第三版)视听说教程2完整答案
- 寒湿:万病之源的中医解析与防治
- (浙江)现场流行病学调查职业技能竞赛备考试题库(含答案)
- 头疗课件培训
- 石油化工施工环境保护文明施工保证体系及保证措施
- 2024新能源风电场110KV升压站项目安全文明施工实施细则
- 情绪调节跨文化差异-洞察及研究
- 投标产品质量保证措施方案
评论
0/150
提交评论