学生成绩数管理系统.docx
《学生成绩数管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩数管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
![学生成绩数管理系统.docx](https://file1.bdocx.com/fileroot1/2022-11/30/44ba8efe-a451-41eb-b26c-b49954f2469e/44ba8efe-a451-41eb-b26c-b49954f2469e1.gif)
学生成绩数管理系统
东华大学
课程设计报告
课程名称《面向对象程序设计》课程设计
设计题目学生成绩管理系统
专业计算机科学与技术
班级
学号
姓名
完成日期2013.1.10
课程设计任务书
设计题目:
学生成绩管理系统
设计内容与要求:
建立学生成绩数管理系统,数据信息文本文件存储,也可以采用数据库存储。
(1)学生信息按照行政班级组织;
(2)提供学生成绩的查询功能,输入学生的学号或姓名,能查找出该生各学期各门课程的成绩。
(3)能对成绩数据进行添加、删除、修改等基本操作,并能进行一般的统计计算(如计算学生的总分和平均分,课程的平均分等)
(4)其它辅助管理功能,如统计具有各等级奖学金资格的人数。
(5)用户权限控制,一般用户只能查询,管理员用户可以修改数据库的内容。
(6)根据以上功能,设计数据结构和WindowsUI界面,完成程序设计。
指导教师:
2013年1月10日
课程设计评语
成绩:
指导教师:
_______________
年月日
目录
第1章项目概要1
1.1功能描述1
1.2开发环境与关键技术1
1.3开发进度计划2
第2章总体设计3
2.1系统结构与模块功能3
2.2数据库逻辑级设计3
第3章详细设计与实现5
3.1界面效果图5
第4章测试12
4.1基础信息设置测试12
总结15
参考文献16
第1章项目概要
1.1功能描述
学生成绩管理系统主要包括管理员管理、教师管理、学生管理等三个功能模块。
1管理员管理系统
管理员管理系统包括课程信息管理、教师信息管理、学生信息管理、学生成绩统计、奖学金获得情况等功能。
(1)课程信息管理包括对课程信息的添加、删除、修改等操作。
(2)学生信息管理包括对学生信息的添加、删除、修改等操作。
(3)学生成绩统计包括对学生总分和平均分,课程的平均分等计算操作。
(4)奖学金获得情况主要是实现统计具有各等级奖学金资格的人数。
2教师管理系统
教师管理系统包括查询学生名单、录入成绩等功能。
(1)查询学生名单就是查询学习所教课程的学生信息。
(2)录入成绩就是为所学的这门课的学生录入成绩,同时能够对成绩进行修改操作。
3学生管理系统
学生管理系统包括查询学生成绩、选修课程、网上评教等功能。
(1)查询学生成绩功能实现查询所学课程的全部成绩。
(2)选修课程功能可以实现对课程的选修操作。
(3)网上评教功能可以对老师所教的课程进行评教。
1.2开发环境与关键技术
1开发环境
OS:
MicrosoftWindowsXPSP2
开发环境:
MicrosoftVisual Studio2010
其它软件:
Office、MSDNLibrary
2关键技术
面向对象分析与设计
数据库编程
1.3开发进度计划
表1-1预计开发时间
时间(工作日)
阶段
成果
1
项目计划与需求分析
需求描述及用例图(或数据流图)
1
概要设计与详细设计
系统模块结构图、程序流程图
2
编码与测试2天
源程序、测试用例
1
项目总结与答辩
课程设计报告
第2章总体设计
2.1系统结构与模块功能
系统包含三个模块:
1管理员管理模块。
包括2个子模块:
(1)课程信息管理;
(2)学生信息管理。
2.教师管理模块。
包括2个子模块:
(1)查询学生名单;
(2)录入成绩。
3.学生管理模块。
包括3个子模块:
(1)查询成绩;
(2)选修课程;(3)网上评教。
系统的模块图如图2-1所示:
图2-1系统结构图
2.2数据库逻辑级设计
根据数据需求分析,可以为5类对象:
学生信息、课程信息、教师信息、选课、评教分别设计5个基本数据表,如表2-1至2-5所示。
表2-1学生信息表
字段名
字段描述
类型
可否为空
备注
sno
学号
Nvarchar(50)
否
主键
sname
姓名
Nvarchar(50)
否
ssex
性别
Nvarchar(50)
否
ssage
年龄
Smallint
否
classnum
班号
Nvarchar(50)
否
scholarship
奖学金情况
Nvarchar(50)
可
表2-2课程信息表
字段名
字段描述
类型
可否为空
备注
cno
课程号
Nvarchar(50)
否
主键
cname
课程名
Nvarchar(50)
否
ccreat
学分
smallint
否
ctime
课时
Nvarchar(50)
否
nature
课程性质
Nvarchar(50)
否
表2-3选课表
字段名
字段描述
类型
可否为空
备注
cno
课程号
Nvarchar(50)
否
cno和sno都是成绩表的外键,(cno,sno,semester)作主键
sno
学号
Nvarchar(50)
否
grade
成绩
smallint
可
technum
教师编号
Nvarchar(50)
否
semester
学期
Nvarchar(50)
否
表2-4教师信息表
字段名
字段描述
类型
可否为空
备注
technum
教师工号
Nvarchar(50)
否
主键
technam
姓名
Nvarchar(50)
否
cno
课程号
Nvarchar(50)
否
表2-5评教表
字段名
字段描述
类型
可否为空
备注
cno
课程号
Nvarchar(50)
否
cno和sno都是评教表的外键,(cno,sno)作主键
sno
学号
Nvarchar(50)
否
score
成绩
smallint
可
technum
教师编号
Nvarchar(50)
否
第3章详细设计与实现
开发系统的要求来自对传统管理模式的不满,不管是手工系统还是正在运行的计算机系统。
由于存在的问题充斥各个方面,内容分散,甚至含糊不清,这就要求作者进行详细分析,并在原管理模式的基础上提出系统开发方案。
3.1界面效果图
1.登录界面如图3-4所示。
操作员在进入系统时是需要通过密码验证,方可进入系统主界面。
图3-1学生成绩管理系统登录界面
代码如下:
if((string)comboBox1.SelectedItem=="教师")
{
SqlConnectioncon=newSqlConnection();
con.ConnectionString="server=.;database=studentsystem;Integratedsecurity=true";
con.Open();
SqlCommandcom=newSqlCommand("select用户名,注册密码fromtechregister",con);
SqlDataReaderdt=com.ExecuteReader();
while(dt.Read())
{
if(Equals(textuser.Text,dt["用户名"].ToString().Trim())&&Equals(paswd.Text.Trim(),dt["注册密码"].ToString().Trim()))
{
MessageBox.Show("登录成功!
");
TechFormtechform=newTechForm();
techform.Struse=getuser();
DialogResultdialogresult=techform.ShowDialog();
break;
}
}
while(dt.Read())
{
if(Equals(textuser.Text,dt[0].ToString().Trim())&&Equals(paswd.Text,dt[1].ToString().Trim()))
{
MessageBox.Show("登录成功!
");
paswd.Clear();
this.Hide();
struser=this.textuser.Text;
Stuformstuform=newStuform();
stuform.strsno=this.textuser.Text;
DialogResultdialogresult=stuform.ShowDialog();
break;
}
}
this.Show();
图3-2管理员管理流程图
学生信息管理代码和课程信息管理代码类似。
学生成绩统计和奖学金获得情况也就不一一列举了。
3教师管理主界面如图3-6所示。
图3-3教师管理主界面
教师管理代码如下:
privatevoidtoolStripMenuItem1_Click(objectsender,EventArgse)
{
CheckFormcheckform=newCheckForm();
checkform.Strtec=this.Struse;
checkform.MdiParent=this;
checkform.Show();
}
privatevoidtoolStripMenuItem2_Click(objectsender,EventArgse)
{
LogFormlogform=newLogForm();
logform.Struse=this.Struse;
logform.MdiParent=this;
logform.Show();
}
录入成绩代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
Form1gainuser=newForm1();
stringstrtechnum=gainuser.Struser;
strtechnum=this.Struse;
stringstrcno=texcno.Text.Trim();
SqlConnectioncon=newSqlConnection();
con.ConnectionString="server=.;database=studentsystem;Integratedsecurity=true";
con.Open();
SqlCommandcom=newSqlCommand("select*fromsmcoursewheretechnum='"+strtechnum+"'andcno='"+strcno+"'",con);
SqlDataReaderda=com.ExecuteReader();
dgviewinitial();
while(da.Read())
{
introwIndex=dgviewlog.Rows.Add();
dgviewlog.Rows[rowIndex].Cells["cno"].Value=da["cno"].ToString().Trim();
dgviewlog.Rows[rowIndex].Cells["sno"].Value=da["sno"].ToString().Trim();
dgviewlog.Rows[rowIndex].Cells["grade"].Value=da["grade"].ToString().Trim();
dgviewlog.Rows[rowIndex].Cells["technum"].Value=da["technum"].ToString().Trim();
}
dgviewlog.Focus();
introwindex=dgviewlog.CurrentRow.Index;
if(dgviewlog.Rows[rowindex].Cells["cno"].Value==null)
{
MessageBox.Show("没有此课程,请重新输入");
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
introwIndex=dgviewlog.CurrentRow.Index;
DataGridViewRowrowObj=dgviewlog.Rows[rowIndex];
if((string)rowObj.Cells["grade"].Value!
="")
{
MessageBox.Show("成绩已经录入,不要重复录入");
}
else
{
rowObj.Cells["grade"].Value=texgra.Text;
SqlConnectioncon=newSqlConnection();
con.ConnectionString="server=.;database=studentsystem;Integratedsecurity=true";
con.Open();
SqlCommandcom=newSqlCommand();
com.CommandText="updatesmcourseset"
+"grade='"+texgra.Text+"'"
+"wheresno='"+rowObj.Cells["sno"].Value+"'andcno='"+rowObj.Cells["cno"].Value+"'";
com.Connection=con;
intintemp=com.ExecuteNonQuery();
if(intemp==1)
{
MessageBox.Show("录入成功");
}
}
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
SqlConnectioncon=newSqlConnection();
con.ConnectionString="server=.;database=studentsystem;Integratedsecurity=true";
con.Open();
SqlCommandcom=newSqlCommand();
com.CommandText="Updatesmcourseset"
+"grade='"+texgra.Text+"'"
+"wheresno='"+rowObj.Cells["sno"].Value+"'andcno='"+rowObj.Cells["cno"].Value+"'";
com.Connection=con;
intintemp=com.ExecuteNonQuery();
if(intemp==1)
{
MessageBox.Show("修改成功");
}
}
}
图3-4教师管理流程图
4学生管理主界面如图3-5所示。
图3-5学生管理主界面
}
图3-6学生管理流程图
第4章测试
4.1基础信息设置测试
对每一个系统功能设计若干测试用例,
表4-1登录界面测试
用例编号
TC01
测试点
登录系统
步骤
(1)进入用户登录界面;
(2)选择不同用户,例如:
管理员
(2)在选择菜单里选择“刘振”,密码:
123;(如果密码错误,会有密码错误的提示,然后重新输入)
(3)回车或者点击确定。
预期结果
通过身份验证,进入管理员管理系统主界面。
实际结果
如图3-5所示(与预期结果相同)
备注
实现系统登录功能。
表4-2学生信息管理测试
用例编号
TC02
测试点
学生信息管理系统
步骤
(1)选择课程信息管理;
(2)测试
预期结果
能够对学生信息进行添加、删除、修改等操作。
实际结果
如图4-1所示(与预期结果相同)
备注
图4-1学生信息管理图
学生信息管理和课程信息管理类似。
表4-2学生成绩统计测试
用例编号
TC03
测试点
学生成绩统计
步骤
(3)选择学生成绩统计;
(4)测试
预期结果
能够计算机学生的总分和平均分。
实际结果
如图4-2所示(与预期结果相同)
备注
图4-2学生成绩统计图
表4-3查询学生名单测试
用例编号
TC04
测试点
查询学生名单
步骤
(5)选择查询学生名单;
(6)测试
预期结果
能够查询到所教授学生的信息
实际结果
如图4-3所示(与预期结果相同)
备注
图4-3查询学生名单图
表4-4网上评教测试
用例编号
TC05
测试点
网上评教
步骤
(7)选择网上评教;
(8)测试
预期结果
能够对教师所教的课程进行评教
实际结果
如图4-4所示(与预期结果相同)
备注
图4-4网上评教图
总结
这次课设,所做的学生成绩管理系统主要实现管理员管理课程信息、学生信息、统计学生成绩、统计各等级奖学金情况,教师查询所教课程的学生信息、录入成绩,学生查询各科成绩、选修课程和网上评教等功能。
这次课设中,每个人都有自己的分工,我所主要负责的是教师所有相关功能实现,其中包括:
查询所教学生的所有信息,对学生成绩的录入以及修改。
但是,我做的还不是很完善,并且离实用性的学生成绩管理系统还有很大的差距。
通过这次课设,我对项目的设计和分析有了一个比较清晰的认识和理解,由于时间关系程序中还有许多需要优化的地方。
通过这次课设,我认为我在做项目方面的能力,提高的不是很多,但是提高比较明显的就是对模块化的设计方法有了更深刻的理解。
在这一个星期的课程设计中,有了很大的收获,例如:
认真上好专业实验课,多在实践中锻炼自己;写程序的过程中要考虑周到,严密;在做设计的时候要有信心,有耐心,切勿浮躁;认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
参考文献
[1]王珊.数据仓库技术与联机分析处理[M].北京:
北京科学出版社,2005
[2]InmonWH.数据仓库[M].北京:
机械工业出版社,2008
[3]KimballR.数据仓库管理[M].北京:
电子工业出版社,2007
[4]ImhoffC.数据仓库工具箱[M].北京:
电子工业出版社,2009
[5]ImhoffC.数据仓库设计[M].北京:
机械工业出版社,2006
[6]MattisonR.Web仓库工程与知识管理[M].北京:
清华大学出版社,2005
[7]BainT.SQLServe2000数据仓库与AnalysisServices[D].北京:
中国电力出版社,2005
[8]郑宇军.C#语言程序设计基础[D].北京:
清华大学出版社,2008
[9]郑宇军.SQLServer2005+VisualC#2005专业开发精解[D].北京:
清华大学出版社,2007
[10]郑人杰.软件工程[D].北京:
清华大学出版社,2005