当前位置:文档之家› C语言课程设计报告 运动会成绩信息管理系统

C语言课程设计报告 运动会成绩信息管理系统

-9-
山西工商学院课程设计报告
附 录(程序清单)
#include<stdio.h> #include<string.h> #include<stdlib.h> #include"conio.h" #define N 20 struct student {char num[20]; char name[10]; char xibie[10]; float race; float jump; float high; }stu[N],temp; void menu(); void add(); void sort(); void query(); void main() {
scanf("%d",&a);
if(a==1)
{
printf("********************* 按 项 目 查 询 结 果 如 下
*************************** 3 章 调试分析........................................................................................................... 6 第 4 章 使用说明与执行结果....................................................................................... 7 参考文献........................................................................................................................... 9 附 录(程序清单)................................................................................................... 10
目录
第 1 章 概要设计........................................................................................................... 2 1.1 题目的内容与要求..................................................................................................2 1.2 总体结构..................................................................................................................2 1.3 程序总体结构图......................................................................................................3
1.3 程序总体结构图
当1
是 输入值 n=1 ?

添加学 是 n=2 ?

生成绩
函数 按系排 是
n=3 ?

add() 名函数
sort() 按项目查询函数
退出
query()
图 1-1 学生成绩模块
输入添加学生数两 n
循环变量 i=1 当 i<=n 时
输入学号、姓名、系别和三门成绩 学生信息输入结构体中
int n; while(1) {
menu(); printf("\n 请输入您要选择的操作序号,按回车键确认:"); scanf("%d",&n); switch(n) {
case 1: add();break; case 2: sort();break; case 3: query();break; case 4: exit(0); default: printf("输入错误,请输入列表中存在的序号!\n "); } }
调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到 相关的问题所在。本系统调试过程中遇到问题、原因和解决方法如下面介绍:(1) 程序运行不顺利 在程序运行的过程中出现死循环、不运行和提前结束。原因是 程序中出现了逻辑错误,进入查询页面后,查询的时候显示的是逻辑错误。没有 写读取文件的函数 m=reads(stu);所以读取不了存储的文件。
printf("\n%d%12s%11.2f\n",i,stu[i].xibie,stu[i].race+stu[i].jump+stu[i]. high );
}
void query()
{
int i,a;
printf("请输入 1,2 或 3,1 代表赛跑成绩,2 代跳远成绩,3 代表跳高成绩");
printf("%s
%s
%s
%f
%f
%f
\n",stu[i].num,stu[i].name,stu[i].xibie,stu[i].race,stu[i].jump,stu[i].h
igh);
}
} void sort() {int i,j;
printf("********************* 按 系 成 绩 排 序 结 果 如 下 **********************************\n\n");
i++
结构体数据更新 i=1
当 i<=N 时 输出系别排名情况
i++
图 2-1 学生排名模块
-4-
山西工商学院课程设计报告
2.2 按项目查询函数 query
输入数字 a (1~3 )
1(代表赛跑) 2 代表(跳远)3(代表跳高) else 循环变量 i=1
当 i<=N 时 i++
错误
输出所选数字所代表的项目(赛跑或 跳远或跳高)的单项成绩
i++
输出学生学号、姓名、系别和三门成绩
返回
图 1-2 学生信息模块 -3-
山西工商学院课程设计报告
第 2 章 详细设计
2.1 按系排名(参照学生总成绩)函数 sort
循环变量 n=1
当 n<=N 时 j=1
当 j<=N-1 时

第 j 学生总分<第 j+1 学生总分

交换两个学生信息 j++
j++
循环执行所有的功能,并根据需要终止程序的执行。 每一个学生记录都包含学号、姓名、系别,以及赛跑比赛、跳远比赛、跳高
比赛三门成绩,在程序当中,将学生记录类型定义为结构体类型,添加以及追加 的学生信息直接写入定义的结构体中,其它函数每次对学生记录的访问,其数据 来源都是该结构体,这样做不但可以保证学生数据的一致性,而且可以对学生数 据进行永久保存,保证每次运行程序都可以采用原来的数据。
printf("\n
3 按项目查询");
printf("\n
4 退出");
}
void add()/*添加学生信息*/ {
int n,i;
printf("请输入要添加的学生数量,按回车键确认:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("\n 请输入第%d 个学生的学号、姓名,系别,用空格分开,并按回车键确
第 2 章 详细设计........................................................................................................... 4 2.1 按系排名(参照学生总成绩)函数 SORT............................................................ 4 2.2 按项目查询函数 QUERY..........................................................................................5
} void menu() {
-10-
山西工商学院课程设计报告
printf("
************************* 运 动 员 成 绩 管 理 系 统
************************ ");
printf("\n
1 添加学生数据");
printf("\n
2 按系排名");
-I-
山西工商学院课程设计报告
第 1 章 概要设计
1.1 题目的内容与要求
1. 添加学生数据函数 主要实现程序最初运行时学生数据的录入以及其后的 运行中学生数据的追加功能;
2. 按系排名(参照学生总成绩)函数 按照题目的具体要求实现的是参照不 同院系的学生的总成绩给出院系的排名;
3. 按项目查询函数 允许按照项目名称对学生的各项成绩进行查询; 除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中
printf(" 名次 系别 总成绩 \n");
printf("**************************************************************** *********\n"); for(i=1;i<=N;i++)
相关主题