华清远见上海中心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();


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部