




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北科技学院计算机系课程综合作业实验报告华北科技学院计算机系课程综合作业实 验 报 告 课程名称 JAVA程序设计 实验学期 2010 至 2011 学年 第 1 学期学生所在系部 计算机 年级 08级 专业班级 信管B082 学生姓名 学号 200807034208 任课教师 实验成绩 计算机系制JAVA程序设计课程综合作业实验报告开课实验室: 基础实验(七) 2011 年1 月 3日实验题目学生档案管理系统一、 实验目的通过编写JAVA的应用系统综合实例学生档案管理系统,总结发回顾和实践面向对象的编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,Java连接数据库的相关操作,将学到的知识融会贯通,同时提高程序的编程能力,并增强对程序的整体思路的掌握。二、 设备与环境PC机 WindowsXP操作系统 JDK 开发包 JAVA集成开发环境三、 实验内容及代码 1、结构功能图登录界面学生信息分数信息显示记录添加记录删除记录更新记录显示总分平均分查询记录各科最高低分2.功能说明由用户登录界面进入到学生管理系统,选择学生信息中的“显示记录”菜单,可以打印整个学生信息表中的内容;“添加记录”可以向学生信息表中添加记录;删除记录,可以通过输入要删除学生的;学生档案的查询、修改、添加、删除;学生成绩的求平均、求和、最高分、最低分;部学生的学号,从而删除整条记录;“更新记录”,输入要更新学生的学号,可以更新这条记录中的数据;“查询记录”,输入要查询学生学号可以查询这个学生的所有信息;选择分数信息中的“各科最高低分”菜单,可以查询所有学科中的最高分和最低分;“总分平均分”显示所有学生的总分和平均分。3主要代码本程序使用Java中基于SWING的图形设计,用到java中的java.awt.*内的包,控件的布局用到java.swing.border.*包,事件处理用到java.awt.event.*,连接数据库用到java.sql登录界面主要代图1public class denglu public static void main(String args) tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException e) /11 System.out.println(+e); new WindowBox(登录窗口); /调用方法 class WindowBox extends JDialog implements ActionListener/声明 Box baseBox,boxV1,boxV2,boxV3; JButton button1,button2; JTextField text; JPasswordField password; DataWin datawin; String userStr,passStr; /构造方法 WindowBox(String s) /初始化类与组件 datawin=new DataWin(数据操作); boxV1=Box.createHorizontalBox(); boxV1.add(new JLabel(输入您的姓名); boxV1.add(Box.createHorizontalStrut(8); text=new JTextField(16); boxV1.add(text); boxV2=Box.createHorizontalBox(); boxV2.add(new JLabel(请输入密码); boxV2.add(Box.createHorizontalStrut(20); /采用盒式布局 password=new JPasswordField(16); boxV2.add(password); boxV3=Box.createHorizontalBox(); button1=new JButton(登录); boxV3.add(button1); button1.addActionListener(this);/增加事件监听器 boxV3.add(Box.createHorizontalStrut(8);/ button2=new JButton(取消); button2.addActionListener(this); boxV3.add(button2); baseBox=Box.createVerticalBox(); baseBox.add(Box.createVerticalStrut(20); baseBox.add(boxV1); baseBox.add(Box.createVerticalStrut(20); baseBox.add(boxV2); baseBox.add(Box.createVerticalStrut(20); baseBox.add(boxV3);/50 setLayout(new FlowLayout(); add(baseBox); validate(); setTitle(s); setBounds(300,300,400,200); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); public void actionPerformed(ActionEvent e)/处理事件接口 if(e.getSource()=button2) text.setText(null); password.setText(null); else if(e.getSource()=button1) userStr = text.getText(); passStr = password.getText(); if (userStr.trim().equals(shd)|(passStr.trim().equals(123) datawin.setVisible(true); this.dispose(); else JOptionPane.showMessageDialog(this,用户名或密码错误,提示,JOptionPane.WARNING_MESSAGE); text.setText(null); password.setText(null); 如果出现用户名密码错误则会出现提示信息对话框图2通过调用Datawin类中的内容可以进入到主界面声明菜单中的显示、添加、删除、修改、查询、最高低分以及总分平均分菜单项和类,能过给菜单添加事件监听事件图3public void actionPerformed(ActionEvent e) if(e.getSource()=itemshow) show.setVisible(true); else if(e.getSource()=itemadd) add.setVisible(true); else if(e.getSource()=itemupdata) updata.setVisible(true); else if(e.getSource()=itemdelete) delete.setVisible(true); else if(e.getSource()=itemquery) query.setVisible(true); else if(e.getSource()=itemshowfen) showfen.setVisible(true); else if(e.getSource()=itemmax) maxmin.setVisible(true); else if(e.getSource()=itemtotal) total.setVisible(true); 构造显示类,声明组件,然后给按钮组件增加以下监听事件,通过连接数据库将数据库中所有的信息输出到Jtable按钮中public void actionPerformed(ActionEvent e) try con=DriverManager.getConnection(jdbc:odbc:hello,); /连接数据源 sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=sql.executeQuery(SELECT * FROM 学生信息); /连接表 学生信息 rs.last(); int lastNumber=rs.getRow(); a=new ObjectlastNumber6; int k=0; rs.beforeFirst(); while(rs.next() ak0=rs.getString(1); ak1=rs.getString(2); ak2=rs.getString(3); ak3=rs.getString(4); ak4=rs.getString(5); ak5=rs.getString(6); k+; con.close(); catch(SQLException ee)System.out.println(ee); /处理异常 table=new JTable(a,name); getContentPane().removeAll(); /采用BorderLayout布局 add(showRecord,BorderLayout.NORTH); add(new JScrollPane(table),BorderLayout.CENTER); validate(); 图4构造增加类,声明组件,定义一个表名Object name=学号,姓名,年龄,性别,系别,班级;和定义一个表单Object a=new Object16;然后给按钮组件增加以下监听事件,通过对表单中输入数据进而增加到数据库中public void actionPerformed(ActionEvent e)/处理事件 try/连接数据源 hello 表 :学生信息 con=DriverManager.getConnection(jdbc:odbc:hello,); sql=con.createStatement(); int k=sql.executeUpdate(INSERT INTO学生信息 VALUES(+a00+,+a01+,+a02+,+a03+,+a04+,+a05+); if(k=1) JOptionPane.showMessageDialog(this,插入记录成功,成功,JOptionPane.PLAIN_MESSAGE); for(int i=0;i6;i+) a0i=; table.repaint();/重打印表 con.close(); catch(SQLException ee)/处理异常 JOptionPane.showMessageDialog(this,插入记录失败+ee,失败,JOptionPane.ERROR_MESSAGE); /public /class图5图6构造删除类,声明组件,在文本框中输入信息,进而可以删除数据库中相应的记录给文本框和按钮增加以下事件public void actionPerformed(ActionEvent e) if(e.getSource()=inputNumber) try num=inputNumber.getText().trim(); con=DriverManager.getConnection(jdbc:odbc:hello,); sql=con.createStatement(); rs=sql.executeQuery(SELECT * FROM 学生信息 WHERE xueid=+num+); boolean boo=rs.next(); if(boo=false) JOptionPane.showMessageDialog(this,学号不存在,提示”,JOptionPane.WARNING_MESSAGE); else a00=rs.getString(2); a01=rs.getByte(3); a02=rs.getString(4); a03=rs.getString(5); a04=rs.getString(6); table.repaint(); con.close(); catch(SQLException ee)System.out.println(ee); if(e.getSource()=enterModify)/连接数据源 try con=DriverManager.getConnection(jdbc:odbc:hello,); sql=con.createStatement(); sql.executeUpdate(DELETE FROM 学生信息 WHERE xueid=+num+); JOptionPane.showMessageDialog(this,删除成功,成功,JOptionPane.PLAIN_MESSAGE); for(int i=0;i5;i+) a0i=; table.repaint(); inputNumber.setText(null); catch(SQLException ee)/处理异常 如果学号不存在不能删除 数据相应的不对应出现异常 提示删除失败 JOptionPane.showMessageDialog(this,删除失败+ee,失败,JOptionPane.ERROR_MESSAGE); /if /public构造更新类向文本框中输入要更新学生的学号利用SQL语句rs=sql.executeQuery(SELECT*FROM 学生信息 WHERE xueid=+num+);如果学号存在的话把该学生的数据显示在表中,否则提示信息说明该学号不存在。给按钮添加如下事件可以更新数据try con=DriverManager.getConnection(jdbc:odbc:hello,); sql=con.createStatement(); sql.executeUpdate(UPDATE 学生信息 SET xuename=+a00+,xueage=+a01+,xuesex=+a02+,xiid=+a03+,banid=+a04+WHERE xueid=+num+); JOptionPane.showMessageDialog(this,更新成功,成功,JOptionPane.PLAIN_MESSAGE); con.close(); for(int i=0;i6;i+) a0i=; table.repaint();/重打印表 con.close(); catch(SQLException ee) JOptionPane.showMessageDialog(this,更新失败+ee,失败,JOptionPane.ERROR_MESSAGE); /if图7构造查询方法查询这个窗体整体彩盒式布局,首先声明类和方法设计窗体的外观,给相应的组件添加事件利用SQL语句查询数据库中的信息 rs=sql.executeQuery(SELECT * FROM 学生信息 WHERE xueid=+num+);如果输入学号数据库中不存在提示信息“学号不存在”,否则利用table.repaint();方法将数据库中的信息输入到窗体中的table中public void actionPerformed(ActionEvent e)/处理事件 try/连接数据原 hello num=inputNumber.getText().trim(); con=DriverManager.getConnection(jdbc:odbc:hello,); sql=con.createStatement(); rs=sql.executeQuery(SELECT * FROM 学生信息 WHERE xueid=+num+); boolean boo=rs.next(); if(boo=false)/ 提示信息 如果学号不存在就不用进行相应的查找 不能更新新的记录 JOptionPane.showMessageDialog(this,学号不存在,提示,JOptionPane.WARNING_MESSAGE); else a00=rs.getString(2); a01=rs.getByte(3); a02=rs.getString(4); a03=rs.getString(5); a04=rs.getString(6); table.repaint(); con.close(); catch(SQLException ee)System.out.println(ee); /public /class图8构造最高最低分类首先定义两个静态变量m,n;将数据库中的信息利用查询的方法显示在数字 int b中, con=DriverManager.getConnection(jdbc:odbc:hello,); sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);/只读形式 rs=sql.executeQuery(SELECT * FROM 分数信息); rs.last();利用如下方法求得语文成绩的最高分和最低分 for(k=0;klastNumber;k+) if(mbk0) n=bk0; a01=m;a11=n;同理可以求得其它几科成绩的最高分和最低分然后,将object a中的信息显示有窗体中图9构造总分平均分方法首先将数据库中的信息显示在利用SQL查询方法显示有两个数据中object a和int b中利用如下方法将求得总分和平均分 try con=DriverManager.getConnection(jdbc:odbc:hello,); sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=sql.executeQuery(SELECT * FROM 分数信息); rs.last(); int lastNumber=rs.getRow(); b=new intlastNumber4; a=new ObjectlastNumber8; int k=0; rs.beforeFirst(); while(rs.next() ak0=rs.getString(1); ak1=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 难点解析人教版8年级数学下册《平行四边形》单元测试试题(含答案解析版)
- 南充文化旅游职业学院2025年第一批公开招聘员额人员(37人)考前自测高频考点模拟试题及答案详解一套
- 2025年煤炭清洁高效燃烧技术在工业窑炉中的应用研究报告
- 食品冷链物流温控技术在生鲜电商中的应用报告
- 2025年游戏化营销在化妆品行业品牌传播中的策略研究报告
- 好好爱护牙齿的课件
- 好天气与坏天气课件
- 巧克力囊肿MRI课件
- 火汉字课件教学课件
- 崖柏知识与鉴定技术培训课件
- 2025智联招聘行测题库及答案解析
- GB/T 12643-2025机器人词汇
- 自由职业者合作协议合同范本
- 慈溪教育局劳动合同
- DBJ∕T 13-262-2017 福建省里氏硬度法现场检测建筑钢结构钢材抗拉强度技术规程
- 价值观使命培训
- 书法爱好者交流会活动方案
- 公路工程施工安全技术资料编制指南
- 十期牛黄清心丸
- 2024-2025学年四川成都田家炳中学高一新生入学分班质量检测数学试题【含答案】
- 外科学-心脏疾病课件
评论
0/150
提交评论