一个简单的学生成绩管理信息系统(Java).doc
《一个简单的学生成绩管理信息系统(Java).doc》由会员分享,可在线阅读,更多相关《一个简单的学生成绩管理信息系统(Java).doc(18页珍藏版)》请在咨信网上搜索。
Java语言程序设计B报 告 班级: 192091-27 学号: 20091003757 姓名: 罗 斌 成绩: 2012年1月 一个简单的学生成绩管理信息系统 题目: 数据库要求: 1. 建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语成绩. 2. 至少要有5个班级,每个班级要有10名以上学生。 3. 使用。txt格式文本表示各种表。 功能需求: 1. 能够实现根据以下关键字查询:学生姓名 、学号、班级、课程名称。 2. 能够实现按照单科成绩、总成绩、平均成绩、学号排序。 3。 能够实现学生信息的插入、删除和修改。 4。 能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。 5. 能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序. 界面要求: 使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。 一、需求分析 1、界面 符合日常软件使用规范,使用方便,外形简洁美观. 2、功能需求 存储学生学号、姓名、班级,语文、数学、英语成绩等信息,实现数据库的读取与存入,数据项的记录与修改,删除等。 二、设计思想 1、类设计 将添加数据、查询数据、删除数据、修改数据四个功能分别为四个类来实现,为了便于测试,每一个类都继承了主窗口类JFRAME,使得窗口可以独自运行。 l INSERT类设计 功能组件 6个文本域、6个标签、1个按钮 功能实现 添加数据 实现过程 对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行SQL的INSERT语句。 l QUERY类设计 功能组件 5个按钮、三个单行文本组件、1个下拉框、1个多行文本 功能实现 按学号查询、按姓名查询、按班级查询、按课程查询、显示全部 实现过程 对按钮添加监控,共有五个监控事件,前三个实现按钮事件为先获取文本域中的信息,根据对应查询的要求执行相应的SQL的SELLECT语句;按课程查询通过在下来框中选择对应的选项,即查询相应的课程;第五个查询按钮将全部信息在多行文本框中输出. l MODIFY类设计 功能组件 6个单行文本、6个标签、1个按钮 功能实现 修改数据 实现过程 与添加数据类似,对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行SQL的UPDATE语句;不同的是以学号为主键进行查找并更新。 l DELETE类设计 功能组件 1个单行文本、1个标签、1个按钮、1个多行文本 功能实现 删除数据 实现过程 与修改数据类似,对按钮添加监控,实现按钮事件为获取文本域中的学号信息,并执行SQL的DELETE语句;不同的是以学号为主键进行查找并将删除信息输出到文本框中。 2、数据库设计 l 系统概念结构设计 语文 学号 姓名 数学 成绩查询系统 班级 英语 l 系统逻辑结构设计 学生成绩信息表 字段名 属性 类型 空值 约束条件 学号 ID 文本 not null 主键 姓名 name 文本 从键 班级 class 文本 从简 语文 Chinese 长整数 英语 English 长整数 数学 Maths 长整数 l 数据库截图 3、主界面设计 MAINFRAME类设计 功能组件 4个按钮、1个背景、2个标签文本、2个面板 功能实现 查询数据、添加数据、删除数据、修改数据 实现过程 对按钮添加监控,共有4个监控事件,实现按钮事件为创建对应功能的类对象,出现相应的功能窗口. 三、运行截图 Ø 主界面 Ø 添加数据 Ø 查询数据 l 按学号查询 l 按姓名查询 l 按班级查询 l 按课程名称查询 l 显示所有信息 Ø 修改数据 Ø 删除数据 四、实验感想 通过此次课程设计我学会了很多知识,将Java课上遗漏的知识又进一步补上。实践过程中遇到了很多困难,比如没学过数据库,SQL语句不熟,对eclipse的使用很生疏等,因此花费了很多时间在前期准备工作上.即使如此,也有一些功能尚未实现,例如查询优秀率、最高分和最低分等,虽然比较简单,但由于时间问题还是没来得及做。由于本次试验的很多知识都是现学现用,以致很多地方的代码显得累赘繁琐。但总体上主要功能是实现了的,并且美化了一下主界面. 总之,此次课程设计让我获益匪浅,我将会继续把它完善做好. 五、源代码清单 Ø MainFrame类 import javax。swing。*; import java.awt。*; import java.awt.event。*; public class MainFrame extends JFrame{ JButton insert,query,delete,modify; JPanel panel,panel1,panel2; public MainFrame() { // TODO Auto—generated method stub ImageIcon 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(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。setBackground(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 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); panel2。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,new 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)contentPane)。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 ActionListener { 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 actionPerformed(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,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 Insert() { 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(”学号”),BorderLayout.CENTER); panel。add(input1); panel.add(new JLabel(”姓名”),BorderLayout。CENTER); panel.add(input2); panel.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=getContentPane(); 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; 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 ActionListener { public void actionPerformed(ActionEvent e) { try { String number=input1。getText().trim(); String 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。equals(””)) { JOptionPane。showMessageDialog(Insert.this,"请重新输入”,”提示对话框”,1); } else { String 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(”"); input2.setText(””); input3。setText(””); input4.setText(””); input5.setText("”); input6。setText(”"); } } catch(Exception ee){} } } } Ø Query类 import java.awt.*; import javax。swing。event。*; import java。awt。event。*; import javax.swing。*; import java。sql。*; public class Query extends JFrame{ JTextArea show; JButton button1,button2,button3,button4,button5; JTextField 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("显示所有信息”); 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); 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); 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=new 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(); Dimension 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 ActionListener { public void actionPerformed(ActionEvent e) { try { String 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.append(rs.getInt(5)+” ”); show。append(rs.getInt(6)+" "); show。append(rs。getInt(7)+"\n"); } } catch(Exception ee){} } } class Mysql2 implements ActionListener { public void actionPerformed(ActionEvent e) { try { String ss=field1。getText()。trim(); String sql=”select * from ScoreInfo where ID='”+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。append(rs。getInt(6)+" ”); show。append(rs。getInt(7)+”\n"); } } catch(Exception ee){} } } class Mysql3 implements ActionListener { public void actionPerformed(ActionEvent e) { try { String 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.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 Mysql4 implements ActionListener { public void actionPerformed(ActionEvent e) { try { String ss=field3.getText().trim(); String 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。append(rs。getInt(6)+" ”); show。append(rs。getInt(7)+"\n”); } } catch(Exception ee){} } } class Mysql5 implements ActionListener { public void actionPerformed(ActionEvent e) { try { String sql=””; String ss=comoBox。getSelectedItem()。toString(); if(ss。equals("语文")) { sql="select ID,name,class,Chinese from ScoreInfo ”; show。setText(”"); show。append(”序号 学号 姓名 班级 语文"+”\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("序号 学号 姓名 班级- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一个 简单 学生 成绩 管理信息系统 Java
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文