学生成绩管理系统课程设计JAVA版.doc
《学生成绩管理系统课程设计JAVA版.doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计JAVA版.doc(13页珍藏版)》请在冰豆网上搜索。
课程设计报告
课程设计名称:
学生成绩管理系统
系:
三系
学生姓名:
*****
班级:
计算机(3)班
学号:
************
成绩:
指导教师:
****
开课时间:
2010-2011学年2学期
一.设计题目
学生成绩管理系统
二.主要内容
学生成绩管理系统从功能上划分可分为以下几大模块:
1.学生信息管理
学生信息管理模块:
设置学生基本信息,并可以对学生信息进行添加、修改、删除。
2.课程信息管理
课程信息管理:
设置课程号,课程名,任课教师等课程信息,并可以对课程信息进行添 加、修改、删除。
3.学生成绩管理
成绩信息管理模块:
设置成绩信息,并可以对成绩信息进行添加、修改、删除。
还可以用关键字查询并调出数据库里的学生基本成绩信息的修改、删除等。
输出查询的 学生成绩信息,并对学生成绩总分,平均分等进行统计。
三.具体要求
1.具有良好的系统性能,友好的用户界面
2.较高的处理效率,便于使用和维护
3.采用成熟的技术开发,是系统具有较高的技术水平和较长的生命周期
4.系统尽可能简化重复工作,提高工作效率简化数据查询、降低统计难度
四.进度安排
序号
内容
时间(天)
1
调试工具使用
0.5
2
概要设计
1
3
详细设计
2
4
调试分析
0.5
5
测试结果
1
6
总结和完成设计报告
2
合计
7
五.成绩评定
正文
1、系统的需求分析和功能设计
需求分析:
该学生成绩管理系统的开发是为了能够让用户方便、快速的查找有关于一些学生的基本信息。
同时该学生成绩管理系统的建立也要要求能够节约用户时间和节约系统资源等。
该系统是由以下几部分组成:
系统管理、学生管理、课程管理、成绩管理和信息管理。
在系统管理功能中有退出功能;学生成绩管理功能中有增加学生、修改学生和删除学生;课程管理功能中有增加课程、修改课程和删除课程;成绩管理功能中成绩增加和成绩修改;信息管理功能中学生信息查询、课程信息查询和成绩查询。
在查询功能中还有一些子功能。
功能设计:
1.系统功能结构
学生成绩管理系统分为3大功能模块,分别为:
学生信息管理、课程管理、成绩管理。
系统各个部分及其包括的具体功能模块如图1所示。
学生成绩管理系统
学生信息管理
课程信息管理
成绩信息管理
信息查询
学生信息修改
学生信息删除
课程信息添加
课程信息修改
课程信息删除
成绩信息添加
成绩信息修改
成绩信息删除
学生信息查询
课程信息查询
成绩信息查询
按学号查询
按姓名查询
按性别查询
按专业查询
按班级查询
按课程名查询
按任课老师查询
按科目查询
图1系统功能结构图
2.数据库设计
(1)数据库概念结构设计
局部E-R图
①学生实体图:
共有6中属性,包括学号、姓名、性别、出生日期、专业、籍贯等6种属性,如图2所示。
学生
学号
姓名
籍贯
专业
性别
出生日期
图2学生实体图
②课程实体图,课程信息实体共有3种属性,包括课程号,课程名,任课教师等3种属性,如图3所示。
课程
课程号
任课教师
课程名
图3课程实体图
成绩信息
学号
考试成绩
课程名
③成绩实体图,成绩信息实体共有3种属性,包括学生学号,课程名称,平考试成绩,成绩信息实体图如图4所示。
图4成绩信息实体图
系统E-R图如图5所示
1
1
n
n
学生
学号
姓名
籍贯
专业
出生日期
性别
课程信息
选课
课程名
课程号
任课教师
成绩信息
课程名
学号
成绩
考试
(2)数据库逻辑结构设计
本系统采用ACCESS数据库,各数据表结构如下:
①学生信息表:
如表1所示
表1学生信息表
②课程信息表:
如表2所示
表2课程信息表
③成绩信息表:
如表3所示
表3成绩信息表
2、源程序及注释
12
(1)增加学生代码中主要代码如下:
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==clearInfo)//设置清空按钮功能
{sNum.setText("");
sBirth.setText("");
sMajor.setText("");
sHome.setText("");
sName.setText("");
}
elseif(e.getSource()==addInfo)//设置增加按钮功能
{Stringxh=sNum.getText();
Stringxm=sName.getText();
Stringxb;
if(xb1.isSelected())//判断所选人的性别
xb="男";
else
xb="女";
Stringcsrq=sBirth.getText();
Stringzy=sMajor.getText();
Stringjg=sHome.getText();
if(xh.equals(""))
JOptionPane.showMessageDialog(this,"学号不能为空!
!
!
!
","操作提",JOptionPane.ERROR_MESSAGE);//创建学号不能为空提示信息框
elseif(xm.equals(""))
JOptionPane.showMessageDialog(this,"姓名不能为空!
!
!
!
","操作提示",JOptionPane.ERROR_MESSAGE);//创建姓名不能为空提示信息框
try//用来捕获异常
{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Stringurl="jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};DBQ=student.mdb"; //连接student数据库
Connectioncon=DriverManager.getConnection(url);//建立连接
Statementstm=con.createStatement();//创建Statement对象
//创建添加学生sql语句
Stringstr="insertintoxs(xh,xm,xb,csrq,zy,jg)values('"+xh+"','"+xm+"','"+xb+"','"+csrq+"','"+zy+"','"+jg+"')";
intrs=stm.executeUpdate(sqlstr);//更新数据库记录
if(rs>0)//判断记录是否添加
{JOptionPane.showMessageDialog(this,"恭喜你,学生信息添加成功!
!
!
!
!
","提示",JOptionPane.INFORMATION_MESSAGE);//创建信息添加成功提示框
}
con.close();//关闭结果集
stm.close();//关闭语句
}
catch(ExceptionE)//用来处理异常
{
}
}
}
publicstaticvoidmain(Stringarg[])//创建主函数
{newStuInfo();//调用StuInfo()方法
}
}
(2).修改学生代码中主要部分代码如下:
publicvoidactionPerformed(ActionEventae)
{if(ae.getSource()==btnClear)//设置取消按钮功能
{sNum.setText("");
sNum.requestFocus();
}
elseif(ae.getSource()==btnOk)//设置确定按钮功能
{Stringxh=sNum.getText();
if(xh.equals(""))
JOptionPane.showMessageDialog(this,"学号不能为空!
","警告",JOptionPane.ERROR_MESSAGE);创建提示信息框
else
{StuInfonewst=newStuInfo();
newst.sNum.setText(xh);
newst.sNum.setEnabled(false);//把学号文本框禁用
newst.addInfo.setEnabled(false);//把增加按钮设置为禁用
newst.modifyInfo.setEnabled(true);//把修改按钮设置为可用
newst.deleteInfo.setEnabled(false);//把删除按钮设置为禁用
try
{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Stringurl="jdbc:
odbc:
driver={MicrosoftAccessDriver(*.mdb)};DBQ=student.mdb"; //连接student数据库
Connectioncon=DriverManager.getConnection(url);//建立连接
Statementstm=con.createStatement();//创建Statement对象
Stringsql="select*fromxswherexh='"+xh+"'";//按学号查询学生表中所有数据
ResultSetrs=stm.executeQuery(sql);//执行sql操作