学生成绩管理系统完参考模板_第1页
学生成绩管理系统完参考模板_第2页
学生成绩管理系统完参考模板_第3页
学生成绩管理系统完参考模板_第4页
学生成绩管理系统完参考模板_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生成绩管理系统源代码/* 用Visual C+6.0来运行 */#include<stdio.h> /*引用库函数*/ #include<string.h> #include <windows.h> #define N 1000 typedef struct /*定义结构体数组*/ char num50; /*学号*/ char name50; /*姓名*/ float chinese; /*语文成绩*/float math; /* 数学成绩*/float english; /*英语成绩*/Student; Student studN; /*结构体数组变量

2、*/ int menu() /*菜单函数*/ char c; do system("cls"); /*运行前清屏*/ printf("nnnttt09信管3班王晓媚3209005759n"); /* 菜单界面*/ printf("ttt*n"); printf("tttt 欢迎使用n"); printf("tttt n"); printf("ttt 学生成绩管理系统n"); printf("t*n"); printf("tt | 1.输入信息 *

3、 |n"); printf("tt| * * * * * * * 2. 浏览记录 |n"); printf("t | 3.学号排序 * * * * * * * |n"); printf("t | * * * * * * * 4.添加信息 |n"); printf("t | 5.计算成绩 * * * * * * * |n"); printf("t | * * * * * * * 6.挂科信息 |n"); printf("t | 7.查询信息 * * * * * * * |n&q

4、uot;); printf("t | * * * * * * * 8. 打开文件 |n"2 / 15); printf("t | 9.保存文件 * * * * * * * |n"); printf("t| * 0.退出系统 |n"); printf("t*n"); printf("ttt请输入序号09: "); c=getchar(); /*读入选择*/ while(c<'0'|c>'9'); return(c-'0'); /*返回选择

5、*/ int Input(Student stud,int n) /*输入若干条记录*/ int i=0,j; char sign,x10; /*x10为清除多余的数据所用*/ while(sign!='n'&&sign!='N') /*判断*/ repeat1: printf("tt请输入学生证号:"); /*交互输入*/ scanf("tt%s",studn+i.num); for(j=0;j<n+i;j+) if(strcmp(studn+i.num,studj.num)=0) /*判断是否输入

6、重复学生学号*/ printf("ttt学生学号已存在,请重新输入!n"); goto repeat1;repeat2: printf("tt请输入学生姓名:"); scanf("tt%s",studn+); for(j=0;j<n+i;j+) if(strcmp(studn+,)=0) /*判断是否输入重复学生姓名*/ printf("ttt学生姓名已存在,请重新输入!n"); goto repeat2; repeat3: printf("tt请输入语文

7、成绩(0100):"); scanf("ttt%g",&studn+i.chinese); if(studn+i.chinese<0|studn+i.chinese>100 ) /*输入不合理成绩的错误提示*/ printf("ttt输入错误,请重新输入!n"); goto repeat3; /*重新输入该科成绩*/ repeat4:printf("tt请输入数学成绩(0100):"); scanf("ttt%g",&studn+i.math); if(studn+i.math

8、<0|studn+i.math>100 ) printf("ttt输入错误,请重新输入!n"); goto repeat4; repeat5:printf("tt请输入英语成绩(0100):"); scanf("ttt%g",&studn+i.english); if(studn+i.english<0|studn+i.english>100 ) printf("ttt输入错误,请重新输入!n"); goto repeat5; gets(x); /*清除多余的输入*/ printf(

9、"tt是否继续输入记录?(Y/N)"); scanf("tt%c",&sign); /*输入判断*/ i+; return(n+i); void Display(Student stud,int n) /*浏览所有记录*/ int i; printf("t-n"); /*格式头*/ printf("t学生证号 姓名 语文 数学 英语 n"); printf("t-n");for(i=1;i<n+1;i+) printf("t%-15s%-15s%-15g%-15g%-5g

10、n",studi-1.num,,studi-1.chinese,studi-1.math,studi-1.english); if(i>1&&i%10=0) /*每十个暂停*/ printf("tt-n"); /*格式*/ printf("ttt"); system("pause"); printf("tt-n"); printf("ttt"); system("pause"); void Sort(Student st

11、ud,int n) /*按学号排序*/ int i,j;float *p,*q,s,*m,*r,k,*a,*b,c;char t50; printf("tt -按学号排序(学号从小到大)-n");for(i=0;i<n-1;i+) /* 冒泡法排序*/for(j=0;j<n-1-i;j+) if(strcmp(studj.num,studj+1.num)>0) strcpy(t,studj+1.num); strcpy(studj+1.num,studj.num); strcpy(studj.num,t); strcpy(t,studj+1.name);

