校运动会管理系统报告C语言含完整代码
运动会管理系统c语言程序设计

运动会管理系统C语言程序设计
简介
运动会管理系统是一个用C语言编写的程序,用于管理学校或机构举办的各类
运动会活动。
该系统能够帮助组织者有效地安排赛程、记录成绩以及生成相关报表,提高管理效率和赛事质量。
功能模块
1. 用户登录
•提供管理员和裁判员两类用户登录选项
•管理者可以对比赛项目、队伍信息进行管理
•裁判员可以录入比赛成绩
2. 赛事管理
•管理者可以添加、编辑、删除赛事项目
•每个赛事项目包括项目名称、参赛队伍、赛程安排等信息
3. 队伍管理
•管理者可以添加、编辑、删除参赛队伍
•每个参赛队伍包括队名、队员信息等
4. 成绩录入
•裁判员可以录入每个队伍在各个项目中的成绩
•系统可以自动计算并显示队伍的总成绩
5. 报表生成
•系统可以根据录入的成绩数据生成成绩报表
•报表可以按照项目、队伍等不同维度展示成绩数据
技术实现
该系统基于C语言编写,采用了结构体、文件读写、数据处理等基本功能和技术。
通过数据结构的设计和文件操作,实现了用户登录、赛事管理、队伍管理、成绩录入、报表生成等功能。
系统优势
•界面简洁明了,操作便捷高效
•数据处理准确可靠,确保成绩数据的准确性
•面向对象的设计,方便扩展和维护
结语
运动会管理系统C语言程序设计为学校或机构举办运动会提供了一种高效的管理方式,使赛事组织更加顺畅和专业化。
通过不断的优化和改进,该系统能够更好地满足不同运动会的管理需求,为相关活动的顺利进行提供有力支持。
C语言课程设计校际运动会管理系统

优化策略:根据测试结果进 行代码优化、性能优化等
测试目的:确保系统在各种 情况下都能正常运行
优化效果:提高系统稳定性、 响应速度和用户体验
07
系统部署与维护
系统部署方案与实施
硬件需求:服 务器、网络设 备、存储设备
等
软件需求:操 作系统、数据 库管理系统、 Web服务器等
部署步骤:安 装操作系统、 安装数据库管 理系统、安装 Web服务器、 部署应用程序
系统安全测试与优化
安全测试:对 系统进行安全 漏洞扫描,确
保系统安全
优化措施:加 强系统安全防 护,提高系统
安全性能
安全策略:制 定安全策略, 确保系统安全
运行
安全培训:对 系统管理人员 进行安全培训, 提高安全意识
和技能
系统可用性测试与优化
测试方法:黑盒测试、白盒 测试、灰盒测试等
测试内容:功能测试、性能 测试、兼容性测试等
单击此处添加副标题
C语言课程设计校际运动
会管理系统
汇报人:
目录
01 02 03 04 05 06
添加目录项标题 系统概述
系统需求分析 系统设计 系统实现
系统测试与优化
01
添加目录项标题
02
系统概述
系统的目标和意义
提高校际运动会 的管理效率
方便学生、教师 和管理人员查询 比赛信息
提供实时的比赛 成绩和排名
测试方法: 黑盒测试、 白盒测试、 灰盒测试
测试内容: 功能测试、 性能测试、 兼容性测 试、安全 性测试
测试工具:
JMeter、
Seleniu
m
、
Appium
等
测试结果 分析:找 出问题, 提出优化 方案
(完整word版)教务管理系统C语言代码

find=false;
system("pause");
}
//***************************删除学生信息**************************************************
void list(){
int n=0;
int n=0;
cout<<"请输入要删除的学号:";
cin>>deleteNumber;
fstream fileNumber("number.txt",ios::in|ios::out);
fstream fileNumber2("number.txt",ios::in|ios::out);
fstream fileName("name.txt",ios::in|ios::out);
int menu(){
system("cls");
int n=1,select=-1;
cout<<endl<<endl<<endl;
cout<<setw(68)<<"★C★S★U★学生档案管理系统★C★S★U★"<<endl<<endl;
cout<<setw(26)<<n++<<"◆※输入学生信息※◆1"<<endl<<endl;
};
//******************************
c语言管理系统设计源代码

c语言管理系统设计源代码以下是一个简单的C语言管理系统示例,用于管理学生信息。
该系统可以添加、删除、修改和查找学生信息。
c复制代码#include<stdio.h>#include<stdlib.h>#include<string.h>struct student {char name[50];int roll;float marks;};struct student students[100];int count = 0;void add_student() {struct student new_student;printf("Enter name: ");scanf("%s", new_);printf("Enter roll number: ");scanf("%d", &new_student.roll);printf("Enter marks: ");scanf("%f", &new_student.marks);students[count] = new_student;count++;}void delete_student() {int index;printf("Enter index of student to delete: ");scanf("%d", &index);for (int i = index; i < count - 1; i++) {students[i] = students[i + 1];}count--;}void modify_student() {int index;struct student new_student;printf("Enter index of student to modify: "); scanf("%d", &index);printf("Enter new name: ");scanf("%s", new_);printf("Enter new roll number: ");scanf("%d", &new_student.roll);printf("Enter new marks: ");scanf("%f", &new_student.marks);students[index] = new_student;}void find_student() {char name[50];printf("Enter name of student to find: "); scanf("%s", name);for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) { printf("Roll number: %d\n", students[i].roll); printf("Marks: %.2f\n", students[i].marks); return;}}printf("Student not found.\n");}int main() {int choice;do {printf("\nMenu:\n");printf("1. Add student\n");printf("2. Delete student\n");printf("3. Modify student\n");printf("4. Find student\n");printf("5. Exit\n");printf("Enter choice: ");scanf("%d", &choice);switch (choice) {case1: add_student(); break;case2: delete_student(); break;case3: modify_student(); break;case4: find_student(); break;case5: exit(0); break; // exit the program here, otherwise the loop will keep running indefinitely, as it is in the do-while loop above. We are not returning, but rather exiting the program completely, so we do not need to return anything. The return value of main is always 0, and this is how the program exits. If you want to return a value other than 0, you can do so like this: return 1; or return -1; or return any other integer value you want to represent an error condition. The operating system will interpret this as the program's exit status. In this case, it will be seen as successful, as it is returning 0. The return value of main is not used for anything in this program, but it can be used in other programs to determine whether the program exited successfully or with an error. For example, if you were writing a shell script that executed this program and needed to know if it was successful or not, you could check the return value of the program and act accordingly. This is a common practice in programming, and it is important to understand how it works so that you can use it effectively in your own programs.。
运动会管理系统源代码

运动会管理系统源代码include<stdio.h>#include<stdlib.h>#include<string.h>struct student /* 定义链表 */{long num;char name[10];char danwei[10];int xiangmu;int chengji;struct student *next;};struct student *creat(struct student *h); /*s 输入函数 */struct student *findstudent(struct student *h); /* 查找函数 */struct student *sort(struct student *h); /* 排序函数 */main(){int b,c=1;struct student *head,*p,*f; /* 定义表头指针 */head=NULL; /* 创建一个空表 */printf("\t\t\t**********************\n");printf("\t\t\t****运动会管理系统****\t\t\n");printf("\t\t\t**********************\n");do /* 循环使用系统中的功能 */{printf("*************************************************************************\n");printf("\t\t请输入1或2或3进行功能选择\n");printf("\t\t输入1---------------------进行输入功能\n");printf("\t\t输入2---------------------进行查找功能\n");printf("\t\t输入3---------------------进行排序功能\n");printf("*************************************************************************\n"); scanf("%d",&b);switch(b) /* 进入函数 */{case 1:head=creat(head);break;case 2:p=findstudent(head);break;case 3:f=sort(head);break;default:printf("输入错误,请从新输入");}printf("*************************************************************************\n");printf("否进行其他功能?\n");printf("是输入------1,否输入------2:\n");scanf("%d",&c);}while(c==1);}/* 输入功能 */struct student *creat(struct student *h){struct student *p1,*p2; /* 定义链表指针 */p1=p2=(struct student*)malloc(sizeof(struct student)); /* 申请新结点*/printf("\n-------------------------------------------------------\n");printf("请依次输入运动员的号码、姓名、单位、项目(run为1,jump为2,swim为3)、成绩\n学号输入0时,结束输入!\n");printf("\n-------------------------------------------------------\n");if(p2!=NULL)printf("请输入号码:");scanf("%ld",&p2->num); /* 输入结点的值 */if(p2->num!=0){getchar();printf("请输入姓名:");gets(p2->name);printf("请输入单位:");scanf("%s",&p2->danwei);printf("请输入项目 run则输入1 jump则输入2 swim则输入3:");scanf("%d",&p2->xiangmu);printf("请输入成绩:");scanf("%d",&p2->chengji);p2->next=NULL; /* 新结点指针成员的赋值为空 */printf("---------------------------------------------------\n");}while(p2->num!=0){if(h==NULL)h=p2; /* 若为空表,接入表头 */elsep1->next=p2; /* 若为非空表,接入表尾 */p1=p2;p2=(struct student*)malloc(sizeof(struct student)); /* 申请下一个新结点 */if(p2!=NULL){printf("请输入号码:");scanf("%ld",&p2->num); /* 输入结点的值 */if(p2->num!=0){getchar();printf("请输入姓名:");gets(p2->name);printf("请输入单位:");scanf("%s",&p2->danwei);printf("请输入项目 run则输入1 jump则输入2 swim则输入3:");scanf("%d",&p2->xiangmu);printf("请输入成绩:");scanf("%d",&p2->chengji);p2->next=NULL; /* 新结点指针成员的赋值为空 */printf("-----------------------------------------------\n");}}}return h;}/* 查找功能 */struct student *findstudent(struct student *h){int a;struct student *q; /* 定义链表指针 */q=(struct student*)malloc(sizeof(struct student));q=h; /* 接入表头 */printf("输入运动项目:run则输入1 jump则输入2 swim则输入3:\n");scanf("%d",&a);while(q!=NULL){if(a==1) /* 若项目为run则进行查找输出 */{if(q->xiangmu==1){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */}else if(a==2) /* 若项目为jump则进行查找输出 */{if(q->xiangmu==2){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */}else /* 若项目为swim则进行查找输出 */ {if(q->xiangmu==3){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */ }}}/* 排序功能 */struct student *sort(struct student *h){int d;int g1=0,e1=0,i1,j1,temp1,a[60];int g2=0,e2=0,i2,j2,temp2,b[60];int g3=0,e3=0,i3,j3,temp3,c[60];struct student *s; /* 定义链表指针 */s=h;printf("按项目排序:\n");printf("请输入项目,run----输入1,jump----输入2,swim----输入3:\n");scanf("%d",&d);printf("-----------------------------------------------------------------\n");printf("学生排序结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");if(d==1) /* 对项目为run的运动员进行排序 */{while(s!=NULL) /* 计算e1大小也就是项目为run的运动员的多少 */ {if(s->xiangmu==1){a[e1]=s->chengji;e1=e1+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}for(i1=1;i1<e1;i1++) /* 冒泡法开始 */{for(j1=e1-1;j1>=1;j1--){if(a[j1]<a[j1-1]){temp1=a[j1-1];a[j1-1]=a[j1];a[j1]=temp1;}}} /* 冒泡结束 */s=h;while(g1<e1) /* 循环从小到大输出项目为run的运动员的信息 */{if(s->xiangmu==1){if(s->chengji==a[g1]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji); s=h;g1=g1+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}}else if(d==2) /* 若项目为jump则进行排序 */{while(s!=NULL) /* 计算e2大小也就是项目为jump的运动员的多少 */ {if(s->xiangmu==2){b[e2]=s->chengji;e2=e2+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */ }for(i2=1;i2<e2;i2++) /* 冒泡开始 */{for(j2=e2-1;j2>=1;j2--){if(b[j2]<b[j2-1]){temp2=b[j2-1];b[j2-1]=b[j2];b[j2]=temp2;}}} /* 冒泡结束 */s=h;while(g2<e2) /* 循环从小到大输出项目为jump的运动员的信息*/{if(s->xiangmu==2){if(s->chengji==b[g2]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji);s=h;g2=g2+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}}else /* 若项目为swim则进行排序 */{while(s!=NULL) /* 计算e3大小也就是项目为swim的运动员的多少*/{if(s->xiangmu==3){c[e3]=s->chengji;e3=e3+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}for(i3=1;i3<e3;i3++) /* 冒泡开始 */{for(j3=e3-1;j3>=1;j3--){if(c[j3]<c[j3-1]){temp3=c[j3-1];c[j3-1]=c[j3];c[j3]=temp3;}}} /* 冒泡结束 */s=h;while(g3<e3) /* 循环从小到大输出项目为swim的运动员的信息 */{if(s->xiangmu==3){if(s->chengji==c[g3]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji);s=h;g3=g3+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */ }}}。
C语言课程设计_运动会管理系统

调用 Find_Single_Match_Information 函数,从 Menu 函数中分别接收运动员链 表和裁判员链表的头指针,再由 Find_Single_Match_Information 函数嵌套调用 Output_Match_Name 函数,输出所有的运动项目供用户选择,获取运动项目信 息后嵌套调用 Output_SingleMatch_AthleteInformation(Ath*head,char NAME[])函 数和 Output_SingleMatch_RefereeInformation(Re*head,char NAME[])函数,分别输 出参与该项运动的运动员和裁判员,由 Find_Single_Match_Information 函数体输 出比赛时间和地点;
比
比
员 信员 员 动 动 动 分 员 判
赛
赛
信 息信 信 员 员 员 排 信 员
项
项
息
息 息信信信 名 息 信
目
目
息息息
息
结束
4 / 15
2.3. 系统的详细设计
该系统总共分为 3 个模块,分别为运动员信息管理、裁判员信息管理、比赛 信息查询;其中系统主要功能体现在运动员信息管理模块;该系统主要功能由以 下 23 个函数实现。
第三章 算法的实现
3.1 算法的调试与测试
调试方法:
断点法、单步调试法
测试结果的分析与讨论:
测试过程中遇到的主要问题:在函数体中的变量繁多,使用时容易混乱,在使用全局变量的 时候也会不小心在某个函数改变其初始值等等。
3.2 测试的结果
8 / 15
图 3.2.2 系统主菜单
图 3.2.3 输出全部运动员信息
校运动会管理系统报告c语言含完整代码)

