新生求大神解救,帮帮忙
帮忙设计一下,非常感激学生成绩管理系统设计
学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。
主要功能:
(1) 能按学期、按班级完成对学生成绩的录入、修改
(2) 能按班级统计学生的成绩,求学生的总分及平均分
(3) 能查询学生成绩,不及格科目及学生名单
(4) 能按班级输出学生的成绩单
要求:使用二进制文件方式存储数据,系统以菜单方式工作
#include<stdio.h> #include<stdlib.h> #include<string.h> #define M 3 typedef struct grade{ float chinese; float math; float english; float computer; }grade; typedef struct student{ long sno; char sname[20]; int sclass; int term; grade cs; }student; void input(student s[],int N){ int i; printf("输入%d个学生的成绩.\n",N); for(i=0;i<N;i++){ printf("\n输入第%d个学生的\n",i+1); printf("学号:"); scanf("%ld",&s[i].sno); getchar(); printf("姓名:"); gets(s[i].sname); printf("班别:"); scanf("%d",&s[i].sclass); printf("学期:"); scanf("%d",&s[i].term); printf("成绩:\n"); printf("\t语文:");scanf("%f",&s[i].cs.chinese); printf("\t数学:");scanf("%f",&s[i].cs.math); printf("\t英语:");scanf("%f",&s[i].cs.english); printf("\t计算机:");scanf("%f",&s[i].); } } void output(student s[],int N){ int i; printf("\n%d个学生的基本信息为\n",N); for(i=0;i<N;i++){ printf("%-10ld",s[i].sno); printf("%-16s",s[i].sname); printf("%-4d",s[i].sclass); printf("%-4d",s[i].term); printf("%-6.0f",s[i].cs.chinese); printf("%-6.0f",s[i].cs.math); printf("%-6.0f",s[i].cs.english); printf("%-6.0f",s[i].); printf("\n"); } } void snofind(student s[],int N){ int i; long sno1; printf("请输入您要查找的学号:"); scanf("%ld",&sno1); for(i=0;i<N;i++){ if(s[i].sno==sno1) break; } if(i<N){ printf("学号为%ld的学生的基本信息为:\n",sno1); printf("%-10ld",s[i].sno); printf("%-16s",s[i].sname); printf("%-4d",s[i].sclass); printf("%-4d",s[i].term); printf("%-6.0f",s[i].cs.chinese); printf("%-6.0f",s[i].cs.math); printf("%-6.0f",s[i].cs.english); printf("%-6.0f",s[i].); printf("\n"); } else printf("你输入的学号不存在!\n"); } void snamefind(student s[],int N){ int i; char sname1[20]; printf("请输入您要查找的姓名:"); getchar(); gets(sname1); for(i=0;i<N;i++){ if(strcmp(s[i].sname,sname1)==0) break; } if(i<N){ printf("姓名为%s的学生的基本信息为:\n",sname1); printf("%-10ld",s[i].sno); printf("%-16s",s[i].sname); printf("%-4d",s[i].sclass); printf("%-4d",s[i].term); printf("%-6.0f",s[i].cs.chinese); printf("%-6.0f",s[i].cs.math); printf("%-6.0f",s[i].cs.english); printf("%-6.0f",s[i].); printf("\n"); } else printf("你输入的姓名不存在!\n"); } void total(student s[],int N){ int i; printf("\n不及格(成绩<60)的学生为:\n"); for(i=0;i<N;i++){ if(s[i].cs.chinese<60){ printf("%-10ld",s[i].sno); printf("%-16s",s[i].sname); printf("%-4d",s[i].sclass); printf("%-4d",s[i].term); printf("%-6.0f",s[i].cs.chinese); printf("\n"); } if(s[i].cs.math<60){ printf("%-10ld",s[i].sno); printf("%-16s",s[i].sname); printf("%-4d",s[i].sclass); printf("%-4d",s[i].term); printf("%-6.0f",s[i].cs.math); printf("\n"); } if(s[i].cs.english<60){ printf("%-10ld",s[i].sno); printf("%-16s",s[i].sname); printf("%-4d",s[i].sclass); printf("%-4d",s[i].term); printf("%-6.0f",s[i].cs.english); printf("\n"); } if(s[i].60){ printf("%-10ld",s[i].sno); printf("%-16s",s[i].sname); printf("%-4d",s[i].sclass); printf("%-4d",s[i].term); printf("%-6.0f",s[i].); printf("\n"); } } } void maininterface(){ printf("\t\t**********************************************************\n"); printf("\t\t* 欢迎使用成绩管理系统 \n"); printf("\t\t*1.输入 2.输出 \n"); printf("\t\t*3.查找 4.统计 \n"); printf("\t\t*0.退出 \n"); printf("\t\t**********************************************************\n"); printf("\t\t请输入0--4:"); } void findinterface(){ printf("\t\t************************************************************\n"); printf("\t\t* 欢迎使用查找操作 \n"); printf("\t\t*1.按学号查找 \n"); printf("\t\t*2.按姓名查找 \n"); printf("\t\t*0.返回上一级 \n"); printf("\t\t************************************************************\n"); printf("\t\t请输入0--2"); } void findchoice(student s[],int N){ int m; while(1){ scanf("%d",&m); switch(m){ case 1: snofind(s,N); findinterface(); break; case 2: snamefind(s,N); findinterface(); break; case 0: break; } if(m==0) break; } maininterface(); } void choice(student s[],int N){ int m; while(1){ scanf("%d",&m); switch(m){ case 1: input(s,N); maininterface(); break; case 2: output(s,N); maininterface(); break; case 3: findinterface(); findchoice(s,N); break; case 4: total(s,N); maininterface(); break; case 0: exit(0); } } } int main(int argc,char *argv[]){ student s[M]; int i,j; maininterface(); choice(s,M); }