学生运动会成绩数据库.docx
- 文档编号:6552062
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:16
- 大小:146.46KB
学生运动会成绩数据库.docx
《学生运动会成绩数据库.docx》由会员分享,可在线阅读,更多相关《学生运动会成绩数据库.docx(16页珍藏版)》请在冰豆网上搜索。
学生运动会成绩数据库
数据结构
课程设计报告
设计题目:
学生运动会成绩数据库
专业运算机科学与技术
班级计092
学生母双敏
学号39
指导教师李兵
起止时刻2020-7-4——2020-7-8
2007年春天学期
一、具体任务………………………………………………(3)
二、评语(教师填写)………………………………………(3)
三、软件环境………………………………………………(3)
四、算法设计思想及流程图………………………………(4-5)
1、算法设计
二、模块功能介绍
3、主程序阅读图
五、源代码………………………………………………(5-12)
六、运行结果…………………………………………(12-14)
七、收成及体会…………………………………………(15)
八、参考文献………………………………………………(15)
一、具体任务:
学生运动会成绩数据库系统记录某校运动会上全数运动项目,各系取得的分数及排名的情形,包括50、100、200,400,1500米,跳高,跳远,标枪,铅球铁饼等。
进入系统后能够输入和修改某个项目的结果情形,能够按各系院编号输出总分;按总分排序;按男集体总分排序;按系院编号查询;按项目编号查询;按女集体总分排序。
分步实施:
1)初步完成整体设计,搭好框架,确信人机对话的界面,确信函数个数;
2)完成最低要求:
成立一个文件,包括某个系,5个项目的得分情形,能对文件中的信息进行扩充(追加),修改和删除;
3)进一步要求:
完成对多个系,多个项目的得分排序,和完成系统查询功能。
有爱好的同窗能够自己扩充系统功能。
键盘输入:
系院数量,男子项目数女子项目数,(每项目取前三名,别离为10,5,2分)
要求:
1)界面友好,函数功能要划分好
2)整体设计应画一流程图
3)程序要加必要的注释
4)要提供程序测试方案
5)程序必然要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
二、评语(教师填写)
三、软件环境
MicrosoftVisualC++
四、算法设计思想及流程图
一、算法设计
项目一
项目二
男
女
男
女
计算机
5
2
10
5
管院
2
5
2
10
水院
10
10
5
2
上图即为运动会设计的表格,据此表格即可概念Academy和score两个结构体,概念且完成数据输入操作后在对其添加系院和项目、更改数据、查询总分、按(男子、女子、系院)总分排名等操作
2、模块功能介绍
1)Push添加学院或项目和取得的成绩
2)2)Correct更改某一个系院项目男女的分数
3)Addupscore核算各个系院的总分
4)Sort核算各个系院的总分并按分数高低排名
5)Malesort核算各个系院的男子项目总分并按分数高低排名
6)Femalesort核算各个系院的女子项目总分并按分数高低排名
7)Acasearch查找特定系院所有项目的分数
8)Itemsearch查找特定项目的所有系院分数
3、主程序阅读图
7
五、源代码
#include<>
#include<>
#include<>
#defineMaxnum50
typedefstruct/*包括学院名称和编号的代表学院的结构体*/
{
charname[10];
intnum;
}Academy;
typedefstruct/*分数结构体*/
{
AcademyAca[Maxnum];
struct
{
intmale;
intfemale;
}score[Maxnum][Maxnum];
intm,n,b,g;
}Score;
typedefstruct/*互换变量结构体*/
{
intscore;
charname[20];
}change;
voidMainmenu(Score*p);/*主菜单*/
voidPush(Score*p)
{
intflag,i,j,f,b=0,g=0;
printf("pleaseputinflagandnumber:
\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++)
scanf("%s%d",p->Aca[i].name,&p->Aca[i].num);
p->m+=f;
}
if(flag==1)
{
printf("请输入新增的项目分数\n");
for(j=p->n;j
{
for(i=0;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);
}
voidCorrect(Score*p)/*更改某一个系院项目的分数*/
{
inti,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);
}
voidAddupscore(Score*p)/*核算各个系院的总分*/
{
inti,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;
}
printf("%s%10d\n",p->Aca[i].name,f);
}
Mainmenu(p);
}
voidSort(Score*p)/*核算各个系院的总分*/
{
inti,j;
changea[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].score { =a[j].score;strcpy,a[j].name); a[j].score=a[i].score;strcpy(a[j].name,a[i].name); a[i].score=;strcpy(a[i].name,; } for(i=1;i<=p->m;i++) printf("%s: %10d\n",a[i].name,a[i].score); Mainmenu(p); } voidMalesort(Score*p)/*核算各个系院的男子项目总分并按分数高低排名*/ { inti,j; changea[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; } } for(i=1;i<=p->m-1;i++) for(j=i+1;j<=p->m;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 运动会 成绩 数据库