void find() //查找函数//
{
system("cls");
printf("\t************查找界面************\n");
char fs[20];
read();
printf("输入你要查找运动员的号码或姓名:");
scanf("%s",&fs);
for(int i=0;i<size;i++)
printf("输出运动员号码,姓名,100成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");
for(i=0;i<size;i++)
printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);
for(int i=0;i<size;i++)
{
for(int j=i+1;j<size;j++)
{
if(stu[i].scorem<stu[j].scorem)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
printf("排序后:\n");
for(i=0;i<size;i++)
else if(stu[i].scoreq==2) y=2;
C语言的教务管理系统(2000行代码)

C语言教务管理系统一、程序结构图二、程序运行截图1. 个人信息简介2.修改颜色3.注册界面4. 信息保存至文件5.登录界面6.管理员录入信息7. 学生信息录入8.学生成绩录入9.学生课程表录入10.学生信息查询界面11学生信息查询12.学生成绩查询13.学生课表查询三、代码(一个cpp)#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include <conio.h>#include"windows.h"#define student_num 1000 /*定义1000个学生*/#define teacher_num 5 /*定义5个老师(管理员)*/int is_my_student(struct student *p,int *size); /*声明返回第i+1个学生的函数*/ int is_my_teacher(struct teacher *p,int *size); /*声明返回第i+1个老师的函数*/ int length_student_name(char *p); /*声明验证用户名函数*/int length_student_password(char *p); /*声明验证密码长度函数*/int length_teacher_name(char *p); /*声明验证用户名函数*/int length_teacher_password(char *p); /*声明验证密码长度函数*/int show_menu_login(); /*声明登录菜单函数*/int show_menu_register(); /*声明注册菜单函数*/int show_teacher_select(); /*声明教师录入菜单函数*/int show_student_select(); /*声明学生查询菜单函数*/int student_register(struct student *ptr_student,int *size); /*声明学生注册函数*/ int teacher_register(struct teacher *ptr_teacher,int *size); /*声明老师注册函数*/ int vaild_student_name(char *p); /*声明验证用户名函数*/int vaild_student_password(char *p); /*声明验证密码函数*/int vaild_teacher_name(char *p); /*声明验证用户名函数*/int vaild_teacher_password(char *p); /*声明验证密码函数*/int vaild_two_password(char *p1,char *p2); /*声明验证两次密码是否相同函数*/ int yes_no_return(); /*声明选择是否返回上一层函数*/void load(); /*声明加载函数*/void register_(int *count1,int *count2); /*声明注册函数*/void display_student(struct student stu); /*声明显示学生信息函数*/void display_teacher(struct teacher tea); /*声明显示老师信息函数*/void student_file1(); /*将保存的学生的账号密码存入文件中*/ void student_file2(); /*将保存的学生的个人信息存入文件中*/ void student_file3(); /*将保存的学生的成绩存入文件中*/void teacher_file(); /*将保存的老师的账号密码存入文件中*/ void input_information(int count); /*声明输入学生信息函数*/void input_score_menu(int count); /*声明输入学生成绩函数*/void color(); /*声明选择窗体颜色函数*/void print_stu_information(int count_stu); /*声明输出账号为num的学生的信息函数*/void print_stu_score(int count_stu); /*声明输出账号为num的学生的成绩函数*/void show_menu(); /*声明初始化界面函数*/void input(); /*声明输入函数*/void menu1(); /*声明教师录入课程表主菜单函数*/void menu2(); /*声明学生查询课程表主菜单函数*/void rank(); /*声明显示时间顺序函数*/void querymenu3(); /*声明查询函数*/void looktime(); /*声明按照时间查询函数*/void looklessonname(); /*声明按照课程名查询函数*/void add(); /*声明保存函数*/void amend(); /*声明修改课程函数*/void amend1(); /*声明修改课程子函数*/void amendnews(int i); /*声明修改整个课程信息函数*/void amendtime(int i); /*声明修改课程时间函数*/void amendlessonname(int i); /*声明修改课程课程名函数*/void amendclassroom(int i); /*声明修改课程教室函数*/void deleted(); /*声明删除函数*/void add_score(int count); /*声明添加学生成绩函数*/void xiugai_score(int count); /*声明修改学生成绩函数*/void shanchu_score(int count); /*声明删除学生成绩函数*/void chaxun_score(int count); /*声明按要求查询学生成绩函数*/void paixu_score(int count); /*声明学生成绩排序函数*/void tongji_score(int count); /*声明学生成绩统计函数*/float chinese(int count); /*声明计算语文成绩最大值函数*/int chr(int count); /*声明计算语文成绩及格人数的函数*/ float english(int count); /*声明计算英语成绩最大值函数*/int ehr(int count); /*声明计算英语成绩及格人数的函数*/ float math(int count); /*声明计算数学成绩最大值函数*/int mhr(int count); /*声明计算数学成绩及格人数的函数*/ float computer(int count); /*声明计算计算机成绩最大值函数*/int thr(int count); /*声明计算计算机成绩及格人数的函数*/float PE(int count); /*声明计算体育成绩最大值函数*/int phr(int count); /*声明计算体育成绩及格人数的函数*/ float sum_score(int count); /*声明计算总分成绩最大值函数*/ void load_student(int a); /*声明启动学生函数*/void load_teacher(int a); /*声明启动老师函数*/struct student /*学生结构体*/{/*个人信息*/int student_id; /*账号*/char student_name[20]; /*姓名*/char password[16]; /*密码*/int age; /*年龄*/char qq[12]; /*QQ号*/char tel[12]; /*电话*/int grade; /*年级*//*各科成绩*/float chinese; /*语文分数*/float english; /*英语分数*/float math; /*数学分数*/float computer; /*计算机分数*/float PE; /*体育分数*/float sum; /*总分*//*课程表*/char time[10]; /*时间*/char lessonname[20]; /*课程名*/char teacher[20]; /*授课老师*/char classroom[10]; /*教室*/char hours[10]; /*第几节课*/int weeks; /*周时*/};struct teacher /*老师结构体*/ {int teacher_id; /*账号*/char teacher_name[20]; /*姓名*/char password[16]; /*密码*/};struct student our_student[student_num]; struct teacher our_teacher[teacher_num];void main() /*主函数*/{system("color f0"); /*初始化背景颜色*/show_menu(); /*制作人信息简介*/load();}void load() /*启动函数*/{int flag=1; /*控制循环结束的变量*/int a=0,b=0; /*记录已注册的学生的人数a为学生个数b为老师个数*/int *count1=&a,*count2=&b; /*指向学生人数和老师人数的指针*/int correct_student,correct_teacher;color();register_(count1,count2); /*注册学生和老师的帐号*/student_file1();teacher_file();while(flag){switch(show_menu_login()) /*显示登录菜单*/{case 1: /*选择1,进入学生登录*/if(correct_student=is_my_student(our_student,count1)){printf("\n ◆学生登录成功!\n");display_student(our_student[correct_student-1]);printf("\n");printf(" ");system("pause");load_student(a);}elseprintf("\n登录失败!\n");printf("\n");printf(" 提示:按Y退出登录界面,按N返回登录界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,进入老师登录,即管理员登录*/ if(correct_teacher=is_my_teacher(our_teacher,count2)){printf("\n ◆管理员登录成功!\n");display_teacher(our_teacher[correct_teacher-1]);printf("\n");printf(" ");system("pause");load_teacher(a);}elseprintf("\n登录失败!\n");printf("\n");printf(" 提示:按Y退出登录界面,按N返回登录界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,退出登录*/system("cls");flag=0;break;default:printf("请正确输入1-3:");system("cls");}}}void load_student(int a) /*启动学生函数*/{int flag=1;system("cls");while(flag){switch(show_student_select()){case 1: /*选择1,学生信息查询*/system("cls");print_stu_information(a);printf("\n");printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,学生成绩查询*/system("cls");print_stu_score(a);printf("\n");printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,学生课表查询*/menu2();printf(" 提示:按Y退出学生查询界面,按N返回学生查询界面!!!\n");flag=yes_no_return();system("cls");break;case 4: /*选择4,退出查询界面*/system("cls");flag=0;break;default:printf("请正确输入1-4:");system("cls");}}}void load_teacher(int a) /*启动老师函数*/{int flag=1;system("cls");while(flag){switch(show_teacher_select()){case 1: /*选择1,学生信息录入*/input_information(a);system("cls");student_file2();printf("\n 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 2: /*选择2,学生成绩录入*/input_score_menu(a);system("cls");student_file3();printf("\n 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 3: /*选择3,学生课表录入*/menu1();printf(" 提示:按Y退出教师录入界面,按N返回教师录入界面!!!\n");flag=yes_no_return();system("cls");break;case 4: /*选择4,退出管理界面*/system("cls");flag=0;break;default:printf("请正确输入1-4:");system("cls");}}}int length_student_name(char *p) /*验证用户名是否合法*/ {int l;l=strlen(p);if(l>20||l<1)return 0;elsereturn 1;}int vaild_student_name(char *p) /*判断用户名是否有效*/{int i=0;int len=strlen(p);if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判断首字母是不是字母*/ {for(i=0;i<len;i++){if(!(p[i]='_'||(p[i]>='a'&&p[i]<='z')||(p[i]>='A'&&p[i]<='Z')||(p[i]>='0'&&p[i]<=' 9'))) /*判断后面的字符是否有效*/return 0;}return 1;}elsereturn 0;}int length_student_password(char *p) /*密码长度有效性验证*/{int len;len=strlen(p);if(len<6||len>16)return 0;elsereturn 1;}int vaild_student_password(char *p) /*密码的有效性验证*/{int i=0;for(;*p!='\0';p++){if(!((*p>='a'&&*p<='z')||(*p>'A'&&*p<'Z')||(*p>='0'&&*p<='9'))) return 0;}return 1;}int vaild_two_password(char *p1,char *p2) /*验证两次密码是否相同*/{if(strcmp(p1,p2)==0)return 1;elsereturn 0;}int student_register(struct student *ptr_student,int *size) /*完成注册功能*/{char password[16];char repassword[16];if(*size==student_num){puts(" ◆注册人数已满!");printf("\n");return 0;}system("cls");printf("\n\n");printf(" ★请输入注册学生姓名:");fflush(stdin);gets(ptr_student[*size].student_name);if(!(length_student_name(ptr_student[*size].student_name)&&vaild_student_name(ptr_student[*size].student_name))){printf(" ◆您输入的姓名无效,学生姓名在1-20之间,首字符为字母,后面必须为字母、数字或下划线!!!");return 0;}printf("\n");printf(" ★请输入注册密码:");fflush(stdin);gets(password);printf("\n");printf(" ★请再次输入注册密码:");fflush(stdin);gets(repassword);printf("\n");if(!vaild_two_password(password,repassword)){printf("\n №:两次输入的密码不一致!!!");printf("\n");return 0;}elsestrcpy(ptr_student[*size].password,password);if(!(length_student_password(ptr_student[*size].password)&&vaild_student_pa ssword(ptr_student[*size].password))){printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!");printf("\n");return 0;}printf(" ★您的编号为:%d,这将是您的登录账号!!!",ptr_student[*size].student_id=20150000+*size);return 1;}int is_my_student(struct student *p,int *size) /*如果登录成功则返回第i+1个学生的信息,否则返回0*/{int i;int zhanghao;char mima[18];system("cls");printf("\n\n");printf(" ★请输入您的账号:");scanf("%d",&zhanghao);fflush(stdin);printf("\n");printf(" ★请输入您的密码:");gets(mima);for(i=0;i<*size;i++){if((zhanghao==p[i].student_id)&&(strcmp(mima,p[i].password)==0)) return i+1;}return 0;}void display_student(struct student stu) /*显示学生信息*/{printf("\n ★您的账号是:%d\n",stu.student_id);}int length_teacher_name(char *p) /*验证用户名是否合法*/{int l;l=strlen(p);if(l>20||l<1)return 0;elsereturn 1;}int vaild_teacher_name(char *p) /*判断用户名是否有效*/{int i=0;int len=strlen(p);if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判断首字母是不是字母*/ {for(i=0;i<len;i++){if(!(p[i]='_'||(p[i]>='a'&&p[i]<='z')||(p[i]>='A'&&p[i]<='Z')||(p[i]>='0'&&p[i]<=' 9'))) /*判断后面的字符是否有效*/return 0;}return 1;}elsereturn 0;}int length_teacher_password(char *p) /*密码长度有效性验证*/{int len;len=strlen(p);if(len<6||len>16)return 0;elsereturn 1;}int vaild_teacher_password(char *p) /*密码的有效性验证*/{int i=0;for(;*p!='\0';p++){if(!((*p>='a'&&*p<='z')||(*p>'A'&&*p<'Z')||(*p>='0'&&*p<='9'))) return 0;}return 1;}int teacher_register(struct teacher *ptr_teacher,int *size) /*完成注册功能*/{char password[16];char repassword[16];if(*size==teacher_num){puts(" ◆注册人数已满!");printf("\n");return 0;}system("cls");printf("\n\n");printf(" ★请输入注册教师姓名:");fflush(stdin);gets(ptr_teacher[*size].teacher_name);if(!(length_teacher_name(ptr_teacher[*size].teacher_name)&&vaild_teacher_na me(ptr_teacher[*size].teacher_name))){printf(" ◆您输入的姓名无效,教师姓名在1-20之间,首字符为字母,后面必须为字母、数字或下划线!!!");printf("\n");return 0;}printf("\n");printf(" ★请输入注册密码:");fflush(stdin);gets(password);printf("\n");printf(" ★请再次输入注册密码:");fflush(stdin);gets(repassword);printf("\n");if(!vaild_two_password(password,repassword)){printf("\n №:两次输入的密码不一致!!!");printf("\n");return 0;}elsestrcpy(ptr_teacher[*size].password,password);if(!(length_teacher_password(ptr_teacher[*size].password)&&vaild_teacher_password(ptr_teacher[*size].password))){printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!");printf("\n");return 0;}printf(" ★您的编号为:%d,这将是您的登录账号。
运动会分数统计系统-c语言课程设计报告书

课程设计报告课程名称《C语言程序设计》课题名称运动会分数统计系统专业电气工程及其自动化班级电气工程学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称《C语言程序设计》课题运动会分数统计系统专业班级电气工程及其自动化学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日第一部分《C语言课程设计》任务书前言《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。
是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,课程设计的课题比平时的习题复杂得多,也更接近实际。
课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。
为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。
学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。
学习委员将课程设计报告与磁盘收齐后交指导老师。
一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
运动会管理系统源代码

运动会管理系统源代码include<stdio.h>#include<stdlib.h>#include<string.h>struct student /* 定义链表 */{long num;char name[10];char danwei[10];int xiangmu;int chengji;struct student *next;};struct student *creat(struct student *h); /*s 输入函数 */struct student *findstudent(struct student *h); /* 查找函数 */struct student *sort(struct student *h); /* 排序函数 */main(){int b,c=1;struct student *head,*p,*f; /* 定义表头指针 */head=NULL; /* 创建一个空表 */printf("\t\t\t**********************\n");printf("\t\t\t****运动会管理系统****\t\t\n");printf("\t\t\t**********************\n");do /* 循环使用系统中的功能 */{printf("*************************************************************************\n");printf("\t\t请输入1或2或3进行功能选择\n");printf("\t\t输入1---------------------进行输入功能\n");printf("\t\t输入2---------------------进行查找功能\n");printf("\t\t输入3---------------------进行排序功能\n");printf("*************************************************************************\n"); scanf("%d",&b);switch(b) /* 进入函数 */{case 1:head=creat(head);break;case 2:p=findstudent(head);break;case 3:f=sort(head);break;default:printf("输入错误,请从新输入");}printf("*************************************************************************\n");printf("否进行其他功能?\n");printf("是输入------1,否输入------2:\n");scanf("%d",&c);}while(c==1);}/* 输入功能 */struct student *creat(struct student *h){struct student *p1,*p2; /* 定义链表指针 */p1=p2=(struct student*)malloc(sizeof(struct student)); /* 申请新结点*/printf("\n-------------------------------------------------------\n");printf("请依次输入运动员的号码、姓名、单位、项目(run为1,jump为2,swim为3)、成绩\n学号输入0时,结束输入!\n");printf("\n-------------------------------------------------------\n");if(p2!=NULL)printf("请输入号码:");scanf("%ld",&p2->num); /* 输入结点的值 */if(p2->num!=0){getchar();printf("请输入姓名:");gets(p2->name);printf("请输入单位:");scanf("%s",&p2->danwei);printf("请输入项目 run则输入1 jump则输入2 swim则输入3:");scanf("%d",&p2->xiangmu);printf("请输入成绩:");scanf("%d",&p2->chengji);p2->next=NULL; /* 新结点指针成员的赋值为空 */printf("---------------------------------------------------\n");}while(p2->num!=0){if(h==NULL)h=p2; /* 若为空表,接入表头 */elsep1->next=p2; /* 若为非空表,接入表尾 */p1=p2;p2=(struct student*)malloc(sizeof(struct student)); /* 申请下一个新结点 */if(p2!=NULL){printf("请输入号码:");scanf("%ld",&p2->num); /* 输入结点的值 */if(p2->num!=0){getchar();printf("请输入姓名:");gets(p2->name);printf("请输入单位:");scanf("%s",&p2->danwei);printf("请输入项目 run则输入1 jump则输入2 swim则输入3:");scanf("%d",&p2->xiangmu);printf("请输入成绩:");scanf("%d",&p2->chengji);p2->next=NULL; /* 新结点指针成员的赋值为空 */printf("-----------------------------------------------\n");}}}return h;}/* 查找功能 */struct student *findstudent(struct student *h){int a;struct student *q; /* 定义链表指针 */q=(struct student*)malloc(sizeof(struct student));q=h; /* 接入表头 */printf("输入运动项目:run则输入1 jump则输入2 swim则输入3:\n");scanf("%d",&a);while(q!=NULL){if(a==1) /* 若项目为run则进行查找输出 */{if(q->xiangmu==1){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */}else if(a==2) /* 若项目为jump则进行查找输出 */{if(q->xiangmu==2){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */}else /* 若项目为swim则进行查找输出 */ {if(q->xiangmu==3){printf("------------------------------------------------\n");printf("查找结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",q->num,q->name,q->danwei,q->xiangmu,q->chengji); q=q->next; /* 进入下一结点 */}elseq=q->next; /* 进入下一结点 */ }}}/* 排序功能 */struct student *sort(struct student *h){int d;int g1=0,e1=0,i1,j1,temp1,a[60];int g2=0,e2=0,i2,j2,temp2,b[60];int g3=0,e3=0,i3,j3,temp3,c[60];struct student *s; /* 定义链表指针 */s=h;printf("按项目排序:\n");printf("请输入项目,run----输入1,jump----输入2,swim----输入3:\n");scanf("%d",&d);printf("-----------------------------------------------------------------\n");printf("学生排序结果为:\n");printf("学生号码\t学生姓名\t学生单位\t学生项目\t学生成绩\t\n");if(d==1) /* 对项目为run的运动员进行排序 */{while(s!=NULL) /* 计算e1大小也就是项目为run的运动员的多少 */ {if(s->xiangmu==1){a[e1]=s->chengji;e1=e1+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}for(i1=1;i1<e1;i1++) /* 冒泡法开始 */{for(j1=e1-1;j1>=1;j1--){if(a[j1]<a[j1-1]){temp1=a[j1-1];a[j1-1]=a[j1];a[j1]=temp1;}}} /* 冒泡结束 */s=h;while(g1<e1) /* 循环从小到大输出项目为run的运动员的信息 */{if(s->xiangmu==1){if(s->chengji==a[g1]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji); s=h;g1=g1+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}}else if(d==2) /* 若项目为jump则进行排序 */{while(s!=NULL) /* 计算e2大小也就是项目为jump的运动员的多少 */ {if(s->xiangmu==2){b[e2]=s->chengji;e2=e2+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */ }for(i2=1;i2<e2;i2++) /* 冒泡开始 */{for(j2=e2-1;j2>=1;j2--){if(b[j2]<b[j2-1]){temp2=b[j2-1];b[j2-1]=b[j2];b[j2]=temp2;}}} /* 冒泡结束 */s=h;while(g2<e2) /* 循环从小到大输出项目为jump的运动员的信息*/{if(s->xiangmu==2){if(s->chengji==b[g2]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji);s=h;g2=g2+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}}else /* 若项目为swim则进行排序 */{while(s!=NULL) /* 计算e3大小也就是项目为swim的运动员的多少*/{if(s->xiangmu==3){c[e3]=s->chengji;e3=e3+1;s=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */}for(i3=1;i3<e3;i3++) /* 冒泡开始 */{for(j3=e3-1;j3>=1;j3--){if(c[j3]<c[j3-1]){temp3=c[j3-1];c[j3-1]=c[j3];c[j3]=temp3;}}} /* 冒泡结束 */s=h;while(g3<e3) /* 循环从小到大输出项目为swim的运动员的信息 */{if(s->xiangmu==3){if(s->chengji==c[g3]){printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\t\n",s->num,s->name,s->danwei,s->xiangmu,s->chengji);s=h;g3=g3+1;}elses=s->next; /* 进入下一结点 */}elses=s->next; /* 进入下一结点 */ }}}。
运动会管理系统代码

(1)输入信息函数void inputinformation() //输入信息,建立系统{int i,j,k,s;for(i=0;i<n;i++){h[i].score=0;h[i].mscore=0;h[i].wscore=0;} //初始化学校成绩for(i=0;i<n;i++){printf("*****学校编号:");scanf("%d",&h[i].schoolnum); //输入学校成绩数组中下标为i的学校编号for(j=0;j<m+w;j++) //对每一个项目输入项目成绩{printf("*****项目编号:");scanf("%d",&h[i].c[j].itemnum); //输入学校成绩数组下标为i的学校成绩项中项目数组下标为j的项目编号printf("*****取前3名or前5名:");scanf("%d",&h[i].c[j].top); //输入学校成绩数组下标为i的学校成绩项中项目数组下标为j的取名次数printf("*****获得几个名次:");scanf("%d",&k); //输入该学校该项目获得的名次数目for(s=0;s<5;s++){h[i].c[j].range[s]=0;h[i].c[j].mark[s]=0;} //初始化排名和分数 for(s=0;s<k;s++) //根据获得的名次数目逐一输入获奖名次{printf("*****名次:");scanf("%d",&h[i].c[j].range[s]); //输入所获名次信息 if(h[i].c[j].top==3) //如果取前三名switch(h[i].c[j].range[s]){case 0: h[i].c[j].mark[s]=0; break;case 1: h[i].c[j].mark[s]=5; break;case 2: h[i].c[j].mark[s]=3; break;case 3: h[i].c[j].mark[s]=2; break;}elseswitch(h[i].c[j].range[s]){case 0: h[i].c[j].mark[s]=0; break;case 1: h[i].c[j].mark[s]=7; break;case 2: h[i].c[j].mark[s]=5; break;case 3: h[i].c[j].mark[s]=3; break;case 4: h[i].c[j].mark[s]=2; break;case 5: h[i].c[j].mark[s]=1; break;}//按取前三名还是取前五名分别记分h[i].score=h[i].score+h[i].c[j].mark[s];//把该项目所获的分数记录到学校总分中if(j<=m-1)h[i].mscore=h[i].mscore+h[i].c[j].mark[s];//是男子项目则记到男子分数里面去elseh[i].wscore=h[i].wscore+h[i].c[j].mark[s];//是女子项目则记到女子项目里面去}printf("\n");}}}(2)输出函数void output() //输出函数{int choice,i,j,k;int remember[n];int sign;do{printf("*******************1.按学校编号输出.*******************\n"); printf("*******************2.按学校总分输出.*******************\n"); printf("*******************3.按男团总分输出.*******************\n"); printf("*******************4.按女团总分输出.*******************\n");printf("\n\n******************* 请选择编号*************************\n\n:");scanf("%d",&choice);switch(choice){case 1:for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[i].schoolnum);printf("*****学校总分:%d\n" ,h[i].score);printf("*****男团总分:%d\n",h[i].mscore);printf("*****女团总分: %d\n\n\n",h[i].wscore);} //按编号顺序输出break;case 2:for(i=0;i<n;i++)remember[i]=i; //用remember数组记录下标值for(i=0;i<n;i++){for(j=i+1;j<n;j++) //总分进行比较if(h[remember[i]].score<h[remember[j]].score){k=remember[i];remember[i]=remember[j];remember[j]=k;}} // 用冒泡排序方法,用辅助数组记住头结点下标for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum); printf("*****学校总分:%d\n" ,h[remember[i]].score);printf("*****男团总分:%d\n",h[remember[i]].mscore);printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore);//按所记下标顺序输出} //按学校总分输出break;case 3:for(i=0;i<n;i++)remember[i]=i;for(i=0;i<n;i++){for(j=i+1;j<n;j++)if(h[remember[i]].mscore<h[remember[j]].mscore){k=remember[i];remember[i]=remember[j];remember[j]=k;} }for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum); printf("*****学校总分:%d\n" ,h[remember[i]].score);printf("*****男团总分:%d\n",h[remember[i]].mscore);printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore); } //按男团总分输出break;case 4:for(i=0;i<n;i++)remember[i]=i;for(i=0;i<n;i++){for(j=i+1;j<n;j++)if(h[remember[i]].wscore<h[remember[j]].wscore){k=remember[i];remember[i]=remember[j];remember[j]=k;}}for(i=0;i<n;i++){printf("\n\n*****学校编号:%d\n",h[remember[i]].schoolnum); printf("*****学校总分:%d\n" ,h[remember[i]].score);printf("*****男团总分:%d\n",h[remember[i]].mscore);printf("*****女团总分: %d\n\n\n",h[remember[i]].wscore); }break; //按女团总分输出}printf("请选择 2 继续,0 跳出\n");scanf("%d",&sign);}while(sign==2); //循环执行输出语句}(3)查询函数void inquiry() //查询函数{int choice;int i,j,k,s;printf("\n*****1:按学校编号查询\n");printf("\n*****2:按项目编号查询\n");printf("\n\n*****请选择查询方式:"); //提供两种查询方式 scanf("%d",&choice);switch(choice){case 1:do{printf("要查询的学校编号:");scanf("%d",&i);if(i>n)printf("错误:这个学校没有参加此次运动会!\n\n\n");{printf("要查询的项目编号:");scanf("%d",&j);if(j>m+w||j==0)printf("此次运动会没有这个项目\n\n\n");//学校编号超出范围,则输出警告else{printf("这个项目取前 %d名,该学校的成绩如下:\n", h[0].c[j-1].top);for(k=0;k<5;k++)if(h[i-1].c[j-1].range[k]!=0)printf("名次:%d\n",h[i-1].c[j-1].range[k]); //输出要查询学校项目的成绩}}printf("请选择 2 继续 , 0 跳出\n");scanf("%d",&s);printf("\n\n\n");}while(s==2); //循环执行输出语句break;case 2:do{printf("要查询的项目编号:");scanf("%d",&s);if(s>m+w||s==0)printf("此次运动会不包括这个项目.\n\n\n");//项目编号超出范围则输出警告{printf("该项目取前 %d名,取得名次的学校\n",h[0].c[s-1].top);for(i=0; i<n;i++)for(j=0;j<5;j++)if(h[i].c[s-1].range[j]!=0)printf("学校编号:%d,名次:%d\n",h[i].schoolnum,h[i].c[s-1].range[j]);} //输出该项目取得名次学校的成绩 printf("\n\n\n继续 2,跳出 0\n");scanf("%d",&i);printf("\n\n\n");}while(i==2);break;}}void writedata() //把数据存储在文件中{FILE *report; //定义文件型指针int i;if((report=fopen("sportsdata.txt","w"))==null){printf("不能打开文件\n");exit(1);}for(i=0;i<n;i++)fwrite(&h[i],sizeof(headnode),1,report);fclose(report);} //按头结点块写入(把学校成绩逐一写入到程序中(4)数据存储与读出A.void writedata() //把数据存储在文件中{FILE *report; //定义文件型指针int i;if((report=fopen("sportsdata.txt","w"))==null){printf("不能打开文件\n");exit(1);}for(i=0;i<n;i++)fwrite(&h[i],sizeof(headnode),1,report);fclose(report);} //按头结点块写入(把学校成绩逐一写入到程序中B. void readdata() //读出文件中数据的函数{FILE *report;int i,j,k,s;if((report=fopen("sportsdata.txt","r"))==null){printf("file can not be opened\n");exit(1);}for(i=0;i<n;i++){printf("******学校编号:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******学校总分:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******男团总分:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******女团总分:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("\n\n\n");getch();for(j=0;j<m+w;j++){printf("******项目编号:");fread(&k,sizeof(int),1,report);printf("%d\n",k);printf("******所取名次数量:");fread(&k,sizeof(int),1,report);printf("%d\n",k);for(s=0;s<5;s++){fread(&k,sizeof(int),1,report); if(k!=0)printf("******名次:"),printf("%d\n",k);}for(s=0;s<5;s++){fread(&k,sizeof(int),1,report);if(k!=0) printf("******分数:"),printf("%d\n",k);}}printf("\n\n\n");getch();}fclose(report); //关闭文件} //按照读一个数据就输出一个数据的方式显示数据内容(5)主函数void main(){int choice;printf("======================欢迎使用======================\n"); printf("\n\n*****************运动会分数统计系统********************\n");printf("\n\n********************1.输入信息*************************\n");printf("********************2.输出信息*************************\n");printf("********************3.查询信息*************************\n");printf("********************4.调用信息*************************\n");printf("********************5.退出系统*************************\n\n\n");printf("================================================\n\n");printf("********请选择要实现步骤的编号:\n\n");scanf("%d",&choice);switch(choice){case 1:inputinformation();writedata();readdata();main();case 2:output();main();case 3:inquiry();main(); case 4:readdata();main(); case 5:exit(0);default:exit(0);}}。
运动会成绩管理系统

沈阳航空工业学院课程设计任务书院系:电子信息工程专业:电子信息工程班级:7402101学号:200704021019 题目:运动会成绩管理系统(1)一、课程设计时间2008~09第1学期第2周,共计1周,20学时。
二、课程设计内容用C语言编写软件完成以下任务:1录入运动员信息;2按所参加的项目添加成绩;3某一项目按成绩排名。
三、课程设计要求1. 程序质量:✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括“运动员信息录入”、“按项目添加成绩”、“按成绩排名(某一项目)”、“退出”4项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字指导教师:________ 学生签名:________五、说明书成绩六、教师评语目录一、需求分析 (1)二、程序流程图 (1)三、核心技术的实现说明及相应程序段 (2)四、个人总结 (5)五、参考文献 (12)六、源程序 (12)一、需求分析经过对程序设计题目的分析可知,整个程序的实现大致分为三个模块,其中每一个模块对应一个或多个函数,他们的功能分别是:添加运动员信息(add),排序函数(sort) ,添加运动员成绩(change)。
这三个功能分别对应题目的三个要求:1、添加运动员信息函数主要实现程序最初运行时运动员信息的录入;2、排序函数按照题目的具体要求实现的是单项成绩的排序以及名次显示,其中总成绩相同者名次相同;3、添加运动员成绩函数可以实现对运动员按项目添加成绩除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
每一个运动员的记录都包括序号、系别、姓名、年龄、性别以及短跑、跳高和游泳三项比赛成绩,在程序当中,将运动员记录类型定义为结构体类型,添加的运动员信息直接写入E盘的student.dat文件中,其他函数每次对运动员记录的访问,其数据来源都是student.dat文件,这样做不但可以保证运动员数据的一致性,而且可以对运动员数据进行永久保存,保证每次运行程序都可以采用原来的数据。
学生管理系统c语言源代码

学生管理系统c语言源代码学生管理系统c语言源代码#include stdio.h#include dos.h#include string.h#include stdlib.h#include malloc.h#define SIZE 8struct student{char name;char num;int score;float ave;struct student *next;}stu[SIZE],temp,s;void shuru(){int i,j,sum,length,flag=1,a;FILE *fp;while(flag==1){printf(“Define a rangeclass number:");scanf("%d",printf("Input the total number of the class(a):"); scanf("%d",length);if(lengtha)flag=0;}for(i=0;ilength;i++){printf("\n请输入学生的信息:");printf("\n输入姓名:");scanf("%s",stu[i].name);printf("\n输入序号.:");scanf("%s",stu[i].num);printf("\n输入成绩:\n");sum=0;for(j=0;jj++){printf("score %d:",j+1);scanf("%d",stu[i].score[j]);sum+=stu[i].score[j];}stu[i].ave=sum/3.0;}学生管理系统c语言源代码fp=fopen("stu1.txt","w");for(i=0;ilength;i++)if(fwrite(stu[i],sizeof(struct student),1,fp)!=1)printf("File write error\n");fclose(fp);fp=fopen("stu1.txt","r");printf("\name\ NO. score1 score2 score3 sum ave\n");for(i=0;ilength;i++){fread(stu[i],sizeof(struct student),1,fp);printf("%3s%5s%7d%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i ].score,stu[i].score,stu[i].score,sum=stu[i].score+stu[i].score+stu[i].score,stu[i].ave);}}void chaxun(){ FILE *fp, *fp1;char n,name;int i,j,k,t,m,flag=1;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");k=i;printf("\nPlease select the menu(1.number ):"); scanf("%d",switch(m){case 1:printf("\nchaxun number:");scanf("%s",n);for(flag=1,i=0;ii++){if(strcmp(n,stu[i].num)==0){j=i;flag=0;break;}}break;case 2:printf("\nchaxun name:");scanf("%s",name);for(flag=1,i=0;ii++){if(strcmp(name,stu[i].name)==0){j=i;flag=0;break;学生管理系统c语言源代码}}}if(!flag){printf("\nYou can find:\n");fp1=fopen("stu2.txt","w");printf(" name NO. score1 score2 score3ave\n");fwrite(stu[j],sizeof(struct student),1,fp1);printf("%-15s%11s%7d%7d%7d%10.2f",stu[j].name,stu[j].num,stu[j].score,stu[j].score,stu[j].score,stu[j].ave);}else printf("\nNot found!");fclose(fp);fclose(fp1);}xiugai(){ int a;printf("\nplease select the menu(1.CHARU 2.__ ):");scanf("%d",switch(a){case 1:Insert(); break;case 2:Delete(); break;}}Insert(){ FILE *fp;int i,j,t,n;printf("\nNO.:");scanf("%s",s.num);printf("name:");scanf("%s",);printf("score1,score2,score3:");scanf("%d,%d,%d",s.score,s.score,s.score);s.ave=(s.score+s.score+s.score)/3.0;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)学生管理系统c语言源代码printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(t=0;stu[t].aves.avett++);printf("\nnow:\n");fp=fopen("stu1.txt","w");for(i=0;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fwrite(s,sizeof(struct student),1,fp);printf("\n%-15s%11s%7d%7d%7d%10.2f",,s.num,s.score,s.score, s.score,s.ave);for(i=t;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);}Delete(){ FILE *fp;int i,j,t,n,flag;char number;if((fp=fopen("stu1.txt","rb"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;学生管理系统c语言源代码printf("\nInput number deleted:");scanf("%s",number);for(flag=1,i=0;flagii++){if(strcmp(number,stu[i].num)==0){for(t=i;tt++){strcpy(stu[t].num,stu[t+1].num);strcpy(stu[t].name,stu[t+1].name);for(j=0;jj++)stu[t].score[j]=stu[t+1].score[j];stu[t].ave=stu[t+1].ave;}n=n-1;elseprintf("\n Not found!");printf("\nNow,the content of file:\n");fp=fopen("stu1.txt","wb");for(i=0;ii++)fwrite(stu[i],sizeof(struct student),1,fp);fclose(fp);fp=fopen("stu1.txt","r");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++)printf("%-15s%11s%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i].score, stu[i].score,stu[i].score,stu[i].ave);fclose(fp);}paixu(){FILE *fp;int i,j,n;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1.txt':");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++) {printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(i=0;ii++)for(j=i+1;jj++)学生管理系统c语言源代码if(stu[i].avestu[j].ave){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}printf("\nnow:");fp=fopen("stu1.txt","w");for(i=0;ii++){fwrite(stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);tongji(){ FILE *fp;int i,j,k,labe1,b;int a5=0;int a6=0;int a7=0;int a8=0;int a9=0; int a10=0; float t;if((fp=fopen("stu1.txt","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1.txt':");for(i=0;fread(stu[i],sizeof(struct student),1,fp)!=0;i++){printf("\n%-15s%11s",stu[i].name,stu[i].num); for(j=0;jj++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);k=i;for(i=0;ii++){labe1=0;if(stu[i].ave60){labe1++;t=labe1/(float)k*100;}}printf("\nbujigelv:");printf("%f%",t);printf("\n");for(j=0;jj++){a5=0;a6=0;a7=0;a8=0;a9=0;a10=0;k=i;printf("kemu is %d:\n",j);for(i=0;ii++)学生管理系统c语言源代码{b=stu[i].score[j]/10;if(b6)a5++;elseif(b=6b7)a6++;elseif(b=7b8)a7++;elseif(b=8b9)a8++;if(b=9b10)a9++;elseif(b==10)a10++;}printf(" 不及格is %d\n",a5);printf(" 60--69 is %d\n",a6);printf(" 70--79 is %d\n",a7);printf(" 80--89 is %d\n",a8);printf(" 90--99 is %d\n",a9);printf(" 100 is %d\n",a10);}}main(){int a;printf(" ____\n"); printf(" 欢迎进入学生成绩管理系统\n");printf(" ____\n"); while(1){printf("\n选择菜单:\n");printf("\n");printf(" 1.输入 2.查询 3.排序 4.修改 5.统计 6.退出\n"); scanf("%d",switch(a){case 1: shuru();break;case 2: chaxun(); break;case 3: paixu(); break;case 4: xiugai(); break;学生管理系统c语言源代码case 5: tongji();break; case 6: exit(0); }。
校级运动会管理系统c语言程序

校级运动会管理系统c语言程序文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)#i n c l u d e<> #include<>#include<>#include<>#define SIZE 9#define N 3#define WM 3void bsxm(); ame);printf("学校:");scanf("%s",at[i].univ);printf("参赛项目:");scanf("%s",at[i].prog);printf("名次:");scanf("%s",at[i].mingci);printf("得分:");scanf("%d",&at[i].score);}fp1=fopen("ath","w");for(i=0;i<SIZE;i++){if(fwrite(&at[i],sizeof(struct athlete),1,fp1)!=1)printf("File write error!\n");}fclose(fp1);fp1=fopen("ath","r");printf("\n现在各运动员的信息如下:\n\n");printf("姓名学校项目名次得分\n");for(i=0;i<SIZE;i++){fread(&at[i],sizeof(struct athlete),1,fp1);printf("%-10s%-10s%-18s%-10s%d\n",at[i].name,at[i].univ,at[i].prog,at[i].mingci,at[i].sc ore);}fclose(fp1);printf_back();}void saveschool() niv);printf("参赛的项目:");scanf("%s",xx[i].prog);printf("参赛者数:");scanf("%d",&xx[i].num_athlete);}fp3=fopen("xxiao","w");for(i=0;i<N;i++){if(fwrite(&xx[i],sizeof(struct xuexiao),1,fp3)!=1)printf("File write error!\n");}fclose(fp3);printf_back();}void saveprogram() rog);printf("取分情况:");scanf("%d",&pro[i].quming);printf("参赛者1:");scanf("%s",pro[i].ath1);printf("所属学校:");scanf("%s",pro[i].univ1);printf("参赛者2:");scanf("%s",pro[i].ath2);printf("所属学校:");scanf("%s",pro[i].univ2);}fp4=fopen("pr","w");for(i=0;i<N;i++){if(fwrite(&pro[i],sizeof(struct program),1,fp4)!=1)printf("File write error!\n");}fclose(fp4);printf_back();}void savescore() niv);printf("参赛项目1:");scanf("%s",zf[i].prog1);printf("得分:");scanf("%d",&zf[i].score1);printf("参赛项目2:");scanf("%s",zf[i].prog2);printf("得分:");scanf("%d",&zf[i].score2);printf("参赛项目3:");scanf("%s",zf[i].prog3);printf("得分:");scanf("%d",&zf[i].score3);zf[i].total_score=zf[i].score1+zf[i].score2+zf[i].score3;}fp2=fopen("zfen","w");for(i=0;i<N;i++){if(fwrite(&zf[i],sizeof(struct zongfen),1,fp2)!=1)printf("File write error!\n");}fclose(fp2);printf_back();}void Search()niv,zf[i].prog1,zf[i].prog2,zf[i].prog3,zf[i].total_score);}fclose(fp2);printf_back();}void csxx() niv,xx[i].prog,xx[i].num_athlete);}fclose(fp3);printf_back();}void bsxm()rog,pro[i].quming,pro[i].ath1,pro[i].univ1,pro[i].ath2,pro [i].univ2);}fclose(fp4);printf_back();}void main(){menu();}void menu()xit \t2).menu:[ ]\b\b");scanf("%d",&w);if(w==1)exit(0);else menu();}。
c语言课程设计运动会比赛计分系统(含任务书)

c语言课程设计运动会比赛计分系统(含任务书)第一篇:c语言课程设计运动会比赛计分系统(含任务书)一、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:(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)用户自定义:各名次权值由用户指定。
四、设计方案提示(1)界面系统以菜单方式工作(2)输入数据并存入文件使用到结构体变量和动态链表,由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
对输入的信息进行合法性判断,直到输入正确为止。
都输入完成后,调用写文件函数对指定的文件进行写操作,把输入的信息写入到文件中。
C语言课程设计--校际运动会管理系统

目录一课程设计目的 (1)二课程设计任务和内容 (1)三系统设计方案 (2)3.1系统详细描述 (2)3.1.1系统设计背景 (2)3.1.2系统设计详细信息 (2)3.2功能模块划分 (2)3.2.1功能模块描述 (2)3.2.2输入项 (4)3.2.3输出项 (4)四系统实现与测试 (4)4.1主菜单实现 (5)4.1.1流程图 (5)4.1.2代码 (6)4.1.3主菜单测试 (7)4.2查询模块实现 (7)4.2.1流程图 (7)4.2.2代码 (8)4.2.3模块测试 (11)4.3显示数据模块实现 (12)4.3.1流程图 (12)4.3.2代码 (13)4.3.3模块测试 (15)4.4文件输出模块 (16)4.4.1代码 (16)4.4.2模块测试 (17)4.5显示排名模块 (17)4.5.1流程图 (17)4.5.2代码 (18)4.5.3模块测试 (19)五程序调试及错误 (19)六参考文献 (20)七附录 (20)一、课程设计的目的1)学习综合运用C高级语言课程和其他先修课程的知识,提高分析和解决实际问题的的能力,进一步巩固、加深和拓宽所学的知识;进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。
2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法;独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
3)掌握程序设计中的常用算法和C语言的编程技巧和上机调试程序的方法。
4)在参与一系列子项目的实践过程中,提高如何综合运用所学知识解决实际问题的能力,以及获得相关项目管理和团队合作等众多方面的具体经验。
二、课程设计任务和内容按照如下要求,运用C++语言,编写一套可用的较为完善的校际运动会管理系统软件(两人分模块合作)要求:初始化输入:学校总数及名字,运动员总数及运动员基本信息,运动会项目(为方便测试暂定为男女分别为4项,以项目一,项目二,项目三,项目四代表)各项目名次取法有以下几种:取前五名:第一名 7分,第二名 5分,第三名 3分,第四名2分,第五名 1分;取前三名:第一名 5分,第二名 3分,第三名 2分;用户自定义。
C语言学生信息管理系统(完整版)

