文档详情

记分系统实验报告..doc

发布:2017-01-21约3.51千字共5页下载文档
文本预览下载声明
实验报告示例级 班 年月日?? 组员:丁杰,闫志栋,李智斌,刘伟 ????????????? 实验题目 2.????????????? 需求分析 1.参加运动会的N个学校编号为1~N。比赛分成M个男子项目和W个女子项目,每个项目取前3名,得分分别为5,3,2。写一个程序产生各种成绩单和得分报表。 2.完成功能包括如下: ①产生一总成绩表,包括:系名、男子团体总分、女子团体总分、团体总分 存储结构要求用线性表的顺序存储。 ②实验报告中要写出测试数据、错误分析以及收获。 ③若选择学生成绩管理子系统,可仿照运动会记分子系统完成相关的插入、删除、查找及各种统计工作。 3.????? 概要设计 要实现记分的功能,必须能够输入学校名称和编号,还需要输入比赛项目的名称和编号,因次先要编写关于学校和项目的输入程序。其次,要实现成绩的查询,并且按照成绩排名就需要编写出排序程序。 4.????????????? 详细设计 首先,定义两个结构体,代码如下: struct school //刘伟 { char school_name[30] ; int men_score; int women_score; int total_score; int number; }S[p]; struct iteam //刘伟 { char iteam_name[30]; int number; }T[q]; 其次,关于学校输入,保存以及读出的程序代码是:(关于项目的代码一样) void creat_School( ) //丁杰 { int i; printf(请输入你要输入的学校数目:\n\t\t\t); scanf(%d,n); for(i=0;in;i++) { printf(请输入学校的名字和编号:\n); scanf(%s%d,S[i].school_name,S[i].number); S[i].men_score=0; S[i].total_score=0; S[i].women_score=0; } } void save_school() //丁杰 { int i; FILE *fp; if((fp=fopen(school_data,w))==NULL) {printf(文件打开不成功 请下次再试\n); exit(0); } fwrite(n,sizeof(int),1,fp); for(i=0;in;i++) { if(fwrite(S[i],sizeof(struct school),1,fp)!=1) printf(文件输入错误!\n); } fclose(fp); } void read_school() //丁杰 { int i; FILE *fp; fp=fopen(school_data,rb); fread(n,sizeof(int),1,fp); for(i=0;in;i++) { fread(S[i],sizeof (struct school),1,fp); } fclose(fp); } 最后,关于查询成绩的代码如下: void number1( ) //李智斌 { char name[30]; int i,j,a,b,c,d; for(i=0;in-1;i++) for(j=0;jn-1-i;j++) if(S[j].men_scoreS[j+1].men_score) { a=S[j].men_score;S[j].men_score=S[j+1].men_score;S[j+1].men_score=a; b=S[j].women_score;S[j].women_score=S[j+1].women_score;S[j+1].women_score=b; c=S[j].total_score;S[j].total_score=S[j+1].total_score;S[j+1].total_score=c; d=S[j].number;S[j].number=S[j+1].number;S[j].number=d; strcpy(name,S[j].school_name);strcpy(S[j].school_name,S[j+1].school_name);strcpy(S[j +1].school_name,name); } } void shearch_school() //闫志栋 { int x,i,j; char name[30]; printf(\n按编号查询请按1:\t\t 按姓名查询请按2:\t\t); s
显示全部
相似文档