#include #include #include struct student { int num; char name[15];
//定义学生结构体,st数组。
int score[5]; float jqave; int rank; }st[27];
struct kecheng { int num; char kcname[20];
//定义课程结构体,course数组. float xuefen; float biaozhuncha; int youxiu; int lianghao; int zhongdeng; int jige; int bujige;
}course[5];
void readdata1() {
int i,j;
char str1[100];
FILE *f1;
f1=fopen(\"c:\\xinji110213.txt\",\"r\");
fgets(str1,100,f1); // printf(\"%-s\",str1);
for(i=0;i
{
fscanf(f1,\"%d%s\",&st[i].num,st[i].name);
// printf(\"%-4d%-10s\",st[i].num,st[i].name);
for(j=0;j
{
fscanf(f1,\"%d\",&st[i].score[j]); // printf(\"%-9d\",st[i].score[j]); }
// printf(\"\\n\"); }
fclose(f1); }
void readdata2() {
int k;
char str2[100];
FILE *f2;
f2=fopen(\"c:\\xj02kc.txt\",\"r\");
fgets(str2,100,f2); // puts(str2);
for(k=0;k
{
fscanf(f2,\"%d%s%f\",&course[k].num,course[k].kcname,&course[k].xuefen);
// printf(\"%-8d%-10s%2.1f\\n\",course[k].num,course[k].kcname,course[k].xuefen);
}
fclose(f2); } void jqave() { int i,j; float s=0,sum=0; for(i=0;i
{
for(j=0;j
{
s+=course[j].xuefen;
sum+=st[i].score[j]*course[j].xuefen ;
}
st[i].jqave =sum/s;
} }
void ranking()
{ int i,j;
for(i=0;i
st[i].rank=1;
for(j=0;j
if(st[i].jqave
st[i].rank=st[i].rank+1; } }
void paiminghoudechengji() { int i,j; FILE *fp; fp=fopen(\"c:\\MC110213.txt\",\"w\"); printf(\" 名次 学号
姓名
数学分析
高等代数
C语言
大学物理
大学艺术
加权平均分 \\n\"); fprintf(fp,\" 名次 学号
姓名
数学分析
高等代数
C语言
大学物理
大学艺术
加权平均分 \\n\");
for(i=0;i
{
printf(\"%3d%5d%8s\",st[i].rank,st[i].num,st[i].name);
fprintf(fp,\"%3d%5d%8s\",st[i].rank,st[i].num,st[i].name);
for(j=0;j
{
printf(\"%10d\",st[i].score[j]);
fprintf(fp,\"%10d\",st[i].score[j]);
}
printf(\"%12.2f\\n\",st[i].jqave);
fprintf(fp,\"%12.2f\\n\",st[i].jqave); } fclose(fp); }
void xiechengji() { int j; FILE *fp; fp=fopen(\"c:\\xj1110213.txt\",\"w\"); fprintf(fp,\" 编号
课程名称
课程学分
标准差
优秀
良好
中等
及格
不及格
\\n\"); printf(\" 编号
课程名称
课程学分
标准差
优秀
良好
中等
及格
不及格
\\n\"); for(j=0;j
{
printf(\"%3d%15s%10.2f\",course[j].num,course[j].kcname,course[j].xuefen); fprintf(fp,\"%3d%15s%10.2f\",course[j].num,course[j].kcname,course[j].xuefen);
printf(\"%10.1f%8d%8d%8d%8d%6d\\n\",course[j].biaozhuncha,course[j].youxiu,course[j].lianghao,course[j].zhongdeng,course[j].jige,course[j].bujige);
fprintf(fp,\"%10.1f%8d%8d%8d%8d%6d\\n\",course[j].biaozhuncha,course[j].youxiu,course[j].lianghao,course[j].zhongdeng,course[j].jige,course[j].bujige);
} fclose(fp); }
void pingjunfen() { int i,j;
for(j=0;j
{
float zongfen=0,pingjunfen=0;
for(i=0;i
zongfen+=st[i].score[j];
pingjunfen=zongfen/27;
} }
void biaozhuncha() {
int i,j;
for(j=0;j
float zongfen=0,pingjunfen=0,x=0;
for(i=0;i
zongfen+=st[i].score[j];
pingjunfen=zongfen/27;
for(i=0;i
x+=(st[i].score[j]-pingjunfen)*(st[i].score[j]-pingjunfen);
course[j].biaozhuncha=(float)sqrt((x/27));
} }
void count() {
int i,j;
for(i=0;i
{
course[i].youxiu=0,course[i].lianghao=0,course[i].zhongdeng=0,course[i].jige=0,course[i].bujige=0;
for(j=0;j
{
if(st[j].score[i]
course[i].bujige++;
else if(st[j].score[i]
course[i].jige++;
else if(st[j].score[i]
course[i].zhongdeng++;
else if(st[j].score[i]
course[i].lianghao++;
else
course[i].youxiu++;
} } }
void chengjitiao() {
int i,j; FILE *fp; fp=fopen(\"c:\\cjt110213.txt\",\"w\"); do
{ printf(\"请输入你要查询的编号
退出请按零\");
scanf(\"%d\",&i);
fprintf(fp,\" 编号
姓名
数学分析
高等代数
C语言
大学物理
大学艺术
加权平均分
名次\\n\"); printf(\" 编号
姓名
数学分析
高等代数
C语言
大学物理
大学艺术
加权平均分
名次\\n\"); if(i>=0&&i
printf(\"%3d%10s\",st[i-1].num,st[i-1].name); for(j=0;j
printf(\"%9d\",st[i-1].score[j]);
fprintf(fp,\"%9d\",st[i-1].score[j]); } printf(\"%12.2f%8d\\n\",st[i-1].jqave,st[i-1].rank); fprintf(fp,\"%12.2f%8d\\n\",st[i-1].jqave,st[i-1].rank); fclose(fp); } while(i>0&&i
}
void bujigexueshengmingdan() {
int i,j;
printf(\"不及格学生名单如下:\\n\"); printf(\" 学号
姓名
不及格课程
分数
\\n\"); for(i=0;i
for(j=0;j
if(st[i].score[j]
{printf(\"%3d%12s\",st[i].num,st[i].name);
printf(\"%15s%8d\\n\",course[j].kcname,st[i].score[j]);
// printf(\"
平均分\");
// printf(\"%10.2f
名次%8d\\n\",st[i].jqave,st[i].rank);
}
} }
void youdeng() { int i,k; printf(\" 优等生名单如下\\n\"); printf(\"编号
姓名
数学分析
高等代数
C语言 大学物理 大学艺术 加权平均分
名次\\n\"); for(i=0;i
if(st[i].jqave>=90||st[i].rank
{
printf(\"%2d%10s\",st[i].num,st[i].name);
for(k=0;k
printf(\"%9d\",st[i].score[k]);
printf(\"%10.2f%8d\\n\",st[i].jqave,st[i].rank);
}
else ;
} }
void caidan()
{ loop: printf(\"
&&简易教学管理系统&&\\n\");
printf(\"pre 1 for
排名后的成绩表
!\\n\");
printf(\"pre 2 for
各科成绩情况! \\n\");
printf(\"pre 3 for
成绩条!\\n\");
printf(\"pre 4 for
不及格学生名单!\\n\");
printf(\"pre 5 for
优等生名单!\\n\");
printf(\"pre 0 for
退出\\n\");
int t;
scanf(\"%d\",&t);
switch(t)
{
case 1:
paiminghoudechengji();break;
case 2:
xiechengji();break;
case 3:
chengjitiao();break;
case 4:
bujigexueshengmingdan();break;
case 5:
youdeng();break;
case 0:
exit(0);
}
goto loop;
}
void main() {
readdata1();
readdata2();
jqave();
ranking();
pingjunfen();
biaozhuncha(); count();
caidan(); }