




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java语言程序设计B报 告班级: 192091-27 学号: 20091003757 姓名: 罗 斌 成绩: 2012年1月一个简单的学生成绩管理信息系统题目:数据库要求:1. 建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语成绩。2. 至少要有5个班级,每个班级要有10名以上学生。3. 使用.txt格式文本表示各种表。功能需求:1. 能够实现根据以下关键字查询:学生姓名 、学号、班级、课程名称。2. 能够实现按照单科成绩、总成绩、平均成绩、学号排序。3. 能够实现学生信息的插入、删除和修改。4. 能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。5. 能够查询每
2、个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。界面要求: 使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。一、需求分析 1、界面 符合日常软件使用规范,使用方便,外形简洁美观。 2、功能需求 存储学生学号、姓名、班级,语文、数学、英语成绩等信息,实现数据库的读取与存入,数据项的记录与修改,删除等。二、设计思想 1、类设计 将添加数据、查询数据、删除数据、修改数据四个功能分别为四个类来实现,为了便于测试,每一个类都继承了主窗口类JFRAME,使得窗口可以独自运行。l INSERT类设计 功能组件 6个文本域、6个标签、1个按钮 功能实现 添加数据 实现过程 对按钮添加监
3、控,实现按钮事件为获取文本域中的信息,并执行SQL的INSERT语句。l QUERY类设计 功能组件 5个按钮、三个单行文本组件、1个下拉框、1个多行文本 功能实现 按学号查询、按姓名查询、按班级查询、按课程查询、显示全部 实现过程 对按钮添加监控,共有五个监控事件,前三个实现按钮事件为先获取文本域中的信息,根据对应查询的要求执行相应的SQL的SELLECT语句;按课程查询通过在下来框中选择对应的选项,即查询相应的课程;第五个查询按钮将全部信息在多行文本框中输出。l MODIFY类设计 功能组件 6个单行文本、6个标签、1个按钮 功能实现 修改数据 实现过程 与添加数据类似,对按钮添加监控,实
4、现按钮事件为获取文本域中的信息,并执行SQL的UPDATE语句;不同的是以学号为主键进行查找并更新。l DELETE类设计 功能组件 1个单行文本、1个标签、1个按钮、1个多行文本 功能实现 删除数据 实现过程 与修改数据类似,对按钮添加监控,实现按钮事件为获取文本域中的学号信息,并执行SQL的DELETE语句;不同的是以学号为主键进行查找并将删除信息输出到文本框中。2、数据库设计l 系统概念结构设计语文 学号姓名数学成绩查询系统班级英语l 系统逻辑结构设计学生成绩信息表字段名 属性类型空值约束条件学号ID文本not null主键姓名name文本从键班级class文本从简语文Chinese长整
5、数英语English长整数数学Maths长整数l 数据库截图3、主界面设计MAINFRAME类设计 功能组件 4个按钮、1个背景、2个标签文本、2个面板 功能实现 查询数据、添加数据、删除数据、修改数据 实现过程 对按钮添加监控,共有4个监控事件,实现按钮事件为创建对应功能的类对象,出现相应的功能窗口。三、运行截图 主界面 添加数据 查询数据l 按学号查询l 按姓名查询l 按班级查询l 按课程名称查询l 显示所有信息 修改数据 删除数据四、实验感想 通过此次课程设计我学会了很多知识,将Java课上遗漏的知识又进一步补上。实践过程中遇到了很多困难,比如没学过数据库,SQL语句不熟,对eclips
6、e的使用很生疏等,因此花费了很多时间在前期准备工作上。即使如此,也有一些功能尚未实现,例如查询优秀率、最高分和最低分等,虽然比较简单,但由于时间问题还是没来得及做。由于本次试验的很多知识都是现学现用,以致很多地方的代码显得累赘繁琐。但总体上主要功能是实现了的,并且美化了一下主界面。 总之,此次课程设计让我获益匪浅,我将会继续把它完善做好。五、源代码清单 MainFrame类import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MainFrame extends JFrameJButton inse
7、rt,query,delete,modify;JPanel panel,panel1,panel2;public MainFrame()/ TODO Auto-generated method stubImageIcon img=new ImageIcon(1.gif);JLabel text1,text2,picture=new JLabel(img); JFrame frame=new JFrame(学生成绩管理系统); insert=new JButton(添加数据); insert.setBackground(Color.green); insert.addActionListener
8、(new insertActionPerformed(); query=new JButton(查询数据); query.addActionListener(new queryActionPerformed(); query.setBackground(Color.green); modify=new JButton(修改数据); modify.setBackground(Color.green); modify.addActionListener(new modifyActionPerformed(); delete=new JButton(删除数据); delete.setBackgrou
9、nd(Color.green); delete.addActionListener(new deleteActionPerformed(); frame.setSize(360,200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane=frame.getContentPane(); contentPane.setLayout(new BorderLayout(); text1=new JLabel(欢迎使用学生成绩管理系统,JLabel.CENTER); text1.setFont(new
10、 Font(宋体,Font.BOLD,24); text1.setForeground(Color.blue); text2=new JLabel(-192091班 罗斌制作); text2.setFont(new Font(TimesRoman,Font.ROMAN_BASELINE,14); panel1=new JPanel(); panel1.add(insert); panel1.add(query); panel2=new JPanel(); panel2.add(modify); panel2.add(delete); panel1.setOpaque(false); panel
11、2.setOpaque(false); panel=new JPanel(); panel.add(text2,BorderLayout.NORTH); panel.add(panel1,BorderLayout.NORTH); panel.add(panel2,BorderLayout.SOUTH); panel.setOpaque(false); contentPane.add(text1,BorderLayout.NORTH); contentPane.add(panel,BorderLayout.CENTER); frame.getLayeredPane().add(picture,n
12、ew Integer(Integer.MIN_VALUE); Toolkit kit = Toolkit.getDefaultToolkit(); Dimension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width/2; int screenHeight = screenSize.height/2; int height = this.getHeight(); int width = this.getWidth(); picture.setBounds(0,0,360,360); (JPanel)cont
13、entPane).setOpaque(false); frame.setLocation(screenWidth-width/2, screenHeight-height/2); frame.setVisible(true); public class insertActionPerformed implements ActionListener public void actionPerformed(ActionEvent e) new Insert().setVisible(true); public class modifyActionPerformed implements Actio
14、nListener public void actionPerformed(ActionEvent e) new Modify().setVisible(true); public class queryActionPerformed implements ActionListener public void actionPerformed(ActionEvent e) new Query().setVisible(true); public class deleteActionPerformed implements ActionListener public void actionPerf
15、ormed(ActionEvent e) new Delete().setVisible(true); public static void main(String args) new MainFrame(); Insert类import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Insert extends JFrame JTextField input1,input2,input3,input4,input5,input6;JLabel label1,labe
16、l2,label3,label4,label5;JButton button; static Statement st; static try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:student); st=con.createStatement(); catch(Exception e) ResultSet rs;public Insert()input1=new JTextField(15);input2=new JTextField
17、(15);input3=new JTextField(15);input4=new JTextField(15);input5=new JTextField(15);input6=new JTextField(15);JPanel panel=new JPanel();panel.setLayout(new GridLayout(6,2);panel.add(new JLabel(学号),BorderLayout.CENTER);panel.add(input1);panel.add(new JLabel(姓名),BorderLayout.CENTER);panel.add(input2);p
18、anel.add(new JLabel(班级),BorderLayout.CENTER);panel.add(input3);panel.add(new JLabel(语文),BorderLayout.CENTER);panel.add(input4);panel.add(new JLabel(英语);panel.add(input5);panel.add(new JLabel(数学);panel.add(input6);button=new JButton(添加);button.addActionListener(new mysql();Container container=getCont
19、entPane();container.add(panel,BorderLayout.CENTER);container.add(button,BorderLayout.SOUTH);setTitle(添加数据窗口);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setSize(250,250); Toolkit kit = Toolkit.getDefaultToolkit(); Dimension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width/2
20、; int screenHeight = screenSize.height/2; int height = this.getHeight(); int width = this.getWidth(); setLocation(screenWidth-width/2, screenHeight-height/2);setVisible(true);class mysql implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString number=input1.getText().trim();Strin
21、g name=input2.getText().trim();String clas=input3.getText().trim();String temp=input4.getText();int chinese=Integer.parseInt(temp);temp=input4.getText();int english=Integer.parseInt(temp);temp=input4.getText();int maths=Integer.parseInt(temp);if(number.equals()|name.equals()| clas.equals()|temp.equa
22、ls()JOptionPane.showMessageDialog(Insert.this,请重新输入,提示对话框,1);elseString sql=insert into ScoreInfo(ID,name,class,Chinese,English,Maths) values(+number+,+name+,+clas+,+chinese+,+english+,+maths+); st.executeUpdate(sql); JOptionPane.showMessageDialog(Insert.this, 数据添加成功,提示对话框,1); input1.setText(); inpu
23、t2.setText(); input3.setText(); input4.setText(); input5.setText(); input6.setText();catch(Exception ee) Query类import java.awt.*;import .*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Query extends JFrameJTextArea show;JButton button1,button2,button3,button4,button5;JT
24、extField field1,field2,field3;JComboBox comoBox;static Statement st; static try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:student); st=con.createStatement(); catch(Exception e) public Query()show=new JTextArea(5,10);button1=new JButton(显示所有信息);
25、button1.addActionListener(new Mysql1();Container container=getContentPane(); container.setLayout(new BorderLayout();JPanel panel=new JPanel();JPanel mainpanel=new JPanel();button2=new JButton(按学号查询);button2.addActionListener(new Mysql2();panel.add(button2);field1=new JTextField(7);panel.add(field1);
26、panel.setVisible(true);mainpanel.add(panel);button3=new JButton(按姓名查询);button3.addActionListener(new Mysql3();panel.add(button3);field2=new JTextField(6);panel.add(field2);panel.setVisible(true);mainpanel.add(panel);button4=new JButton(按班级查询);button4.addActionListener(new Mysql4();panel.add(button4)
27、;field3=new JTextField(6);panel.add(field3);panel.setVisible(true);mainpanel.add(panel);String items=请选择,语文,英语,数学;comoBox=new JComboBox(items);button5=new JButton(按课程名称查询);button5.addActionListener(new Mysql5();panel.add(button5);panel.add(comoBox);panel.setVisible(true);mainpanel.add(panel);panel=n
28、ew JPanel();panel.add(button1);container.add(mainpanel,BorderLayout.NORTH);container.add(panel,BorderLayout.SOUTH);container.add(new JScrollPane(show),BorderLayout.CENTER);setTitle(查询数据);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setSize(750,400); Toolkit kit = Toolkit.getDefaultToolkit(); Di
29、mension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width/2; int screenHeight = screenSize.height/2; int height = this.getHeight(); int width = this.getWidth(); setLocation(screenWidth-width/2, screenHeight-height/2);setVisible(true);class Mysql1 implements ActionListenerpublic vo
30、id actionPerformed(ActionEvent e)tryString sql=select * from ScoreInfo;ResultSet rs=st.executeQuery(sql);show.setText();show.append(序号 学号 姓名 班级 语文 英语 数学+n);while(rs.next()show.append(rs.getInt(1)+ );show.append(rs.getString(2)+ );show.append(rs.getString(3)+ );show.append(rs.getString(4)+ );show.app
31、end(rs.getInt(5)+ );show.append(rs.getInt(6)+ );show.append(rs.getInt(7)+n);catch(Exception ee)class Mysql2 implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString ss=field1.getText().trim();String sql=select * from ScoreInfo where ID=+ss+;ResultSet rs=st.executeQuery(sql);show.
32、setText();show.append(序号 学号 姓名 班级 语文 英语 数学+n);while(rs.next()show.append(rs.getInt(1)+ );show.append(rs.getString(2)+ );show.append(rs.getString(3)+ );show.append(rs.getString(4)+ );show.append(rs.getInt(5)+ );show.append(rs.getInt(6)+ );show.append(rs.getInt(7)+n);catch(Exception ee)class Mysql3 im
33、plements ActionListenerpublic void actionPerformed(ActionEvent e)tryString ss=field2.getText().trim();String sql=select * from ScoreInfo where name=+ss+;ResultSet rs=st.executeQuery(sql);show.setText();show.append(序号 学号 姓名 班级 语文 英语 数学+n);while(rs.next()show.append(rs.getInt(1)+ );show.append(rs.getS
34、tring(2)+ );show.append(rs.getString(3)+ );show.append(rs.getString(4)+ );show.append(rs.getInt(5)+ );show.append(rs.getInt(6)+ );show.append(rs.getInt(7)+n);catch(Exception ee)class Mysql4 implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString ss=field3.getText().trim();String
35、 sql=select * from ScoreInfo where class=+ss+;ResultSet rs=st.executeQuery(sql);show.setText();show.append(序号 学号 姓名 班级 语文 英语 数学+n);while(rs.next()show.append(rs.getInt(1)+ );show.append(rs.getString(2)+ );show.append(rs.getString(3)+ );show.append(rs.getString(4)+ );show.append(rs.getInt(5)+ );show.
36、append(rs.getInt(6)+ );show.append(rs.getInt(7)+n);catch(Exception ee)class Mysql5 implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString sql=;String ss=comoBox.getSelectedItem().toString();if(ss.equals(语文)sql=select ID,name,class,Chinese from ScoreInfo ;show.setText();show.app
37、end(序号 学号 姓名 班级 语文+n);else if(ss.equals(英语)sql=select ID,name,class,English from ScoreInfo ;show.setText();show.append(序号 学号 姓名 班级 英语 +n);else if(ss.equals(数学)sql=select ID,name,class,Maths from ScoreInfo ;show.setText();show.append(序号 学号 姓名 班级 数学+n);ResultSet rs=st.executeQuery(sql);int i=0;while(r
38、s.next()i+;show.append(+i+ +rs.getString(1)+ );show.append(rs.getString(2)+ );show.append(rs.getString(3)+ );show.append(rs.getInt(4)+n);catch(Exception ee) Modify类import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Modify extends JFrameJTextField input1,inp
39、ut2,input3,input4,input5,input6;JLabel label1,label2,label3,label4,label5;JButton button; static Statement st; static try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:student); st=con.createStatement(); catch(Exception e) ResultSet rs;public Modif
40、y()input1=new JTextField(15);input2=new JTextField(15);input3=new JTextField(15);input4=new JTextField(15);input5=new JTextField(15);input6=new JTextField(15);JPanel panel=new JPanel();panel.setLayout(new GridLayout(6,2);panel.add(new JLabel(学号);panel.add(input1);panel.add(new JLabel(姓名);panel.add(i
41、nput2);panel.add(new JLabel(班级);panel.add(input3);panel.add(new JLabel(语文);panel.add(input4);panel.add(new JLabel(英语);panel.add(input5);panel.add(new JLabel(数学);panel.add(input6);button=new JButton(修改);button.addActionListener(new mysql();Container container=getContentPane();container.add(panel,Bord
42、erLayout.CENTER);container.add(button,BorderLayout.SOUTH);setTitle(修改数据窗口);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setSize(300,150); Toolkit kit = Toolkit.getDefaultToolkit(); Dimension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width/2; int screenHeight = screenSize.he
43、ight/2; int height = this.getHeight(); int width = this.getWidth(); setLocation(screenWidth-width/2, screenHeight-height/2);setVisible(true);class mysql implements ActionListenerpublic void actionPerformed(ActionEvent e)tryString number=input1.getText().trim();String name=input2.getText().trim();Str
44、ing clas=input3.getText().trim();String temp=input4.getText();int chinese=Integer.parseInt(temp);temp=input4.getText();int english=Integer.parseInt(temp);temp=input4.getText();int maths=Integer.parseInt(temp);if(number.equals()JOptionPane.showMessageDialog(Modify.this,学号不能为空!,提示对话框,1);elsetryString sql=update ScoreInfo set name=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训部总结与规划
- 城市交通规划合同管理著作权咨询重点基础知识点
- 地震安全评估师重点基础知识点
- 营销产品培训大纲设计
- 河北钉钉协议书
- 公务用车车辆租赁合同
- 民间标会协议书
- 超市部分承包合同协议
- 土地合作居间服务合同
- 产品质量保障与赔偿协议
- 某厂蒸汽管道安装吹扫及试运行方案
- 清华大学出版社机械制图习题集参考答案(课堂PPT)
- 安徽金轩科技有限公司 年产60万吨硫磺制酸项目环境影响报告书
- 儿科护理学智慧树知到答案章节测试2023年石河子大学
- 两篇古典英文版成语故事百鸟朝凤英文版
- GB/T 37573-2019露天煤矿边坡稳定性年度评价技术规范
- GB/T 19634-2021体外诊断检验系统自测用血糖监测系统通用技术条件
- GB/T 119.1-2000圆柱销不淬硬钢和奥氏体不锈钢
- 劳动保障监察执法课件
- 国际贸易理论发展及评述-国际贸易
- 小学奥数:乘法原理之染色法.专项练习及答案解析
评论
0/150
提交评论