#define PRINT0 printf("name:%s\nsex:%s\nage:%d\nID_card:%d\naddress:%s\n",st[i].name,st[i].sex,st[i].age,st[i] .ID_card,st[i].addr)#define PRINT1 printf("prefession:%s\nstudent_number:%d\n*****score*****\nwuli:%d\n",st[i].prefession,st[i] .student_number,st[i].score.wuli)#define PRINT2 printf("gaoshu:%d\nyingyu:%d\ntiyu:%d\naverage: %d\n",st[i].score.gaoshu,st[i].score.yingyu,st[i ].score.tiyu,st[i].score.aver)#define print1 printf("________________________________")#define N 2#include "string.h"#include "stdio.h"int sum=0;struct score{int wuli;int gaoshu;int yingyu;int tiyu;int aver;};struct message{ char name[10];int age;char sex[5];int ID_card;char addr[30];char prefession[30];int student_number;struct score score;}st[100];/*************write message*************/write_message(){ int flag;char chioce;do{system("cls");flag=2; sum++;printf("_______________________________");printf("please input student's message:\n");printf("\n");print1;printf("%dth student message:",sum);print1;printf("\nname:");scanf("%s",st[sum].name);printf("\nsex:");scanf("%s",st[sum].sex);printf("\nage:");scanf("%d",&st[sum].age);printf("\nID_card:");scanf("%d",&st[sum].ID_card);printf("\naddress:");scanf("%s",st[sum].addr);printf("\nprefession:");scanf("%s",st[sum].prefession);printf("\nschool number:");scanf("%d",&st[sum].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[sum].score.wuli);printf("\ngaoshu:");scanf("%d",&st[sum].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[sum].score.yingyu);printf("\ntiyu:");scanf("%d",&st[sum].score.tiyu);printf("\naverage:");scanf("%d",&st[sum].score.aver);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*************save message****************/save_message(){ FILE *fp;int i;if((fp=fopen("student.txt","wb"))==NULL){printf("read error \n");printf("press any key back to menu\n");getch();exit(1);}for(i=0;i<sum;i++)if(fwrite(&st[i],sizeof(struct message),1,fp)!=1){printf("write error\n");fclose(fp);}fclose(fp);printf("\n********___OK!___**********\n___press any key back___");sum=i;bioskey(0);}/***************add message*****************/add_message(){int i,j,flag; char chioce;i=0;j=sum-1;flag=0;do{ system("cls");i++; j++;print1;printf("add %dth student's meaasge\n",i);print1;printf("\nname:");scanf("%s",st[j].name);printf("\nsex:");scanf("%s",st[j].sex);printf("\nage:");scanf("%d",&st[j].age);printf("\nID_card:");scanf("%d",&st[j].ID_card);printf("\naddress:");scanf("%s",st[j].addr);printf("\nprefession:");scanf("%s",st[j].prefession);printf("\nstudent_number:");scanf("%d",&st[j].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[j].score.wuli);printf("\ngaoshu:");scanf("%d",&st[j].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[j].score.yingyu);printf("\ntiyu:");scanf("%d",&st[j].score.tiyu);printf("\naverage:");scanf("%d",&st[j].score.aver);printf("\n\nweather add %dth student's message: \n",i+1);do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;}while(1);}while(flag==1);sum=j+1;save_message();}/**********inqiure message******/inqiure_message(){int chioce;do{system("cls");printf("**********choose 0-3**********\n\n\n");printf(" 1:name inquire\n\n\n");printf(" 2:IDcard inqiure\n\n\n");printf(" 3:student_number\n \n\n");printf(" 0:back menu\n\n\n");scanf("%d",&chioce);switch(chioce){case 1: name_inqiure();break;case 2: ID_card_inqiure();break;case 3: grade_inqiure();break;case 0:break;}}while(chioce!=0);}/**********name inqiure*********/name_inqiure(){char NAME[30];int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nname:");scanf("%s",NAME);getchar();printf("\n");for(i=0;i<sum;i++){if(strcmp(st[i].name,NAME)==0){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/**********IDcard inqiure*********/ID_card_inqiure(){int card;int i; int flag,k;char chioce;do{ clrscr(); k=0;printf("please input the message you inqiure");printf("\nIDcard:");scanf("%d",&card);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].ID_card==card){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********grade inqiure***********/grade_inqiure(){int GRADE;int i; int flag,k;char chioce;do{ system("cls");k=0;printf("please input the message you inqiure");printf("\nstudent_number:");scanf("%d",&GRADE);getchar();printf("\n");for(i=0;i<sum;i++){if(st[i].student_number==GRADE){PRINT0;PRINT1;PRINT2;k=1;}}if(k==0) printf("without message you inqiure\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);printf("press any key return to menu");bioskey(0);}/*********change message**********/change_message(){char pre[30],chioce;int i,gra,flag,num,s;s=0;do{system("cls");printf("please input message you want to change\n ");printf("student_number:");scanf("%d",&gra); getchar();for(i=0;i<sum;i++){if(st[i].student_number==gra){PRINT0;PRINT1;PRINT2;printf("\n********input message you want to change********\n");printf("0:name***1:sex***2:age***3:ID_card***4:address***\n5:prefession***6:wuli***7:stud ent_number***8\n:gaoshu***9:yingyu***10:tiyu***11:average***________\n");printf("choose 0-11\n");scanf("%d",&num); getchar();switch(num){case 0: printf("input the name changed\n");scanf("%s",st[i].name); getchar(); break;case 1: printf("input the sex changed\n");scanf("%s",st[i].sex); getchar(); break;case 2: printf("input the age changed\n");scanf("%d",&st[i].age); getchar(); break;case 3: printf("input the ID_card changed\n");scanf("%d",&st[i].ID_card); getchar(); break;case 4: printf("input the address changed\n");scanf("%s",st[i].addr); getchar(); break;case 5: printf("input the prefession changed\n");scanf("%s",st[i].prefession); getchar(); break;case 6: printf("input the wuli_score changed\n");scanf("%d",&st[i].score.wuli); getchar(); break;case7: printf("input the student_number changed\n");scanf("%d",&st[i].student_number); getchar(); break;case 8: printf("input the gaoshu_score changed\n");scanf("%d",&st[i].score.gaoshu); getchar(); break;case 9: printf("input the yingyu_score changed\n");scanf("%d",&st[i].score.yingyu); getchar(); break;case 10: printf("input the tiyu_score changed\n");scanf("%d",&st[i].score.tiyu); getchar(); break;case 11: printf("input the average_score changed\n");scanf("%d",&st[i].score.aver); getchar(); break;default: printf("input error\n"); break;}printf("\n*********the changed message*********\n\n");PRINT0;PRINT1;PRINT2;s=1;}}if(s!=1) printf("without message you want to change\n");do{ printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce); getchar();printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********delete message**********/delete_message(){ int GRADE;int i,j,flag1,flag;char chioce1,chioce2;flag1=3;flag=3;do{ system("cls");printf("please input student's student_number you want to delete\n");printf("student_number:");scanf("%d",&GRADE); getchar();for(i=0;i<sum;i++)if(st[i].student_number==GRADE){do{PRINT0;PRINT1;PRINT2;printf("\n******************************\n_________________ _________________\n");printf("press y/Y deleted:\npress n/N cancel:\n");scanf("%c",&chioce1);getchar();system("cls");if(chioce1=='y'||chioce1=='Y') flag1=1;else if(chioce1=='n'||chioce1=='N') return;else {printf("***input error***\n___press any ker return___\n"); bioskey(0);}}while(flag1!=1);for(j=i;j<sum;j++){ st[j]=st[j+1];flag=2;printf("message was deleted\n");sum-=1; }}if(flag!=2) printf("without message you want to delete\n");do{printf("press y/Y continue:\npress n/N stop:\n");scanf("%c",&chioce2);printf("****************************\n");if(chioce2=='y'||chioce2=='Y') {flag=1; break;}else if(chioce2=='n'||chioce2=='N') {flag=0; break;}else {system("cls");printf("input error\n");}print1;printf("\n");}while(1);}while(flag==1);save_message();}/************insert message*************/insert_message(){ int chioce,flag,i; flag=2;do{system("cls");printf("please input the number of people you insert\n");scanf("%d",&chioce);if(chioce>=sum){printf("xin xi pai zai zui hou ");chioce=sum;}for(i=sum;i>chioce;i--) st[i]=st[i-1];printf("\nplease input message you insert");printf("\nname:");scanf("%s",st[i].name);printf("\nsex:");scanf("%s",st[i].sex);printf("\nage:");scanf("%d",&st[i].age);printf("\nID_card:");scanf("%d",&st[i].ID_card);printf("\naddress:");scanf("%s",st[i].addr);printf("\nprefession:");scanf("%s",st[i].prefession);printf("\ngrade:");scanf("%d",&st[i].student_number);printf("\n*****score******\n");printf("wuli:");scanf("%d",&st[i].score.wuli);printf("\ngaoshu:");scanf("%d",&st[i].score.gaoshu);printf("\nyingyu:");scanf("%d",&st[i].score.yingyu);printf("\ntiyu:");scanf("%d",&st[i].score.tiyu);printf("\naverage:");scanf("%d",&st[i].score.aver);sum+=1;do{printf("****************************\n");printf("press y/Y continue:\npress n/N stop:\n");getchar();scanf("%c",&chioce);printf("****************************\n");if(chioce=='y'||chioce=='Y') {flag=1; break;}else if(chioce=='n'||chioce=='N') {flag=0; break;}else printf("input error\n");print1;printf("\n");}while(1);}while(flag==1);save_message();}/*********school_number_order***********/grade_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].student_number>st[j].student_number){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("grade order from min to max\n");for(i=0;i<sum;i++){ print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);bioskey(0);}/***********wuli score order***************/wuli_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("wuli score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********gaoshu score order***************/gaoshu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.gaoshu>st[j].score.gaoshu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("gaoshu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********yingyu score order***************/yingyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.yingyu>st[j].score.yingyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yingyu score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********tiyu score order***************/tiyu_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.tiyu>st[j].score.tiyu){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("yitu order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/***********average score order***************/average_order(){int i,j;system("cls");if(sum==0) {printf("**********no message**********\n____press any key return____");getch();return;}for(i=0;i<sum;i++)for(j=i+1;j<sum;j++)if(st[i].score.wuli>st[j].score.wuli){ st[sum+1]=st[i];st[i]=st[j];st[j]=st[sum+1];}printf("average score order from min to max\n");for(i=0;i<sum;i++){print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;getch();system("cls");}print1;printf("\ntotle num :%d\npress any key return to menu\n",sum);print1;bioskey(0);}/********order message****************/order_message(){int chioce;do{system("cls");printf("**********choose 0-6**********\n\n");printf(" 1:grade order\n\n");printf(" 2:wuli score order\n\n");printf(" 3:gaoshu score order\n \n");printf(" 4:ying yu score order\n\n");printf(" 5:tiyu score order\n\n");printf(" 6:average score order\n\n");printf(" 0:back menu\n\n");scanf("%d",&chioce);switch(chioce){case 1: grade_order();break;case 2: wuli_order();break;case 3: gaoshu_order();break;case 4: yingyu_order();break;case 5: tiyu_order();break;case 6: average_order();break;case 0:break;}}while(chioce!=0);}/**********answer secretory***********/mima_message(){int flag;char answer[10];char secret[10]="abcd";flag=2;do{system("cls");printf("\n______________________mi ma wei 'abcd'________________\n\n");printf("______________________qing shu ru mi ma:");scanf("%s",answer);getchar();if(strcmp(secret,answer)==0){flag=1;printf("\n\n =====throngh=====\n\n\n");printf("____________________press any key into next:\n");bioskey(0);}else{flag=0;printf("______________________input error:\n");printf("______________________press any key to return:\n");bioskey(0);}}while(flag!=1);}/*********read message****************/read_message(){int i;system("cls");if(sum<=0){ printf("without message\n");getch();return;}for(i=0;i<sum;i++){system("cls");print1;printf("\n%dth student's mssage\n",i+1);print1;printf("\n");PRINT0;PRINT1;PRINT2;printf("\n********press any key -show the next one********\n ");getch();}printf("________________totle num :%d________________\n",sum); printf("_____________press any key return______________\n"); bioskey(0);}/*************************************/main(){int chioce,flag;mima_message();do{system("cls");chioce=9;printf("**********************************************\n");printf("****welcome to system of managing students****\n");printf("**********************************************\n\n");printf("-------------------choose 0-8-----------------\n\n");printf(" 1:write message\n\n");printf(" 2:add message\n\n");printf(" 3:inqiure name\n\n");printf(" 4:change message\n\n");printf(" 5:insert message\n\n");printf(" 6:order message\n\n");printf(" 7:delete message\n\n");printf(" 8:read messaeg\n\n");printf(" 0:***exit***\n\n");scanf("%d",&chioce);getchar();switch(chioce){case 1: write_message();break;case 2: add_message();break;case 3: inqiure_message();break;case 4: change_message();break;case 5: insert_message();break;case 6: order_message();break;case 7: delete_message();break;case 8: read_message();break;case 0: printf("___sure press y/Y:___\n\n___no sure press n/N:___");scanf("%c",&chioce);getchar();if(chioce=='y'||chioce=='Y') flag=0;else flag=1;break;default : printf("\n ___input error___\n\n");printf("***press any key to go on***\n");getch();break;}}while(flag!=0);save_message();system("cls");printf("\n\n___message was saved___\n\n\n*****file name is student.txt*****\n");bioskey(0);}。
C语言课设之校级运动会管理系统

