用C语言或者C++编程实现“教学管理系统”!!!急啊...


简易教学管理系统的设计与实现------半年学习的果子用C-FREE写的。在论坛看了看,好像好多人都没学多少章节 ,但是学过的都比我们从课本上学的深呐, 哎,学校开的C只有半年的课就完了,以后怎么搞噢~~~~!!#define M 25#define N 6#include <stdio.h>#include <stdlib.h>#include <math.h>struct student{ int num; char name[20]; int score[N]; float ave;}st[M];struct kecheng{ int num; char kcname[20]; float xuefen; float ave; double bzc;}course[N];struct tongji{ int exc; int good; int mid; int pass; int nopass;}tongji[N];/* 读取数据文件 WL0114.txt */void read_dat1(){ int i,j; char str1[100]; FILE *fp; fp=fopen("D:\WL0114.txt","r"); if(fp==0){printf("cannot open");exit(0);}fgets(str1,10000,fp);for(i=0;i<M;i++){fscanf(fp,"%d%s",&st[i].num,st[i].name);for(j=0;j<N;j++)fscanf(fp,"%d",&st[i].score[j]);}fclose(fp);}/* 读取数据文件 WL01kc.txt */void read_dat2(){ FILE *fp; int k; char str2[100]; fp=fopen("D:\WL01kc.txt","r"); if(fp==0){printf("cannot open");exit(0);}fgets(str2,100,fp);for(k=0;k<N;k++)fscanf(fp,"%d%s%f",&course[k].num,course[k].kcname,&course[k].xuefen);fclose(fp);}/* 计算每名学生N门课的加权平均分*/void jqave(){ FILE *fp; /* ******自动创建CTJ0114.txt文件********/ fp=fopen("D:\CTJ0114.txt","w");fprintf(fp,"名次 学号 姓名 英语 C语言 线性代数 离散数学 高等数学 密码学 平均成绩
");fclose(fp);int i,j;float s=0,sum;for(i=0;i<N;i++) s+=course[i].xuefen;for(i=0;i<M;i++){sum=0;for(j=0;j<N;j++)sum+=st[i].score[j]*course[j].xuefen;st[i].ave=(int)(sum*10.0/s+0.5)/10.0;}}/* 计算每门课的平均分和标准差 */void course_ave(){int i,j;float sum;for(i=0;i<N;i++){ sum=0;for(j=0;j<M;j++)sum+=st[j].score[i];course[i].ave=sum/M; }for(i=0;i<N;i++){ sum=0; for(j=0;j<M;j++) sum+=(st[j].score[i]-course[i].ave)*(st[j].score[i]-course[i].ave); course[i].bzc=sqrt(sum/M);}}/* 统计每门课的优 良 中 及格与不及格的情况 */void course_tongji(){int i,j;for(i=0;i<M;i++){for(j=0;j<N;j++){ if(st[i].score[j]>=90) tongji[j].exc+=1;else if(st[i].score[j]>=80)tongji[j].good+=1;else if(st[i].score[j]>=70)tongji[j].mid+=1;else if(st[i].score[j]>60)tongji[j].pass+=1;else tongji[j].nopass+=1;}}}/* 利用函数course_tongji()的统计结果得到以下各课程成绩分布示意图 */void course_tjpic(){int i,j; printf("
*******************************************************************************
"); printf("
各课程成绩分布示意图
"); printf("
0.返回主菜单 1.英语 2.C语言 3.线性代数 4.离散数学 5.高等数学 6.密码学.
"); printf("
*******************************************************************************
");while(1){printf("输入课程编号(1-6):");scanf("%d",&j);switch(j){ case 1:case 2:case 3:case 4:case 5:case 6:{printf(" %10s 成绩分布示意图
",course[j-1].kcname);printf("优秀 : ");for(i=0;i<M;i++)if(i<tongji[j-1].exc)printf("=");printf("
");printf("良好 : ");for(i=0;i<M;i++)if(i<tongji[j-1].good)printf("=");printf("
");printf("中等 : ");for(i=0;i<M;i++)if(i<tongji[j-1].mid)printf("=");printf("
");printf("及格 : ");for(i=0;i<M;i++)if(i<tongji[j-1].pass)printf("=");printf("
");printf("不及格 : ");for(i=0;i<M;i++)if(i<tongji[j-1].nopass)printf("=");printf("
"); }break;case 0: return;default:printf(" 输入有误!
");break;}}}/* 统计不及格的学生并输出其信息 */void st_tongji(){int i,j;printf("
学号 姓名 课程名称 学分 成绩
");for(i=0;i<M;i++){for(j=0;j<N;j++){if(st[i].score[j]<60)printf("
%2d%10s%15s%10.1f%10d
",st[i].num,st[i].name,course[j].kcname,course[j].xuefen,st[i].score[j]);else continue;}}}/* 利用函数jqave()的结果对学生进行排名 */int paim(float t){ int i,n=0; for(i=0;i<M;i++) { if(t<st[i].ave) n++; else continue; } return n+1;}/* 统计优秀学生,并显示其信息 */void st_tongji2(){int i,j;printf("
学号 姓名 英语 C语言 线性 离散 高数 密码学 平均分 名次
");for(i=0;i<M;i++){ for(j=0;j<N;j++){ if(st[i].ave>=92||paim(st[i].ave)<=5||(st[i].ave>=88&&st[i].score[j]>=99)) { printf("
%2d%9s",st[i].num,st[i].name); for(j=0;j<N;j++) printf("%8d",st[i].score[j]); printf("%10.1f%4d
",st[i].ave,paim(st[i].ave)); } else continue; } }}/* 将排名后的班级成绩单写入到 MC0114.txt */void Write_cjd(){ FILE *fp; int i,j;fp=fopen("D:\MC0114.txt","w"); if(fp==0){printf("Faile to build a new file !
");exit(0);}fprintf(fp,"名次 学号 姓名 英语 C语言 线性代数 离散数学 高等数学 密码学 平均成绩
");for(i=0;i<M;i++){ fprintf(fp,"%3d%4d%10s",paim(st[i].ave),st[i].num,st[i].name); for(j=0;j<N;j++) fprintf(fp,"%10d",st[i].score[j]); fprintf(fp,"%10.1f
",st[i].ave);} printf("文件创建成功,完整路径:D:\MC0114.txt
");fclose(fp);}/* 将统计每门课的优 良 中 及格与不及格的情况写入到 MC0114.txt */void Write_course(){ FILE *fp; int i,j; float t;fp=fopen("D:\KC0114.txt","w"); if(fp==0){printf("Faile to build a new file !
");exit(0);}fprintf(fp,"编号 课程名 平均分 标准差 优秀 良好 中等 及格 不及格
");for(i=0;i<N;i++)fprintf(fp,"%d%10s%10.1f%10.1f%10d%10d%10d%10d%10d
",course[i].num,course[i].kcname,course[i].ave,course[i].bzc,tongji[i].exc,tongji[i].good,tongji[i].mid,tongji[i].pass,tongji[i].nopass);printf("文件创建成功,完整路径:D:\KC0114.txt
");fclose(fp);}/*显示每名学生的成绩*/void st_cjd(){FILE *fp; int i,j;fp=fopen("D:\CTJ0114.txt","a");printf("输入学生的学号:");scanf("%d",&i);if(i>=0&&i<=M){printf("名次 学号 姓名 英语 C语言 线性代数 离散数学 高等数学 密码学 平均成绩
");fprintf(fp,"%2d%4d%10s",paim(st[i-1].ave),st[i-1].num,st[i-1].name);printf("%3d%4d%10s",paim(st[i-1].ave),st[i-1].num,st[i-1].name);for(j=0;j<N;j++){fprintf(fp,"%8d",st[i-1].score[j]);printf("%8d",st[i-1].score[j]);}fprintf(fp,"%10.1f
",st[i-1].ave);printf("%10.1f
",st[i-1].ave); fclose(fp);printf("
此学生成绩已经保存到了:D:\CTJ0114.txt
");}else {printf("无效学号 !
");st_cjd();}}void main_chaxun(){ int n; printf("
*******************************************************************************
"); printf("
学生详细成绩查询系统
"); printf("
1.输出指定学生的成绩 2.显示不及格名单 3.显示优秀生名单 4.返回主菜单.
"); printf("
*******************************************************************************
");while(1){ printf("执行查询命令:");scanf("%d",&n); switch(n){ case 1:st_cjd();break; case 2:st_tongji();break; case 3:st_tongji2();break; case 4:return; default:printf(" 输入有误!
");break;}}}void main_menu(){ int n; printf("
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
"); printf("
简易教学管理系统
"); printf("
1.创建班级成绩单 2.创建各课程成绩统计 3.学生成绩查询 4.课程成绩分布查询 5.退出.
"); printf("
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
"); while(1){ printf(" 执行命令:");scanf("%d",&n); switch(n){ case 1:Write_cjd();break; case 2:Write_course();break; case 3:main_chaxun();main_menu(); case 4:course_tjpic();main_menu(); case 5:exit(0); default:printf(" 输入有误!
");break;}}}main(){read_dat1();read_dat2();jqave();course_ave();course_tongji();main_menu();}两个数据文件的内容(1)两个数据文件 /* Wl0114.txt文件内容 */ 学号 姓名 英语 C语言 线性代数 离散数学 高等数学 密码学1 刘** 91 92 93 94 95 962 *** 85 92 67 75 93 86 3 *** 88 76 91 92 93 774 杨新 65 94 54 91 88 66 5 拓拔野 93 85 33 54 94 90 6 梁萧 90 94 89 90 92 917 程冬 69 98 92 59 58 908 周风 92 89 86 94 59 929 田小玉 89 78 92 88 70 7410 秦羽 89 69 77 74 68 90 11 花小霜 90 92 93 91 89 7812 柳莺莺 91 85 59 88 65 9213 公羊羽 89 68 91 89 87 8814 项少龙 88 77 66 55 87 9415 董帅民 89 92 77 91 65 6716 高进 88 56 88 78 69 8917 花清啸 89 65 82 94 84 8918 王小宝 69 58 44 24 33 5519 谷慎 92 91 90 93 94 91 20 陆见 85 89 84 81 83 9221 余敏津 59 91 80 85 85 8422 梁文靖 85 84 94 92 93 9423 万归藏 91 94 85 83 81 61 24 鸣人 85 57 93 94 58 68 25 武大 85 81 87 86 80 72/* WL01LC.txt文件内容 */编号 课程名称 课程学分1 英语 6.02 C语言 4.0 3 线性代数 5.04 离散数学 4.55 高等数学 3.06 密码学 2.0
我猜你应该做的是毕业设计吧,我记得大学时候做的是图书管理系统啊!!但用是的java啊!用C写界面,没有JAVA快啊!!你可以上www.csdn.net上找找,看看有没有你要的这个!

文章标签:

本文链接:https://www.u1e.cn/baike/a/2ebf3450b8e64f0fff1f4d43 [复制]

猜你喜欢

歇后语大全

还没有人回应过