成绩管理系统java+mySQL.docx

上传人:b****1 文档编号:13807117 上传时间:2023-06-17 格式:DOCX 页数:71 大小:908.86KB
下载 相关 举报
成绩管理系统java+mySQL.docx_第1页
第1页 / 共71页
成绩管理系统java+mySQL.docx_第2页
第2页 / 共71页
成绩管理系统java+mySQL.docx_第3页
第3页 / 共71页
成绩管理系统java+mySQL.docx_第4页
第4页 / 共71页
成绩管理系统java+mySQL.docx_第5页
第5页 / 共71页
成绩管理系统java+mySQL.docx_第6页
第6页 / 共71页
成绩管理系统java+mySQL.docx_第7页
第7页 / 共71页
成绩管理系统java+mySQL.docx_第8页
第8页 / 共71页
成绩管理系统java+mySQL.docx_第9页
第9页 / 共71页
成绩管理系统java+mySQL.docx_第10页
第10页 / 共71页
成绩管理系统java+mySQL.docx_第11页
第11页 / 共71页
成绩管理系统java+mySQL.docx_第12页
第12页 / 共71页
成绩管理系统java+mySQL.docx_第13页
第13页 / 共71页
成绩管理系统java+mySQL.docx_第14页
第14页 / 共71页
成绩管理系统java+mySQL.docx_第15页
第15页 / 共71页
成绩管理系统java+mySQL.docx_第16页
第16页 / 共71页
成绩管理系统java+mySQL.docx_第17页
第17页 / 共71页
成绩管理系统java+mySQL.docx_第18页
第18页 / 共71页
成绩管理系统java+mySQL.docx_第19页
第19页 / 共71页
成绩管理系统java+mySQL.docx_第20页
第20页 / 共71页
亲,该文档总共71页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

成绩管理系统java+mySQL.docx

《成绩管理系统java+mySQL.docx》由会员分享,可在线阅读,更多相关《成绩管理系统java+mySQL.docx(71页珍藏版)》请在冰点文库上搜索。

成绩管理系统java+mySQL.docx

成绩管理系统java+mySQL

《Java语言》课程期末作业

 

题目第9题:

学生成绩管理系统

学院计算机学院

专业

班别

学号

姓名温景钊

2013年6月10日

 

一、课程题目

设计一个简易的学生成绩管理系统。

用于记录学生的各科成绩,以及实现常用的统计功能。

(1)记录学生的基本信息,如姓名、学号、专业、班级等

(2)记录各科成绩

(3)实现常用的统计功能,如:

单科成绩排名、总分排名、统计成绩高于/低于某一临界值的学生、统计单科/总分平均值……

(4)使用图形方式显示某些数据,如直方图显示各分数段的人数、绘制各科分数分布曲线……(可选)

(5)必须使用数据库。

其它功能可自行扩展。

二、题目分析与设计

1.注明所使用的开发环境(Eclipse、NetBeans,JBuilder)。

开发环境:

Eclipse

2.论述题目的需求。

给出软件功能架构图。

题目需求:

通过数据库记录学生成绩和信息,并通过数据库读取这些信息,实现单个学生查找、全体学生查找等功能和单科排名、平均分、总分排名、平均分等功能。

其他扩展功能:

登录界面,保存到txt文件。

软件功能架构图:

其中,删除、修改、单个查找功能均通过学号定位学生

3.论述界面设计过程,指出其设计上的创意及组件的布局策略。

界面设计过程:

主要界面包括登录界面,主功能界面,各个子功能界面。

登录界面包括3个面板,每个面板放入相应的标签、文本框、按钮等组件,登录界面采用3行1列的网格布局;主功能界面包括菜单栏和若干面板,面板中放入标签或若干按钮,菜单栏的菜单项与按钮相对应,主功能界面采用7行1列的网格布局;学生管理类子功能(增加学生、删除学生、修改学生、单个查找)界面采用6行2列的网格布局,每个网格均放入一个面板,每个面板放入标签、文本框、组合框、按钮等组件,以达到较友好的界面效果;学生查找类子功能界面(查看全体、按年级查询、按班别查询、按专业查询)和成绩管理类子功能(单科排名、总分排名、合格学生、挂科学生)界面采用边界布局,界面的上部放入一个面板,面板放入相应的按钮或组合框,中部放入一个文本域。

所有错误信息等信息均通过对话框的形式显示相应信息。

4.论述程序逻辑的实现,包括类的设计、对象的协作过程等,必要时加以各种图形和表格辅助论述。

不得以粘贴代码的方式代替设计部分。

类的设计过程:

