c++课程设计报告--歌手比赛系统.docx
《c++课程设计报告--歌手比赛系统.docx》由会员分享,可在线阅读,更多相关《c++课程设计报告--歌手比赛系统.docx(49页珍藏版)》请在三一办公上搜索。
1、面向对象程序设计课程设计报告学号:姓名:题目:成绩:指导老师:2014.12目录项目任务书1第一章项目概况21.1项目研究的意义21.2项目研究的背景21.3项目设计的要求2第二章 项目设计过程32.1项目功能32.2开发环境42.3项目结构52.4开发模式62.4.2歌手信息管理的实现72.4.3 类72.5项目特点72.5.1用户选择界面72.5.2管理员账户与登录界面82.5.3输入异常处理82.5.4歌手数据读入与读出82.5.5字符串与字符数组相互转换92.5.5单链表实现歌手信息管理9三、项目运行103.1项目测试过程103.2项目运行方法11四、小结16附录1:参考文献17附录2
2、:程序清单17文件117文件2: 20文件3: 31文件4: 42面向对象程序设计评阅表46项目任务书题目歌手比赛系统作者学号姓名题目歌手比赛系统内容对一次歌手比赛的成绩进行管理,功能要求:1、输入每个 选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出 总成绩和平均成绩(去掉最高分,去掉最低分)。2、显示主菜 单如下:1)输入选手数据2)评委打分3)成绩排序(按平均 分)4)数据查询5)追加学生数据6)写入数据文件7)退出 系统。相关技术单链表的基本运算的实现,文件操作,面向对象程序设计的思想特色包含了一切应有的功能,歌手信息的输入,评委打分,成绩 排序等功能应有尽有,省去了很多麻烦的
3、环节,完全可以满足一 次歌手比赛的需求。开发此系统只为方便一般的歌手比赛。第一章项目概况1.1项目研究的意义1. 复习、巩固C+语言的基础知识,进一步加深对C+语言的理解和掌握;2. 课程设计为将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问 题的能力。提高适应实际,实践编程的能力。1.2项目研究的背景当下,无论是社会上某些场合还是校园内,经常举行一些歌手演唱比赛,一 般不会再像以前那样用笔记录比赛的情况,歌手比赛系统由此产生。它几乎包含 了一切应有的功能,歌手信息的输入,评委打分,成绩排序等功能应有尽有,省 去了很多麻烦的环节,完全可以满足一次歌手比赛的需求。开发此系统只为方便 一
4、般的歌手比赛。1.3项目设计的要求1. 对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功 能;可以加以其他功能或修饰,使程序更加完善、合理;2. 系统设计要实用,编程简练,可用,功能全面3. 说明书、流程图要清楚4. 记录设计情况(备查,也为编写设计说明书作好准备);5. 要求采用模块化程序设计方法,要求上机调试通过和按设计报告格式。6. 设计上交内容:设计报告一人一份(按格式书写);源程序文件。歌手比赛系统基本功能要求:1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入 计算出总成绩和平均成绩(去掉最高分,去掉最低分)。2、显示主菜单如下:1)输入选手数据2)评
5、委打分3)成绩排序(按 平均分)4)数据查询5)追加学生数据6)写入数据文件7)退出系统。第二章项目设计过程2.1项目功能用C+实现歌手比赛系统。该系统主要有以下功能:1、系统以菜单方式工作:1)歌手或管理员选择菜单;2)歌手菜单有查询和查询时的打印功能;3)2项以后都是管理员菜单;4)除了主菜单,某些功能有小菜单,如查询、排序。2、管理员系统登录界面:1)初次使用,创建管理员用户,设置管理员的用户名和初始密码;2)进入管理员界面时,需要输入正确的用户名和密码才能进入管理 员界面;3)通过修改功能可以修改管理员用户名和密码。3、歌手数据添加一输入;1)创建歌手初次添加歌手数据(姓名、性别、年龄
6、、手机号码),添加后保存 到文件中;2)追加歌手在已有歌手数据的基础上,进行追加歌手数据。4、歌手成绩(评委打分)录入功能一输入:按输入选手的编号对其分 别打分,输入每个评委的评分,对一个选手打完分之后,计算其总分和平 均分(去掉一个最高分和一个最低分),然后显示出来;5、歌手排序:1)编号排序对选手按编号进行排序,输出歌手的姓名、编号、总分和平均分;2)成绩排序(按平均分)分别除去歌手一个最高分和一个最低分,计算剩余分数的平均分, 再按平均分进行排序,输出歌手的编号、姓名、总分和平均分。6、歌手成绩查询功能一算法;1)按编号查询:输入编号,如果存在,输出选手的数据,不存在,输 出“查询失败,
7、没有找到此歌手!”。2)按姓名查询:输入选手姓名,存在,则输出选手数据,不存在,则 输出“查询失败,没有找到此歌手!”;3)按成绩查询:输入成绩范围,存在,则输出选手数据,不存在,则 输出“查询失败,没有找到此成绩范围的歌手!”。7、打印歌手数据:查询是,可以选择是否将歌手数据以文字形式保存到 文件中,以便打印;8、显示所有歌手数据:对加入的歌手数据全部显示出来;9、保存数据到文件:将输入的信息保存到二进制文件中,另外系统附加 了自动保存的功能;10、从文件中读入数据:将二进制文件中的数据读到内存中,另外进入系 统时会自动读入文件数据;10、修改歌手数据:1)修改歌手普通数据;2)修改歌手错误
8、评分数据;3)删除歌手数据;4)修改管理员账户。2.2开发环境Microsoft Visual C+ 6.0:Visual C+ 6.0,简称VC或者VC6.0,是微软推出的一款C+编译 器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C+ 是一个功能强大的可视化软件开发工具。Visual C+6.0不仅是一个C+ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境。2.3项目结构进入系统:管理员登录:部分功能菜单:2.4开发模式2.4.1主程序大致流程图2.4.2歌手信息管理的实现创建、追加歌手信息,评委评分,成绩排序,查询信息,读 写文件等功能使用链表实
9、现。2.4.3 类歌手类管理员类2.5项目特点2.5.1用户选择界面加入了歌手和管理员两种用户选择机制,目的是解决非管理员需要查询信息 的同时防止分管理员修改信息;2.5.2管理员账户与登录界面1. 初次登录设置用户名和密码,登录后可修改账户,重新启动程序,上 次更改的密码登录有效;2. 输入密码时显示“ *”号,按退格键可以删除“*”号,和网站上的登 录相似,3. 管理员用户名及密码加密后保存到文件中,重新运行系统时,读入账 户信息解密;2.5.3输入异常处理cinx;若x为int型,而输入的为字符串,cin流就会产生错误,若cinx 在一个循环里面,则会进入死循环;我的解决方案是这样的:当
10、输入的类型与cin接收的类型不一致时,cin.fail()就会返回为1,此时 cin返回也不为0,接着用cin.clear()清除错误状态,即cin.fail()返回为0,cin 返回也为0,然后用flush(stdin)清空缓冲区(或者cin.sync(),cin.ignore(1024, n)最后再重新输入或者跳出循环提示错误。2.5.4歌手数据读入与读出由于是用单链表写的歌手比赛系统,数据采用ascii码形式输出比较麻烦, 所以选择了二进制文件输入输出方式;这样的方式如果需要提取写入的信息则很 不方面,所以我增加了打印歌手信息功能,在查找时方便用户导出信息;2.5.5字符串与字符数组相互
11、转换将字符串转换为字符数组,strncpy(str1,str2.c_str(),str2.length()+1)函数(char str120;string str2;)字符数组转换为字符串就简单多了,可以直接赋值;字符输入为string类型,读写为char类型:这是为了输入方便同时以二进制保存在文件的字符串能顺利读出来,如果 string类型写入到二进制文件中,则不能顺利地读出来;string类型:string对象本身实际上并没有包含字符串,而是包含了一个指向 其中存储了字符串的内存单元的指针,因为存入二进制文件的不是字符串的数据 而是字符串存储的地址,当再次运行时该地址将毫无意义,发现对象的
12、名字已经 无法再取出来了;string类是指针类的数据,写到文件中后,再读出来时,读到的是指针,但 此时的内存中该地址内容不一定与原来存储时是相同的,因此,不能这样写入二 进制文件。2.5.5单链表实现歌手信息管理这个程序中核心就是数据结构单链表的知识,程序中用到了结点的添加,删 除,修改,排序功能;排序采用我们最熟悉的冒泡排序。三、项目运行3.1项目测试过程测试系统各个功能的运行是否如预期效果一样;1. 进入系统,输入数字选择用户类型:* 一* 一* - 一统一系一赛一匕一h -手一歌-ffl 一使一迎一欢一 一 一* -* 一 一*请选泽用户类型:1:歌手公遭理员0:退出请输入你要选择的序
13、号*一 -*2. 恶意的输入字符串:* #WI 罚二比尹护三* I Ii Ii. I I* I I I I I语泣择月-w =2=二,.Pl:请输入弥要选择的序号gFgdfgdfg蚂左言矣叫一经测试,其他需要输入的地方恶意输入也无任何异常;3. 若第一次运行系统,没有歌手数据,也没有管理员账户,则只能进 入管理员界面添加歌手;进入管理员界面时,系统会要求设置用户名及 密码;密码要求输入两次,两次不一致按回车则重新设置,否则返回主界面;- : kR -J J ,-CQ I ,W、.J肖君:root pE XTXXXXX U 必病;JCKKKJCKM入的用户名、密码只能包含字母、数字、符号!重新创
14、建密码请按e丽心i i11*1工* qyi*头ii.黄=信闩司口|* * I“q三庐宜非.* I* 亍信卷,.件 *才时 A.iM*+1+ 1日关仲或信息 1* 1R-:Z|n| 状* 1*1诺颈/、挣表三杆M 土三* 1手信息,清选择第1项添加毓手倾一 .经测试,未添加歌手数据前,系统无异常;4. 添加歌手数据后,便可进行其他一切操作,没有发现异常的地方;5. 系统有自动读写功能,每次数据发生变化会自动写入到文件中,关 闭程序再运行,数据自动读入,无异常。3.2项目运行方法1. 初次进入系统,输入数字2,选择管理员,设置用户名及密码;苜次登录,请创建一个账户;临零燃户名、密码只能包含字母、数
15、字、密不马=J3J3J3J*歌手比春系统L痛加歌手2 .评委评分土歌手排序4, 歌手信息查询S -易TJ7所有1曰息、6, 保存信息到文件?一从文彳牛中读入信息8,修改或删除信息土返回上一级请输入俪要也的序2. 添加歌手界面,添加歌手信息(姓名、性别、年龄、手机号码),关市质迎1史用萱询界面 *L创建歌手信息L追加歌手信息矶返回上一级请输入你要选择的序号系统自动按照输入顺序给定编号1抻此歌手的姓各输无?号选择此歌手的性别:i 男,A女1请输入此歌手的年龄:请输入此歌手的手机号用壬15826784321添加成#!需要输入下一个歌手信息请按丫心3. 评委评分界面,会依次提醒输入每个评委所打的分数(
16、分数必须是0到100之内),输入完毕,显示选手的总分和去掉最值的平均分,也就是最终得分。B 5l_r- B8 18?042?1?nnx 7900788878k!评王八为为为!g!s!s:s:刃工EM评评即JsililM 1Id 巨巨巨巨Ti-T-T-T;- H走 0JAr2T _ T _ T i i i 辛卡卡 Ar :J1 234567891- 请请第第第第第第第第第第捏n:分改 flflfl的费 nn.fru - J-.二一Er.1 09 741 八务1.81 5 吉屉!5 .- 2.曰取.分 81人1八药耘 -得平旷新 言去余其 总求请请评李U4. 成绩排序界面,可进行编号或成绩排序,成
17、绩排序按平均分排序;欢迎使用排序界面1 .按编号排序按成婿平均分排序 叽返回上一级请输入你要选择的序号*靠序如下: nTA工陌1=1 可A于薛亏4姓3谭晓2李小请按任意键继续一性别男1年龄14151513手机号码15826784321147458965411567845654113457891234总分 812.E 796.5 777.5 726.5平均分81.479.677.772.?5. 信息查询界面,可进行编号、姓名成绩范围查询;查询时,可选择 导出歌手信息;欢迎使用查询界面按编号查找歌手信息2.按姓名查找歌手信息3 按成绩t平均分查找歌手信息。返回上一级请输入你要选择的序号章输入查询歌
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程设计 报告 歌手 比赛 系统
链接地址:https://www.31ppt.com/p-4883290.html