华清远见上海中心22071班 8.19作业
学生管理系统
1.系统主体
#include "stu.h"
extern int n;
STU st[N];
//******帮助菜单*******
void help()
{printf("**************************************\n");printf("* 学生成绩管理系统--帮助菜单 *\n");printf("**************************************\n");printf("* H = 显示帮助菜单 *\n");printf("* T = 成绩录入 *\n");printf("* A = 计算学生平均成绩 *\n");printf("* L = 列出成绩表 *\n");printf("* P = 按平均成绩由高到低排序 *\n");printf("* S = 按学号查询学生成绩 *\n");printf("* C = 清屏 *\n");printf("* Q = 退出系统 *\n");printf("**************************************\n");
}
//*****成绩录入*******
void type()
{int i;while(1){printf("请输入学生人数:");scanf("%d", &n);if(n>10||n<0){printf("学生人数不符合错误,请重新输入:");}else{printf("请输入%d名学生的三门课成绩:\n", n);printf("学号 语文 数学 外语\n");break;}}for(i = 1; i <= n; i++){st[i-1].num = i;printf("%d ",st[i-1].num);scanf("%f %f %f",&st[i-1].score[0], &st[i-1].score[1], &st[i-1].score[2]);}
}
//*****列出成绩******
void list()
{int i;printf("学号 语文 数学 外语\n");for(i=1;i<=n;i++){st[i-1].num = i;printf("%d\t%.2f\t%.2f\t%.2f",st[i-1].num,st[i-1].score[0], st[i-1].score[1], st[i-1].score[2]);printf("\n");}
}
//*****求出平均值******
void average()
{int sum;for(int i=1;i<=n;i++){sum=st[i-1].score[0]+st[i-1].score[1]+st[i-1].score[2];st[i-1].ave=sum/3.0;}printf("平均成绩已计算,请按P查看平均成绩排序\n");
}
//*****按平均分从高到低排序*****
void sort()
{for(int i=1;i(N-n)||new<0){printf("输入不正确,重新输入");continue;}printf("请输入%d名学生的成绩:\n", new);printf("学号 语文 数学 外语\n");for(int i=n;i<(n+new);i++){st[i].num = i+1;printf("%d ",st[i].num);scanf("%f %f %f",&st[i].score[0], &st[i].score[1], &st[i].score[2]);}break;}n=n+new;
}
2.分文件
#include "stu.h"
int main(int argc, const char *argv[])
{char order;help();while(1){printf("请输入命令=");scanf("%c", &order);switch(order){case 'H':help();break;case 'T':if(n == 0)type();elseadd();break;case 'A':if(n == 0)puts("成绩表为空!请先使用命令T录入学生成绩。");elseaverage();break;case 'L':if(n == 0)puts("成绩表为空!请先使用命令T录入学生成绩。");elselist();break;case 'P':if(n == 0)puts("成绩表为空!请先使用命令T录入学生成绩。");elsesort();break;case 'S':if(n == 0)puts("成绩表为空!请先使用命令T录入学生成绩。");elsesearch();break;case 'C':system("clear");break;case 'Q':exit(1);}getchar();//用scanf输入字符时,会同时把回车接受到,放在//缓存区中,执行下次while循环时,会打印两次输出语句,//所以使用getcahr来接收垃圾字符 }return 0;
}
3.头文件
#include
#include
#define N 10
int n;
typedef struct STU
{
int num;
float score[3];
float ave;
}STU;
void help();
void type();
void list();
void average();
void sort();
void search();
void add();
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
