用C语言或者C++编程实现“教学管理系统”!!!急啊,在线等候!

请各位大侠们帮忙,把源代码发给我,谢谢啦!(邮箱:[email protected])答案正确的追加最多分!小弟感激不尽!

要求如下:

1. 学生信息管理:添加、删除、维护、查询、浏览
2. 课程信息管理:添加、删除、维护、查询、浏览
3. 学生选课管理,法则自定
4. 学生成绩管理:录入、统计、排名
系统用户包括学生用户和管理员用户。用户使用系统前必须先登录,可以修改密码。所有信息保存在文件中。界面美观,操作有合理提示。

简易教学管理系统的设计与实现------半年学习的果子
用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语言 线性代数 离散数学 高等数学 密码学 平均成绩\n");
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("\n*******************************************************************************\n");
printf("\n 各课程成绩分布示意图\n");
printf("\n 0.返回主菜单 1.英语 2.C语言 3.线性代数 4.离散数学 5.高等数学 6.密码学.\n");
printf("\n*******************************************************************************\n");
while(1){
printf("输入课程编号(1-6):");
scanf("%d",&j);
switch(j){
case 1:case 2:case 3:case 4:case 5:case 6:{
printf("\t\t%10s 成绩分布示意图\n",course[j-1].kcname);
printf("优秀 :\t");for(i=0;i<M;i++)if(i<tongji[j-1].exc)printf("=");printf("\n");
printf("良好 :\t");for(i=0;i<M;i++)if(i<tongji[j-1].good)printf("=");printf("\n");
printf("中等 :\t");for(i=0;i<M;i++)if(i<tongji[j-1].mid)printf("=");printf("\n");
printf("及格 :\t");for(i=0;i<M;i++)if(i<tongji[j-1].pass)printf("=");printf("\n");
printf("不及格 :\t");for(i=0;i<M;i++)if(i<tongji[j-1].nopass)printf("=");printf("\n"); }break;
case 0: return;
default:printf(" 输入有误!\n");break;
}
}}
/* 统计不及格的学生并输出其信息 */
void st_tongji()
{
int i,j;
printf("\n学号 姓名 课程名称 学分 成绩\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;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]);
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("\n学号 姓名 英语 C语言 线性 离散 高数 密码学 平均分 名次\n");
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("\n%2d%9s",st[i].num,st[i].name);
for(j=0;j<N;j++)
printf("%8d",st[i].score[j]);
printf("%10.1f%4d\n",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 !\n");
exit(0);
}
fprintf(fp,"名次 学号 姓名 英语 C语言 线性代数 离散数学 高等数学 密码学 平均成绩\n");
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\n",st[i].ave);
} printf("文件创建成功,完整路径:D:\\MC0114.txt\n\n");
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 !\n");
exit(0);
}
fprintf(fp,"编号 课程名 平均分 标准差 优秀 良好 中等 及格 不及格\n");
for(i=0;i<N;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);
}
/*显示每名学生的成绩*/
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语言 线性代数 离散数学 高等数学 密码学 平均成绩\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<N;j++){fprintf(fp,"%8d",st[i-1].score[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();}
}
void main_chaxun()
{
int n;
printf("\n*******************************************************************************\n");
printf("\n 学生详细成绩查询系统\n");
printf("\n 1.输出指定学生的成绩 2.显示不及格名单 3.显示优秀生名单 4.返回主菜单.\n");
printf("\n*******************************************************************************\n");
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(" 输入有误!\n");break;
}}}
void main_menu()
{ int n;
printf("\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
printf("\n 简易教学管理系统\n");
printf("\n1.创建班级成绩单 2.创建各课程成绩统计 3.学生成绩查询 4.课程成绩分布查询 5.退出.\n");
printf("\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
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(" 输入有误!\n");break;
}}}
main()
{
read_dat1();
read_dat2();
jqave();
course_ave();
course_tongji();
main_menu();
}

两个数据文件的内容
(1)两个数据文件
/* Wl0114.txt文件内容 */
学号 姓名 英语 C语言 线性代数 离散数学 高等数学 密码学
1 刘** 91 92 93 94 95 96
2 *** 85 92 67 75 93 86
3 *** 88 76 91 92 93 77
4 杨新 65 94 54 91 88 66
5 拓拔野 93 85 33 54 94 90
6 梁萧 90 94 89 90 92 91
7 程冬 69 98 92 59 58 90
8 周风 92 89 86 94 59 92
9 田小玉 89 78 92 88 70 74
10 秦羽 89 69 77 74 68 90
11 花小霜 90 92 93 91 89 78
12 柳莺莺 91 85 59 88 65 92
13 公羊羽 89 68 91 89 87 88
14 项少龙 88 77 66 55 87 94
15 董帅民 89 92 77 91 65 67
16 高进 88 56 88 78 69 89
17 花清啸 89 65 82 94 84 89
18 王小宝 69 58 44 24 33 55
19 谷慎 92 91 90 93 94 91
20 陆见 85 89 84 81 83 92
21 余敏津 59 91 80 85 85 84
22 梁文靖 85 84 94 92 93 94
23 万归藏 91 94 85 83 81 61
24 鸣人 85 57 93 94 58 68
25 武大 85 81 87 86 80 72

/* WL01LC.txt文件内容 */
编号 课程名称 课程学分
1 英语 6.0
2 C语言 4.0
3 线性代数 5.0
4 离散数学 4.5
5 高等数学 3.0
6 密码学 2.0
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-07
我猜你应该做的是毕业设计吧,我记得大学时候做的是图书管理系统啊!!
但用是的java啊!用C写界面,没有JAVA快啊!!

你可以上www.csdn.net上找找,看看有没有你要的这个!
第2个回答  2008-11-07
要用MFC吗 自己不多写怎么能提高呢 顶楼上的
第3个回答  2008-11-07
我会写,但不会帮你做作业。
第4个回答  2008-11-13
要什么界面啊?
我资料里有联系方式
相似回答