logo资料库

学生运动会成绩数据库<数据结构>.docx

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
目录1、具体任务………………………………………………(3)二、评语(教师填写)………………………
六、运行结果…………………………………………(11-12)七、收获及体会…………………………………
芙蓉学院 数据结构课程设计 目: 题 级: 班 名: 姓 号: 学 同组人员: 起迄日期: 设计地点: 指导教师: 评阅意见: 成绩评定: 评阅人: 日期: 完成日期:2019 年 1 月 1
目录 1、具体任务………………………………………………(3) 二、评语(教师填写)………………………………………(3) 三、软件环境………………………………………………(3) 四、算法设计思想及流程图………………………………(4) 1、算法设计 2、模块功能介绍 3、主程序浏览图 五、源代码………………………………………………(5-10) 六、运行结果…………………………………………(11-12) 七、收获及体会…………………………………………(13) 八、参考文献………………………………………………(13) 2
一、 具体任务: 学生运动会成绩数据库系统记录某校运动会上全部运动项目,各系获得的分数及排名的情 况,包括 50、100、200,400,1500 米,跳高,跳远,标枪,铅球铁饼等。进入系统后可 以输入和修改某个项目的结果情况,可以按各系院编号输出总分;按总分排序;按男团体总 分排序 ;按系院编号查询;按项目编号查询;按女团体总分排序。 分步实施: 1) 初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2) 完成最低要求:建立一个文件,包括某个系,5 个项目的得分情况,能对文件中的信息 进行扩充(追加),修改和删除; 3) 进一步要求:完成对多个系,多个项目的得分排序,以及完成系统查询功能。有兴趣的 同学可以自己扩充系统功能。 键盘输入:系院数目,男子项目数女子项目数,(每项目取前三名,分别为 10,5,2 分) 要求:1)界面友好,函数功能要划分好 2)总体设计应画一流程图 3)程序要加必要的注释 4) 要提供程序测试方案 5) 程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价 值的。 二、 评语(教师填写) 三、软件环境 Microsoft Visual C++ 6.0 四、算法设计思想及流程图 1、算法设计 2 上图即为运动会设计的表格,据此表格即可定义 Academy 和 score 两个结构体,定义且完成 数据输入操作后在对其添加系院和项目、更改数据、查询总分、按(男子、女子、系院)总 分排名等操作 模块功能介绍 1)Push 添加学院或项目以及获得的成绩 2)2)Correct 更改某一个系院项目男女的分数 3)Addupscore 核算各个系院的总分 4)Sort 核算各个系院的总分并按分数高低排名 3
5)Malesort 核算各个系院的男子项目总分并按分数高低排名 6)Femalesort 核算各个系院的女子项目总分并按分数高低排名 7)Acasearch 查找特定系院所有项目的分数 8)Itemsearch 查找特定项目的所有系院分数 3、主程序浏览图 4
五、源代码 // 运动会成绩.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include #include #define Maxnum 50 typedef struct /*包含学院名称和编号的代表学院的结构体*/ { char name[10]; int num; }Academy; typedef struct /*分数结构体*/ { Academy Aca[Maxnum]; struct { int male; int female; }score[Maxnum][Maxnum]; int m,n,b,g; }Score; typedef struct /*交换变量结构体*/ { int score; char name[20]; }change; void Mainmenu(Score *p); /*主菜单*/ void Push(Score *p) { int flag,i,j,f,b=0,g=0; printf("please put in flag and number:\n"); scanf("%d %d",&flag,&f); if(flag==0) { printf("请输入新增的学院分数\n"); for(i=p->m+1;i<=p->m+f;i++) for(j=1;j<=p->n;j++) scanf("%d%d",&p->score[i][j].male,&p->score[i][j].female); printf("请输入新的学院名字和编号:\n"); for(i=p->m+1;i<=p->m+f;i++) 5
scanf("%s %d",p->Aca[i].name,&p->Aca[i].num); p->m+=f; } if(flag==1) { printf("请输入新增的项目分数\n"); for(j=p->n ;jn+f;j++) { for(i=0;im;i++) scanf("%d %d",&p->score[i][j].male,&p->score[i][j].female); if(p->score[i][j].male!=-1)b++; if(p->score[i][j].female!=-1)g++; } p->n+=f; p->b+=b; p->g+=g; } Mainmenu(p); } void Correct(Score *p)/*更改某一个系院项目的分数*/ { int i,j,sex,f; printf("请输入学院编号,项目编号:\n"); scanf("%d %d",&i,&j); printf("输入修改后的成绩\n"); scanf("%d",&f); printf("1 修改男子得分\n" "0 修改女子得分\n"); scanf("%d",&sex); if(sex==0)p->score[i][j].male=f; if(sex==1)p->score[i][j].female=f; Mainmenu(p); } void Addupscore(Score *p) /*核算各个系院的总分*/ { int i,j,f; printf("各个系院的总分\n"); for(i=1;i<=p->m;i++) { f=0; for(j=1;j<=p->n;j++) { if(p->score[i][j].male!=-1) f=p->score[i][j].male+f; if(p->score[i][j].female!=-1) f=p->score[i][j].female+f; 6
} printf("%s%10d\n",p->Aca[i].name,f); } Mainmenu(p); } void Sort(Score *p) /*核算各个系院的总分*/ { int i,j; change a[Maxnum],t; for(i=1;i<=p->m;i++) { a[i].score=0; strcpy(a[i].name,p->Aca[i].name); for(j=1;j<=p->n;j++) { if(p->score[i][j].male!=-1)a[i].score+=p->score[i][j].male; if(p->score[i][j].female!=-1)a[i].score+=p->score[i][j].female; } } for(i=1;i<=p->m-1;i++) for(j=i+1;j<=p->m;j++) if(a[i].scorem;i++) printf("%s:%10d\n",a[i].name,a[i].score); Mainmenu(p); } void Malesort(Score *p)/*核算各个系院的男子项目总分并按分数高低排名*/ { int i,j; change a[Maxnum],t; for(i=1;i<=p->m;i++) { a[i].score=0; strcpy(a[i].name,p->Aca[i].name); for(j=1;j<=p->n;j++) { if(p->score[i][j].male!=-1) a[i].score+=p->score[i][j].male; } } 7
for(i=1;i<=p->m-1;i++) for(j=i+1;j<=p->m;j++) if(a[i].scorem;i++) printf("%s:%10d\n",a[i].name,a[i].score); Mainmenu(p); } void Femalesort(Score *p)/*核算各个系院的女子项目总分并按分数高低排名*/ { int i,j; change a[Maxnum],t; for(i=1;i<=p->m;i++) { a[i].score=0; strcpy(a[i].name,p->Aca[i].name); for(j=1;j<=p->n;j++) { if(p->score[i][j].female!=-1)a[i].score+=p->score[i][j].female; } } for(i=1;i<=p->m-1;i++) for(j=i+1;j<=p->m;j++) if(a[i].scorem;i++) printf("%s:%10d\n",a[i].name,a[i].score); Mainmenu(p); } void Acasearch(Score *p)/*查找特定系院所有项目的分数*/ { int i,j; printf("请输入学院编号:\n"); scanf("%d",&i); for(j=1;j<=p->n;j++) { 8
分享到:
收藏