收藏 分销(赏)

综合程序课程设计-学生成绩管理系统.docx

上传人:a199****6536 文档编号:2523130 上传时间:2024-05-31 格式:DOCX 页数:36 大小:365.94KB
下载 相关 举报
综合程序课程设计-学生成绩管理系统.docx_第1页
第1页 / 共36页
综合程序课程设计-学生成绩管理系统.docx_第2页
第2页 / 共36页
综合程序课程设计-学生成绩管理系统.docx_第3页
第3页 / 共36页
综合程序课程设计-学生成绩管理系统.docx_第4页
第4页 / 共36页
综合程序课程设计-学生成绩管理系统.docx_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、 综合程序 课程设计说明书课程设计名称: 综合程序设计 课程设计题目: 学生成绩管理系统 学 院 名 称: 专业: 班级: 学号: 姓名: 评分: 教师: 20 16 年 3 月 15 日 综合程序 课程设计任务书20 15 20 16学年 第 2 学期 第 1 周 2周 题目学生成绩管理系统内容及要求(一)功能要求:(1)信息维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息。(2)信息查询:要求:查询时可实现按姓名查询、按学号查询。(3)成绩统计:要求:A输入任意的一个课程名(如数学)和一个分数段(如60-70

2、),统计出在此分数段的学生情况。(4)排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)。(二)其它要求:(1)只能使用C或C+语言,源程序要有适当的注释,使程序容易阅读。(2)采用文本菜单界面。(3)学生可增加新功能模块。进度安排 第一周确定学生成绩管理系统索要实现的功能,查询与实现所需功能相关的资料,并完成一些实现较为简单的功能模块;第二周通过第一周所查询到的资料,编写完成所确定的较为复杂的功能,对系统进行调试,尽可能排除各种bug并完善系统,增加界面友好。学生姓名: 指导时间 2016年2月29日2

3、016 年 3 月13 日指导地点: 任务下达年 月 日任务完成 年 月 日考核方式1.评阅 2.答辩 3.实际操作 4.其它指导教师 系(部)主任 综合程序 课程设计任务书20 15 20 16学年 第 2 学期 第 1 周 2周 题目学生成绩管理系统内容及要求(一)功能要求:(1)信息维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息。(2)信息查询:要求:查询时可实现按姓名查询、按学号查询。(3)成绩统计:要求:A输入任意的一个课程名(如数学)和一个分数段(如60-70),统计出在此分数段的学生情况。(4)排

4、序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)。(二)其它要求:(1)只能使用C或C+语言,源程序要有适当的注释,使程序容易阅读。(2)采用文本菜单界面。(3)学生可增加新功能模块。进度安排 第一周确定学生成绩管理系统索要实现的功能,查询与实现所需功能相关的资料,并完成一些实现较为简单的功能模块;第二周通过第一周所查询到的资料,编写完成所确定的较为复杂的功能,对系统进行调试,尽可能排除各种bug并完善系统,增加界面友好。学生姓名: 指导时间 2016年2月29日2016 年 3 月13 日指导地点: 任

5、务下达2016年2月29日任务完成2016 年 3 月13 日考核方式1.评阅 2.答辩 3.实际操作 4.其它指导教师 系(部)主任 摘要在学校或班级,经常会对某次考试中所有学生的成绩进行统计和管理,由于学生数量非常繁多,所以在处理统计学生总成绩和平均成绩时工作会相对繁琐,所以针对这种情况,为方便对学生的成绩进行统计和管理,利用C+语言及MicroSoft 2010程序和数据库软件SQL 2008运行平台,设计了一种小型的学生成绩管理系统,该系统具有学生成绩相关信息的录入、显示、查询、修改、删除和统计等功能。关键字:学生成绩管理系统、MicroSoft 2010、SQL 2008、模块化设计

6、。目录1、 需求分析1设计目的1设计任务1软件性能需求12、 数据表的设计23、 软件结构设计34、 软件程序的详细设计4软件主界面4信息维护模块5添加6修改8删除14信息查询模块15成绩统计模块18排序模块205、 系统的调试与测试分析246、 用户使用手册267、 设计总结278、 参考文献289、 附录29一、需求分析1、设计目的掌握运用数据库原理进行系统分析和设计的方法;掌握关系数据库的设计方法; 掌握利用SQL Server 2008技术; 加强C+的编程能力;2、设计任务设计一个简易学生成绩管理的数据库系统,包括数据库的建立的需求分析,数据的输入输出。设计用户的操作界面,主要实现数

