输入添加学生数两n 循环变量i=1 当i<=n时 输入学号、姓名、系别和三门成绩 学生信息输入结构体中 返回 i++ 输出学生学号、姓名、系别和三门成绩 图2 添加学生数据函数
2)按系排名(参照学生总成绩)函数sort
循环变量n=1 当n<=N 时 j=1 当j<=N-1时 真 第j学生总分<第j+1学生总分 假 交换两个学生信息j++ j++ i++ 结构体数据更新 i=1 当i<=N时 输出系别排名情况 i++ 图3按系别排名
3)按项目查询函数query
5
1
(
(
输入数字 a (1~3 ) 1(代表赛跑) 2代表(跳远)3(代表跳高) else 循环变量i=1 当i<=N时 错误 i++ 输出所选数字所代表的项目(赛跑或 跳远或跳高)的单项成绩
3 运行环境
1) 软件环境
操作系统:Windows7 2) 硬件环境
处理器:Intel Pentium 166MX 或更高 内存:32MB以上 硬盘空间:1GB以上 显卡:SVGA 显示适配
4 开发工具和编程语言
Microsoft visual C++, C语言
6
5 详细设计
#include
int n; while(1) {
menu();
printf(\请输入您要选择的操作序号,按回车键确认:\ scanf(\ switch(n) {
case 1: add();break; case 2: sort();break; case 3: query();break; case 4: exit(0);
default: printf(\输入错误,请输入列表中存在的序号!\\n \ } } }
void menu() {
printf(\ ************************* 运动员成绩管理系统************************ \
printf(\添加学生数据\ printf(\按系排名\
7
printf(\按项目查询\ printf(\退出\}
void add()/*添加学生信息*/ {
int n,i;
printf(\请输入要添加的学生数量,按回车键确认:\ scanf(\ for(i=1;i<=n;i++) {
printf(\请输入第%d个学生的学号、姓名,系别,用空格分开,并按回车键确认:\\n\
scanf(\
printf(\请输入第%d个学生的赛跑比赛、跳远比赛、跳高比赛,用空格分开,并按回车键确认:\\n\
scanf(\ printf(\%s %s %f %f %f \\n\gh); } }
void sort() {int i,j;
printf(\按系成**********************************\\n\\n\
绩
排
序
结
果
如
下
printf(\名次 系别 总成绩 \\n\
printf(\********\\n\ for(i=1;i<=N;i++)
for(j=1;j<=N-i;j++) {
if(stu[j].race+stu[j].jump+stu[j].high temp=stu[j]; stu[j]=stu[j+1]; stu[j+1]=temp; } } 8 for(i=1;i<=N;i++) printf(\igh ); } void query() { int i,a; printf(\请输入1,2或3,1代表赛跑成绩,2代跳远成绩,3代表跳高成绩\ scanf(\if(a==1) { printf(\按项**********************************\\n\\n\ 目 查 询 结 果 如 下 printf(\名次 学号 姓名 系别 赛跑 \\n\ printf(\********\\n\ for(i=1;i<=N;i++) { printf(\ \\n\ } getch(); } if(a==2) { printf(\按项**********************************\\n\\n\ 目 查 询 结 果 如 下 printf(\名次 学号 姓名 系别 跳远 \\n\ printf(\********\\n\ for(i=1;i<=N;i++) { 9