(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学 校信息和比赛项目信息等。
2.总体设计
分析整个系统,根据以上的需求分析及题目要求,可将整个系统的设计分为以下五个模块:信 息输入、录入比赛结果、查询信息、退出
三、详细设计
do {
puts("\n\n\n");
puts("\t\t***A__aWelcome to load puts("\t\t*************************menuputs("\t\t******** puts("\t\t******** puts("\t\t******** puts("\t\t"E puts("\t\t
ttzf
csxx
bsxvn
KIHICNJCKHX
各裁赛学校的情况如下;
参驀项目
参赛者数
dlda
3
3
huashS
3
3
uuda
3
3
SUCCESSFUL*
What de
yem want to do
next?
1> -exit
4i
2》.menu-L2]
o_a3a:■■*A4
(4)按学校名字查询信息
各比赛项目的信息、如下’
prin tf("Choice your number(1-4):[ ]\b\b"); sca nf("%d",&n);
if (n <1|| n>4)
{
w仁1; getchar();
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
校运动会管理系统报告C语言含完整代码Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】目录陈一、程序分析与设计(标题四号宋体加黑,正文五号宋体,行间距-固定值18,首行缩进2字符)1.题目描述初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;即要求输入一些基础数据,如院系名称,每个院系参赛选手及选手编号。
竞赛项目名称与代号。
这些数据存储在文本文件中,不需要每次都单条录入。
各项目名次取法有如下几种:取前4名:第1名得分6,第2名得分4,第3名得分2,第4名得分1;由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。
2.需求分析根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。
3.总体设计根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块 2、比赛结果录入模块 3、查询模块。
具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。
4.详细设计(1)主函数主函数一般设计的比较简洁,只提供输入,处理和输出部分的函数调用。
其中功能模块用菜单方式选择。
(2)密码登陆函数首先进入欢迎界面,提示用户输入密码进入系统,密码输入次数限制为三次,三次输入错误则退出系统,登陆成功显示菜单栏(3)菜单函数提醒用户根据要求选择功能,以及多次功能选取(4)输入函数进入该功能后提醒用户输入相应信息,即数据结构,数据结构采用结构体的形式,选手结构体成员包括选手的姓名、编号、各项目的成绩排名、选手所在学院等。
(5)查找函数提醒用户输入运动员的姓名或编号,根据姓名或编号逐一比对信息,若条件满足则输出该选手的数据,若不满足则返回‘你要找的运动员未找到’(6)排序函数根据运动员的百米成绩进行冒泡排序,并输出结果(7)修改函数提醒用户输入运动员的姓名,根据姓名逐一比对信息,若找到则提供修改选项,对数据进行覆盖(8)得分计算函数根据用户输入各项成绩排名,进行得分运算并得出学院排名(9)删除函数用于输入信息的删除(10)插入函数用于输入新的信息(11)保存函数将用户输入的信息保存到文本文件中(12)显示函数显示用户保存的信息二、流程图三、源程序清单(此部分采用小五号宋体,行间距-固定值14)#include<>#include<>#include<>#include<>#include <>#define load sizeof(student)#define N 7void read();void save();int size=3;struct student{char num[10];char name[20];int scorem,scoreq,scoreg,scorey;char ximing[20];}stu[N],temp;void input()um,&stu[i].name,&stu[i].scorem,&stu[i].scoreq,&stu[i].scoreg,&stu[i].scorey,&stu[i].ximing);printf("输出运动员号码,姓名,100成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");for(i=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].s coreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}void find() um,fs)==0){printf("你要找的运动员已找到:\n");printf("该生的号码,姓名,100米成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].s coreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);break;}else if(strcmp(stu[i].name,fs)==0){printf("你要找的运动员已找到:\n");printf("该生的号码,姓名,100米成绩,铅球成绩,跳高成绩,跳远成绩,系名:\n");printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].s coreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);break;}else{printf("你要找的运动员未找到:\n");printf("该运动员缺赛或不存在!");break;}}}void paixu() corem<stu[j].scorem){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}}}printf("排序后:\n");for(i=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].s coreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}void xiugai()um,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);*/ read();printf("输入你要修改运动员的姓名:");scanf("%s",ch2);for(i=0;i<size;i++){if(strcmp(stu[i].name,ch2)==0){printf("1.修改号码\n2.修改姓名\n3.修改100米成绩\n4.修改铅球成绩\n5.修改跳高成绩\n6.修改跳远成绩\n7.修改系名\n");scanf("%d",&c);switch(c){case 1:{printf("请输入你修改的运动员号码:");scanf("%s",&num);strcpy(stu[i].num,num);break;}case 2:{printf("输入你修改的运动员姓名:\n");scanf("%s",&name);strcpy(stu[i].name,name);break;}case 3:{printf("输入你修改的运动员100米成绩:");scanf("%d",&scorem);stu[i].scorem=scorem;break;}case 4:{printf("输入你修改运动员铅球成绩:");scanf("%d",&scoreq);stu[i].scoreq=scoreq;break;}case 5:{printf("输入你修改运动员跳高成绩:");scanf("%d",&scoreg);stu[i].scoreq=scoreq;break;}case 6:{printf("输入你修改运动员跳远成绩:");scanf("%d",&scorey);stu[i].scorey=scorey;break;}case 7:{printf("输入你修改运动员系名:");scanf("%s",&ximing);strcpy(stu[i].ximing,ximing);break;}default:printf("你的输入有误:\n");}printf("修改后的运动员数据:\n");for(int i=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].s coreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}}save();}void defen()um,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximin g);*/read();printf("各系的得分总分排序:\n");for(i=0;i<size;i++){if(stu[i].scorem==1) x=3;else if(stu[i].scorem==2) x=2;else if(stu[i].scorem==3) x=1;else x=0;if(stu[i].scoreq==1) y=3;else if(stu[i].scoreq==2) y=2;else if(stu[i].scoreq==3) y=1;else y=0;if(stu[i].scoreg==1) z=3;else if(stu[i].scoreg==2) z=2;else if(stu[i].scoreg==3) z=1;else z=0;if(stu[i].scorey==1) w=3;else if(stu[i].scorey==2) w=2;else if(stu[i].scorey==3) w=1;else w=0;}for(i=0;i<size;i++){if(strcmp(stu[i].ximing,ch1)==0){o=x+y+z+w;printf("软件系总得分:%d\n",o);}else if(strcmp(stu[i].ximing,ch2)==0){p=x+y+z+w;printf("数媒系总得分:%d\n",p);}else if(strcmp(stu[i].ximing,ch3)==0){q=x+y+z+w;printf("光电系总得分:%d\n",q);}}}voidshancchu()um,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].xim ing);*/read();printf("输入你要删除的运动员的姓名:\n");scanf("%s",&ch1);for(i=0;i<size;i++){if(strcmp(stu[i].name,ch1)==0){for(int j=i;j<size-1;j++)stu[j]=stu[j+1];}}printf("删除后的运动员数据:\n");for(i=0;i<size-1;i++){printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].s coreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}size--;save();}void charu() um);printf("姓名:");scanf("%s",&stu[size].name);printf("100米成绩:");scanf("%d",&stu[size].scorem);printf("铅球成绩:");scanf("%d",&stu[size].scoreq);printf("跳高成绩:");scanf("%d",&stu[size].scoreg);printf("跳远成绩:");scanf("%d",&stu[size].scorey);printf("系名:");scanf("%s",&stu[size].ximing);for(int i=0;i<size+1;i++)for(int j=i+1;j<size+1;j++)if(stu[i].scorem<stu[j].scorem){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}size++;}printf("插入后运动员数据:\n");for(int i=0;i<size;i++)printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].s coreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);save();}void save().Saving the file......\n");um,stu[i].name,stu[i].scorem,stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximin g);fclose(fp);..Save the file successfully!\n");}void read(){FILE*fp;um,&stu[i].name,&stu[i].scorem,&stu[i].scoreq,&stu[i].scoreg,&stu[i].scorey,&stu[i].xim ing);printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem,stu[i].s coreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}fclose(fp);入 2.查找\n");printf(" 3.排序 4.修改\n");printf(" 5.得分 6.删除\n");printf(" 7.插入8.保存\n");printf(" 9.显示0.退出\n");printf("===============================================\n");printf("请选择功能<1-8>:[ ]\b\b");um,&stu[i].name,&stu[i].scorem,&stu[i].scoreq,&stu[i].scoreg,&stu[i].scorey, &stu[i].ximing);printf("%s\t%s\t%d\t%d\t%d\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].scorem, stu[i].scoreq,stu[i].scoreg,stu[i].scorey,stu[i].ximing);}fclose(fp);//关闭文件做菜单功能多次选择时,令用户输入字符进行选择,然而程序总是退出,后来才知道‘\n’也被算入用户输入的字符内,要在字符输入后添加getchar ()才能避免菜单失效做显示函数,屏幕显示异常,总是反复显示相同数据和乱码,原来是结构体初始化,当中的数组已经存储了数据,在显示时与函数同时输出了,要再定义一个相同的数组应用它输出。