12、strcpy(studj+1.name,); strcpy(,t); p=&studj+1.chinese; q=&studj.chinese; s=*p; *p=*q; *q=s;m=&studj+1.math; r=&studj.math; k=*m; *m=*r; *r=k; a=&studj+1.english; b=&studj.english; c=*a; *a=*b; *b=c; int add_a_record(Student stud,int n) /* 添加一条信息*/char x10;

13、 int j; repeat1: printf("tt请输入学生证号:"); /*交互输入*/ scanf("tt%s",studn.num); for(j=0;j<n;j+) if(strcmp(studn.num,studj.num)=0) /*判断是否添加重复学生学号*/ printf("ttt添加的学生学号已存在,请重新输入!n"); goto repeat1; repeat2: printf("tt请输入学生姓名:"); scanf("tt%s",); for

14、(j=0;j<n;j+) if(strcmp(,)=0) /*判断是否添加重复学生姓名*/ printf("ttt添加的学生姓名已存在,请重新输入!n"); goto repeat2; repeat3: printf("tt请输入语文成绩(0100):"); scanf("ttt%g",&studn.chinese); if(studn.chinese<0|studn.chinese>100 ) printf("ttt输入错误,请重新输入!n");

15、/*输入不合理成绩的错误提示*/ goto repeat3; /*重新输入该科成绩*/ repeat4:printf("tt请输入数学成绩(0100):"); scanf("ttt%g",&studn.math); if(studn.math<0|studn.math>100 ) printf("ttt输入错误,请重新输入!n"); /*输入不合理成绩的错误提示*/ goto repeat4; repeat5:printf("tt请输入英语成绩(0100):"); scanf("ttt

16、%g",&studn.english); if(studn.english<0|studn.english>100 ) printf("ttt输入错误,请重新输入!n"); /*输入不合理成绩的错误提示*/ goto repeat5; gets(x); n+; printf("ttt添加成功!n"); return(n); void search_a_record(Student stud,int n) /* 查询学生信息*/ char s20; int i=0,item;printf("-n");pri

17、ntf("-1.按学号查询-n");printf("-2.按姓名查询-n");printf("-n");printf("请选择子菜单编号:");scanf("%d",&item);if(item=1)printf("ttt请输入要查询的学生的学号:"); /*按学号查询*/scanf("ttt%s",s); while(strcmp(studi.num,s)!=0&&i<n) i+; if(i=n) printf("

18、ttt无法找到该信息!n"); return; printf("t-n"); printf("t学生证号 姓名 语文 数学 英语 n"); printf("t-n"); printf("t%-15s%-15s%-15g%-15g%-5gn",studi.num,,studi.chinese,studi.math,studi.english); if(item=2)printf("ttt请输入要查询的学生的姓名:"); /*按姓名查询*/scanf("ttt

19、%s",s); while(strcmp(,s)!=0&&i<n) i+; if(i=n) printf("ttt无法找到该信息!n"); return; printf("t-n"); printf("t学生证号 姓名 语文 数学 英语 n"); printf("t-n"); printf("t%-15s%-15s%-15g%-15g%-5gn",studi.num,,studi.chinese,studi.math,stu

20、di.english);void guake(Student stud,int n) /*查询挂科情况*/ int i=0; for(i=0;i<n;i+) if(studi.chinese<60) printf("t学生证号:%-15s姓名:%-15s语文分数:%-15gnn",studi.num,,studi.chinese); if(studi.math<60) printf("t学生证号:%-15s姓名:%-15s数学分数:%-15gnn",studi.num,,studi.math);

21、if(studi.english<60) printf("t学生证号:%-15s姓名:%-15s数学分数:%-15gnn",studi.num,,studi.english); void calculate(Student stud,int n) /*计算平均分和总分*/ int i,item,bN,a; double averN,aver1,aver2,aver3,sumN,sum1,sum2,sum3; printf("-n");printf("-1.每个学生的总分及平均分-n");printf(&quo

22、t;-2.每门课程的总分及平均分-n");printf("-n");printf("请选择子菜单编号:"); scanf("%d",&item);if(item=1) printf("t-n"); printf("t学生证号 姓名 平均分 总分 五分制成绩n"); printf("t-n"); for(i=0;i<n;i+) sumi=studi.chinese+studi.math+studi.english; /*计算每个学生的总分 */ aver

23、i=1.0*sumi/3; /*计算每个学生的平均分*/ a=averi/10; switch(a) /*计算五分制成绩*/ case 1: case 2: case 3: case 4: case 5: bi=1;break; case 6: bi=2;break; case 7: bi=3;break; case 8: bi=4;break; case 9: case 10: bi=5;break; printf("t%-15s%-15s%-15g%-15g%-12dn",studi.num,,averi,sumi,bi); if(item=2) f

24、or(i=0;i<n;i+) sum1+=studi.chinese; /*计算每门课程的总分*/ sum2+=studi.math; sum3+=studi.english; aver1=1.0*sum1/n; /*计算每门课程的平均分*/ aver2=1.0*sum2/n; aver3=1.0*sum3/n; printf("nn"); printf("tt语文总分: %-15g语文平均分: %gnn",sum1,aver1); printf("tt数学总分: %-15g数学平均分: %gnn",sum2,aver2); p

25、rintf("tt英语总分: %-15g英语平均分: %gnn",sum2,aver3); int open_the_Text(Student stud,int n) /*打开文件*/ int i=0,num; FILE *fp; char filename20; printf("ttt请输入文件名:"); scanf("ttt%s",filename); if(fp=fopen(filename,"rb")=NULL) /* 打开文件失败*/ printf("nttt无法打开文件!n"); p

26、rintf("ttt"); system("pause"); return(n); fscanf(fp,"%d",&num); while(i<num) /* 打开文件成功*/ fscanf(fp,"%s%s%g%g%g",studn+i.num,studn+,&studn+i.chinese,&studn+i.math,&studn+i.english); i+; n+=num; fclose(fp); printf("nttt成功打开文件n"

27、); printf("ttt"); system("pause"); return(n); void WritetoText(Student stud,int n) /*保存文件*/ int i=0; FILE *fp; char filename20; printf("ttt请输入文件名:"); scanf("ttt%s",filename); if(fp=fopen(filename,"w")=NULL) /* 保存文件失败*/ printf("nttt无法保存文件n")

28、; system("pause"); return; fprintf(fp,"%dn",n); while(i<n) /* 保存文件成功*/ fprintf(fp,"%-15s%-15s%-15g%-15g%-5gn",studi.num,,studi.chinese,studi.math,studi.english); i+; fclose(fp);printf("nttt成功保存信息!n"); void main() /*主函数*/ int n=0; printf("nnnt

29、t n"); /* 欢迎界面*/ printf("tt n"); printf("tt n "); printf("tt n"); printf("tt n"); printf("tt n"); printf("tt n "); printf("tt n"); printf("tt n"); printf("tt n"); printf(" n"); printf(" &quo

30、t;); printf(" "); printf(" n"); printf(" n"); printf(" n"); printf(" n"); printf(" n"); printf("tt * 欢迎进入!*nn"); printf("tt * 设计者:王晓媚 *nnn"); Sleep(2000); /*停顿两秒后自动跳转到菜单界面*/ system("cls"); printf("nnntttt希

31、望您使用愉快哦!nn"); printf("ttt n"); printf("ttt n"); printf("ttt n"); printf("ttt n "); printf("ttt 请老师多多 n"); printf("ttt 指教指教哦n"); printf("ttt n"); printf("ttt n "); printf("ttt n "); printf("ttt n "

32、;); system("pause"); system("cls"); for(;) switch(menu() /*选择判断*/ case 1: system("cls");printf("n");printf("tt-输入学生信息-nn");/*输入若干条记录*/ n=Input(stud,n); break; case 2:system("cls"); printf("n");printf("tt-浏览所有信息-nn");/*显示

33、所有输入记录*/ Display(stud,n); break; case 3:system("cls"); printf("tt-学生排序信息-nn"); /*按学号排序*/Sort(stud,n); Display(stud,n); printf("ttt"); break;case 4:system("cls"); printf("n"); printf("tt-添加学生信息-nn");/*添加学生信息*/n=add_a_record(stud,n); printf("ttt"); system("pause"); break; case 5:system("cls"); printf("n"); printf("tt-计算平均分及总分-nn"); /*计算平均分及总分*/calculate(stud,n); printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论