沈阳化工大学
计算机科学与技术系
课程设计任务书
课
程 C 语言课程设计
课 程 设 计 名 称 运动会比赛计分系统
专 业 班 级
指 导 教 师
20 11 年 6 月
一、 课程设计目的
将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数
据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的
程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:
(1)进一步巩固、加深学生所学专业课程《C 语言教程》的基本理论知识,理论
联系实际,进一步培养学生综合分析问题,解决问题的能力。
(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生
素质的最终目的。
(3)利用所学知识,开发小型应用系统,掌握运用 C 语言编写调试应用系统程序,
训练独立开发应用系统,进行数据处理的综合能力。
(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方
法。
(6)熟练掌握 C 语言的基本语法,灵活运用各种数据类型。
(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,
分块调试)和修改程序。
二、 课程设计名称及内容
课程设计名称:运动会比赛计分系统
设计内容:设计一个运动会比赛计分系统,该系统要求对运动会比赛得分进行管
理和维护。
三、 任务和要求
要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数
各项目名次取法有如下几种:
(1) 取前 5 名:第一名得分 7 分,第二名得分 5,第三名得分 3,第四名得分 2,
第五名得分 1;
(2) 取前 3 名:第一名得分 5,第二名得分 3,第三名得分 2;
(3) 用户自定义:各名次权值由用户指定。
四、 设计方案提示
2
(1)界面
系统以菜单方式工作
(2)输入数据并存入文件
使用到结构体变量和动态链表,由程序提醒用户填写比赛结果,输入各项目获奖
运动员信息。对输入的信息进行合法性判断,直到输入正确为止。都输入完成后,调
用写文件函数对指定的文件进行写操作,把输入的信息写入到文件中。
(3)显示所有记录
将文件中的所有记录以表格的形式输出。如果文件未打开会出现“文件打开失败!
按任意键返回...”,关闭文件。
(4) 查询
所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,
查看参赛学校信息和比赛项目信息等。
五、 总体设计
运动会计
分系统
录入学员
显示学员
成绩排
添加学员
删除学员
退出
信息
信息
序
信息
信息
选前 3 名
六、 源代码
#include
#include
#include
3
#include
#define MAX 50
void input();
void sort();
void display();
void insert();
void del();
void average();
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
4
void main()//主函数
{
char as;
start: printf("\t\t\t 欢迎使用学生成绩管理系统\n\n");
//一下为功能选择模块
do{
printf("\n\t\t\t\t1. 录 入 学 员 信 息 \n\t\t\t\t2. 显 示 学 员 信 息
\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删
除学员信息\n\t\t\t\t6.退出\n");
printf("\t\t\t\t 选择功能选项:");
as=getch();
switch(as)
{
case '1':
system("cls");
input();
break;
case '2':
system("cls");
display();
break;
case '3':
5
system("cls");
sort();
break;
case '4':
system("cls");
insert();
break;
case '5':
system("cls");
del();
break;
case '6':
system("exit");
exit(0);
default:
system("cls");
goto start;
}
}while(1);
//至此功能选择结束
}
void input()//原始数据录入模块
6
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.录入学员信息\n 输入第%d 个学员的信息\n",i+1);
printf("\n 输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n 输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n 输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n 输入学员成绩:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n 输入学员成绩:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n 输入学员成绩:");
7
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("%d",now_no);
printf("是否继续输入?(Y/N)");
ch=getch();
system("cls");
}
while(ch!='n');
system("cls");
}
void sort()//排序数据函数
{
struct student temp;
int i,j;
for(i=1;i