收藏 分销(赏)

用c语言编写一个成绩管理系统.doc

上传人:a199****6536 文档编号:4114343 上传时间:2024-07-30 格式:DOC 页数:6 大小:24.54KB 下载积分:6 金币
下载 相关 举报
用c语言编写一个成绩管理系统.doc_第1页
第1页 / 共6页
用c语言编写一个成绩管理系统.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单 学生成绩管理系统 1、 成绩录入 2、 成绩查询 3、 成绩统计  4、 退  出 (2)各菜单项功能 ① 成绩录入:输入学生的学号、姓名及三门课的成绩; ② 成绩查询:(至少一种查询方式). v 按学号查询学生记录。 v 查询不及格学生的记录。 ③成绩统计: v 计算学生的平均分; v 根据学生的平均分高低,对学生的数据进行排序后输出; v 对学生单科成绩排序,输出学生姓名与该科成绩; ④退出系统:退出整个系统(即主菜单)。 (3)结构体数组: #define N 30 struct student {int num; /* 定义学号*/ char name[20]; /* 定义姓名*/ float score[3]; /* 定义存贮三门课成绩的数组*/ float average; /* 定义平均成绩*/ };struct student stu[N];  /* 定义结构体数组,存贮多个学生的记录*/ . #include<stdio.h> #include〈stdlib.h> #include〈string。h> struct student { int num; char name[20]; float score[4]; float average; } stu[10000]; long t,max; bool unpass[1000]; FILE *fstu=fopen("stud.dat","at+"); int init() { int no,i; float s[4],ave; char nam[20]; while (!feof(fstu)) { fscanf(fstu,”%d”,&no); fscanf(fstu,”%s",nam); fscanf(fstu,"%f%f%f%f",&s[1],&s[2],&s[3],&ave); if (no>max) max=no; stu[no].num=no; strcpy(stu[no].name,nam); unpass[no]=false; f or (i=1;i〈=3;i++) { stu[no].score[i]=s[i]; if (s[i]〈60) unpass[no]=true; } stu[no].average=ave; } } int stuinsert() { int no,i; float s[3],sum; char nam[20],cha; loop:printf(”请输入学生的学号、姓名及三门课的成绩 \n"); scanf(”%d”,&no); scanf("%s”,nam); scanf(”%f%f%f/n”,&s[1],&s[2],&s[3]); if (no>max) max=no; stu[no].num=no; sum=0。0; strcpy(stu[no].name,nam); unpass[no]=false; for (i=1;i〈=3;i++) { stu[no]。score[i]=s[i]; sum=sum+s[i]; if (s[i]<60) unpass[no]=true; } stu[no].average=sum/3。0; fprintf(fstu,”\n”); fprintf(fstu,"%d %s %f %f %f %f\n",stu[no]。num,stu[no]。name,stu[no]。score[1],stu[no].score[2],stu[no]。score[3],stu[no].average); } int find(int x) { long i,no; switch (x) { case 1:printf(”请输入学号:"); scanf("%d”,&no); printf(”%d %s %f %f %f %f\n",stu[no]。num,stu[no]。name,stu[no]。score[1], stu[no].score[2],stu[no]。score[3],stu[no]。average); break; case 2:for (i=1;i〈=max;i++) if (unpass[i]) printf(”%d %s %f %f %f %f\n",stu[i]。num,stu[i]。name,stu[i]。score[1],stu[i].score[2],stu[i].score[3],stu[i]。average); break; } } int sort(int x) { extern int headprint(int x); student so[1000]; int i,j,k,n; switch (x) { case 1:for (i=1;i〈=max;i++) if (stu[i]。num==i) printf("%d %s %f\n”,i,stu[i]。name,stu[i]。average); break; case 2:n=0; for (i=1;i<=max;i++) { j=1; if (stu[i]。num==i) while ((so[j].average>stu[i].average)&&(j〈=n)) j++; n++; for (k=n;k>=j;k——) so[k]=so[k—1]; so[j]=stu[i]; } for (i=1;i<=n;i++) printf("%d %s %f %f %f %f\n”,so[i].num,so[i]。name,so[i].score[1],so[i]。score[2],so[i]。score[3],so[i].average); break; case 3:headprint(4); } } int othersort(int x) { extern int headprint(int x); student so[1000]; int i,j,k,n,q; q=0; switch (x) { case 1:if (q==0) q=1; case 2:if (q==0) q=2; case 3:if (q==0) q=3; n=0; for (i=1;i<=max;i++) { j=1; if (stu[i]。num==i) while ((so[j]。score[q]〉stu[i].score[q])&&(j〈=n)) j++; n++; for (k=n;k〉=j;k——) so[k]=so[k—1]; so[j]=stu[i]; } for (i=1;i〈=n;i++) printf("%d %s %f\n”,so[i]。num,so[i].name,so[i]。score[q]); break; } } int select(int x) { extern int headprint(int x); int p; switch (x) { case 1:scanf("%d”,&p); switch (p) { case 1:stuinsert(); break; case 2:headprint(2); break; case 3:headprint(3); break; case 4:t=0; break; } break; case 2:scanf("%d”,&p); find(p); break; case 3:scanf(”%d”,&p); sort(p); break; case 4:scanf("%d”,&p); othersort(p); break; } } int headprint(int x) { switch (x) { case 1:printf("学生成绩管理系统\n”); printf(”1、 成绩录入\n"); printf("2、 成绩查询\n"); printf("3、 成绩统计\n"); printf(”4、 退  出\n”); select(x); break; case 2:printf(”1、 按学号查询学生记录\n"); printf("2、 查询不及格学生的记录\n"); select(x); break; case 3:printf("1、 计算学生的平均分\n"); printf(”2、 根据学生的平均分高低,对学生的数据进行排序后输出\n"); printf(”3、 对学生单科成绩排序,输出学生姓名与该科成绩\n”); select(x); break; case 4:printf(”1、 第一科\n"); printf("2、 第二科\n"); printf(”3、 第三科\n"); select(x); break;; } } int main() { max=0; t=1; init(); loop:headprint(1); if (t!=0) goto loop; } 6
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服