学生成绩管理系统Word文档格式.docx
《学生成绩管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统Word文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
3.软件系统性能要求
为了满足用户的要求,系统必须要有高的运作速度,用户填写的信息输入到系统,系统必须能快速及时作出响应,迅速处理各项数据、信息,显示出所有必需信息,所以要求很高的信息量速度和大的主存容量;
由于要存贮大量的数据和信息,也还要有足够大的磁盘容量;
安全性也是系统最重要的性能需求之一,学生信息管理系统必须有可靠的安全措施,以保证用户的各项信息安全。
4.软件系统数据流图设计(由加工、数据流、文件、源点和终点四种元素组成)在需求分析的基础上确定系统的逻辑模型,画出系统的分层dfd图。
5.软件系统数据字典设计
在需求分析的基础上,结合系统数据流图,设计系统数据词典。
6.确定软件开发计划
按照系统的功能及性能要求,系统的作用范围等,确定软件系统的开发环境(操作系统、开发工具、程序设计语言等)。
三、实验内容
实验题目:
学生成绩管理系统的设计和实现
根据不同的权限,本系统实现的功能要求如下:
1)管理员,登陆,进入系统,可以进行管理员操作,进行查询,删除,修改,添加、打印等操作;
2)学生,登陆,进入系统,可以进行查询、修改、打印等操作;
3)教师,登陆,进入系统,可以进行查询、学生成绩录入、修改打印等操作;
4)界面美观,操作方便,系统具有一定的实用性。
四、实验步骤
4.1引言(背景,开发工具,前景)
1)开发背景:
在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有非常大的实际应用意义。
但是,我们看到,其实我们学校的学生成绩管理系统在很多方面做的并不是很完善,功能方面也有欠缺,用户界面不够直观。
项目任务提出者:
曹阳老师
项目开发者:
田二浪,谢永兵,许朝侠,杨军辉,孔祥东
用户:
管理员,老师和学生
2)软件开发工具:
MyEclipse8.5,visio软件,SQLServer2000,java语言,win7
4.2需求分析
1)问题定义
随着计算机技术的发展,特别是计算式网络技术和数据库技术的发展。
使人们的生活和工作方式都发生了很大的改观。
信息化是社会进程的必然标志,特别是电脑的大量普及,人们生活节奏越来越快,怎样提高工作效率是人们首先考虑的问题。
学校的教育和管理至关重要,然而学生成绩管理是一个非常繁琐与复杂的一项工作,其中有一个主要原因就是工作量大,不好管理,效率低,经常导致错误的发生,数据信息丢失等等。
因此对于一个学校而言,更应该运用一些本地资源,提高管理的力度,这样不仅仅更利于学校的管理,同时也方便了学生和老师的学习和工作,我们能够通过这个系统创造一个相互沟通的平台,并从中了解更多的动态信息。
2)用户需求
希望能管理方便,同一管理。
规范教学管理行为,从而提高了管理效率和水平。
学籍管理信息系统以计算机为工具,通过对教务管理所需的信息管理,通过对教务管理所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。
该系统实现如下功能:
(1)学生使用自己的姓名和学号(密码)登陆后,可以进行信息、成绩查询,完成选课,同时还可以打印个人信息。
(2)老师可以进行方便的成绩录入,查询信息;
以及各种相关信息的更新,可以在系统允许的时间内进行学生成绩录入、修改、打印等操作。
从而让学校管理快、准、精的发挥其价值。
(3)管理员可以根据自己管理员号来登陆,进入系统。
可以进行学生信息、教师信息、课程信息的编辑、查询、删除、修改、添加。
3)环境需求
运行环境要求安装SQLServer2000
4)系统需求
足够的存储空间。
5)接口需求
数据库要求是SQLServer2000或是更低。
6)数据描述
4.3总体设计(层次结构图)
用户登录成功后,可以进入系统对学生进行查询,录入,修改,删除;
学生成绩管理系统总体框架:
4.4详细设计
数据库关系图
账户表
学生信息表
教师表
课程表
选课表
4.5实现
1)接口
packageapi;
importjava.util.List;
importdomain.*;
publicinterfaceIGradeManageDao{
//对给定学号的学生的课程成绩修改
voidupdateGrade(Stringsno,Stringcno,intgrade)throwsSTCRuntimeException;
//根据给定的学生号获得该学生所有所选的课程
List<
Grade>
getAllSelectCourse(Stringsno)throwsSTCRuntimeException;
//对给定学号和课程号的课程删除
voiddeleteSelectCourse(Stringsno,Stringcno)throwsSTCRuntimeException;
}
importjava.util.*;
publicinterfaceIGradeManageService{
publicinterfaceIStudentInfoManageDao{
//获得所有
Student>
getAllStudent()throwsSTCRuntimeException;
//查询
StudentsearchStudentInfo(StringSno)throwsSTCRuntimeException;
//添加
voidaddStudentInfo(Studentstudent)throwsSTCRuntimeException;
//修改
voidupdateStudentInfo(Studentstudent)throwsSTCRuntimeException;
//删除
voidremoveStudentInfo(StringSno)throwsSTCRuntimeException;
//判断学号是否已使用
booleanisUsed(StringSno)throwsSTCRuntimeException;
//获得给定系的所有学生
getStudentsOfDepart(Stringdepart)throwsSTCRuntimeException;
}
publicinterfaceIStudentInfoManageService{
//查询
voidinsertStudentInfo(Studentstudent)throwsSTCRuntimeException;
voiddeleteStudentInfo(StringSno)throwsSTCRuntimeException;
2)实例类
packagedomain;
publicclassCourse{
privateStringid;
privateStringname;
privateintcost;
publicCourse(Stringid,Stringname,intcost)
{
this.id=id;
this.name=name;
this.cost=cost;
publicStringgetId(){
returnid;
publicvoidsetId(Stringid){
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
publicintgetCost(){
returncost;
publicvoidsetCost(intcost){
@Override
publicinthashCode(){
finalintprime=31;
intresult=1;
result=prime*result+((id==null)?
0:
id.hashCode());
returnresult;
publicbooleanequals(Objectobj){
if(this==obj)
returntrue;
if(obj==null)
returnfalse;
if(getClass()!
=obj.getClass())
Courseother=(Course)obj;
if(id==null){
if(other.id!
=null)
returnfalse;
}elseif(!
id.equals(other.id))
returntrue;
importjava.sql.Connection;
importjava.sql.DriverManager;
publicclassDBhelper{
//创建数据库连接
publicstaticConnectiongetConnection(){
//注册驱动器
try{
Class.forName("
com.microsoft.sqlserver.jdbc.SQLServerDriver"
);
returnDriverManager.getConnection("
jdbc:
sqlserver:
//localhost;
DatabaseName=STC"
"
sa"
"
}catch(Exceptione){
thrownewRuntimeException(e.getMessage());
}
}
publicstaticvoidclose(Connectionconnection){
try{
if(connection!
=null&
&
!
connection.isClosed())
connection.close();
thrownewRuntimeException(e.getMessage());
}
}
packagedomain;
publicclassGrade{
privateStudentstudent;
privateCoursecourse;
privateintscore;
publicGrade(){}
publicGrade(Studentstudent,Coursecourse,intscore)
{
this.student=student;
this.course=course;
this.score=score;
publicStudentgetStudent(){
returnstudent;
publicvoidsetStudent(Studentstudent){
publicCoursegetCourse(){
returncourse;
publicvoidsetCourse(Coursecourse){
publicintgetScore(){
returnscore;
publicvoidsetScore(intscore){
publicclassSTCRuntimeExceptionextendsRuntimeException{
publicSTCRuntimeException(){}
publicSTCRuntimeException(Stringmessage)
super(message);
publicclassStudent{
privateStringSno;
privateStringSname;
privateintSage;
privateStringSsex;
privateStringSdepartment;
publicStudent(Stringsno,Stringsname,intsage,Stringssex,
Stringsdepartment){
this.Sno=sno;
this.Sname=sname;
this.Sage=sage;
this.Ssex=ssex;
this.Sdepartment=sdepartment;
}
publicStudent(StringSno,StringSname)
this.Sno=Sno;
this.Sname=Sname;
publicStringgetSno(){
returnSno;
publicvoidsetSno(Stringsno){
Sno=sno;
publicStringgetSname(){
returnSname;
publicvoidsetSname(Stringsname){
Sname=sname;
publicintgetSage(){
returnSage;
publicvoidsetSage(intsage){
Sage=sage;
publicStringgetSsex(){
returnSsex;
publicvoidsetSsex(Stringssex){
Ssex=ssex;
publicStringgetSdepartment(){
returnSdepartment;
publicvoidsetSdepartment(Stringsdepartment){
Sdepartment=sdepartment;
result=prime*result+((Sno==null)?
Sno.hashCode());
Studentother=(Student)obj;
if(Sno==null){
if(other.Sno!
Sno.equals(other.Sno))
publicStringtoString(){
return"
Student[Sage="
+Sage+"
Sdepartment="
+Sdepartment
+"
Sname="
+Sname+"
Sno="
+Sno+"
Ssex="
+Ssex+"
]"
;
3)实现接口类
packagedao;
importjava.util.ArrayList;
importjava.sql.*;
importapi.IStudentInfoManageDao;
publicclassStudentInfoManageDaoimplementsIStudentInfoManageDao{
publicvoidaddStudentInfo(Studentstudent)throwsSTCRuntimeException{
Connectionconnection=null;
try{
connection=DBhelper.getConnection();
Stringsql="
insertintostudent(sno,sname,sage,sex,sept)values(?
?
)"
PreparedStatementstatement=connection.prepareStatement(sql);
statement.setString(1,student.getSno());
statement.setString(2,student.getSname());
statement.setInt(3,student.getSage());
statement.setString(4,student.getSsex());
statement.setString(5,student.getSdepartment());
statement.executeUpdate();
connection.close();
}catch(Exceptione){
thrownewSTCRuntimeException("
向学生表插入学生数据时出错!
"
}finally{
DBhelper.close(connection);
publicvoidremoveStudentInfo(StringSno)throwsSTC