版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
紫金学院VisualC++课程设计2014级计科(2)班PAGEPAGE1紫金学院VisualC++课程设计VC++课程设计报告课程:C++课程设计系别:计算机系班级:学号:姓名:选题名称:学生电子投票平台起止时间:指导教师:
2016年12月1问题描述学生电子投票平台设计是通过界面录入候选人的信息(姓名、编号、数学成绩、英语成绩、C++成绩),运行过后能够显示候选人的信息,并且统计总成绩和排名。接下来进行投票,投票人为候选人投票,显示投票结果,且能在进行增加候选人信息和查询候选人信息及排名情况。(1)、运用C++面向对象的知识,解决学生电子投票平台设计。(2)、利用结构体、类、继承、析构函数、构造函数及对以前积累知识来设计这一学生电子投票系统。(3)、全面提高学生的程序设计能力和开发能力。2基本要求1)功能齐全:界面操作灵活方便,至少实现以下基本功能:候选人为5名,投票人数最少为10人;候选人信息包括:编号、姓名和本学期三门课程的成绩(英语、数学、C++程序设计语言);程序运行时显示简单菜单,菜单内容包括:录入数据:录入候选人信息;显示数据:显示候选人信息并统计三门课程总成绩;投票;投票结果:显示票数统计结果,并按得票数排序;⑤查询:输入编号查询某候选人信息。2)友好性:界面友好、输入有提示、尽量展示人性化。3)可读性:源程序代码清晰、有层次、主要程序段有注释。4)健壮性:用户输入非法数据时,系统应及时给出警告信息。5)在规定的时间内完成课程设计任务6)完成课程设计报告3需求分析1主要任务录入5个候选人的信息(编号,姓名,英语成绩,数学成绩,C++成绩),至少10人为这5个候选人进行投票。统计候选人总成绩以及票数,可以对票数进行排序。输入编号可以查询候选人的在主函数通过一个判断语句让用户选择进入与退出系统,然后在候选人进行信息的录入并且存储,同时对这些候选人进行投票操作,最终通过调用一个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用户使用说明运行程序后,会自动进入系统。系统提示用户进行输入,即:“是否继续?Y是,N否.请输入:”输入Y继续操作,输入N退出系统。输入Y后,系统会显示系统操作指南,系统并且会提示用户录入候选人信息并进行投票。当完成(3)后,系统会提示用户输入指令,即:“请输入编号1-6进行查询(输入N退出系统):”来进行各项查询功能。输入N退出系统。8测试结果1.程序菜单显示,输入”Y”继续运行程序显示菜单指南2.录入候选人信息3.为候选人进行投票完成录入功能4.显示候选人录入信息(输入1)5.统计候选人三门课程总成绩(输入2)6.显示票数统计结果(输入3)7.按得票数为候选人排序(输入4)8.显示候选人全部信息(输入5)9.输入编号查询候选人全部信息(输入6-106-101)10.退出系统(输入N)9课程设计总结这次课程设计横跨了2个星期,在这断断续续的几天之中,发现了自身很多不足之处,自己对知识点的理解漏洞百出,也有许多重来没有听说过的东西,从而让我明白知识扎实的重要性,理解实践能力的重要性!因为基础知识的不扎实让我在这次课程设计中走了许多弯路,不过我认为是值得的,它大大的补充了我知识不足的那一面,我始终相信付出必有收获。这次的课程设计,可以说是苦乐交加。在程序设计过程中,不仅检验、巩固了我所学的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。它为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生运用所学知识解决实际问题的能力。课程设计这类实践训练是我们迈向社会,从事职业工作前一个必不少的过程。通过这次系统的设计,我在多方面都有所提高。首先,整体与局部的把握,在系统设计前,需要整体思考系统所包含的信息及其实现的功能,在设计过程中,再思考局部功能实现的完整性与整个程序的结合。其次,在实现各种功能时,通过查阅课本、资料,实践,对字符串的使用更加熟悉、了解,能够熟练运用字符串,而且加强了对类中参数传值的使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 油漆材料购买合同样本
- 团队旅游预订平台条款
- 购销合同印花税的优惠政策分析
- 钢筋购货协议范本
- 房屋抵押个人贷款协议示范
- 造纸厂购销合同的履行解除
- 广告灯箱制作安装合同
- 石灰石供应合同变更
- 项目合同补充协议样本
- 商业车库出租协议
- 如何搞好火电厂工程施工项目管理_工程管理
- 全国高职高专英语写作大赛
- 微机原理与接口技术8259A练习题及答案
- 幼儿园小朋友认识医生和护士(课堂PPT)
- 汽车总线测试方案概要
- 商铺装修工程施工方案.
- 形式发票样本(Proforma Invoice)
- 草坪铺设施工方案
- 临床路径实施情况、存在问题及整改措施
- (完整word版)上海博物馆文物术语中英文对照
- 学、练、评一体化课堂模式下赛的两个问题与对策
评论
0/150
提交评论