学生综合测评信息系统的设计与开发.docx
《学生综合测评信息系统的设计与开发.docx》由会员分享,可在线阅读,更多相关《学生综合测评信息系统的设计与开发.docx(17页珍藏版)》请在冰豆网上搜索。
学生综合测评信息系统的设计与开发
1
2
3
4
课程设计题目
学生综合测评信息系统
课程设计目的
管理信息系统与实践课程设计是计算机科学与技术、软件工程专业实践教学的一个重要环节,其目的是巩固和综合应用所学的理论知识,培养分析、设计和解决实际问题的能力,加强创新素质教育。
课程设计要求
1采用结构化生命周期方法,遵循系统开发的主要步骤,进行需求分析、概要设计、详细设计、代码设计、系统调试、文档编写。
也可采用面向对象的软件开发方法,进行分析和设计,比如:
利用对象建模技术OMT,给出系统的静态模型、动态模型和功能模型。
2提交运行代码、程序源码、软件文档(包括需求分析、系统设计、数据流程图、程序流程图、操作手册等)。
课程设计报告内容
4.1系统主要功能
4.1.1功能描述
.软件的假想用户为院学工办。
.软件有用户管理维护功能。
.基础数据(班级、学生等)维护功能。
.软件能按班级完成学生德、智、体成绩的录入、查询、统计、排序等功能。
.软件能按专业进行各门课程成绩的统计、排序。
.软件能根据《大学生手册》的有关算法进行综合测评。
.软件能根据综合测评结果按专业、班级进行统计、排序。
.软件能根据相关要求,给出各项奖学金评定的建议名单。
其中奖学金评定要求可以由用户自定义。
.软件能自动输出各类报表。
4.1.2系统功能结构图
用
户
管
理
用
户
信
息
维
护
学生综合测评信息系统
4.2
系统数据结构清单表4.1用户信息表
字段名称
数据类型
长度
yonghuhao
文本
10
yonghuming
文本
15
kouling
文本
20
表4.2班级信息表
字段名称
数据类型
长度
classID
文本
15
speciality
文本
25
className
文本
25
shortName
文本
25
number
文本
10
teacher
文本
20
表4.3学生信息表
字段名称
数据类型
长度
SID
文本
15
SName
文本
20
SSex
文本
2
Sspeciality
文本
25
Sclass
文本
25
Sdeyu
文本
10
Szhiyu
文本
10
Stiyu
文本
10
Sscore
文本
10
表4.4教师信息表
字段名称
数据类型
长度
teacherID
文本
15
teacherName
文本
20
memo
文本
30
4.3系统代码实现4.3.1系统主窗体
图表1
在主窗体自动调用登录窗体
void__fastcallTMainForm:
:
FormShow(TObject*Sender)
{
loginok=false;
Fm_login->ShowModal();
if(!
loginok)
Close();
}
在主窗体调用其它窗体(例:
用户信息维护功能窗体)void__fastcallTMainForm:
:
N3Click(TObject*Sender)
{
Fm_yhxxwh->Show();
}
4.3.2用户信息维护功能
图表2
void__fastcallTFm_yhxxwh:
:
bt_okClick(TObject*Sender)
{
ADOQuery1->Append();
}
void__fastcallTFm_yhxxwh:
:
FormShow(TObject*Sender)
{
AnsiStringS="";
S="select*fromyonghubiaowhereyonghuhaolike'"+DBEdit1->Text+"'";ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(S);
ADOQuery1->Open();
}
4.3.3班级信息维护功能
图表3
设置条件的查询功能
void__fastcallTFm_bjxxwh:
:
bt_searchClick(TObject*Sender)
{
AnsiStringS;
if(Edit1->Text!
="")
S="specialitylike'%"+Edit1->Text+"%'";
if(Edit2->Text!
="")
if(S!
="")
S=S+"andclassNamelike'%"+Edit2->Text+"%'";else
S="classNamelike'%"+Edit2->Text+"%'";
if(Edit3->Text!
="")
if(S!
="")
S=S+"andteacherlike'%"+Edit3->Text+"%'";
else
S="teacherlike'%"+Edit3->Text+"%'";
if(S!
="")
S="select*fromclasswhere"+S+"orderbyclassID";else
S="select*fromclassorderbyclassID";classQuery->Close();
classQuery->SQL->Clear();
classQuery->SQL->Add(S);
classQuery->Open();
}
4.3.4学生信息维护功能
图表4
下拉选项内容的实现代码(例专业选项)
S="selectdistinctspecialityfromclass";
sQuery->Close();
sQuery->SQL->Clear();
sQuery->SQL->Add(S);
sQuery->Open();
DBEdit4->Items->Clear();
if(!
sQuery->IsEmpty())
{
while(!
sQuery->Eof)
{
DBEdit4->Items->Add(sQuery->FieldByName("speciality")->AsString);
sQuery->Next();
}
}
4.3.5成绩录入功能
图表5
提交录入的成绩及按《学生手册》上计算方法的计算的总分。
void__fastcallTFm_cjlr:
:
bt_OKClick(TObject*Sender)
{
AnsiStringstr(atof(DBEdit1->Text.c_str())*0.15+atof(DBEdit2-
>Text.c_str())*0.75+atof(DBEdit3->Text.c_str())*0.1);
DBEdit4->Text=str;
cjlrQuery->Append();
}
4.3.6成绩查询功能
图表6
按学生成绩总分排名
void__fastcallTFm_cjcx:
:
Button1Click(TObject*Sender)
{
AnsiStringS="";
if(DBComboBox1->Text!
="")
S="Sspecialitylike'%"+DBComboBox1->Text+"%'";
if(DBComboBox2->Text!
="")
if(S!
="")
S=S+"andSclasslike'%"+DBComboBox2->Text+"%'";else
S="Sclasslike'%"+DBComboBox2->Text+"%'";
if(S!
="")
S="select*fromstudentwhere"+S+"orderbySscoredesc";else
S="select*fromstudentorderbySscoredesc";cjcxQuery->Close();
cjcxQuery->SQL->Clear();
cjcxQuery->SQL->Add(S);
cjcxQuery->Open();
}
4.3.7输出成绩表单功能
图表7
在成绩查询窗体中实现报表输出预览
void__fastcallTFm_cjcx:
:
Button3Click(TObject*Sender)
{
Fm_scorerep->QuickRep1->Preview();
}
4.4系统测试
4.4.1系统测试数据清单
表4.1用户信息表
Yonhuhao
Yinghuming
kouling
0001
教师甲
001
表4.2班级信息表
classID
speciality
className
shortName
number
teacher
2001301001
软件工
程
软件工程
101
软件101
32
教师a
2001301002
软件工
程
软件工程
102
软件102
34
教师b
2001302001
工业电
气
工业电气
101
工电101
33
教师c
2001302002
工业电
气
工业电气
102
工电102
35
教师d
2001302003
工业电
气
工业电气
111
工电111
30
教师e
2001303001
电子科
学
电子科学
111
电子111
34
教师f
2001303002
电子科
学
电子科学
112
电子112
30
教师g
2001304001
网络工
程
网络工程
101
网络101
31
教师h
表4.3学生信息表
SID
SName
SSex
Sspeciality
Sclass
Sdeyu
Szhiyu
Stiyu
Sscore
301010001
学生a
女
软件工程
软件工程
101
89
92
87
91.0
301010002
学生b
女
软件工程
软件工程
101
83
89
90
88.2
301010003
学生c
女
软件工程
软件工程
101
79
87
88
85.9
301010004
学生d
女
软件工程
软件工程
101
87
79
85
80.8
301010005
学生e
女
软件工程
软件工程
101
89
82
89
83.7
301010006
学生f
男
软件工程
软件工程
101
90
92
90
91.5
301010007
学生g
男
软件工程
软件工程
101
79
75
89
77
301010008
学生h
男
软件工程
软件工程
101
78
70
88
73
301010009
学生i
男
软件工程
软件工程
101
80
73
90
75.7
表4.4教师信息表
teacherID
teacherName
memo
01301001
教师a
01301002
教师b
01302001
教师c
01305001
教师i
01313001
教师甲
4.4.2系统测试结果
图表8
图表9
图表10
图表11
图表12
图表13
图表14
图表15
4.5
4.6
系统存在的主要问题及注意事项
系统主要存在的问题有:
在成绩录入和查询的窗体中,无法先设置搜索条件,必须在全搜索之后,才能选择条件,按条件搜索。
设计总结及体会
在之前的软件系统的课程设计里,已经亲身体验的软件项目的开发过程,虽然和这次的侧重点有所不同。
但是基本的设计流程还是大体相似的。
所以在选择课题的时候,有意避开了之前做过的设计,从而选择了学生综合测评信息系统。
即使如此,在代码实现的时候还是发现了和之前设计所使用的代码几乎相同。
在需求分析时,没有很好的分析,导致在功能设计有重复或功能不够完善。
由此深刻体会到需求分析对整个过程的重要作用。
其中,数据库设计阶段,是整个课程设计的关键。
这里的数据库的设计直接影响到在后面程序实现的效果。
在应用程序设计阶段,可以说是第二次使用C++Builder,但是仍然出现一些错误有的是低级的书写错误,有的是对C++Builder不熟悉而导致的错误。
但经过测试和查阅资料基本得到了解决。
通过本次课程设计,我亲身感受了从前台程序到后台数据库较为完整的软件开发过程。