java程序设计学生成绩信息管理系统.doc

上传人:叶*** 文档编号:35119685 上传时间:2022-08-20 格式:DOC 页数:34 大小:301.50KB
返回 下载 相关 举报
java程序设计学生成绩信息管理系统.doc_第1页
第1页 / 共34页
java程序设计学生成绩信息管理系统.doc_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《java程序设计学生成绩信息管理系统.doc》由会员分享,可在线阅读,更多相关《java程序设计学生成绩信息管理系统.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、JAVA程序设计学生信息管理系统题 目 学生信息管理系统学 院软件学院 专 业 班 别 学 号 姓 名XXX 2015年6月10日2一、课程题目设计一个简易的学生成绩管理系统。用于记录学生的各科成绩,以及实现常用的统计功能。(1) 记录学生的基本信息,如姓名、学号、专业、班级等(2) 记录各科成绩(3) 实现常用的统计功能,如:单科成绩排名、总分排名、统计成绩高于/低于某一临界值的学生、统计单科/总分平均值(4) 使用图形方式显示某些数据,如直方图显示各分数段的人数、绘制各科分数分布曲线(可选)(5) 必须使用数据库。其它功能可自行扩展。二、题目分析与设计1.注明所使用的开发环境(Eclips

2、e、NetBeans,JBuilder)。开发环境:Eclipse2.论述题目的需求。给出软件功能架构图。题目需求:通过数据库记录学生成绩和信息,并通过数据库读取这些信息,实现单个学生查找、全体学生查找等功能和单科排名、平均分、总分排名、平均分等功能。其他扩展功能:登录界面,保存到txt文件。软件功能架构图:其中,删除、修改、单个查找功能均通过学号定位学生3.论述界面设计过程,指出其设计上的创意及组件的布局策略。界面设计过程:主要界面包括登录界面,主功能界面,各个子功能界面。登录界面包括3个面板,每个面板放入相应的标签、文本框、按钮等组件,登录界面采用3行1列的网格布局;主功能界面包括菜单栏和

3、若干面板,面板中放入标签或若干按钮,菜单栏的菜单项与按钮相对应,主功能界面采用7行1列的网格布局;学生管理类子功能(增加学生、删除学生、修改学生、单个查找)界面采用6行2列的网格布局,每个网格均放入一个面板,每个面板放入标签、文本框、组合框、按钮等组件,以达到较友好的界面效果;学生查找类子功能界面(查看全体、按年级查询、按班别查询、按专业查询)和成绩管理类子功能(单科排名、总分排名、合格学生、挂科学生)界面采用边界布局,界面的上部放入一个面板,面板放入相应的按钮或组合框,中部放入一个文本域。所有错误信息等信息均通过对话框的形式显示相应信息。4.论述程序逻辑的实现,包括类的设计、对象的协作过程等

4、,必要时加以各种图形和表格辅助论述。不得以粘贴代码的方式代替设计部分。类的设计过程:本程序包括19个类文件,每个类文件只含有一个类,分别是包含main方法的主类Main,实现登录功能的类Login,实现各种功能选择功能的类Function,实现数据库连接的类 DataBaseCreate, 实现学生信息编辑功能类 StudentEdit,执行增加学生功能的类 AddStudent, 执行删除学生功能的类 DeleteStudent, 执行修改学生功能的类UpdateStudent, 执行单个查询功能的类 IndexOfSingle,(由于AddStudent, DeleteStudent, U

5、pdateStudent, IndexOfSingle 界面和操作基本相同,所以上4类均继承StudentEdit)实现条件查找和成绩管理功能的类 IndexOrManage,执行查询全体功能的类 LookAllStudents, 执行按年级查询功能的类 IndexOfGrade, 执行按班别查询功能的类 IndexOfClass, 执行按专业查询的类 IndexOfMajor, 执行单科排名功能的类SubjectScoreRanking, 执行总分排名功能的类 TotalScoreRanking, 执行查找单科及格学生功能的类 PassStudents, 执行查找单科不及格学生功能的类 No

6、tPassStudents, (由于LookAllStudents, IndexOfGrade, IndexOfClass, IndexOfMajor, SubjectScoreRanking, TotalScoreRanking, PassStudents, NotPassStudents, 界面和操作基本相同,所以上8类均继承IndexOrManage)执行将文本域内容保存到TXT文件的类 TxtSave。以上19个类,除了Main类以外,均包含一个构造方法,有些还包含actionPerformed(e)方法。对象的协作过程:三、测试分析小四字体,1.5倍行距。对程序的测试情况作出分析。至

