欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载
     

    c++课程设计报告--歌手比赛系统.docx

    • 资源ID:4883290       资源大小:228.51KB        全文页数:49页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c++课程设计报告--歌手比赛系统.docx

    面向对象程序设计课程设计报告学号:姓名:题目:成绩:指导老师: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:程序清单17文件117文件2: 20文件3: 31文件4: 42面向对象程序设计评阅表46项目任务书题目歌手比赛系统作者学号姓名题目歌手比赛系统内容对一次歌手比赛的成绩进行管理,功能要求:1、输入每个 选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出 总成绩和平均成绩(去掉最高分,去掉最低分)。2、显示主菜 单如下:1)输入选手数据2)评委打分3)成绩排序(按平均 分)4)数据查询5)追加学生数据6)写入数据文件7)退出 系统。相关技术单链表的基本运算的实现,文件操作,面向对象程序设计的思想特色包含了一切应有的功能,歌手信息的输入,评委打分,成绩 排序等功能应有尽有,省去了很多麻烦的环节,完全可以满足一 次歌手比赛的需求。开发此系统只为方便一般的歌手比赛。第一章项目概况1.1项目研究的意义1. 复习、巩固C+语言的基础知识,进一步加深对C+语言的理解和掌握;2. 课程设计为将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问 题的能力。提高适应实际,实践编程的能力。1.2项目研究的背景当下,无论是社会上某些场合还是校园内,经常举行一些歌手演唱比赛,一 般不会再像以前那样用笔记录比赛的情况,歌手比赛系统由此产生。它几乎包含 了一切应有的功能,歌手信息的输入,评委打分,成绩排序等功能应有尽有,省 去了很多麻烦的环节,完全可以满足一次歌手比赛的需求。开发此系统只为方便 一般的歌手比赛。1.3项目设计的要求1. 对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功 能;可以加以其他功能或修饰,使程序更加完善、合理;2. 系统设计要实用,编程简练,可用,功能全面3. 说明书、流程图要清楚4. 记录设计情况(备查,也为编写设计说明书作好准备);5. 要求采用模块化程序设计方法,要求上机调试通过和按设计报告格式。6. 设计上交内容:设计报告一人一份(按格式书写);源程序文件。歌手比赛系统基本功能要求:1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入 计算出总成绩和平均成绩(去掉最高分,去掉最低分)。2、显示主菜单如下:1)输入选手数据2)评委打分3)成绩排序(按 平均分)4)数据查询5)追加学生数据6)写入数据文件7)退出系统。第二章项目设计过程2.1项目功能用C+实现歌手比赛系统。该系统主要有以下功能:1、系统以菜单方式工作:1)歌手或管理员选择菜单;2)歌手菜单有查询和查询时的打印功能;3)2项以后都是管理员菜单;4)除了主菜单,某些功能有小菜单,如查询、排序。2、管理员系统登录界面:1)初次使用,创建管理员用户,设置管理员的用户名和初始密码;2)进入管理员界面时,需要输入正确的用户名和密码才能进入管理 员界面;3)通过修改功能可以修改管理员用户名和密码。3、歌手数据添加一输入;1)创建歌手初次添加歌手数据(姓名、性别、年龄、手机号码),添加后保存 到文件中;2)追加歌手在已有歌手数据的基础上,进行追加歌手数据。4、歌手成绩(评委打分)录入功能一输入:按输入选手的编号对其分 别打分,输入每个评委的评分,对一个选手打完分之后,计算其总分和平 均分(去掉一个最高分和一个最低分),然后显示出来;5、歌手排序:1)编号排序对选手按编号进行排序,输出歌手的姓名、编号、总分和平均分;2)成绩排序(按平均分)分别除去歌手一个最高分和一个最低分,计算剩余分数的平均分, 再按平均分进行排序,输出歌手的编号、姓名、总分和平均分。6、歌手成绩查询功能一算法;1)按编号查询:输入编号,如果存在,输出选手的数据,不存在,输 出“查询失败,没有找到此歌手!”。2)按姓名查询:输入选手姓名,存在,则输出选手数据,不存在,则 输出“查询失败,没有找到此歌手!”;3)按成绩查询:输入成绩范围,存在,则输出选手数据,不存在,则 输出“查询失败,没有找到此成绩范围的歌手!”。7、打印歌手数据:查询是,可以选择是否将歌手数据以文字形式保存到 文件中,以便打印;8、显示所有歌手数据:对加入的歌手数据全部显示出来;9、保存数据到文件:将输入的信息保存到二进制文件中,另外系统附加 了自动保存的功能;10、从文件中读入数据:将二进制文件中的数据读到内存中,另外进入系 统时会自动读入文件数据;10、修改歌手数据:1)修改歌手普通数据;2)修改歌手错误评分数据;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歌手信息管理的实现创建、追加歌手信息,评委评分,成绩排序,查询信息,读 写文件等功能使用链表实现。2.4.3 类歌手类管理员类2.5项目特点2.5.1用户选择界面加入了歌手和管理员两种用户选择机制,目的是解决非管理员需要查询信息 的同时防止分管理员修改信息;2.5.2管理员账户与登录界面1. 初次登录设置用户名和密码,登录后可修改账户,重新启动程序,上 次更改的密码登录有效;2. 输入密码时显示“ *”号,按退格键可以删除“*”号,和网站上的登 录相似,3. 管理员用户名及密码加密后保存到文件中,重新运行系统时,读入账 户信息解密;2.5.3输入异常处理cin>>x;若x为int型,而输入的为字符串,cin流就会产生错误,若cin>>x 在一个循环里面,则会进入死循环;我的解决方案是这样的:当输入的类型与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字符串与字符数组相互转换将字符串转换为字符数组,strncpy(str1,str2.c_str(),str2.length()+1)函数(char str120;string str2;)字符数组转换为字符串就简单多了,可以直接赋值;字符输入为string类型,读写为char类型:这是为了输入方便同时以二进制保存在文件的字符串能顺利读出来,如果 string类型写入到二进制文件中,则不能顺利地读出来;string类型:string对象本身实际上并没有包含字符串,而是包含了一个指向 其中存储了字符串的内存单元的指针,因为存入二进制文件的不是字符串的数据 而是字符串存储的地址,当再次运行时该地址将毫无意义,发现对象的名字已经 无法再取出来了;string类是指针类的数据,写到文件中后,再读出来时,读到的是指针,但 此时的内存中该地址内容不一定与原来存储时是相同的,因此,不能这样写入二 进制文件。2.5.5单链表实现歌手信息管理这个程序中核心就是数据结构单链表的知识,程序中用到了结点的添加,删 除,修改,排序功能;排序采用我们最熟悉的冒泡排序。三、项目运行3.1项目测试过程测试系统各个功能的运行是否如预期效果一样;1. 进入系统,输入数字选择用户类型:* 一* 一* - 一统一系一赛一匕一h -手一歌-ffl 一使一迎一欢一 一 一* -* 一 一*请选泽用户类型:1:歌手公遭理员0:退出请输入你要选择的序号*一 -*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入的用户名、密码只能包含字母、数字、符号!重新创建密码请按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,选择管理员,设置用户名及密码;苜次登录,请创建一个账户;临零燃户名、密码只能包含字母、数字、密'不马=J<3<J<3<J<3<J<*歌手比春系统L痛加歌手2 .评委评分土歌手排序4, 歌手信息查询S -易TJ7所有1曰息、6, 保存信息到文件?一从文彳牛中读入信息8,修改或删除信息土返回上一级请输入俪要也¥的序°2. 添加歌手界面,添加歌手信息(姓名、性别、年龄、手机号码),关市质迎1史用萱询界面 *L创建歌手信息L追加歌手信息矶返回上一级请输入你要选择的序号系统自动按照输入顺序给定编号1抻此歌手的姓各输无?号选择此歌手的性别:i 男,A女1请输入此歌手的年龄:请输入此歌手的手机号用壬15826784321添加成#!需要输入下一个歌手信息请按丫心3. 评委评分界面,会依次提醒输入每个评委所打的分数(分数必须是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. 成绩排序界面,可进行编号或成绩排序,成绩排序按平均分排序;欢迎使用排序界面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平均分查找歌手信息。返回上一级请输入你要选择的序号章输入查询歌手的成绩(平均分0-100)范围: 置八直:,?取大值:80提示;若需要查询后导出歌手信息,请输入丫代总分平均分796.5 ?9.6777.5 77.7歌手编号42WffiA查询歌手的姓名;食祟,若需要查询后导出歌手信息,请输人Y"歌手编号姓名总分平均分4何明 796.579.6请按任意键继续.6. 显示信息界面,可以显示所有添加的歌手信息;歌手编号1圭曲男男女女 -5 31- 1-手机号码15826784321147458965411567845654113457891234忌分812.579 6.5777.5726.5平均分S1.479.677.?72.97. 保存信息和读入信息即读写到二进制文件中;保隹成功! 瞎基任意键继续,8. 修改或删除信息,对歌手输入的错误信息可以进行修改或者删除缺 席的歌手,以及修改管理员账号及密码;欢迎使用修改删除界面L修改歌手信息2 修改错误评分3 删除歌手信息4修改管理员信息回,返回上一级请输入你要选择的序号.冒输入需要修改的歌手编号=年龄手机号码总分平均分1313457891234 726.572.9歌手费号董小色婴 确定需要修改请输犬丫创WA此歌手的姓名,输乂序号选择此歌手的性别=L男,2女 f青输入此歌手的年龄: 髯输人此歌手的手机号码;13457891233修改成功!请按任意键继续才堂理员账户修改 请量嘉登录:用户名:POOt密'日马.登录成切注意用户名;MmL 密码;修改成功! 请按任意键继续,'M:1输入的用户名、密码只能包含字职 数字、符号!cLnln istoi'M: HIM: HIM: MIX XM: HIM: HIM: MIX X四、小结这个学期的课程设计,我从老师给的众多题目中,选择了歌手比赛系统,一 开始我就觉得这没有太大的难度。系统主要的功能就是增删改查,我们这学期学 的数据结构里面的第二章单链表就可以解决,虽然我学的不是特别的好,也正因 为这样,我也想尝试着用单链表写一次系统,正合了我的心意,所以索性选择了 歌手比赛系统。刚开始写的时候我习惯性的采用C语言面向过程的思路,一个 结构体,一个大循环里面套个switch选择语句,switch里面分别调用功能函数, 这样的思路一个系统的整体框架就出来了,而增删改查功能用书上的单链表的程 序稍微改装就可以了。这样,部分功能就出来了,不过当我遇到写排序时,就犯 困难了,之前学数据结构时,我写的排序是不交换结点只交换结点里的数据,我 觉得这样的写法对于结构体的成员数据比较多的时候,不利于写程序,上网查是 有各种排序方法,但我想用自己仅会的谭浩强C程序设计书上的冒泡排序法, 于是上网找,无奈找不到我想要的。这样我也只能下决心自己去试着写出来。终 于,这个难题被我解决了。之后我又碰到了一个比较棘手的问题,string类型写 入到二进制文件中根本读不出来。在这之后我也陆续遇到了异常处理、管理员登 录等问题。这些问题都有一个助手在帮助我,其实他不但是我的助手,也是大家 的助手一一他就是百度。上一段我曾说过,刚开始写的时候我习惯性的采用C语言面向过程的思路, 后来经老师提醒以及我也想到这次的课程设计的目的不仅仅是练习C+语法,更 重要的是学习面向对象的思路,因此我把结构体改成了类,功能函数也改成了成 员函数,原来的公有成员变量都改为了私有成员变量,有了一定的封装,基本上 算是面向对象了,只不过我没有用上继承、多态,核心内容还是数据的存取。对于实现的功能来说,基本功能我都实现了,还加了一点特色功能,如登录、 导出歌手信息。通过加入的特色功能,我也看到了程序其实还可以更进一步的完 善:实现多用户的登录,程序的界面有待进一步学习。程序中,我虽然解决了异 常处理,但用的方式只是用if来判断,输入错误则重新输入,其实可以用 trycatch()或if输入错误便退出,但我觉得直接退出然后重新输入过于麻 烦,所以没这样做。另一方面,我有些函数比较长,而且还有相似代码的函数,却没有写成调用一个函数,所以我的算法设计思路还不太明确,需要加强。对于面向对象的思路,我还很多不具备,仅仅是学会语言这是不够的,这样 的思路需要我自己更多的学习面向对象和实践才能写出更高质量的面向对象程 序设计。附录1:参考文献1谭浩强编著:C+程序设计,北京:清华大学出版社,20062赵波著:数据结构实用教程(C语言版),北京:清华大学出版社,2009附录2:程序清单以下是歌手比赛系统的源代码:文件1:geshou.h#include<iostream>#include<string>#include<fstream>#include<iomanip>#include<conio.h> /getch() using namespace std;class Singer 歌手类private:int number;编号char name11; 姓名char sex; 性别short age;年龄char phoneNum12; / 手机号码double mark;成绩double sumMark;总成绩Singer *next;public:Singer() this->next=NULL; Singer(int number,string name,string phoneNum,char sex='1',short age=0):number(number),sex(sex),age(age)strncpy(this->name,name.c_str(),name.length()+1); / 将字符串转换为字 符数组 strcpy(this->name,name);strncpy(this->phoneNum,phoneNum.c_str(),phoneNum.length()+1);/strcpy(this->phoneNum,phoneNum);/ this->number=number;/ this->sex=sex;/ this->age=age;this->mark=0;this->sumMark=0;this->next=NULL;void setSinger(string name,string phoneNum,char sex,short age)strncpy(this->name,name.c_str(),name.length()+1);strncpy(this->phoneNum,phoneNum.c_str(),phoneNum.length()+1);this->sex=sex;this->age=age;void setMark( double mark ) this->mark=mark; void setSumMark( double sumMark ) this->sumMark=sumMark; void setNext( Singer *next ) this->next=next; int getNumber() return number; string getName()string name(&this->name0,&this->namestrlen(name);将字符数组换为字符串return name;char* getSex()if(sex='1') return ”男”;else return ”女”;short getAge() return age; char* getPhoneNum() return phoneNum; double getMark() return mark; double getSumMark() return sumMark; Singer *getNext() return next;void getSinger(bool sign)if(sign=1) cout<<setw(2+8)<<"歌手编号”<<setw(1+2+6)<<”姓 名 "<<setw(2+1+6)<<"总分"<<setw(1+1+6)<<"平均分"<<setw(1)<<endl;cout<<setw(2+5)<<number<<setw(4+2+6)<<name<<setw(2+1+5)<<setprecision (4)<<sumMark<<setw(2+2+4)<<setprecision(3)<<mark<<setw(2)<<endl;void getMoreData(bool sign)if(sign=1)cout<<setw(2+8)<<"歌手编号”<<setw(1+2+6)<<”姓 名 "<<setw(2+1+4)<<"性别"<<setw(1+1+4)<<"年龄"<<setw(1+1+11)<<"手 机号码 "<<setw(1+1+6)<<"总 分"<<setw(1+1+6)<<"平均分"<<setw(1)<<endl;cout<<setw(2+5)<<number<<setw(4+2+6)<<name<<setw(2+2+2)<<getSex()<< setw(2+2+2)<<age<<setw(2+1+11)<<phoneNum<<setw(1+1+5)<<setprecision(4)<< sumMark<<setw(2+2+4)<<setprecision(3)<<mark<<setw(2)<<endl;class Administrator管理员类 private:string username; / 管理员号string password; 管理员密码public:bool firstInput(); 首次输入bool administratorReg(); 登陆检测void amendUser();修改用户账户bool input();输入用户void menuHead(); 类型菜单void menu();菜单void addMenu(); 添加歌手菜单void sortMenu(); / 排序菜单void searchMenu(); 查询菜单void amendMenu();/修改菜单Singer *addSinger(Singer *);添加歌手void grade(Singer *);评分void sort(Singer *); 排序void numSort(Singer *,int); 编号排序void gradeSort(Singer *,int); 成绩排序void search(Singer *);查询信息void amend(Singer *);修改信息void deleteSinger(Singer *,Singer *); 删除歌手信息void deriveSinger(Singer *,bool); 导出歌手信息void deriveSinger(Singer *); 导出歌手信息void listSinger(Singer *L); / 显示所有信息void save();保存管理员信息bool read(); 读取管理员信息string encrypt(string,short); 加密void save(Singer *);保存信息到文件Singer *load();从文件中读入信息int singerNumber(Singer *); 歌手人数Singer *locateSinger(Singer *,int); 按编号查询歌手void locateSinger(Singer *,string); / 按姓名查询歌手void locateSinger(Singer *,double,double); 按成绩查询歌手 ;void admPanel(Administrator,Singer*);菜单面板文件2: “function.cpp”#include"geshou.h”Singer *Administrator:addSinger(Singer *L)添加歌手Singer *s,*r; /s尾指针L头指针char tab;static number=0; 编号string name; 姓名char sex; 性别short age;年龄string phoneNum; /手机号码addMenu();cin>>tab;fflush(stdin);switch(tab)case '1':cout<<"提示:n创建歌手会删除原来创建或导入进来的歌手信息,n你确定要创建吗?(确定请输入Y/y)"<<endl;cin>>tab;fflush(stdin);if(tab != 'y' && tab != 'Y') return L;r=L=new Singer;break;case '2':if(!L) r=L=new Singer;elses=L->getNext();while(s) r=s; s=s->getNext(); number=r->getNumber();break;case '0': return L;default:cout<<"输入有误! "vvendl;system("pause"); return L;donumber+;cout<<"请输入此歌手的姓名:"vvendl;cin>>name;while(name.length()>10)字符串长度限定cout<<"超过限定长度,请重新输入(5个字以内)! n"cout<<"请输入此歌手的姓名:"vvendl;cin>>name;cout<<"输入序号选择此歌手的性别:1.男,2.女"<<endl;cin>>sex;fflush(stdin);while(sex!='1'&&sex!='2')cout<<"输入有误! n输入序号选择此歌手的性别:1.男,2.女n"cin>>sex;fflush(stdin);cout<<"请输入此歌手的年龄:"<<endl;cin>>age;while(cin.fail() | age<=0) /if(!cin)判断一个流是否“坏”掉了 fail() 被设定为真,failbit被设定,cin被标记错误cerr << "输入有误!请重新输入年龄! n"cin.clear(); /清除错误状态,failbit设置为0fflush(stdin);cin>>age;cout<<"请输入此歌手的手机号码:"<<endl;cin>>phoneNum;while(phoneNum.length()!=11)字符串长度限定cout<<"请输入11位手机号码:"<<endl;cin>>phoneNum;s=new Singer(number,name,phoneNum,sex,age);r->setNext(s);r=s;cout<<"添加成功! n"cout<<"需要输入下一个歌手信息请按Y/y"<<endl;cin>>tab;fflush(stdin);while(tab = 'y' II tab = 'Y');r->setNext(NULL);save(L);return L;void Administrator:grade(Singer *L)评分char tab;double max,min,sumMark,mark10;Singer *p=L->getNext();while(p)cout<<"请在0100以内评分n"cout<<"请输入"<<p->getNumber()<<”号歌手”<<p->getName()<<”的得分 (0100)"<<endl;dosumMark=0;for(int i=0;i<10;i+)cout<<"第"vvi+1<<"个评委的评分:";cin>>marki;while( cin.fail() II marki<0 II marki>100)if( cin.fail()cerr << "输入有误,请重新输入! n"cin.clear();fflush(stdin);else if( marki<0 II marki>100 ) cout<<"请在 0100 以内评 分叶;cout<<"第"vvi+1<<"个评委的评分:"cin>>marki;sumMark=sumMark+marki;cout<<"提示:若需要修改刚输入的评分,请输入Y/yn"cin>>tab;fflush(stdin);while( tab = 'Y'IItab = 'y');max=min=mark0;for(int i=1;i<10;i+)max=(marki>max)?marki:max;min=(marki<min)?marki:min;cout<<"n 总分:"<<setprecision(4)<<sumMark;p->setSumMark(sumMark);sumMark=sumMark-max-min;p->setMark(sumMark/8.0);cout<<"n 除去一个最高分:"vvsetprecision(3)vvmaxvv"n 除去一个最低 分:"<<min<<"n 剩余得分:"<<setprecision(4)<<sumMark<<"n 求其平均分: "<<setprecision(3)<<p->getMark()<<endl;p=p->getNext();save(L);cout<<"评分成功! "system("pause");void Administrator:sort(Singer *L) / 排序int count = singerNumber(L);char choose;while(choose!='0')sortMenu();cin>>choose;fflush(stdin);switch(choose)case '1': numSort(L,count); break; 编号排序case '2': gradeSort(L,count); break; 成绩排序case '0': break;default: cout<<"输入有误! "vvendl; system("pause");void Administrator:search(Singer *L)查询信息Singer *p=L->getNext();int number;string n

    注意事项

    本文(c++课程设计报告--歌手比赛系统.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开