运动会成绩管理系统基于c++课程设计_第1页
运动会成绩管理系统基于c++课程设计_第2页
运动会成绩管理系统基于c++课程设计_第3页
运动会成绩管理系统基于c++课程设计_第4页
运动会成绩管理系统基于c++课程设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构课程设计报告 姓名:丁文玲 学号:53100824 2010级八班 实验室:B212提交日期:2012/8/22 成绩 指导老师实验题目:运动会分数统计问题解析(对问题的分析、理解和解题方法):1:需求分析: 可以输入各个项目的前三名或前五名成绩 能统计各学校总分 可以按学校编号或名称,学校总分,男女团体总分排序输出 可按学校编号查询学校某个项目的情况,可以按项目编号查询取得前三或前五名的学校 数据存入文件并能随时查询2:对问题分析,理解,解题方法: (1):为实现以上需求,可设计两个大的结构体schools,items,分别表示学校和项目,但又因每个学校实际是与其获奖的一些项目紧紧相

2、连的,所以设计一个小的结构体school-node,其中包含链域,将学校的获奖项目通过链表串起来,在学校大结构体中设置一个school-node型指针来指向链表头指针。同理,items项目结构体有一个支持小结构体item-node。 (2):看要求可知,items结构体中需设置项目编号,项目名称,链表中第一个结点; Item-node结构体中需设置学校编号,项目成绩(可表明为第几名),链域;schools结构体中需设置学校编号,学校名称,学校总分,男团体总分,女团体总分,链表中第一个获奖项目的结点;school-node结构体中需设置该学校获奖的项目,项目成绩,链域。 (3):具体结构体设置如

3、下:typedef struct item_node int school; /学校编号 int record; /项目成绩 struct item_node *next; /链域 item_node; typedef struct school_node int item; /该学校获奖的项目 int place; int record; /项目成绩 struct school_node *next; /链域 school_node; typedef struct int item; /项目编号 char itemname20;/项目名称 item_node *firstschool; /链

4、表中第一个结点 int number; items; typedef struct int school; /学校编号 char schoolname20;/学校名称 int score; /学校总分 int boys; /男团体总分 int girls; /女团体总分 school_node *firstitem; /链表中第一个获奖项目的结点 schools; (4):此结构体实现功能要求的机制: (a)输入的时候分别向schools结构体的链表中添加schoolnodes结点和向items结构体链表中添加Itemnodes结点。同时可统计学校总分,男团总分,女团总分。 (b)根据scho

5、ols结构体中的school,score,boys,girls可实现按学校编号,学校总分,男团总分,女团总分排序输出。根据schools里的schoolnodes *firstitem,items结构体里的itemnodes *firstschool可实现查询。 (5):为实现良好的界面,使用system(“pause”),system(“cls”)以实现暂停和清屏功能,使界面更简洁,干净 (6):信息录入时每个项目有前三,前五的选择,在这应加选择语句。数据结构选择:四个结构体: typedef struct item_node int school; /学校编号 int record; /项

6、目成绩 struct item_node *next; /链域 item_node; typedef struct school_node int item; /该学校获奖的项目 int place; int record; /项目成绩 struct school_node *next; /链域 school_node; typedef struct int item; /项目编号 char itemname20;/项目名称 item_node *firstschool; /链表中第一个结点 int number; items; typedef struct int school; /学校编号

7、 char schoolname20;/学校名称 int score; /学校总分 int boys; /男团体总分 int girls; /女团体总分 school_node *firstitem; /链表中第一个获奖项目的结点 schools; 算法设计:(1)对于input(): 首先输入男子项目总数m,输入女子项目总数w,学校总数n,(这三个数都为小于20的数,要有个判断输入是否错误).各项目名称,各学校名称,按项目依次录入信息:输入要录入的项目,选择前三还是前五, 输入获奖学校,将这些信息添加到schools,items结构体中 (2)程序中用到的system(“pause”);其功