7、据的查询,录入,显示,修改,删除,统计基本功能。3、软件的性能需求学生成绩管理系统主要是提供成绩查询,方便网上信息查阅的平台。教师可以通过程序管理系统查询所有学生的各科成绩,根据学生的成绩情况为自己的后续教学安排提供依据。老师同时还对成绩管理系统具有添加、修改、删除、查询、信息统计等相关操作。二、数据表的设计数据表包含学生的姓名、学号、语文、数学、英语、政治成绩和个人总成绩、个人平均成绩。教师在输入或修改学生的各科成绩后,相应学生的个人总成绩和平均成绩就会相应的即时更新。其实体关系图如下所示:学生学号语文数学英语政治个人总成绩平均成绩姓名创建数据表的代码如下所示:create table 学生

8、成绩信息 (姓名CHAR(10) NOT NULL, 学号CHAR(10) NOT NULL, 语文 CHAR(5) NOT NULL, 数学 CHAR (5) NOT NULL, 英语CHAR (5) NOT NULL, 政治 CHAR (5) NOT NULL, 个人总成绩 CHAR (5) NOT NULL, 平均成绩 CHAR (5) NOT NULL);三、软件结构设计成绩管理系统主要分为五个功能模块:信息维护模块(添加、修改、删除)、信息查询模块(按学号、姓名查询)、成绩统计模块(查询分数段内学生情况、人数)、排序模块(按单科成绩、总成绩、平均成绩排序)、查询所有模块。其关系图如下

9、所示:成绩管理系统查询所有添加修改删除按学号分数段及此分数段人数按姓名个人总成绩降序排序成绩统计信息查询信息维护单科成绩降序单科成绩升序平均成绩降序四、软件程序的详细设计1、 软件主界面在软件主界面中有四个按钮,分别可以进入四个功能模块,还有一个查询所有学生成绩信息的菜单栏按钮选项。主界面的交互界面如图1所示:图1实现页面跳转的主要代码如下所示:在form1的构造函数中定义变量如下:Form2 f2;Form3 f3;Form4 f4;Form5 f5;再在系统的头文件库stdafx.h中包含各个头文件,代码如下:#includeForm2.h#includeForm3.h#includeFo

10、rm4.h#includeForm5.h点击页面跳转代码如下:private: System:Void button2_Click(System:Object sender, System:EventArgs e) /打开信息查询窗口 f2=gcnew Form2(); f2-Show(); private: System:Void button1_Click(System:Object sender, System:EventArgs e) /打开信息维护窗口 f3=gcnew Form3(); f3-Show(); private: System:Void button3_Click(Sy

11、stem:Object sender, System:EventArgs e) /打开成绩统计窗口 f4=gcnew Form4(); f4-Show(); private: System:Void button4_Click(System:Object sender, System:EventArgs e) /打开成绩统计窗口 f5=gcnew Form5(); f5-Show(); 2、信息维护模块图2信息维护模块交互界面如图2所示。此模块可实现对学生成绩信息的添加、修改和删除。添加在信息输入栏中输入完整的学生信息,再点击添加按钮,即可完成学生成绩信息的添加,且在添加学生四科成绩之后,系统

12、可自动计算出所添加学生的个人总成绩和平均成绩并显示在数据库文件当中,为避免重复添加,系统还会检测学生信息是否已经添加,若存在则系统会提示当前所添加学生已经添加。输入数据 输入的信息是否完整 N YY学号已存在添加成功 N此模块功能实现的主要代码如下所示:private: System:Void button1_Click(System:Object sender, System:EventArgs e) /添加学生成绩信息 if(textBox1-Text=|textBox2-Text=|textBox3-Text=|textBox4-Text=|textBox5-Text=|textBox6

13、-Text=) MessageBox:Show(请输入完整的学生成绩信息!);/判断是否有输入添加的信息return; String abc=select * from 学生成绩 where 学号=+textBox2-Text;/判断所添加的学号是否已经存在 DataTable abctable =gcnew DataTable(); SqlDataAdapter abcda =gcnew SqlDataAdapter(abc,con); abcda-Fill(abctable); if (abctable-Rows-Count=1) MessageBox:Show(此学号已存在!);retu

14、rn; String sql=insert into 学生成绩(姓名,学号,语文,数学,英语,政治) values ( + textBox1-Text + , + textBox2-Text + , + textBox3-Text + , + textBox4-Text + , + textBox5-Text + , + textBox6-Text + ); MessageBox:Show(sql); DataTable ourtable =gcnew DataTable(); SqlDataAdapter ourda =gcnew SqlDataAdapter(sql,con);/添加学生信

