用C语言或者C++编程实现“教学管理系统”!!!急啊,在线等候!
简易教学管理系统的设计与实现------半年学习的果子
用C-FREE写的。在论坛看了看,好像好多人都没学多少章节,但是学过的都比我们从课本上学的深呐,
哎,学校开的C只有半年的课就完了,以后怎么搞噢~~~~!!
#defineM25
#defineN6
#include
#include
#include
structstudent
intnum;
charname[20];
intscore[N];
floatave;
}st[M];
structkecheng
intnum;
charkcname[20];
floatxuefen;
floatave;
doublebzc;
}course[N];
structtongji
intexc;
intgood;
intmid;
intpass;
intnopass;
}tongji[N];
/*读取数据文件WL0114.txt*/
voidread_dat1()
inti,j;
charstr1[100];
FILE*fp;
fp=fopen("D:\\WL0114.txt","r");
if(fp==0)
printf("cannotopen");
exit(0);}
fgets(str1,10000,fp);
for(i=0;i
fscanf(fp,"%d%s",&st[i].num,st[i].name);
for(j=0;j
fscanf(fp,"%d",&st[i].score[j]);
fclose(fp);
/*读取数据文件WL01kc.txt*/
voidread_dat2()
FILE*fp;
intk;
charstr2[100];
fp=fopen("D:\\WL01kc.txt","r");
if(fp==0)
printf("cannotopen");
exit(0);
fgets(str2,100,fp);
for(k=0;k
fscanf(fp,"%d%s%f",&course[k].num,course[k].kcname,&course[k].xuefen);
fclose(fp);
/*计算每名学生N门课的加权平均分*/
voidjqave()
{FILE*fp;/*******自动创建CTJ0114.txt文件********/
fp=fopen("D:\\CTJ0114.txt","w");
fprintf(fp,"名次学号姓名英语C语言线性代数离散数学高等数学密码学平均成绩\n");
fclose(fp);
inti,j;
floats=0,sum;
for(i=0;i
s+=course[i].xuefen;
for(i=0;i
sum=0;
for(j=0;j
sum+=st[i].score[j]*course[j].xuefen;
st[i].ave=(int)(sum*10.0/s+0.5)/10.0;
/*计算每门课的平均分和标准差*/
voidcourse_ave()
inti,j;
floatsum;
for(i=0;i
{sum=0;
for(j=0;j
sum+=st[j].score[i];
course[i].ave=sum/M;}
for(i=0;i
sum=0;
for(j=0;j
sum+=(st[j].score[i]-course[i].ave)*(st[j].score[i]-course[i].ave);
course[i].bzc=sqrt(sum/M);
/*统计每门课的优良中及格与不及格的情况*/
voidcourse_tongji()
inti,j;
for(i=0;i
for(j=0;j
if(st[i].score[j]>=90)tongji[j].exc+=1;
elseif(st[i].score[j]>=80)tongji[j].good+=1;
elseif(st[i].score[j]>=70)tongji[j].mid+=1;
elseif(st[i].score[j]>60)tongji[j].pass+=1;
elsetongji[j].nopass+=1;
/*利用函数course_tongji()的统计结果得到以下各课程成绩分布示意图*/
voidcourse_tjpic()
inti,j;
printf("\n*******************************************************************************\n");
printf("\n各课程成绩分布示意图\n");
printf("\n0.返回主菜单1.英语2.C语言3.线性代数4.离散数学5.高等数学6.密码学.\n");
printf("\n*******************************************************************************\n");
while(1){
printf("输入课程编号(1-6):");
scanf("%d",&j);
switch(j){
case1:case2:case3:case4:case5:case6:{
printf("\t\t%10s成绩分布示意图\n",course[j-1].kcname);
printf("优秀:\t");for(i=0;i
printf("良好:\t");for(i=0;i
printf("中等:\t");for(i=0;i
printf("及格:\t");for(i=0;i
printf("不及格:\t");for(i=0;i
case0:return;
default:printf("输入有误!\n");break;
/*统计不及格的学生并输出其信息*/
voidst_tongji()
inti,j;
printf("\n学号姓名课程名称学分成绩\n");
for(i=0;i
for(j=0;j
if(st[i].score[j]<60)
printf("\n%2d%10s%15s%10.1f%10d\n",st[i].num,st[i].name,course[j].kcname,course[j].xuefen,st[i].score[j]);
elsecontinue;
/*利用函数jqave()的结果对学生进行排名*/
intpaim(floatt)
inti,n=0;
for(i=0;i
if(t
elsecontinue;
}returnn+1;
/*统计优秀学生,并显示其信息*/
voidst_tongji2()
inti,j;
printf("\n学号姓名英语C语言线性离散高数密码学平均分名次\n");
for(i=0;i
for(j=0;j
if(st[i].ave>=92||paim(st[i].ave)<=5||(st[i].ave>=88&&st[i].score[j]>=99))
printf("\n%2d%9s",st[i].num,st[i].name);
for(j=0;j
printf("%8d",st[i].score[j]);
printf("%10.1f%4d\n",st[i].ave,paim(st[i].ave));
elsecontinue;
/*将排名后的班级成绩单写入到MC0114.txt*/
voidWrite_cjd()
FILE*fp;
inti,j;
fp=fopen("D:\\MC0114.txt","w");
if(fp==0)
printf("Failetobuildanewfile!\n");
exit(0);
fprintf(fp,"名次学号姓名英语C语言线性代数离散数学高等数学密码学平均成绩\n");
for(i=0;i
fprintf(fp,"%3d%4d%10s",paim(st[i].ave),st[i].num,st[i].name);
for(j=0;j
fprintf(fp,"%10d",st[i].score[j]);
fprintf(fp,"%10.1f\n",st[i].ave);
}printf("文件创建成功,完整路径:D:\\MC0114.txt\n\n");
fclose(fp);
/*将统计每门课的优良中及格与不及格的情况写入到MC0114.txt*/
voidWrite_course()
FILE*fp;
inti,j;floatt;
fp=fopen("D:\\KC0114.txt","w");
if(fp==0)
printf("Failetobuildanewfile!\n");
exit(0);
fprintf(fp,"编号课程名平均分标准差优秀良好中等及格不及格\n");
for(i=0;i
fprintf(fp,"%d%10s%10.1f%10.1f%10d%10d%10d%10d%10d\n",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\n\n");
fclose(fp);
/*显示每名学生的成绩*/
voidst_cjd()
FILE*fp;
inti,j;
fp=fopen("D:\\CTJ0114.txt","a");
printf("输入学生的学号:");
scanf("%d",&i);
if(i>=0&&i<=M)
{printf("名次学号姓名英语C语言线性代数离散数学高等数学密码学平均成绩\n");
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
printf("%8d",st[i-1].score[j]);}
fprintf(fp,"%10.1f\n",st[i-1].ave);
printf("%10.1f\n",st[i-1].ave);fclose(fp);
printf("\n此学生成绩已经保存到了:D:\\CTJ0114.txt\n\n");
else{printf("无效学号!\n");st_cjd();}
voidmain_chaxun()
intn;
printf("\n*******************************************************************************\n");
printf("\n学生详细成绩查询系统\n");
printf("\n1.输出指定学生的成绩2.显示不及格名单3.显示优秀生名单4.返回主菜单.\n");
printf("\n*******************************************************************************\n");
while(1){printf("执行查询命令:");
scanf("%d",&n);
switch(n)
{case1:st_cjd();break;
case2:st_tongji();break;
case3:st_tongji2();break;
case4:return;
default:printf("输入有误!\n");break;
voidmain_menu()
{intn;
printf("\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
printf("\n简易教学管理系统\n");
printf("\n1.创建班级成绩单2.创建各课程成绩统计3.学生成绩查询4.课程成绩分布查询5.退出.\n");
printf("\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
while(1){printf("执行命令:");
scanf("%d",&n);
switch(n)
{case1:Write_cjd();break;
case2:Write_course();break;
case3:main_chaxun();main_menu();
case4:course_tjpic();main_menu();
case5:exit(0);
default:printf("输入有误!\n");break;
main()
read_dat1();
read_dat2();
jqave();
course_ave();
course_tongji();
main_menu();
两个数据文件的内容
(1)两个数据文件
/*Wl0114.txt文件内容*/
学号姓名英语C语言线性代数离散数学高等数学密码学
1刘**919293949596
2***859267759386
3***887691929377
4杨新659454918866
5拓拔野938533549490
6梁萧909489909291
7程冬699892595890
8周风928986945992
9田小玉897892887074
10秦羽896977746890
11花小霜909293918978
12柳莺莺918559886592
13公羊羽896891898788
14项少龙887766558794
15董帅民899277916567
16高进885688786989
17花清啸896582948489
18王小宝695844243355
19谷慎929190939491
20陆见858984818392
21余敏津599180858584
22梁文靖858494929394
23万归藏919485838161
24鸣人855793945868
25武大858187868072
/*WL01LC.txt文件内容*/
编号课程名称课程学分
1英语6.0
2C语言4.0
3线性代数5.0
4离散数学4.5
5高等数学3.0
6密码学2.0
c十十编程要学多久?
C十十编程要学多久,具体看有没有计算机语言基础,如果有,大概一个月可学懂,如果没有则可能要花半年的时间。