当前位置:首页 > 成绩管理系统
成绩 管 理 系 统
源程序代码
#ifndef sms_stuct_INCLUDED //防止下面的内容被重复包含 #define sms_stuct_INCLUDED
#include
//定义常数
#define N 3
//定义结构体 {
char no[11]; char name[15]; float score[N]; float sum; float average; int order; }STUDENT;
//函数声明
int Input(STUDENT *stud,int n); void print(STUDENT *stud,int n); void sort(STUDENT *stud,int n);
typedef struct student
//输入记录 //显示记录 //排序记录
void search(STUDENT *stud,int n); //查找记录
int insert(STUDENT *stud,int n); //插入记录 int delete1(STUDENT *stud,int n); //删除记录 void save(STUDENT *stud,int n); //存储记录 int load(STUDENT *stud); //导入记录 void count(STUDENT *stud,int n); // 统计 #endif
#include \
/*菜单函数,返回值为整数*/ #include \ int menu_select() {
char s[3]; int c;
printf(\ ***************主菜单**************\\n\printf(\ 1. 输入记录\\n\
printf(\ 2. 显示所有记录\\n\
printf(\ 3. 对所有记录进行排序\\n\ printf(\ 4. 按姓名查找记录并显示\\n\
printf(\ 5. 插入记录\\n\ printf(\printf(\printf(\printf(\
6. 7. 8. 9.
删除记录\\n\
将所有记录保存到文件\\n\ 从文件中读入所有记录\\n\ 统计区间内成绩 \\n\
printf(\ 10. 退出\\n\
printf(\ ***********************************\\n\\n\ do
{
printf(\ 请选择操作(1-10):\ scanf(\
c=atoi(s);
}while(c<0||c>10); /*选择项不在~9之间重输*/
return(c); /*返回选择项,主程序根据该数调用相应的函数*/ }
/******主函数开始*******/ main()
{
int n=0;
STUDENT student[20]; /*定义结构数组*/ // system(\ /*清屏*/ for(;;) /*无限循环*/
{
switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { }
} }
#include \
case 1: n=Input(student,n);break; /*新建记录*/ case 2: print(student,n);break; /*显示全部记录*/ case 3: sort(student,n);break; /*排序*/
case 4: search(student,n);break; /*查找记录*/ case 5: n=insert(student,n);break; /*插入记录*/ case 6: n=delete1(student,n);break; /*删除记录*/ case 7: save(student,n);break; /*保存文件*/ case 8: n=load(student);break; /*读文件*/ case 9: count(student,n);break; /* 统计*/ case 10: exit(0); /*程序结束*/
/*创建结构体数组,完成数据录入功能*/ int Input(STUDENT *stud,int n) {
int i,j; float s; char sign; i=0;
while(sign!='n'&&sign!='N') {
printf(\请按如下提示输入相关信息.\\n\\n\ printf(\输入学号:\
scanf(\ /*输入学号*/ printf(\输入姓名:\
scanf(\ /*输入姓名*/
printf(\输入%d 个成绩:\\n\ /*提示开始输入成绩*/
s=0; /*计算每个学生的总分,初值为*/ for(j=0;j do{ printf(\ /*提示输入第几门课程*/ scanf(\ /*输入成绩*/ /*确保成绩在~100之间 /*出错提示信息*/ */ }while(stud[n+i].score[j]>100||stud[n+i].score[j]<0); s=s+stud[n+i].score[j]; /*累加各门课程成绩*/ } stud[n+i].sum=s; /*将总分保存*/ stud[n+i].average=(float)s/N; /*求出平均值*/ stud[n+i].order=0; /*未排序前此值为*/ printf(\该学生的总分为:%4.2f\\n\\t平均分为:%4.2f\\n\ printf(\提示:继续添加记录?(Y/N)\ getchar(); /*把键盘缓冲区中的前面输入的回车键给读掉,不然下面sign读到的是回车符*/ scanf(\ i++; } return(n+i); } #include \/*显示模块*/ #include \ void print(STUDENT *stud,int n)
共分享92篇相关文档