15、息 try ourda-Fill(ourtable); catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息);return; MessageBox:Show(添加成功!); /更新个人总成绩/String zf=update 学生成绩 set 个人总成绩=语文+数学+英语+政治; DataTable zftable =gcnew DataTable(); SqlDataAdapter zfda =gcnew SqlDataAdapter(zf,con); try zfda-F

16、ill(zftable); catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息);return; /更新平均成绩/ String ave=update 学生成绩 set 平均成绩=个人总成绩/4; DataTable avetable =gcnew DataTable(); SqlDataAdapter aveda =gcnew SqlDataAdapter(ave,con); try aveda-Fill(avetable); catch (System:Data:SqlC

17、lient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息);return; 修改在信息栏中输入所要修改的学生姓名与学号,且在所要修改的科目一栏输入修改后的分数,并勾选所要修改的科目,若要全部修改可在填写完分数后点击全部勾选即可,若想要单独修改某一科成绩,则只需单独勾选该一科成绩即可。并且在修改成功后系统会自动更新该学生成绩修改后的个人总成绩和平均成绩。输入要修改的内容输入的学号与姓名是否匹配N Y是否已勾选所要修改的成绩N Y修改成功此功能的实现代码如下所示:private: System:Void button2_Click

18、(System:Object sender, System:EventArgs e) /修改学生成绩信息if(textBox1-Text=|textBox2-Text=)/判断姓名和学号是否为空 Stringsql=请输入姓名和学号!;MessageBox:Show(sql);return;String abc=select * from 学生成绩 where 姓名=+textBox1-Text+ and 学号=+textBox2-Text; DataTable ourtable =gcnew DataTable(); SqlDataAdapter ourda =gcnew SqlDataAd

19、apter(abc,con); ourda-Fill(ourtable); if (ourtable-Rows-Count=0)/判断输入的学号在数据库中是否存在 MessageBox:Show(输入的姓名与学号不匹配或此学生不存在!);return; if(textBox3-Text=|checkBox1-Checked=false) & (textBox4-Text=|checkBox2-Checked=false) & (textBox5-Text=|checkBox3-Checked=false) & (textBox6-Text=|checkBox4-Checked=false)Me

20、ssageBox:Show(请输入需要修改内容的值并勾选相应的方框!);/判断是否已经输入正确的需改内容和操作return;if(checkBox1-Checked=true&textBox3-Text!=)/语文成绩的修改String sql=update 学生成绩 set 语文+=+textBox3-Text+ +where 姓名+=+textBox1-Text+ +and 学号=+textBox2-Text+;MessageBox:Show(sql);DataTable ourtable =gcnew DataTable();SqlDataAdapter our =gcnew SqlDa

21、taAdapter(sql,con); try our-Fill(ourtable); catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息);return; if(checkBox2-Checked=true&textBox4-Text!=)/数学成绩的修改String sql=update 学生成绩 set 数学+=+textBox4-Text+ +where 姓名+=+textBox1-Text+ +and 学号=+textBox2-Text+; DataTable ou

22、rtable =gcnew DataTable();SqlDataAdapter ourda =gcnew SqlDataAdapter(sql,con); try ourda-Fill(ourtable); catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息);return; if(checkBox3-Checked=true&textBox5-Text!=)/英语成绩的修改String sql=update 学生成绩 set 英语+=+textBox5-Text+ +wh

23、ere 姓名+=+textBox1-Text+ +and 学号=+textBox2-Text+; DataTable ourtable =gcnew DataTable();SqlDataAdapter ourda =gcnew SqlDataAdapter(sql,con); try ourda-Fill(ourtable); catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息);return; if(checkBox4-Checked=true&textBox6-Text

24、!=)/政治成绩的修改String sql=update 学生成绩 set 政治+=+textBox6-Text+ +where 姓名+=+textBox1-Text+ +and 学号=+textBox2-Text+; DataTable ourtable =gcnew DataTable();SqlDataAdapter ourda =gcnew SqlDataAdapter(sql,con); try ourda-Fill(ourtable); catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex

25、-Errors,提示信息);return; MessageBox:Show(修改成功!); /更新个人总成绩/ String zf=update 学生成绩 set 个人总成绩=语文+数学+英语+政治; DataTable zftable =gcnew DataTable(); SqlDataAdapter zfda =gcnew SqlDataAdapter(zf,con); try zfda-Fill(zftable); catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息)