7、少包括但不限于需要具备以下内容:1.阐述扩展包(仅限于SUN官方发布)的部署过程,并将扩展包附于光盘源程序中;给出数据库的详细配置说明。导入扩展包mysql-connector-java-5.1.25-bin.jar数据库配置说明:数据库 mySQL数据库服务器 localhost端口 3306用户名 root密码 空数据库名studentmanagementStudent 表2.典型测试数据的构建,并且给出测试数据的预计结果原数据:测试数据:添加学生10005 张兰 女 2012 2 信息工程 19930506 82 74 58 删除学生10000修改学生 10001李嘉 女 2011 4

8、网络工程 19920304 5485 86.5单个查找 10003查询全体按年级查找2011级按班别查找1班按专业查找软件工程单科排名并显示平均分语文总分排名并显示平均分单科及格学生英语单科不及格学生语文保存Txt总分预测结果:均成功完成操作3.本程序的测试情况,与预计结果作对比测试情况:成功完成相关操作添加学生10005 张兰 女 2012 2 信息工程 19930506 82 74 58 删除学生 10000修改学生 10001李嘉 女 2011 4 网络工程 19920304 54 85 86.5单个查找 1000320001查询全体按年级查找2011级按班别查找1班按专业查找软件工程单

9、科排名并显示平均分语文总分排名并显示平均分单科及格学生英语单科不及格学生语文保存Txt总分排名附录:源代码小四字体,1.5倍行距。只需列出程序中所有的包及相关的文件。不需要打印源代码。程序中所有的包及相关的文件:代码:importjavax.swing.JFrame;publicclassMain *paramargspublicstaticvoidmain(String args) Login login=newLogin();login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);importjava.awt.*;importjava.aw

10、t.event.*;importjavax.swing.*;/登录界面publicclassLoginextendsJFrameimplementsActionListenerJButtonb1=newJButton(登录);JButtonb2=newJButton(退出);JLabella1=newJLabel(用户名);JLabella2=newJLabel(密 码);JPanelp1=newJPanel();JPanelp2=newJPanel();JPanelp3=newJPanel();JTextFieldname=newJTextField(15);JPasswordFieldpw

11、=newJPasswordField(15);publicLogin()setTitle(学生成绩管理系统);getContentPane().setLayout(newGridLayout(3,1);getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p3);p1.add(la1);p1.add(name);p2.add(la2);p2.add(pw);p3.add(b1);p3.add(b2);setBounds(500, 250, 100, 100);pack();setVisible(true);