本程序包括19个类文件,每个类文件只含有一个类,分别是包含main方法的主类Main,实现登录功能的类Login,实现各种功能选择功能的类Function,实现数据库连接的类DataBaseCreate,实现学生信息编辑功能类StudentEdit,执行增加学生功能的类AddStudent,执行删除学生功能的类DeleteStudent,执行修改学生功能的类UpdateStudent,执行单个查询功能的类IndexOfSingle,(由于AddStudent,DeleteStudent,UpdateStudent,IndexOfSingle界面和操作基本相同,所以上4类均继承StudentEdit)实现条件查找和成绩管理功能的类IndexOrManage,执行查询全体功能的类LookAllStudents,执行按年级查询功能的类IndexOfGrade,执行按班别查询功能的类IndexOfClass,执行按专业查询的类IndexOfMajor,执行单科排名功能的类SubjectScoreRanking,执行总分排名功能的类TotalScoreRanking,执行查找单科及格学生功能的类PassStudents,执行查找单科不及格学生功能的类NotPassStudents,(由于LookAllStudents,IndexOfGrade,IndexOfClass,IndexOfMajor,SubjectScoreRanking,TotalScoreRanking,PassStudents,NotPassStudents,界面和操作基本相同,所以上8类均继承IndexOrManage)执行将文本域内容保存到TXT文件的类TxtSave。

以上19个类,除了Main类以外,均包含一个构造方法,有些还包含actionPerformed(e)方法。

对象的协作过程:

三、测试分析

小四字体,1.5倍行距。

对程序的测试情况作出分析。

至少包括但不限于需要具备以下内容:

1.阐述扩展包(仅限于SUN官方发布)的部署过程,并将扩展包附于光盘源程序中;给出数据库的详细配置说明。

导入扩展包

mysql-connector-java-5.1.25-bin.jar

数据库配置说明:

数据库mySQL

数据库服务器localhost

端口3306

用户名root

密码空

数据库名studentmanagement

Student表

2.典型测试数据的构建,并且给出测试数据的预计结果

原数据:

测试数据:

添加学生

10005张兰女20122信息工程19930506827458

删除学生10000

修改学生10001

李嘉女20114网络工程19920304548586.5

单个查找10003

查询全体

按年级查找2011级

按班别查找1班

按专业查找软件工程

单科排名并显示平均分语文

总分排名并显示平均分

单科及格学生英语

单科不及格学生语文

保存Txt总分

预测结果:

均成功完成操作

3.本程序的测试情况,与预计结果作对比

测试情况:

成功完成相关操作

添加学生

10005张兰女20122信息工程19930506827458

删除学生10000

修改学生10001

李嘉女20114网络工程19920304548586.5

单个查找1000320001

查询全体

按年级查找2011级

按班别查找1班

按专业查找软件工程

单科排名并显示平均分语文

总分排名并显示平均分

单科及格学生英语

单科不及格学生语文

 

保存Txt总分排名

 

附录:

源代码

小四字体,1.5倍行距。

只需列出程序中所有的包及相关的文件。

不需要打印源代码。

程序中所有的包及相关的文件:

代码:

importjavax.swing.JFrame;

publicclassMain{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

Loginlogin=newLogin();

login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

//登录界面

publicclassLoginextendsJFrameimplementsActionListener{

JButtonb1=newJButton("登录");

JButtonb2=newJButton("退出");

JLabella1=newJLabel("用户名");

JLabella2=newJLabel("密码");

JPanelp1=newJPanel();

JPanelp2=newJPanel();

JPanelp3=newJPanel();

JTextFieldname=newJTextField(15);

JPasswordFieldpw=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);

pw.setEchoChar('*');

b1.addActionListener(this);

b2.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente){

if(e.getActionCommand()=="登录"){

Stringpassword=pw.getText();

Stringuser=name.getText();

if(user.equals("admin")&&password.equals("admin")){

Functionfunction=newFunction();

function.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(false);

}

else{

JOptionPane.showMessageDialog(null,"用户名或密码错误","Error",JOptionPane.INFORMATION_MESSAGE);

}

}

elseif(e.getActionCommand()=="退出"){

System.exit(0);

}

}

}

importjava.sql.*;

//连接数据库类

publicclassDataBaseCreate{

//连接数据库静态方法,若产生错误,则抛出相应错误信息

publicstaticConnectiongetConnection()throwsSQLException,java.lang.ClassNotFoundException{

//建立本地数据库连接,编码规则转换为utf-8(正常录入中文)

Stringurl="jdbc:

mysql:

//localhost:

3306/studentmanagement?

useUnicode=true&characterEncoding=utf8";

Class.forName("com.mysql.jdbc.Driver");

StringuserName="root";

Connectioncon=DriverManager.getConnection(url,userName,"");

returncon;

}

}

importjavax.swing.JFrame;