26、;return; /更新平均成绩/ String ave=update 学生成绩 set 平均成绩=个人总成绩/4; DataTable avetable =gcnew DataTable(); SqlDataAdapter aveda =gcnew SqlDataAdapter(ave,con); try aveda-Fill(avetable); catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息);return; 全部选择功能实现代码如下所示:private: Syst

27、em:Void checkBox5_CheckedChanged(System:Object sender, System:EventArgs e) /全部修改checkBox选择操作if(checkBox5-Checked=true) checkBox1-Checked=true; checkBox2-Checked=true; checkBox3-Checked=true; checkBox4-Checked=true; if(checkBox5-Checked=false) checkBox1-Checked=false; checkBox2-Checked=false; checkBo

28、x3-Checked=false; checkBox4-Checked=false;删除在姓名和学号栏中输入要删除的学生信息,点击删除按钮,若此学生在数据库中存在则会显示删除成功,若不存在则会提示所要删除的学生不存在。输入姓名和学号姓名与学号是否匹配NY删除成功其代码实现如下所示:private: System:Void button3_Click(System:Object sender, System:EventArgs e) /删除学生成绩信息 if(textBox1-Text=|textBox2-Text=)/判断是否有输入必要信息 Stringsql=请输入姓名和学号!;Messag

29、eBox:Show(sql);return; String abc=select * from 学生成绩 where 姓名=+textBox1-Text+ and 学号=+textBox2-Text; DataTable f3 =gcnew DataTable(); SqlDataAdapter f4 =gcnew SqlDataAdapter(abc,con); f4-Fill(f3); if (f3-Rows-Count=0) /判断所要删除的学号是否存在MessageBox:Show(输入的姓名与学号不匹配!);return; String sql=delete 学生成绩 where 姓

30、名+=+textBox1-Text+ and +学号=+textBox2-Text+; MessageBox:Show(sql); DataTable ourtable =gcnew DataTable();/信息输入正确后删除次学生信息的操作 SqlDataAdapter ourda =gcnew SqlDataAdapter(sql,con); try ourda-Fill(ourtable); catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息);return; Str

31、ing ac=select * from 学生成绩 where 姓名=+textBox1-Text+ and 学号=+textBox2-Text; DataTable f1 =gcnew DataTable(); SqlDataAdapter f2 =gcnew SqlDataAdapter(abc,con); ourda-Fill(f1); if (f1-Rows-Count=0) /删除后再次查询此学生信息,验证是否删除成功MessageBox:Show(删除成功!); 3、信息查询模块图3信息查询模块的交互界面如图3所示,此模块可实现按照学号、姓名两种方式对学生的所有成绩信息进行查询。在

32、查询内容一栏中输入与所选查询方式相对应的查询内容并点击查询按钮就会在窗口下方显示符合条件的学生的所有成绩信息。选择查询方式输入查询内容输入内容是否存在N Y显示相关信息此功能实现的代码如下所示:private: System:Void button1_Click(System:Object sender, System:EventArgs e) con=gcnew SqlConnection();/链接数据库 con - ConnectionString =LData Source = DESKTOP-0FETV4R; Initial Catalog=学生成绩管理系统; Integrated

33、Security=True; if(textBox1-Text=)/判断是否有输入内容 String sql=请输入所要查询的内容!;MessageBox:Show(sql);return; if(radioButton1-Checked=true)/按学号查询 Stringsql=select * from 学生成绩 where 学号 +=+textBox1-Text+; MessageBox:Show(sql); DataTable ourtable =gcnew DataTable(); SqlDataAdapter ourda =gcnew SqlDataAdapter(sql,con

34、); try ourda-Fill(ourtable);this-dataGridView1-DataSource=ourtable; catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息); if(radioButton2-Checked=true)/按姓名查询 String sql=select * from 学生成绩 where 姓名+=+textBox1-Text+; MessageBox:Show(sql); DataTable ourtable =gcnew DataTable(); SqlDataAdapter ourda =gcnew SqlDataAdapter(sql,con); try ourda-Fill(ourtable);this-dataGridView1-DataSource=ourtable; catch (System:Data:SqlClient:SqlException ex) MessageBox:Show(数据异常信息是:+ex-Errors,提示信息); 4、成绩统计模块图4成绩统计模块的交互界面如图4所示。此模块主要实现对学生成绩的分布情况进行查询,在课程名一栏输入所要查询的课程名称包括恶人总成绩和平均

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服