资源描述
HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY
C语言程序设计
课程设计汇报
课设题目: 学校运动会管理系统
专 业: 电子信息工程
班 级: T1223-14
姓 名: 王松
成 绩:
完成日期: 6月7日-6月20日
指导老师: 张吴波
目 录目 录
1.课程设计目标 2
2.需求分析 2
2.1要求 2
2.2任务描述 2
2.3运行环境 3
2.4开发工具 3
3.总体设计 3
3.1系统流设计 3
3.2系统模块设计 4
4.具体设计 5
4.1数据结构设计 5
4.2模块接口设计 6
4.3 以下是多个关键模块步骤图: 7
5.运行结果 11
5.1主菜单界面: 11
5.2图书信息查询界面: 12
5.3:图书销售界面 14
5.4图书信息整体浏览界面: 19
5.5图书信息删除界面: 19
5.6图书信息保留界面: 22
5.7 退出程序: 23
5.8图书信息新建界面: 23
5.9修改密码 23
6.程序调试和测试 23
6.1程序调试 23
6.2程序测试 27
7.问题和不足 30
8.提议 31
9.编程体会 31
10.程序源代码: 31
11.参考文件 56
12.用户使用手册 57
1.课程设计目标
1) 经过课程设计,加深对结构化程序设计思想了解,能对系统功效进行分析,并设计合理模块化结构。
2) 经过课程设计,深入掌握C语言中关键数据结构。掌握并熟练利用指针、链表、结构体、文件等数据结构。
3) 经过课程设计,提升程序开发能力,能利用合理控制流编写清楚高效程序。
4) 经过课程设计,培养C语言知识利用和自学能力,真正把课堂上取得知识利用起来,培养自己对程序编写爱好,并能独立设计和实现一个小型系统。
5) 经过课程设计,加强了自己程序分析能力。
6) 《C语言程序设计课程设计》关键目标是培养学生在《C语言程序设计》课程学习后,综合利用《C语言程序设计》课程所学到知识,编写C程序处理实际问题能力,和严谨工作态度和良好程序设计习惯。
7) 经过本课程设计训练,学生应该能够了解程序设计基础开发过程,掌握编写、调试和测试C语言程序基础技巧,充足了解结构化程序设计基础方法。能灵活应用,初步含有利用C处理实际问题能力。
8) C语言课程设计关键任务是要求学生遵照软件开发过程基础规范,利用结构化程序设计方法,根据课程设计题目要求,完成包含需求分析、数据结构设计、概要设计、具体设计、编写代码、调试和测试C语言程序及编写设计汇报等过程。
2.需求分析
2.1要求
1) 遵照软件开发过程基础规范;能灵活应用,初步含有利用C程序处理实际问题能力。
2) 利用结构化程序设计方法,根据课程设计题目要求,完成包含需求分析、数据结构设计、概要设计、具体设计、编写代码、调试和测试C程序等过程。
3) 学会利用数组、结构体、链表进行相关信息表示。
4) 功效模块划分清楚,系统结构图符合功效操作要求,且有详尽功效描述
5) 各关键功效模块有详尽步骤图及描述,用函数形式实现,且调用入口、功效、出口等关系正确。
6) 所设计C程序很好可读性和可靠性;程序书写风格规范,注释清楚。
7) 界面友好(良好人机互交),凡需要输入信息时,全部有较详尽提醒信息,并对输入信息有较完善值域分析。
8) 程序经上机调试经过,不应出现语法型、功效型错误,并取得满意结果。
9) 学会经过各功效性测试用例测试程序能力,尽可能避免标准性错误出现。
10) 掌握编写、调试和测试C语言程序基础技巧,充足了解结构化程序设计基础方法。
11) C语言课程设计汇报内容反应实际设计过程,且符合格式要求,无剽窃现象。
2.2任务描述
此系统以学校运动会为背景,支持运动会管理人员对获奖人员信息进行新建、查询、和对对应项目,院系获奖情况整体列表浏览,亦可实现保留。具体功效实现以下:
1)运动员信息载入:管理人员从键盘输入获奖运动员信息,方便操作者能够实现相关需求。
3)获奖信息整体浏览功效:实现对全部院系获奖信息整体浏览,使运动会管理人员对获奖信息信息有一个整体了解。
4)单独院系获奖信息查询功效:实现对所指定院系查询其组员获奖情况。
5)单独项目获奖信息查询功效:实现对所指定项目查询全部获奖组员信息。
2.3运行环境
1) WindowsXP/7系统
2) VC++6.0编译环境
2.4开发工具
C语言
3.总体设计
3.1系统流设计
本系统功效模块图1所表示,关键有以下模块:
课程名称界面
主菜单界面
程序欢迎界面
题目信息查询
获奖运动员信息新建
全部系部整体浏览
系部获奖信息浏览
项目获奖浏览信息
退出程序
输出本课题题目要求
退出此时进行程序
查询对应项目获奖名单
查询对应系部获奖名单
按书号查询
查询全部系部获奖名单
按书号查询
输入全部获奖运动员名单
按书号查询
图1系统功效模块图
3.2系统模块设计
1) 系统欢迎界面:结构函数void welcome(),实现欢迎使用学校运动会管理系统,作者和指导老师显示。
2) 课程名称界面:结构函数void printtimu (),实现软件题目标显示。
3) 主菜单界面:结构函数void menu_select (),实现系统主菜单显示。
4) 获奖运动员信息新建:结构函数void shuru(),实现新建获奖运动员信息。
5) 系部获奖信息查询:结构函数void xibu(),实现查询所选系部获奖信息查询。
6) 项目获奖信息查询:结构函数void xiangmu(),实现查询所选项目获奖信息查询。
7) 获奖运动员信息整体浏览:结构函数void shuchu(),显示全部系部获奖人员情况。
8) 导入链表信息到系部结构体:结构函数void daoruxi(),导入获奖运动员分数到系部。
9) 判定所输入信息合理性:结构函数int panduan(),判定新输入获奖信息是否和之前输入信息有冲突。
10) 对用户提醒函数:结构函数void TiShi(),提醒学校院系及运动项目设置。
11) 退出系统:结构函数void exit0(),实现退出系统。
4.具体设计
4.1数据结构设计
依据系统要求,系统中需要保留数据信息,其结构以下:
数据项名称
数据项系统表示
数据类型
数据长度
备注
系部编号
xinum
Int
4
项目编号
munum
Int
4
运动员姓名
Name
Char
30
获奖名次
MC
Int
4
为了充足利用内存空间和实现不受限制新建、载入获奖运动员信息,采取链表结构保留获奖运动员信息,在新建一位运动员信息时,创建一个运动员信息节点,将其插入到链表中,示意图以下。
运动员信息1
运动员信息2
通讯录信息1
221
运动员信息3
运动员信息4
为此,需申明一个类型为struct student结构体,其组员为图书基础信息。然后经过对指针、链表、文件等数据结构操作,实现对运动员信息新建、查询、整体浏览、比较、保留等一系列操作。其中,结构体定义以下:
struct student
{
int xinum;
char name[30];
int munum;
int MC;
int score;
struct student * next;
};
4.2模块接口设计
1) 全部函数模块申明以下:
2) void welcome(); //欢迎界面//
3) void printtimu(); //本题题目要求//
4) int menu_select(); //主菜单//
5) void shuru(); //输入获奖运动员信息//
6) void shuchu(); //根据比赛成绩从高到底输出系部和其比赛成绩//
7) void xibu(); //查询系部获奖情况//
8) void xiangmu(); //查询项目获奖情况//
9) void TiShi(); //提醒题目所需数据//
10) void daoruxi(); //导入获奖运动员成绩到系部//
11) int panduan(); //判定所输入信息是否有错误//
12) void exit0(); //退出//
13) 并定义 个全局变量:
int writeinfo_flag=0;/*运动员信息是否保留标志*/
struct student *head=NULL, *p1,*p2,*p3;/*用于新建和导入运动员信息*/
14) 关键模块实现
系统以主函数int main()为入口,首先经过调用void welcome()显示欢迎界面,指导老师和作者,然后调用void TiShi()函数显示学校院系及运动项目设置情况,并经过switch(menu_select()),显示主菜单,并利用void menu_select()接收用户返回值返回个主函数,再调用相关函数进入到下一级菜单进行相关操作。
4.3 以下是多个关键模块步骤图:题目要求
1) 主函数:
主函数
调用void TiShi();、void welcome()、void loadrec()
调用
Void menu_select()
接收int menu()返回值
N
是否正当
Y
Y N 是否为0
调用相关函数
退出系统
图2 主函数
5.运行结果
5.1欢迎界面:
图6 欢迎界面
任意键自动进入系统界面。
5.2主菜单界面:
图7主菜单界面
5.3题目输出界面:
图8 题目输出界面
5.4输入获奖运动员信息界面
图9
图10 输入运动员信息,并选择是否输入完全
5.5次序输出各个系部成绩界面:
图11
5.6输出指定系部获奖情况界面:
图12 选择指定系部
图13指定系部获奖情况界面
5.7输出指定系部获奖情况界面:
图14选择指定项目
图15 指定项目获奖情况
6.程序调试和测试
6.1程序调试
(1) 各模块分别调试过程及结果。
(1)程序欢迎界面和程序名称界面还有题目显示做起来比较轻易,做起来没犯错。
(2)主菜单界面我是根据老师给一个参考程序做,以后自己又优化了一下,没有出问题。
(3)学校院系设置信息提醒函数void TiShi()。提醒学校院系,及运动项目设置情况。
(4)输入获奖运动员信息函数void shuru()。本题最难地方,开始定义三个学生结构体指针,利用链表输入运动员信息,在做过程碰到最多问题是内存问题,因为指针总是越界。所以最终链表建立也有问题,经过逐步调试,发觉程序在调用panduan()判定新输信息是否和先前信息有矛盾情况时把指针释放了。经过更正,程序良好运行。
(5)程序中还定义了void daoruxi();int panduan();两个函数,void daoruxi()是把成功输入到链表里数据部分导入到系部结构体中,方便后面对系部获奖情况查询。int panduan()是为了判定新输信息是否和先前信息有矛盾情况,而且返回值给shuru()函数,进行重新输入或接着往后输入选择。
(6) 查询系部获奖情况函数void xibu();经过选择此功效能够进行单个查询每一个系部全部获奖运动员姓名,参与项目,在此项目中获奖名次等信息。
(7)查询项目获奖情况函数void xiangmu();经过选择此功效能够进行单个查询每一个项目全部获奖运动员姓名,所属院系,在此项目中获奖名次信息。
(8)退出void exit0(),此功效能够直接退出软件。
(10)新建获奖运动员信息后,便不能在进行补充。
(2) 集成调试过程及结果。
1.在各模块协调操作时,因为好多个全部需要得到头指针(head),为此我将保留导入运动员信息链表中需要用到指针定义成全局,这么便于操作,可预防头指针传错。
2.为了使在退出和统计保留函数中,在不一样情况下给出不一样提醒信息,我定义了一个标志性全局变量int writeinfo_flag=0;/*信息变动标志*/。在可使运动员信息变动函数中,当书库信息变动成功时,就实施save_flag=1,这么在退出或保留过程中就知道书库信息是否变动过,方便实现对应功效。
同时定义全局变量 n ,能够提醒我们输入到第多个成绩,在判定函数中也起到了很大作用,限定判定次数,不至于是判定犯错。
3.在输入信息时,用两个定义全局变量指针p1,p2依次交替前进并把数据缓存到第三个指针p3中。在输入时模块同时进行数据正当性判定,和信息和理性判定,当全部满足题目要求是,才输入下一个数据,假如数据不正当,软件则会提醒数据有误,并返回重新输入此数据。
4.在显示全部系部成绩时,先调用导入函数把信息导入到开始定义系部数组 中,然后再利用冒泡排序法,对系部成绩进行大小比较,并按从大到小次序交换系部成绩及西部名称。
5导入运动员信息时,定义一个节点,输入数据后在定义新节点,链接新节点头和旧结点尾,这么就连接起来了。
(1)head=(struct student *)malloc(LEN); /*开辟一个新单元*/
head->next=NULL;
(2) p2=(struct student *)malloc(LEN); /*开辟一个新单元*/
p1->next=p2; 连接起两个节点
p3=p1;
p1=p2;
p1->next =NULL;
(3) 功效调试过程及结果。
1首先依据题目,新建一个文件,实施程序,看程序是否能够正常读取文件。读取正常。
2分别实施不一样函数看,是否能正常运行。各个程序单独实施正常。
3在运行一次情况下,连续实施不一样函数,检验是否有逻辑错误。
4在实施了对应函数后,对比文件,看文件是否按程序操作结果,正确改变了。
5将文件删除,看程序是否会给出正确提醒,而且限制一些没有文件不能实现功效。
6将文件置空,看是否会给出对应提醒和程序是否运行正常。
6.2程序测试
各模块测试用例数据及结果
和文件结果一致
7.问题和不足
(1) 需求分析中存在问题和分析:该程序不支持插入新运动员信息,和实际不符。不能完全识别操作者输入错误信息。
(2) 概要设计中存在问题和分析:全局标志性变量用太多,在主体函数中定义变量时,轻易和全局标志性产生混淆。全局指针也用太多,即使这么避免了传指针犯错,但没有锻炼我们传参数能力。
(3) 代码编制中存在问题和分析:程序中模块函数定义还不够好,有模块比较大,看起来不太清楚明了,没有较强通用性。
8.提议
课设题目有些描述不清楚不过可能情况有很多,也有些有不合理地方,提议老师能花点时间将课设题目中有些不合理地方更正一下。时间安排上,感觉即使面临考试,不过极强锻炼了自己能力,感觉比很好,每个人全部充足考虑了考虑程序中问题,对自己编程能力提升有好处。
9.编程体会
刚开始准备编代码时,先大致看了下老师给题目,因为自己伴随方面比较感爱好吧,学挺有意思,开始我知道难点在链表建立那块,其它没有感觉到吃力,即使也会常常出现问题,但全部是自己马虎,或是时间长了,没有考虑到原因。当做链表那一块时,感觉压力陡增啊,我把自己输入数据走了一圈又一圈,可是输出就是有问题,问了好多人全部看不出来那里有毛病,以后老师给指出了一个关键地方,问题才处理。我现在想假如那个问题处理不了,我课设肯定做不出来了。现在感觉挺幸运。做完课设学到了很多编程方面技巧,比方在编写程序时,不要将整个程序放在一起检验语法错误,那样很难操作,能够保留主函数,然后将主体函数一个个检验错误,这么便于错误查找和更正。
10.程序源代码:
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define LEN sizeof(struct student)
typedef struct xibu
{
int num;
char name[20];
int chengji;
}XI;
typedef struct xiangmu
{
int num;
char name[20];
}MU;
struct student
{
int xinum;
char name[30];
int munum;
int MC;
int score;
struct student * next;
};
XI xi[5]={{1,"电信学院",0}, {2,"汽车学院",0},{3,"材工学院",0}, {4,"机械学院",0}, {5,"英语学院",0}};
MU mu[10]={{1,"100米"}, {2,"200米"},{3,"400米"},{4,"800米"},{5,"1500米"},{6,"跳高"},{7,"跳远"}, {8,"铅球"}, {9,"三级跳"},{10,"4x100接力"}};
int n=0;
void welcome(); //欢迎界面//
void printtimu(); //本题题目要求//
int menu_select(); //主菜单//
void shuru(); //输入获奖运动员信息//
void shuchu(); //根据比赛成绩从高到底输出系部和其比赛成绩//
void xibu(); //查询系部获奖情况//
void xiangmu(); //查询项目获奖情况//
void TiShi(); //提醒题目所需数据//
void daoruxi(); //导入获奖运动员成绩到系部//
int panduan(); //判定所输入信息是否有错误//
void exit0(); //退出//
struct student *head=NULL,*p1,*p2,*p3;/*定义结构体指针head 为头指针p1 为输入数据缓存空间指针p2 为尾指针p3*/
/*运动员统计保留标志全局变量*/
int writeinfo_flag=0;
/*主函数*/
int main()
{
system("color F2");
welcome();
TiShi();
for(;;)
{ switch(menu_select())
{
case 1: system("cls"); printtimu();break;
case 2: system("cls"); shuru();break;
case 3: system("cls"); shuchu();break;
case 4: system("cls"); xibu();break;
case 5: system("cls"); xiangmu();break;
case 0: system("cls"); exit0();return 0;
default :{ getchar();
printf("\n 选择错误,请正确输入你选择(0~5),:\n");
printf("\n 按任意键返回......\n");
getchar();
getchar();
system("cls"); /*清屏*/
}
}
}
return 0;
}
//定义数据//
void TiShi()
{
int i=0,m=0;
printf("\n\n\t 请按学校院系及奖项设置输入获奖人员,院系及奖项设置以下\n\n");
printf("\n\t\t\t编号 系部 \n");
while(i<5)
{
printf("\t\t\t %d %s\n",xi[i].num,xi[i].name);
i++;
}
printf("\n\n\t\t\t编号 项目 \n");
while(m<10)
{
printf("\t\t\t %d %s\n",mu[m].num,mu[m].name);
m++;
}
printf("\n\n数据已输出,按任意键进入系统..."); /*清屏*/
getch();
system("cls");
}
//欢迎界面//
void welcome()
{
printf("\n\n\n\n\t\t***************************************************\n");
printf("\t\t* * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf("\t\t* * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf("\t\t* * \t\t\t\t\t\t* *\n");
printf("\t\t* * \t\t\t\t\t\t* *\n");
printf("\t\t* * \t 欢迎使用学校运动会管理系统! \t* *\n");
printf("\t\t* * \t\t\t\t\t\t* *\n");
printf("\t\t* * \t\t\t\t\t\t* *\n");
printf("\t\t* * \t\t指导老师:张吴波老师\t\t* *\n");
printf("\t\t* * \t\t\t\t\t\t* *\n");
printf("\t\t* * \t\t制 作 人:王松\t\t\t* *\n");
printf("\t\t* * \t\t\t\t\t\t* *\n");
printf("\t\t* * \t\t短号 : 619444\t\t* *\n");
printf("\t\t* * \t\t\t\t\t\t* *\n");
printf("\t\t* * \t\tQQ号 : \t\t* *\n");
printf("\t\t* * \t\t\t\t\t\t* *\n");
printf("\t\t* * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf("\t\t* * * * * * 请 按 任 意 键 进 入 系 统 * * * * * *\n");
printf("\t\t***************************************************\n");
getch();
system("cls");
rewind(stdin);
}
//本题题目要求//
void printtimu()
{
printf("\n题目描述\n");
printf("\t 已知某学校运动会上有5个系部(编号、名称)和10个运动项目,各项目\t\t名次取法有以下多个\n\n");
printf("\t 取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名\t\t得分 1;\n");
printf("\n\t\t\t 编写一程序,完成以下功效\n\n");
printf("(1) 从键盘输入系部编号、运动员姓名、运动项目编号、获取名次。需要判定\t\t系部编号是否存在、参赛项目是否存在、获取名次是否正当,同一系部同一个\t\t人,不能在同一个项目中出现两次。\n");
printf("(2) 根据比赛成绩从高到底输出系部和其比赛成绩\n");
printf("(3) 查询指定系部编号获奖统计\n");
printf("(4) 查询指定运动项目标获奖统计\n");
printf("(5) 全部数据符合实际应用要求\n");
printf("(6) 系统以菜单方法工作(用键盘输入1~5之间数来选择功效,其中6为退出)\n");
rewind(stdin);
printf("\n\n\t\t\t题目已输出,按任意键进入系统..."); /*清屏*/
getch();
system("cls");
}
//主菜单//
int menu_select()
{
int c;
printf("\n\n\n\n");
printf("\t\t\t┏━━━━━━━━━━━━━━━━━━┓\n");
printf("\t\t\t┃*************菜单************** ┃\n");
printf("\t\t\t┃ 1.查看本题题目 ┃\n");
printf("\t\t\t┃ 2.输入获奖运动员信息 ┃\n");
printf("\t\t\t┃ 3.按次序输出系部和其比赛成绩 ┃\n");
printf("\t\t\t┃ 4.查询指定系部编号获奖统计 ┃\n");
printf("\t\t\t┃ 5.查询指定运动项目标获奖统计 ┃\n");
printf("\t\t\t┃ 0.退出(任何情况下按Ctrl+C 退出程序┃\n");
printf("\t\t\t┃ 请输入你选择(0~4): ┃\n");
printf("\t\t\t┗━━━━━━━━━━━━━━━━━━┛");
printf("\n\t\t\t我选择: ");
scanf("%d",&c);
return c;
}
//输入获奖运动员信息//
void shuru()
{
int i=0;
char a;
if( writeinfo_flag==1)
{
getchar();
printf("\n\n\n\n\n\n\n\n\t\t运动员信息数据已经输入完成不能再输入,按任意键将返回:\n");
getch();
system("cls"); /*清屏*/
return;
}
head=(struct student *)malloc(LEN); /*开辟一个新单元*/
head->next=NULL;
p1=head;
do
{
n++;
do
{
system("cls");
printf("\n\n\n\n\n\n\n\t请输入第%d个获奖运动员系部编号、运动员姓名、运动项目编号、获取名次\n",n);
fflush(stdin);
scanf("%d%s%d%d",&p1->xinum,p1->name,&p1->munum,&p1->MC);
while(p1->xinum>5||p1->xinum<1||p1->munum>10||p1->munum<1||p1->MC<1||p1->MC>5)
{
printf("您输入信息不正当或项目不存在,请检验后按任意键返回重新输入\n");
getchar();
getchar();
system("cls");
printf("\n\n\n\n\n\n\n\t请输入第%d个获奖学生系部编号、运动员姓名、运动项目编号、获取名次\n",n);
fflush(stdin);
scanf("%d%s%d%d",&p1->xinum,p1->name,&p1->munum,&p1->MC);
}
switch(p1->MC)
{
case 1: p1->score =7;break;
case 2: p1->score =5;break;
case 3: p1->score =3;break;
case 4: p1->score =2;break;
case 5: p1->score =1;break;
}
if(writeinfo_flag==1)
i=panduan();
writeinfo_flag=1; /*设置保留统计标志*/
}while(i==1);
printf("\n\n\t\t请问您是否输入完成,是(Y),否(N),请给出您选择\n\n");
fflush(stdin);
scanf("%c",&a);
fflush(stdin);
if(a=='N'||a=='n')
{
system("cls");
p2=(struct student *)malloc(LEN); /*开辟一个新单元*/
p1->next=p2;
p3=p1;
p1=p2;
p1->next =NULL;
}
}while(a=='N'||a=='n');
system("cls");
printf("\n\n\n\n\n\n\t\t %d项信息输入完成,按任意键返回......\n",n);
getch();
system("cls"); /*清屏*/
}
//判定输入数据是否符合题意//
int panduan()
{
int d=0,m=1;
p2=head;
for(;m<n;p2=p2->next)
{
if(p1->xinum==p2->xinum&&p1->munum==p2->munum&&strcmp(p1->name,p2->name)==0)
d=1;
if(d==1)
{
printf("\n\n\n\t您输入数据中存在同一个人在同一个项目中有两种信息情况,请任意键返回并重新输入");
getchar();
getchar();
system("cls"); /*清屏*/
}
m++;
}
return d;
}
//导入获奖运动员成绩到系部//
void daoruxi()
{
int i,m=0;
p2=head;
while(p2!=NULL)
{
for(i=1;i<6;i++)
{
if(i==p2->xinum)
xi[i-1].chengji+=p2->score;
}
p2=p2->next;
}
}
//根据比赛成绩从高到底输出系部和其比赛成绩//
void shuchu()
{
int i,j,m=0, temp;
char a[20];
if( writeinfo_flag==0)
{
getchar();
printf("\n\n\n\n\n\n\n\n\t\t运动员信息数据库为空,不能显示,按任意键将返回:\n");
getchar();
system("cls"); /*清屏*/
return;
}
daoruxi();
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
if(xi[j].chengji<xi[j+1].chengji)
{
temp=xi[j].chengji;
strcpy(a,xi[j].name);
xi[j].chengji=xi[j+1].chengji;
strcpy(xi[j].name,xi[j+1].name);
xi[j+1].chengji=temp;
strcpy(xi[j+1].name,a);
}
}
printf("\n\n\n\n\n\n\t\t\t根据比赛成绩从高到底输出系部和其比赛成绩\n\n");
printf("\t\t\t\t系部 成绩\n");
while(m<5)
{
printf("\t\t\t\t%s %d\n",xi[m].name,xi[m].chengji);
m++;
}
printf("\n\n\n\n\n\t\t\t各系部得分从高到低展示完成,按任意键返回......\n");
getchar();
getch();
system("cls"); /*清屏*/
}
//查询系部获奖情况//
void xibu()
{
int i=0,d=0;
if( writeinfo_flag==0)
{
getchar();
printf("\n\n\n\n\n\n\n\n\t\t运动员信息数据库为空,不能显示,按任意键将返回:\n");
getch();
system("cls"); /*清屏*/
return;
}
pr
展开阅读全文