8、能:运行的时候就可以出现“请按任意键以继续.”按任意键就能继续了 (执行下以命令),由于我在程序中的下一条命令是“返回到菜单主界面”如果我不加这条命令的话,就会显示结果很快就返回到菜单主界面,很快,结果一显而过。 程序中用到的system(“cls”);其功能是清屏。就是将屏幕显示的内容清理掉的意思。 (3)具体代码:#include #include #include stdlib.h #include #include #include using namespace std;#define MAX 50 typedef struct item_node int school; /学校编号

9、 int record; /项目成绩 struct item_node *next; /链域 item_node; typedef struct school_node int item; /该学校获奖的项目 int place; int record; /项目成绩 struct school_node *next; /链域 school_node; typedef struct int item; /项目编号 char itemname20;/项目名称 item_node *firstschool; /链表中第一个结点 int number; items; typedef struct in

10、t school; /学校编号 char schoolname20;/学校名称 int score; /学校总分 int boys; /男团体总分 int girls; /女团体总分 school_node *firstitem; /链表中第一个获奖项目的结点 schools; / 输入各个项目成绩 void input(items *a,schools *b,int &n,int &z) ofstream out; out.open(运动会.txt,ios:trunc); item_node *p1; school_node *p2; int i=1;int j,k,m,w,x; p1=(i

11、tem_node *)malloc(sizeof(item_node); p2=(school_node *)malloc(sizeof(school_node ); if(!p1|!p2) exit(1); printf(n 运动会分数统计系统); outn 运动会分数统计系统; printf( 输入男子项目总数m:); scanf(%d,&m); if(m20) printf( 输入有误,m是20以内的整数,请重新输入:); scanf(%d,&m); printf( 输入女子项目总数w:); scanf(%d,&w); if(w20) printf( 输入有误,w是20以内的整数,请重新

12、输入:); scanf(%d,&w); printf( 输入参加运动会的学校总数n:); scanf(%d,&n); if(n20) printf( 输入有误,n是20以内的整数,请重新输入:); scanf(%d,&n); z=m+w; printf( 则项目编号为男子1-%d,女子%d-%d,m,m+1,z); printf(nn *记录运动会成绩*n); cout请依次输入项目名称:endl; for(k=1;kak.itemname; coutendlendlendl; cout请依次输入学校名称:endl; for(k=1;kbk.schoolname; b0.score=0; b0

13、.boys=0; b0.girls=0; system(cls); printf(n *输入各个项目信息 * nn); cout学校编号提示:; for(int K=1;K=n;K+) coutNO.KbK.schoolname ; coutendl项目编号提示:; for(int I=1;I=m+w;I+) coutNO.IaI.itemname ; coutendlendlendl; while(i!=0&i(m+w) printf(n%s项目,ai.itemname); outn 项目:; outi; Judge(j,i,m,x,n,p1,p2,a,b,out);i+; out.clos

14、e(); 任务分工及进度计划:(1) 我的分工:数据结构结构体的定义运动会信息的录入屏幕操作函数实现界面简洁好看(2) 8/18: 对问题整体分析,进行对数据结构的选择构想8/19:编写数据结构,四个结构体,编写函数input()进行信息录入 8/20:学习界面操作函数并添加到程序里面,使用户见面简洁,人性化 8/21:对程序进行调整,解决部分错误输出,编写报告。工作日记(记录每日工作进展):8/18: 对问题整体分析,进行对数据结构的选择构想8/19:编写数据结构,四个结构体,编写函数input()进行信息录入 8/20:学习界面操作函数并添加到程序里面,使用户见面简洁,人性化 8/21:对程序进行调整,解决部分错误输出,编写报告。总结(对所作程序进行分析、评价运行效果,总结遇到的问题和解决办法)(1) 运行结果: 1.主菜单窗口2. 输入各个项目成绩并存储请选择(08):1进入输入各个项目成绩并存储文件1.输入男子项目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论