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

    《C++程序设计》课程设计说明书比赛参赛选手管理系统.doc

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

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

    《C++程序设计》课程设计说明书比赛参赛选手管理系统.doc

    C+程序设计课程设计说明书题 目:比赛参赛选手管理系统 学生姓名: 学 号: 专 业:电子信息工程 班 级:信息092 指导老师: 内蒙古科技大学课程设计任务书课程名称C+语言课程设计设计题目比赛参赛选手管理系统指导教师时间2011.6.132011.6.24一、教学要求1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,可根据设计内容适当修改题目名称。*比赛参赛选手管理系统定义人员基类,包含选手的基本数据和基本属性;要求至少设计以下各功能模块:v 输入记录v 查询功能v 排序v 显示信息三、设计要求及成果1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交课程设计报告四、进度安排资料查阅与讨论(1天)系统分析(2天)系统的开发与测试(5天)编写课程设计说明书和验收(2天)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C+面向对象程序设计,吴敏、杨国林 主编,内蒙古大学出版社2C+语言程序设计(第三版),郑莉,清华大学出版社比赛参赛选手管理系统摘要C+语言是目前公认的热门编程语言之一。C+是在C语言基础上发展演变而来的一种面向对象程序设计语言。它既支持面向过程的程序设计方法,也支持面向对象的程序设计方法。当今,C+语言在社会的各个领域发挥着越来越重要的作用。参赛选手系统的设计正是C+用于生活中的一项应用。参赛选手管理系统能方便用户快捷处理选手的信息,得到想要的数据并能将选手的信息以文档方式保存。此系统的主要管理的信息有:选手的姓名,编号和三项赛事的成绩。系统的主要功能有选手信息的添加、修改、显示,能对选手成绩按编号或成绩进行排序,可以根据用户的要求按姓名,编号查询选手的信息,保存信息到文件以及从文件中读取信息等功能。目录摘要2第一章 问题描述2第二章 问题分析2第三章 数据模型2第四章 设计流程图2第五章 程序代码2第六章 运行结果2第七章 设计总结2参考文献2第一章 问题描述建立一套比赛参赛选手管理系统。定义人员基类(competitor),包含选手的基本数据和基本属性,实现以下各功能:v 输入记录:选手信息数据要以文件的形式保存,能实现选手信息数据的维护。此模块包括子模块有:增加选手信息、修改选手信息。v 查询功能:查询时可实现按姓名查询、按编号查询、成绩查询v 排序:能对用户指定的任意项目名,按成绩由低到高排列选手数据并显示排序结果。v显示信息:显示选手的编号、项目、成绩等信息。设计要求及成果1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用第二章 问题分析方案说明:参赛选手管理系统是用面向对象的方法设计,由于数组的存放是连续的,而单链表是非连续存放的,是动态分配内存空间,因此此系统采用单链表来完成。各个功能模块的实现主要转变到对单链表的遍历,添加和删除结点。系统功能模块的划分:在主界面中包括“增加选手 修改选手 查询选手信息 排序 保存信息 读取信息 退出”等全部的功能,之所以设计这么一个主界面,一是因为能使用户对程序操作的流程更加清楚简明,二是保证了用户同时只能对一个文件进行操作的系统要求,保证了系统不会发生打开文件紊乱或者出现致命错误。功能模板的划分显示菜单功能模板1增加选手功能2修改选手功能3查询选手信息4排序功能5保存信息6读取信息7退出第三章 数据模型类的设计定义参赛选手competitor类,包含成员变量:姓名name,编号num,短跑、跳高、跳远成绩x,y,z。class competitor /选手public: competitor *next; public: string name; /姓名 long num; /编号 int x,y,z; /短跑,跳高,跳远 成员函数:void sadd(); /添加void samend(); /修改void ssearch(); /查询void staxis(); /排序void ssave(); /保存void sload(); /读取void pxh();void psx();void pyw();void pyy();第四章 设计流程图开始读入文件中的数据并输出菜单及提示信息输入选择选择操作子程序保存并退出 图4.1 流程图 第五章 程序代码#include<iostream> #include<fstream > #include<iomanip > #include<string > using namespace std; class competitor public: competitor *next; public: string name; /姓名 long num; /编号 float x,y,z; /短跑,跳高,跳远 void play()cout<<name<<"选手的编号是"<<num<<",短跑:"<<x<<",跳高:"<<y<<",跳远:"<<z <<endl; competitor(string sname,long snum,float sx,float sy,float sz) name=sname; num=snum; x=sx; y=sy; z=sz; ; class cla public: cla() /构造函数 comp=0; sload(); cla() /析构函数 competitor *p; p=comp; while(p) p=p->next; delete comp; comp=p; comp=0; void sadd(); /添加 void samend(); /修改 void ssearch(); /查询 void staxis(); /排序 void ssave(); /保存 void sload(); /读取 void pxh(); void psx(); void pyw(); void pyy(); private: competitor *comp; /头接点 ; void cla:sadd() /添加 competitor *q; string name1; long num1; float x1,y1,z1; system("cls"); cout<<"n *增加的选手* n"<<endl; cout<<"请输入选手的(中间用空格间隔) "<<endl; cout<<"姓名 编号 短跑成绩 跳高成绩 跳远成绩"<<endl; cin>>name1>>num1>>x1>>y1>>z1; q=new competitor(name1,num1,x1,y1,z1); q->next=0; if(comp) competitor *t; t=comp; if(t->num=num1) cout<<"编号已存在,请重新输入"<<endl; return; while(t->next) if(t->num=num1) cout<<"编号已存在,请重新输入"<<endl; return; t=t->next; t->next=q; else comp=q; cout<<"输入完毕"<<endl; void cla:samend() /修改 system("cls"); long num1; cout<<"n* 修改选手信息 *n" cout<<"输入要修改选手的编号" cin>>num1; /查找要修改的结点 competitor *p1,*p2; p1=comp; while(p1) if(p1->num=num1) break; else p2=p1; p1=p1->next; if(p1!=NULL) cout<<"编号是"<<num1<<"的选手的信息:"<<endl; cout<<"姓名 "<<p1->name<<" 短跑"<<p1->x<<" 跳高"<<p1->y<<" 跳远"<<p1->z<<endl; cout<<"请输入修改后的信息:姓名 短跑成绩 跳高" ;cout<<"成绩 跳远成绩"<<endl; cin>>p1->name>>p1->x>>p1->y>>p1->z; cout<<"修改成功"<<endl; else /未找到接点 cout<<"未找到!n" void cla:ssearch() /查询 system("cls"); cout<<"n* 查询选手信息 *n"<<endl; cout<<"请输入查询方式:"<<endl; cout<<"1.按编号查询"<<endl; cout<<"2.按姓名查询"<<endl; cout<<"3.返回"<<endl; char c; cin>>c; switch (c) case '1': long num1; cout<<"要查询的编号"<<endl; cin>>num1; /查找要查询的结点 competitor *p1,*p2; p1=comp; while(p1) if(p1->num=num1) break; else p2=p1; p1=p1->next; if(p1!=NULL) cout<<"编号是"<<num1<<"的选手的信息"<<endl; cout<<"姓名:"<<p1->name<<" 短跑:"<<p1->x<<" 跳高:"<<p1->y<<" 跳远:"<<p1->z<<endl; cout<<"查询完毕." else /未找到接点 cout<<"未找到!n" break; case '2': string name1; cout<<"要查询的选手姓名"<<endl; cin>>name1; /查找要查询的结点 competitor *p1,*p2; p1=comp; while(p1) if(p1->name=name1) break; else p2=p1; p1=p1->next; if(p1!=NULL) cout<<name1<<"的选手的信息"<<endl; cout<<"编号:"<<p1->num<<" 短跑:"<<p1->x<<" C+:"<<p1->y<<" 跳远:"<<p1->z<<endl; cout<<"查询完毕." else /未找到接点 cout<<"未找到!n" break; case '3': return; void cla:pxh() /按编号排序 competitor *p1,*p2; int n; p1=comp; n=1; while(p1->next) n+; p1=p1->next; cout<<"共有"<<n<<"条信息."<<endl; int i; p1=comp; for(i=1;i<n;i+) p1=comp; if (p1->num>p1->next->num) / 如果头结点大于第二个的 p2=p1->next; p1->next=p1->next->next; p2->next=p1; /头结点交换 comp=p2; p1=comp; while(p1->next->next) /中间的交换 p2=p1; p1=p1->next; if(p1->num>p1->next->num) p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; /交换 p1=comp; do p1->play(); p1=p1->next; while(p1); void cla:psx() /按短跑成绩排序 competitor *p1,*p2; int n; p1=comp; n=1; while(p1->next) n+; p1=p1->next; cout<<"共有"<<n<<"条信息."<<endl; int i; p1=comp; for(i=1;i<n;i+) p1=comp; if (p1->x>p1->next->x) / 如果头结点大于第二个的 p2=p1->next; p1->next=p1->next->next; p2->next=p1; /头结点交换 comp=p2; p1=comp; while(p1->next->next) /中间的交换 p2=p1; p1=p1->next; if(p1->x>p1->next->x) p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; /交换 p1=comp; do p1->play(); p1=p1->next; while(p1); void cla:pyw() /按跳高成绩排序 competitor *p1,*p2; int n; p1=comp; n=1; while(p1->next) n+; p1=p1->next; cout<<"共有"<<n<<"条信息."<<endl; int i; p1=comp; for(i=1;i<n;i+) p1=comp; if (p1->y>p1->next->y) /如果头结点大于第二个的 p2=p1->next; p1->next=p1->next->next; p2->next=p1; /头结点交换 comp=p2; p1=comp; while(p1->next->next) /中间的交换 p2=p1; p1=p1->next; if(p1->y>p1->next->y) p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; /交换 p1=comp; do p1->play(); p1=p1->next; while(p1); void cla:pyy() /按跳远成绩排序 competitor *p1,*p2; int n; p1=comp; n=1; while(p1->next) n+; p1=p1->next; cout<<"共有"<<n<<"条信息."<<endl; int i; p1=comp; for(i=1;i<n;i+) p1=comp; if ( p1->z>p1->next->z) / 如果头结点大于第二个的 p2=p1->next; p1->next=p1->next->next; p2->next=p1; /头结点交换 comp=p2; p1=comp; while(p1->next->next) /中间的交换 p2=p1; p1=p1->next; if(p1->z>p1->next->z) p2->next=p1->next; p1->next=p1->next->next; p2->next->next=p1; p1=p2->next; /交换 p1=comp; do p1->play(); p1=p1->next; while(p1); void cla:staxis() /排序 system("cls"); char c; cout<<"请选择以何种方式排序:"<<endl; cout<<"1以编号排序"<<endl; cout<<"2以短跑成绩排序"<<endl; cout<<"3以跳高成绩排序"<<endl; cout<<"4以跳远成绩排序"<<endl; cout<<"5返回"<<endl; cout<<"请选择(1-5)"<<endl; cin>>c; switch (c) case '1':pxh(); break; case '2':psx(); break; case '3':pyw(); break; case '4':pyy(); break; case '5':return; void cla:ssave() /保存到文件 system("cls"); char c; cout<<"n保存选手信息(将覆盖原文件),是否继续?Y/N:" cin>>c; if(toupper(c)!='Y') return; ofstream tfile("date.txt",ios_base:binary); competitor *p=comp; while(p) / 写入文件 tfile<<p->name<<"t"<<p->num<<"t"<<p->x<<"t"<<p->y<<"t"<<p->z; tfile<<endl; p=p->next; tfile.close(); cout<<"保存完毕."<<endl; void cla:sload() /读取 competitor *p; p=comp; while(p) comp=p->next; delete p; p=comp; If stream tfile("date.txt",ios_base:binary); string name1; long num1; float x1,y1,z1; tfile>>name1>>num1>>x1>>y1>>z1; while(tfile.good() /创建选手接点 competitor *s; s=comp; s=new competitor(name1,num1,x1,y1,z1); s->next=0; if(comp) /若已经存在结点 competitor *p2; p2=comp;while(p2->next) /查找尾结点 p2=p2->next; p2->next=s; /连接 else /若不存在结点(表空) comp=s; /连接 tfile>>name1>>num1>>x1>>y1>>z1; tfile.close(); cout<<"n欢迎使用选手成绩管理系统n" void main() char c; cla a; do cout<<"*n" cout<<" 1增加选手 n" cout<<" 2修改选手 n" cout<<" 3查询选手信息 n" cout<<" 4排序 n" cout<<" 5保存信息 n" cout<<" 6读取信息 n" cout<<" 7退出 n" cout<<"*n" cout<<"请选择(1-7):" cin>>c; switch(c) case '1': a.sadd();break; case '2': a.samend();break; case '3': a.ssearch();break; case '4': a.staxis();break; case '5': a.ssave();break; case '6': a.sload();break; while(c!='7'); 第六章 运行结果图6.1 运行结果主界面第七章 设计总结通过一个学期的C+学习,我对C+语言有了基本认识,但是对有些知识懂得还不够透彻。通过这次为期两周的课程设计,我学到了更多关于C+面向对象的程序设计的内容。这个课题用到了C+语言程序设计的知识,通过这次课程设计,使我对C+设计有了更深的了解,对课本上的知识有了进一步的掌握,同时也使我对自己的专业知识有进一步的巩固加深。在写程序时,要注意类与对象、构造函数、析构函数、成员函数等相结合,尤其是在学好程序后,要运行,有不足之处及时完善。把理论知识与实践相结合,才能将所学知识运用的恰到好处。参考文献1吴敏,杨国林. C+面向对象程序设计M.呼和浩特:内蒙古大学出版社.2006.2郑莉.C+语言程序设计M. 北京:清华大学出版社.2003.3刘开军.C+程序设计M.北京:清华大学出版社.2004.

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开