12、pw.setEchoChar(*);b1.addActionListener(this);b2.addActionListener(this);publicvoidactionPerformed(ActionEvent e) if(e.getActionCommand()=登录)String password=pw.getText();String user=name.getText();if(user.equals(admin) & password.equals(admin)Function function=newFunction();function.setDefaultCloseOp

13、eration(JFrame.EXIT_ON_CLOSE);setVisible(false);elseJOptionPane.showMessageDialog(null,用户名或密码错误,Error, JOptionPane.INFORMATION_MESSAGE);elseif(e.getActionCommand()=退出)System.exit(0);importjava.sql.*;/连接数据库类publicclassDataBaseCreate /连接数据库静态方法,若产生错误,则抛出相应错误信息publicstaticConnection getConnection()thro

14、wsSQLException,java.lang.ClassNotFoundException/建立本地数据库连接,编码规则转换为utf-8(正常录入中文)String url=jdbc:mysql:/localhost:3306/studentmanagement?useUnicode=true&characterEncoding=utf8;Class.forName(com.mysql.jdbc.Driver);String userName=root;Connection con=DriverManager.getConnection(url, userName,);returncon;

15、importjavax.swing.JFrame;publicclassMain *paramargspublicstaticvoidmain(String args) Login login=newLogin();login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;/主要功能界面publicclassFunctionextendsJFrameimplementsActionListenerJPanelp1=newJPan

16、el();JPanelp2=newJPanel();JPanelp6=newJPanel();JPanelp3=newJPanel();JPanelp4=newJPanel();JPanelp5=newJPanel();JButtonadd=newJButton(增加学生);JButtondel=newJButton(删除学生);JButtonupdate=newJButton(修改学生);JButtonsingle=newJButton(单个查询);JButtonlook=newJButton(查看全体);JButtonb11=newJButton(按年级查找);JButtonb12=new

17、JButton(按班别查找);JButtonb13=newJButton(按专业查找);JLabella1=newJLabel(学生管理);JLabella2=newJLabel(成绩管理);JLabella3=newJLabel(学生查找);JButtonb1=newJButton(单科排名);JButtonb2=newJButton(总分排名);JButtonb3=newJButton(合格学生);JButtonb4=newJButton(挂科学生);JMenuItemitems=newJMenuItem4;JMenuBarbar=newJMenuBar();JMenum1=newJMen

18、u(开始);JMenum2=newJMenu(学生管理);JMenum3=newJMenu(学生查找);JMenum4=newJMenu(成绩管理);/构造方法publicFunction()setTitle(学生成绩管理系统);/设计菜单栏items0=newJMenuItem2;items1=newJMenuItem4;items2=newJMenuItem4;items3=newJMenuItem4;m1.add(items00=newJMenuItem(返回);m1.add(items01=newJMenuItem(退出);m2.add(items10=newJMenuItem(增加学

19、生);m2.add(items11=newJMenuItem(删除学生);m2.add(items12=newJMenuItem(修改学生);m2.add(items13=newJMenuItem(单个查询);m3.add(items20=newJMenuItem(查看全体);m3.add(items21=newJMenuItem(按年级查找);m3.add(items22=newJMenuItem(按班别查找);m3.add(items23=newJMenuItem(按专业查找);m4.add(items30=newJMenuItem(单科排名);m4.add(items31=newJMen

20、uItem(总分排名);m4.add(items32=newJMenuItem(合格学生);m4.add(items33=newJMenuItem(挂科学生);bar.add(m1);bar.add(m2);bar.add(m3);bar.add(m4);/设计布局getContentPane().setLayout(newGridLayout(7,1);getContentPane().add(bar);getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p6);getContentPane().add

21、(p3);getContentPane().add(p4);getContentPane().add(p5);p1.add(la1);p2.add(add);p2.add(del);p2.add(update);p2.add(single);p6.add(la3);p3.add(look);p3.add(b11);p3.add(b12);p3.add(b13);p4.add(la2);p5.add(b1);p5.add(b2);p5.add(b3);p5.add(b4);setBounds(500, 250, 100, 100);pack();setVisible(true);/注册监听器ad

22、d.addActionListener(this);del.addActionListener(this);update.addActionListener(this);look.addActionListener(this);single.addActionListener(this);b11.addActionListener(this);b12.addActionListener(this);b13.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListe

23、ner(this);b4.addActionListener(this);items00.addActionListener(this);items01.addActionListener(this);items10.addActionListener(this);items11.addActionListener(this);items12.addActionListener(this);items13.addActionListener(this);items20.addActionListener(this);items21.addActionListener(this);items22

24、.addActionListener(this);items23.addActionListener(this);items30.addActionListener(this);items31.addActionListener(this);items32.addActionListener(this);items33.addActionListener(this);/按钮事件响应,对用对应的类对象publicvoidactionPerformed(ActionEvent e) if(e.getActionCommand()=增加学生)AddStudentaddStudent=newAddSt

25、udent();elseif(e.getActionCommand()=删除学生)DeleteStudentdelStudent=newDeleteStudent();elseif(e.getActionCommand()=修改学生)UpdateStudentdelStudent=newUpdateStudent();elseif(e.getActionCommand()=单个查询)IndexSingleis=newIndexSingle();elseif(e.getActionCommand()=查看全体)LookAllStudentslook=newLookAllStudents();el

26、seif(e.getActionCommand()=按年级查找)IndexOfGradeig=newIndexOfGrade();elseif(e.getActionCommand()=按班别查找)IndexOfClassic=newIndexOfClass();elseif(e.getActionCommand()=按专业查找)IndexOfMajorim=newIndexOfMajor();elseif(e.getActionCommand()=单科排名)SubjectScoreRankingsubject=newSubjectScoreRanking();elseif(e.getActi

27、onCommand()=总分排名)TotalScoreRankingsubject=newTotalScoreRanking();elseif(e.getActionCommand()=合格学生)PassStudentspass=newPassStudents();elseif(e.getActionCommand()=挂科学生)NotPassStudentsnotPass=newNotPassStudents();elseif(e.getActionCommand()=返回)setVisible(false);Login login=newLogin();login.setDefaultCl

28、oseOperation(JFrame.EXIT_ON_CLOSE);elseif(e.getActionCommand()=退出)System.exit(0);importjava.awt.GridLayout;importjava.awt.event.*;importjavax.swing.*;publicclassStudentEditextendsJFrameJPanelp1=newJPanel();JPanelp2=newJPanel();JPanelp3=newJPanel();JPanelp4=newJPanel();JPanelp5=newJPanel();JPanelp6=n

29、ewJPanel();JPanelp7=newJPanel();JPanelp8=newJPanel();JPanelp9=newJPanel();JPanelp10=newJPanel();JPanelp11=newJPanel();JPanelp12=newJPanel();JLabella1=newJLabel(学号);JLabella2=newJLabel(姓名);JLabella3=newJLabel(性别);JLabella4=newJLabel(生日);JLabella5=newJLabel(年级);JLabella6=newJLabel(班别);JLabella7=newJLa

30、bel(语文);JLabella8=newJLabel(英语);JLabella9=newJLabel(数学);JLabella10=newJLabel(专业);JButtonb1=newJButton(确定);JButtonb2=newJButton(取消);JTextFieldnum=newJTextField(10);JTextFieldname=newJTextField(10);JTextFieldchinese=newJTextField(10);JTextFieldenglish=newJTextField(10);JTextFieldmaths=newJTextField(10

31、);JTextFieldbirth=newJTextField(10);Stringsex=,男,女;JComboBoxs=newJComboBox(sex);Stringgrades=,2010,2011,2012,2013;JComboBoxgrade=newJComboBox(grades);Stringclasses=,1,2,3,4,5,6;JComboBoxclas=newJComboBox(classes);Stringmajors=,网络工程,软件工程,信息工程,计算机科学;JComboBoxmajor=newJComboBox(majors);publicStudentEdi

32、t()p1.add(la1);p1.add(num);p2.add(la2);p2.add(name);p3.add(la3);p3.add(s);p4.add(la4);p4.add(birth);p5.add(la5);p5.add(grade);p6.add(la6);p6.add(clas);p7.add(la7);p7.add(chinese);p8.add(la8);p8.add(english);p9.add(la9);p9.add(maths);p10.add(la10);p10.add(major);p11.add(b1);p11.add(b2);/设计布局getConten

33、tPane().setLayout(newGridLayout(6,2);getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p3);getContentPane().add(p4);getContentPane().add(p5);getContentPane().add(p6);getContentPane().add(p7);getContentPane().add(p8);getContentPane().add(p9);getContentPane().add(p10);getContentPa

34、ne().add(p11);getContentPane().add(p12);setBounds(500, 250, 100, 100);pack();setVisible(true);import java.awt.event.*;import java.sql.*;import javax.swing.JOptionPane;public class AddStudent extends StudentEdit implements ActionListenerpublic AddStudent()super();b1.addActionListener(this);b2.addActi

35、onListener(this);public void actionPerformed(ActionEvent e) if(e.getActionCommand()=确定)/计算总分/调用字符串转换浮点数方法float total=Float.parseFloat(chinese.getText()+Float.parseFloat(english.getText()+Float.parseFloat(maths.getText();try/建立数据库连接Connection con=DataBaseCreate.getConnection();Statement sql=con.creat

36、eStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);/添加数据到数据库sql.executeUpdate(insert into student(Num,Name,Sex,Grade,Class,Major,Birth,Chinese,English,Maths,Total) + values(+num.getText()+,+name.getText()+,+s.getSelectedItem()+,+grade.getSelectedItem()+,+clas.getSelectedItem()+,+

37、major.getSelectedItem()+,+birth.getText()+,+chinese.getText()+,+english.getText()+,+maths.getText()+,+total+);/关闭数据库连接sql.close();con.close();JOptionPane.showMessageDialog(null, 成功录入学生信息与成绩, Message,JOptionPane.INFORMATION_MESSAGE);setVisible(false);catch(java.lang.ClassNotFoundException err)/捕捉错误,以

38、对话框形式显示错误信息JOptionPane.showMessageDialog(null, err.getMessage(), ClassNotFoundException:,JOptionPane.INFORMATION_MESSAGE);catch (SQLException ex)JOptionPane.showMessageDialog(null, ex.getMessage(), SQLException: , JOptionPane.INFORMATION_MESSAGE);else if(e.getActionCommand()=取消)setVisible(false);imp

39、ortjava.awt.event.*;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.JButton;importjavax.swing.JOptionPane;publicclassDeleteStudentextendsStudentEditimplementsActionListener JButtonb3=newJButton(删除);publicDeleteStudent()super()

40、;p12.add(b3);/对非必要文本框设置不可编辑s.setEnabled(false);name.setEditable(false);birth.setEditable(false);grade.setEnabled(false);clas.setEnabled(false);chinese.setEditable(false);english.setEditable(false);maths.setEditable(false);major.setEnabled(false);b1.addActionListener(this);b2.addActionListener(this);

41、b3.addActionListener(this);OverridepublicvoidactionPerformed(ActionEvent e) /TODO自动生成的方法存根if(e.getActionCommand()=确定)String number=num.getText();if(number.equals()JOptionPane.showMessageDialog(null,不存在此学生,Messages,JOptionPane.INFORMATION_MESSAGE);elsetryConnection con=DataBaseCreate.getConnection();

42、Statement sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);/查找Num字段中与number相等的数据ResultSet rs=sql.executeQuery(select * from student where Num like %+number+%);if(rs.next()/显示到文本框s.setSelectedItem(rs.getString(Sex);name.setText(rs.getString(Name);birth.setText(rs.getString(Birth);chinese.setText(rs.getString(Chinese);english.setText(rs.getString(English);maths.setText(rs.getString(Mat

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