C++学生电子投票平台系统报告doc.docx
- 文档编号:30417286
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:16
- 大小:299.19KB
C++学生电子投票平台系统报告doc.docx
《C++学生电子投票平台系统报告doc.docx》由会员分享,可在线阅读,更多相关《C++学生电子投票平台系统报告doc.docx(16页珍藏版)》请在冰豆网上搜索。
C++学生电子投票平台系统报告doc
C++学生电子投票平台系统报告
VC++课程设计报告
课程:
C++课程设计
系别:
计算机系
班级:
学号:
姓名:
选题名称:
学生电子投票平台
起止时间:
指导教师:
2016年12月
●
●课程的成绩(英语、数学、C++程序设计语言);
●程序运行时显示简单菜单,菜单内容包括:
①录入数据:
录入候选人信息;
②显示数据:
显示候选人信息并统计三门课程总成绩;
③投票;
④投票结果:
显示票数统计结果,并按得票数排序;
⑤查询:
输入编号查询某候选人信息。
2)友好性:
界面友好、输入有提示、尽量展示人性化。
3)可读性:
源程序代码清晰、有层次、主要程序段有注释。
4)健壮性:
用户输入非法数据时,系统应及时给出警告信息。
5)在规定的时间内完成课程设计任务
6)完成课程设计报告
3需求分析
1主要任务
录入5个候选人的信息(编号,姓名,英语成绩,数学成绩,C++成绩),至少10人为这5个候选人进行投票。
统计候选人总成绩以及票数,可以对票数进行排序。
输入编号可以查询候选人的详细信息。
2.输入与输出
输入:
该系统的输入主要分成2个部分,第一个部分即系统录入信息的过程,其中又分成2个部分,即录入数据和投票;第二的部分是系统功能的查询,通过输入序号来实现不同的查询。
输出:
当用户输入真确的指令时,输出结果;当用户输入错的指令时会提示错误(例如:
“无法识别指令,请重新输入:
”),然后让用户重新输入指令。
3.程序功能
1)录入候选人信息
2)为候选人进行多人次的投票
3)显示所有候选人信息
4)统计候选人三门课程总成绩
5)显示票数统计结果
6)按得票数为候选人排序
7)显示候选人全部信息
8)输入编号查询候选人全部信息
4.测试数据
当投票时输入错误的编号是,即出现“错误!
:
投票失败。
”“第"<
”来提示用户重新输入指令。
如下图所示:
当用户输入过多字符指令时,会输出“错误!
:
输入指令过多,请输入单个指令:
”来提示用户重新输入指令。
如下图所示:
当用户输入非法指令,即该指令不在输入范围之内,则输出“错误!
:
系统无此指令,请重新输入:
”来提示用户重新输入正确指令。
如下图所示:
当用户输入错误的编号的时候会出现:
“错误!
:
无此编号。
”“请重新输入候选人编号:
”:
来提示用户重新输入指令。
如下图所示:
4概要设计
程序的流程图如下所示:
在主函数通过一个判断语句让用户选择进入与退出系统,然后在候选人进行信息的录入并且存储,同时对这些候选人进行投票操作,最终通过调用一个fun函数来进行各类信息的调用与查询。
主函数主要功能:
输出系统菜单、输入候选人的信息、投票、输入指令、输出指令错误提示、调用display函数、输出退出系统提示。
display函数主要功能:
接收主函数指令、判断运行功能、输出功能结果。
5详细设计
本程序主要有3个部分所组成:
类,主函数,display函数。
1.类的设计
定义一个类“Houxuan”,私有部分有编号,姓名,英语,数学,C++,总成绩,票数这些变量;
公有部分通过9个函数来实现赋值,统计,排序,显示等功能;最后定义一个数组变量a[5],即为存储5个候选人的各种信息。
如图为类的主要代码:
2.主函数的设计
主函数主要功能有菜单功能显示,录入候选人信息,为候选人投票,防错误提示及调用fun()函数的功能。
1)录入候选人信息
通过调用类中的Hou()函数来为候选人进行信息的录入。
主要代码如下所示:
2)为候选人投票
通过一个循环来为5个候选人进行投票,同时通过循环来保证输入的编号是否正确。
主要代码如下:
3)防错误提示
定义两个字符数组c[10]、c1[10],用以接收用户输入的指令。
本系统所使用的指令均为单字符,即当c[1]或c1[1]不为’\0’,则提示用户重新输入指令。
主要防错误处理源程序如下图所示
3.display函数
display()函数接收从主函数传过来的指令(即:
c1[0]),即voiddisplay(charx),display()函数的主要功能为判断指令,并输出运行结果。
1)接受指令
当用户输入正确的功能指令时,即存储在c1[0]中的指令,则进入循环调用fun()函数,部分源程序如下图所示:
当用户输入N时,即退出系统,源程序如下图:
2)功能
(1)显示候选人录入信息
(2)统计候选人三门课程总成绩
(3)显示票数统计结果
(4)为统计完的票数进行编号排序(部分代码)
(5)显示候选人全部信息
(6)输入编号查询候选人全部信息
6设计调试分析
设计问题:
无法对类中的票数进行排序
解决办法:
逐一进行比较,找出票数最高的,记录循环序号后并输出;然后再比较找出第2个人,当它的循环序号与第一个循环序号相同时即跳过比较;按此类推进行排序。
部分程序如下:
调试问题:
用户输入多个字符会且第一个字符不是系统字符时,会导致系统进去无限循环。
解决办法:
使用字符数字接收用户指令,当数组第二个元素不为‘\0’时即表示用户输入多个字符,应重新输入,当且仅当用户输入单字符且是系统指令时(即数组第一个元素为系统指令,第二个元素为’\0’)方可继续运行。
未解决问题:
防错误系统不完善:
当输入类型为int型时,如果用户输入的类型不是int型,系统则会进入死循环。
票数排序时当2人票数相同时,没有规定排序方式(按照编号排序)。
设计回顾与分析:
本程序的设计主要难点不在于能够完成各个功能,而是在于各个输入信息的防错误处理以及对各种功能的循环调用。
能够全面协调各个模块之间调用关系,并且用户能够简单化的使用该系统,此才是本系统的重要之处。
7用户使用说明
1)运行程序后,会自动进入系统。
2)系统提示用户进行输入,即:
“是否继续?
Y是,N否.请输入:
”输入Y继续操作,输入N退出系统。
3)输入Y后,系统会显示系统操作指南,系统并且会提示用户录入候选人信息并进行投票。
4)当完成(3)后,系统会提示用户输入指令,即:
“请输入编号1-6进行查询(输入N退出系统):
”来进行各项查询功能。
5)输入N退出系统。
8测试结果
1.程序菜单显示,输入”Y”继续运行程序显示菜单指南
2.录入候选人信息
3.为候选人进行投票完成录入功能
4.显示候选人录入信息(输入1)
5.统计候选人三门课程总成绩(输入2)
6.显示票数统计结果(输入3)
7.按得票数为候选人排序(输入4)
8.显示候选人全部信息(输入5)
9.输入编号查询候选人全部信息(输入6-106-101)
10.退出系统(输入N)
9课程设计总结
这次课程设计横跨了2个星期,在这断断续续的几天之中,发现了自身很多不足之处,自己对知识点的理解漏洞百出,也有许多重来没有听说过的东西,从而让我明白知识扎实的重要性,理解实践能力的重要性!
因为基础知识的不扎实让我在这次课程设计中走了许多弯路,不过我认为是值得的,它大大的补充了我知识不足的那一面,我始终相信付出必有收获。
这次的课程设计,可以说是苦乐交加。
在程序设计过程中,不仅检验、巩固了我所学的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
它为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生运用所学知识解决实际问题的能力。
课程设计这类实践训练是我们迈向社会,从事职业工作前一个必不少的过程。
通过这次系统的设计,我在多方面都有所提高。
首先,整体与局部的把握,在系统设计前,需要整体思考系统所包含的信息及其实现的功能,在设计过程中,再思考局部功能实现的完整性与整个程序的结合。
其次,在实现各种功能时,通过查阅课本、资料,实践,对字符串的使用更加熟悉、了解,能够熟练运用字符串,而且加强了对类中参数传值的使用,巩固了类定义,函数成员使用等知识,并通过条件语句实现不同的人设置不同的操作课程设计使我对c++课程又进行了系统的复习,独立思考的能力也有了提高。
这次C++程序设计画上了圆满的句号,最后感谢老师和同学的帮助,让我顺利的完成任务。
10参考文献
[1]谭浩强.C++程序设计(第2版).北京:
清华大学出版社,2011.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 电子 投票 平台 系统 报告 doc