publicclassMain{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

Loginlogin=newLogin();

login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

 

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

//主要功能界面

publicclassFunctionextendsJFrameimplementsActionListener{

JPanelp1=newJPanel();

JPanelp2=newJPanel();

JPanelp6=newJPanel();

JPanelp3=newJPanel();

JPanelp4=newJPanel();

JPanelp5=newJPanel();

JButtonadd=newJButton("增加学生");

JButtondel=newJButton("删除学生");

JButtonupdate=newJButton("修改学生");

JButtonsingle=newJButton("单个查询");

JButtonlook=newJButton("查看全体");

JButtonb11=newJButton("按年级查找");

JButtonb12=newJButton("按班别查找");

JButtonb13=newJButton("按专业查找");

JLabella1=newJLabel("学生管理");

JLabella2=newJLabel("成绩管理");

JLabella3=newJLabel("学生查找");

JButtonb1=newJButton("单科排名");

JButtonb2=newJButton("总分排名");

JButtonb3=newJButton("合格学生");

JButtonb4=newJButton("挂科学生");

JMenuItemitems[][]=newJMenuItem[4][];

JMenuBarbar=newJMenuBar();

JMenum1=newJMenu("开始");

JMenum2=newJMenu("学生管理");

JMenum3=newJMenu("学生查找");

JMenum4=newJMenu("成绩管理");

 

//构造方法

publicFunction(){

setTitle("学生成绩管理系统");

//设计菜单栏

items[0]=newJMenuItem[2];

items[1]=newJMenuItem[4];

items[2]=newJMenuItem[4];

items[3]=newJMenuItem[4];

m1.add(items[0][0]=newJMenuItem("返回"));

m1.add(items[0][1]=newJMenuItem("退出"));

m2.add(items[1][0]=newJMenuItem("增加学生"));

m2.add(items[1][1]=newJMenuItem("删除学生"));

m2.add(items[1][2]=newJMenuItem("修改学生"));

m2.add(items[1][3]=newJMenuItem("单个查询"));

m3.add(items[2][0]=newJMenuItem("查看全体"));

m3.add(items[2][1]=newJMenuItem("按年级查找"));

m3.add(items[2][2]=newJMenuItem("按班别查找"));

m3.add(items[2][3]=newJMenuItem("按专业查找"));

m4.add(items[3][0]=newJMenuItem("单科排名"));

m4.add(items[3][1]=newJMenuItem("总分排名"));

m4.add(items[3][2]=newJMenuItem("合格学生"));

m4.add(items[3][3]=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(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);

//注册监听器

add.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.addActionListener(this);

b4.addActionListener(this);

items[0][0].addActionListener(this);

items[0][1].addActionListener(this);

items[1][0].addActionListener(this);

items[1][1].addActionListener(this);

items[1][2].addActionListener(this);

items[1][3].addActionListener(this);

items[2][0].addActionListener(this);

items[2][1].addActionListener(this);

items[2][2].addActionListener(this);

items[2][3].addActionListener(this);

items[3][0].addActionListener(this);

items[3][1].addActionListener(this);

items[3][2].addActionListener(this);

items[3][3].addActionListener(this);

}

//按钮事件响应,对用对应的类对象

publicvoidactionPerformed(ActionEvente){

if(e.getActionCommand()=="增加学生"){

AddStudentaddStudent=newAddStudent();

}

elseif(e.getActionCommand()=="删除学生"){

DeleteStudentdelStudent=newDeleteStudent();

}

elseif(e.getActionCommand()=="修改学生"){

UpdateStudentdelStudent=newUpdateStudent();

}

elseif(e.getActionCommand()=="单个查询"){

IndexSingleis=newIndexSingle();

}

elseif(e.getActionCommand()=="查看全体"){

LookAllStudentslook=newLookAllStudents();

}

elseif(e.getActionCommand()=="按年级查找"){

IndexOfGradeig=newIndexOfGrade();

}

elseif(e.getActionCommand()=="按班别查找"){

IndexOfClassic=newIndexOfClass();

}

elseif(e.getActionCommand()=="按专业查找"){

IndexOfMajorim=newIndexOfMajor();

}

elseif(e.getActionCommand()=="单科排名"){

SubjectScoreRankingsubject=newSubjectScoreRanking();

}

elseif(e.getActionCommand()=="总分排名"){

TotalScoreRankingsubject=newTotalScoreRanking();

}

elseif(e.getActionCommand()=="合格学生"){

PassStudentspass=newPassStudents();

}

elseif(e.getActionCommand()=="挂科学生"){

NotPassStudentsnotPass=newNotPassStudents();

}

elseif(e.getActionCommand()=="返回"){

setVisible(false);

Loginlogin=newLogin();

login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

elseif(e.getActionCommand()=="退出"){

System.exi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2