,,C语言代码实现学生成绩管理系统

,,C语言代码实现学生成绩管理系统

本文主要详细介绍了实现学生成绩管理系统的C语言代码。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

一个班在考试期间未参加考试的人数不超过30人(具体人数由键盘输入),考试科目不超过6门(具体人数由键盘输入,但不少于3门)。学生成绩管理系统是一个非常实用的程序,如果用户输入的数据能保存下来,下次运行时能读出,那就更有用了。增加读写文件的功能,即编程如下菜单驱动的学生成绩管理系统:

(1)输入每个学生的学号、姓名、各科考试成绩。

(2)计算各门课程的总分和平均分。

(3)计算每个学生的总分和平均分。

(4)按照每个学生的总成绩,从高到低排列名次表。

(5)按学生人数从小到大排出报告表。

(6)按照人名字典顺序,排出报表。

(7)根据学号,查看学生排名及其考试成绩。

(8)点名查看学生排名及其考试成绩。

(9)按照优秀(90-100分)、良好(80-89分)、一般(70-79分)、及格(60-69分)、不及格(0-59分)五个类别,统计每门课程每一类别的人数和百分比。

(10)输出每个学生的学号、姓名、各科考试成绩、总成绩、平均分以及每门课程的总成绩、平均分。

代码如下:

# includestdio.h

#includestring.h

#includestdlib.h

const int N=40

int i,j;

typedef结构控件

{

int号;

char name[20];

char name 1[20];

int CJ[7];

int all

inter lave;

} AVA;

//-函数

void menu();

void menu 1();

void menu 2();

void menu4(AVA stu[],int n,int n3);

//-

//-

void basic(AVA stu[]);

//-

//-信息输入功能

void键盘(AVA stu[],int n,int N2);

//-

void case1(AVA stu[],int n,int a);

//========================

//- Function函数

void function 4(AVA斯图[],AVAt,int n);//总分排序

void函数5(AVA斯图[],AVAt,int n);//对学生编号进行排序

void函数6(AVA斯图[],AVAt,int n);//名称排序

void function7(AVA stu[],AVA t,int n,int w);//学生ID查找

void function8(AVA stu[],AVA t,int n,char s[]);//名称查找

void function9(AVA stu[],int n,int a);//数据分析

void function10(AVA stu[],int n,int a,int b1[],int B2[]);//输出学生信息

void function11(AVA stu[],int n,int a);//保存在文件中

void exchange(AVA stu[],int a,int b);//文件读取功能

//-

int main()

{

AVA斯图;

for(I=0;i 30我)

{

斯图[我]。all=0;

斯图[我]。lave=0;

}

基础(stu);

返回0;

}

无效菜单()

{

printf(' _ _ \ n ');

printf(' | | \ n ');

printf(' \ n ');

printf(' \ n ');

Printf(“学生信息管理系统\ n”);

printf(' \ n ');

printf(' \ n ');

printf(' \ n ');

printf(' | | \ n ');

printf('---\ n ');

}

void菜单1()

{

Printf('-信息输入-\ n ');

Printf('-学习成绩-\ n ');

Printf('-学生成绩-\ n ');

Printf('-总分排序-\ n ');

Printf('-学号排序-\ n ');

Printf('-名称排序-\ n ');

Printf('-学号查询-\ n ');

Printf('-名称查询-\ n ');

Printf('-数据分析-\ n ');

Printf('-信息输出-\ n ');

打印(六)数据存档-\ n ';

}

请参见菜单2()

{

printf(" _ \ n ");

printf(| | \ n);

打印(六)功能代号-\ n ';

printf("-12345 678891011-\ n ");

printf(| | \ n);

printf("-\ n ");

}

见选单4(艾娃斯图[],int n,int n3/))读档函数总调用

{

printf('如果档案中没有存有足够的学科数,则可能提取乱码\ n ';

printf('如果文件中没有数据则会显示无法打开\ n ';

交换(stu,n,n3);

案例1( stu,n,n3);

}

//中转函数,菜单与功能的桥梁

参见基本(AVA斯图[])

{

menu();

printf('若无学生信息档案需要先录入\ n ';

printf('1-录入2-读档3-退出\ n ';

内部n、n1、n3;

-从

{

扫描文件(" %d,n1 ");

if(3n1||n11)

{

printf('数据输入错误,请重新输入\ n ';

}

}而(3n 1 | | n11);

printf('输入学生数量\ n ';

-从

{

扫描文件(" %d,n ");

if(30n||n1)

{

printf('数据输入错误,请重新输入1-30 \ n ';

}

}而(30n | | n1);

printf('输入学科数量\ n ';

-从

{

扫描文件(" %d,n3 ");

if(6n3||n33)

{

printf('数据输入错误,请重新输入3-6 \ n ';

}

}而(6n 3 | | n 33);

如果(n1==1)

{

键盘(stu,n,n3);

案例1( stu,n,n3);

}

else if(n1==2)菜单4(stu,n,n3);

其他语句

{

printf('欢迎再次使用\ n ';

退出(0);

}

}

=================================================================。功能函数调用的函数

见案例1(AVA斯图[],int n,int a)

{

艾娃t;

for(I=0);I n;(一)

{

for(j=0);(j)a;(j)

{

史都。全部stu[i].CJ[j];

}

史都lave=stu[i]全部/a;

}

内部x[10]={ 0 } y[10]={ 0 };

for(j=0);(j)a;(j)

{

for(I=0);I n;(一)

{

和斯图,斯图.CJ[j];

}

}

for(I=0);一a;(一)

{

x[I]=y[I]/n;

}

菜单1();

菜单2();

printf('数据录入成功\ n ';

printf('请输入你想选择的功能\ n ';

内部N2;

while(扫描f(% d,n2)n2!=0)

{

如果(n2==2)

{

for(I=0);一a;(一)

{

printf('第%d门总分为:%d,平均分为:%d\n,i 1,y[i],x[I];

}

菜单1();

菜单2();

printf('完成\ n ';

}

else if(n2==3)

{

内部f;

printf('计算完成,是否打印?一或0 \ n ';

扫描文件(" %d,f ");

如果(f==1)

{

for(I=0);I n;(一)

{

printf('第%d个同学的总分为:%d,平均分为用法:%d\n,i 1,stu[i]说明.史都.洗个澡:

}

printf('打印完成\ n ';

菜单2();

}

其他语句

{

菜单1();

菜单2();

}

printf('完成\ n ';

}

else if(n2==4)

{

功能4( stu,t,n);

菜单1();

菜单2();

printf('完成\ n ';

}

else if(n2==5)

{

函数5( stu,t,n);

菜单1();

菜单2();

printf('完成\ n ';

}

else if(n2==6)

{

功能6( stu,t,n);

菜单1();

菜单2();

printf('完成\ n ';

}

else if(n2==7)

{

内部w;

printf('输入你想查询的学号\ n ';

scanf("% d,w ");

功能7( stu,t,n,w);

菜单1();

菜单2();

printf('完成\ n ';

}

else if(n2==8)

{

坦克s[30];

printf('输入你想查询的名字\ n ';

扫描文件(" %s "," s ");

功能8(stu,t,n,s);

菜单1();

菜单2();

printf('完成\ n ';

}

else if(n2==9)

{

功能9(斯图,n,a);

菜单1();

菜单2();

printf('完成\ n ';

}

else if(n2==10)

{

函数10( stu,n,a,x,y);

菜单1();

菜单2();

printf('完成\ n ';

}

else if(n2==11)

{

功能11(斯图,n,a);

菜单1();

菜单2();

printf('完成\ n ';

}

其他菜单2();

}

}

=================================================================。信息录入函数

参见键盘(AVA斯图[],int n,int n2)

{

for(I=0);I n;(一)

{

printf('正在输入%d个学生信息\n,i1;//

printf('学号:\ n);

扫描f(% d,stu[i]).不要!

printf('姓名:\ n);

扫描文件(" %s ",stu[i]).名称;

printf('姓名拼音简写\ n ';

扫描f("% s ",stu[I]。姓名1);

printf('分别输入%d门学课成绩\n,N2;

for(j=0);N2;(j)

{

扫描f(% d,stu[i]).CJ(j));

}

}

}

参见函数4(AVA斯图[],AVAt,int n)/(r)总分排序

{

printf('总分排序\ n ';

*fp文件:

for(I=0);一年级学生型;(一)

for(j=0);j n-1-I;(j)

{

如果斯图,斯图.火种源[j 1].全部)

{

t=stu[j];

斯图[j]=[j 1]:

史都(J1)=t;

}

}

printf('正在生成文件\ n ';

printf('请及时拷贝文件,否则会造成数据丢失\ n ';

fp=fopen('总分排序. txt ',' w ';

if(fp==NULL)

{

printf('打开失败\ n ';

退出(0);

}

for(I=0);I n;(一)

{

fprinff(FP," %s %d\n ",stu[i].名字,史都。全部(全部);

}

fclose(FP);

}

参见函数5(AVA斯图[],AVAt,int n)/(r)学号排序

{

printf('学号排序\ n ';

*fp文件:

for(I=0);一年级学生型;(一)

for(j=0);j n-1-I;(j)

{

如果斯图,斯图.诺斯都[j 1].页:1

{

t=stu[j];

斯图[j]=[j 1]:

史都(J1)=t;

}

}

茶名称[n];

strcpy(名称,'学号为");

printf('正在生成文件\ n ';

printf('请及时拷贝文件,否则会造成数据丢失\ n ';

fp=fopen('学号排序. txt ',' w ';

if(fp==NULL)

{

printf('打开失败\ n ';

退出(0);

}

for(I=0);I n;(一)

{

fprinff(FP," %s%d\n ",名称斯图[我].不要!

fprinff(FP," %s%d\n ",stu[i].名字,史都。全部(全部);

}

fclose(FP);

}

参见函数6(AVA斯图[],AVAt,int n)/(r)姓氏排序

{

printf('姓名排序\ n ';

*fp文件:

for(I=0);一年级学生型;(一)

for(j=0);j n-1-I;(j)

{

if(stu[j].name 1[0]stu[J1]。名称1[0])

{

t=stu[j];

斯图[j]=[j 1]:

史都(J1)=t;

}

}

printf('正在生成文件\ n ';

printf('请及时拷贝文件,否则会造成数据丢失\ n ';

fp=fopen('姓名排序. txt ',' w ';

if(fp==NULL)

{

printf('打开失败\ n ';

退出(0);

}

for(I=0);I n;(一)

{

fprinff(FP," %s%d\n ",stu[i].名字,史都。全部(全部);

}

fclose(FP);

}

参见函数7(AVA斯图[]、AVAt、int n、int w)/(w)学号查找

{

int m=0;

for(I=0);一年级学生型;(一)

for(j=0);j n-1-I;(j)

{

如果斯图,斯图.火种源[j 1].全部)

{

t=stu[j];

斯图[j]=[j 1]:

史都(J1)=t;

}

}

for(I=0);I n;(一)

{

m。

如果斯图[我].无==w)

{

printf('学号为:%d\n,斯图[我].不要!

printf('姓名为:%s\n,斯图[我].名称;

printf('成绩为:%d\n,斯图[我].全部(全部);

printf('排名为:%d\n,m。

打断;打断;

}

}

}

参见函数8(AVA斯图[]、AVAt、int n、char s[])//姓名查找

{

int m=0;

for(I=0);一年级学生型;(一)

for(j=0);j n-1-I;(j)

{

如果斯图,斯图.火种源[j 1].全部)

{

t=stu[j];

斯图[j]=[j 1]:

史都(J1)=t;

}

}

for(I=0);I n;(一)

{

m。

if(strcmp(stu[i]).名称,s==0)

{

printf('学号为:%d\n,斯图[我].不要!

printf('姓名为:%s\n,斯图[我].名称;

printf('成绩为:%d\n,斯图[我].全部(全部);

printf('排名为:%d\n,m。

打断;打断;

}

}

}

参见函数9(AVA斯图[],int n,int a)/(p/)数据分析

{

printf('请在文件夹中查看\ n ';

for(I=0);一a;(一)

{

双k1=0,k2=0,k3=0,k4=0,K5=0;

for(j=0);(j)n;(j)

{

如果斯图,斯图.CJ[I]=90)k1;

else if(stu[j]).c[I]=80斯图[j]的缩写.CJ[I]=89)k2;

else if(stu[j]).c[I]=70斯图[j]的缩写.CJ[I]=79)k3;

else if(stu[j]).c[I]=60斯图[j]的缩写.CJ[I]=69)k4;

else if(stu[j]).CJ[I]=59)K5;

}

*fp文件:

fp=fopen('数据分析. txt ',' a ';

if(fp==NULL)

{

printf('打开失败\ n ';

退出(0);

}

坦克s[20];

strcpy(s,"主题");

s[7]=' 0 ' I;

S7-1200可编程控制器:

char name 1[20];

茶名称2[20];

茶名称3[20];

茶名称4[20];

茶名称5[20];

strcpy(名称1,'优:' % ';

strcpy(名称2,'良好:' % ';

strcpy(名称3,'中等:' % ';

strcpy(名称4,'及格:' % ';

strcpy(名称5,'不及格:' % ';

fprintf(fp,' \n%s\n ',s);

fprintf(fp,' %s%.2f\n ',name1,(k1 * 100)/n);

fprintf(fp,' %s%.2f\n ',name2,(k2 * 100)/n);

fprintf(fp,' %s%.2f\n ',name3,(k3 * 100)/n);

fprintf(fp,' %s%.2f\n ',name4,(k4 * 100)/n);

fprintf(fp,' %s%.2f\n ',name5,(K5 * 100)/n);

k1=0,k2=0,k3=0,k4=0,K5=0;

fclose(FP);

}

}

void function10(AVA stu[],int n,int a,int b1[],int b2[])//输出学生信息

{

for(I=0;I n;我)

{

printf('学号:%d\n ',stu[i].否);

printf('姓名:%s\n ',stu[i].姓名);

printf('总分:%d\n ',stu[i].所有);

printf('平均分:%d\n ',stu[i].lave);

printf('每科分数为:');

for(j=0;j a;j)

{

printf('%d ',stu[i].CJ[j]);

}

printf(' \ n ');

printf(' \ n ');

printf(' \ n ');

printf(' \ n ');

}

printf('学科平均分为:\ n’);

for(j=0;j a;j)

{

printf('第%d学科平均分为:%d\n ',j 1,B1[j]);

}

printf('学科总分:\ n’);

for(j=0;j a;j)

{

printf('第%d学科总分为:%d\n ',j 1,B2[j]);

}

}

空的函数11(AVA斯图[],int n,int a)//存进文件中

{

文件* fp

fp=fopen('学生信息存档. txt ',' a ');

if(fp==NULL)

{

printf('无法打开\ n’);

退出(0);

}

char name[30];

char name 1[30];

char name 2[30];

strcpy(名称,每科成绩:');

strcpy(名称1,总平均成绩:');

strcpy(名称2,总成绩:');

for(I=0;I n;我)

{

fprintf(fp,' \n%d %s\n ',stu[i].不,斯图[我]。姓名);

fprintf(fp,' %s %d\n ',name2,stu[i].所有);

fprintf(fp,' %s %d\n ',name1,stu[i].lave);

fprintf(fp,' %s\n ',name);

for(j=0;j a;j)

{

fprintf(fp,' %d ',stu[i].CJ[j]);

}

}

fclose(FP);

文件*fpk1、*fpk2、*fpk3、*fpk4、*fpk5、*fpk6、*fpk7、*fpk8、* fpk9

fpk1=fopen('学号. txt ',' a ');

fpk2=fopen('姓名. txt ',' a ');

fpk3=fopen('姓名简称. txt ',' a ');

fpk4=fopen('学科1.txt ',' a ');

fpk5=fopen('学科2.txt ',' a ');

fpk6=fopen('学科3.txt ',' a ');

fpk7=fopen('学科4.txt ',' a ');

fpk8=fopen('学科5.txt ',' a ');

fpk9=fopen('学科6.txt ',' a ');

if(FP k1==NULL | | FPK 2==NULL | | FPK 3==NULL | | FPK 4==NULL | | FPK 5==NULL | | FPK 6==NULL | | FPK 7==NULL | | FPK 8==NULL | | FPK 9==NULL)

{

printf('无法打开\ n’);

退出(0);

}

for(I=0;I n;我)

{

fprintf(fpk1,' %d\n ',stu[i].否);

fprintf(fpk2,' %s\n ',stu[i].姓名);

fprintf(fpk3,' %s\n ',stu[I]。姓名1);

fprintf(fpk4,' %d\n ',stu[i].CJ[0]);

fprintf(fpk5,' %d\n ',stu[i].CJ[1]);

fprintf(fpk6,' %d\n ',stu[i].CJ[2]);

如果(a==4||a==5||a==6)

{

fprintf(fpk7,' %d\n ',stu[i].CJ[3]);

}

如果(a==5||a==6)

{

fprintf(fpk8,' %d\n ',stu[i].CJ[4]);

}

如果(a==6)

{

fprintf(fpk9,' %d\n ',stu[i].CJ[5]);

}

}

fclose(FP k1);

fclose(FPK新协议);

fclose(FPK 3);

fclose(FPK 4);

fclose(FPK 5号);

fclose(FPK 6号);

fclose(FPK 7);

fclose(FPK八国集团);

fclose(FPK九大);

}

void exchange(AVA stu[],int a,int b)//读档函数a学生b学科

{

文件*fpk1、*fpk2、*fpk3、*fpk4、*fpk5、*fpk6、*fpk7、*fpk8、* fpk9

fpk1=fopen('学号. txt ',' r ');

fpk2=fopen('姓名. txt ',' r ');

fpk3=fopen('姓名简称. txt ',' r ');

fpk4=fopen('学科1.txt ',' r ');

fpk5=fopen('学科2.txt ',' r ');

fpk6=fopen('学科3.txt ',' r ');

fpk7=fopen('学科4.txt ',' r ');

fpk8=fopen('学科5.txt ',' r ');

fpk9=fopen('学科6.txt ',' r ');

if(FP k1==NULL | | FPK 2==NULL | | FPK 3==NULL | | FPK 4==NULL | | FPK 5==NULL | | FPK 6==NULL | | FPK 7==NULL | | FPK 8==NULL | | FPK 9==NULL)

{

printf('无法打开\ n’);

退出(0);

}

I=0;

char s1[N],s2[N],s3[N],s4[N],s5[N],s6[N],s7[N],s8[N],S9[N];

while(fgets(s1,40,fpk1)!=空)

{

int w;

w=斯特伦(S1);

如果(w==2)

{

斯图[我]。否=S1[0]-' 0 ';

}

else if(w==3)

{

斯图[我]。no=(S1[0]-0 ')* 10 S1[1]-0;

}

我;

如果(i==a)破;

}

I=0;

while(fgets(s2,40,fpk2)!=空)

{

strcpy(stu[i].名字,S2);

我;

如果(i==a)破;

}

I=0;

while(fgets(s3,40,fpk3)!=空)

{

strcpy(stu[i].name1,S3);

我;

如果(i==a)破;

}

I=0;

while(fgets(s4,40,fpk4)!=空)

{

int w;

w=斯特伦(S4);

如果(w==2)

{

斯图[我]。CJ[0]=S4[0]-" 0 ";

}

else if(w==3)

{

斯图[我]。CJ[0]=(S4[0]-' 0 ')* 10 S4[1]-' 0 ';

}

我;

如果(i==a)破;

}

I=0;

while(fgets(s5,40,fpk5)!=空)

{

int w;

w=strlen(S5);

如果(w==2)

{

斯图[我]。CJ[1]=S5[0]-' 0 ';

}

else if(w==3)

{

斯图[我]。CJ[1]=(S5[0]-' 0 ')* 10 S5[1]-' 0 ';

}

我;

如果(i==a)破;

}

I=0;

while(fgets(s6,40,fpk6)!=空)

{

int w;

w=strlen(S6);

如果(w==2)

{

斯图[我]。CJ[2]=S6[0]-" 0 ";

}

else if(w==3)

{

斯图[我]。CJ[2]=(S6[0]-' 0 ')* 10 S6[1]-' 0);

}

我;

如果(i==a)破;

}

if(b==4||b==5||b==6)

{

I=0;

while(fgets(s7,40,fpk7)!=空)

{

int w;

w=strlen(S7);

如果(w==2)

{

斯图[我]。CJ[3]=S7[0]-' 0 ';

}

else if(w==3)

{

斯图[我]。CJ[3]=(S7[0]-' 0 ')* 10 S7[1]-' 0 ';

}

我;

如果(i==a)破;

}

}

if(b==5||b==6)

{

I=0;

while(fgets(s8,40,fpk8)!=空)

{

int w;

w=strlen(S8);

如果(w==2)

{

斯图[我]。CJ[4]=S8[0]-" 0 ";

}

else if(w==3)

{

斯图[我]。CJ[4]=(S8[0]-' 0 ')* 10 S8[1]-' 0 ';

}

我;

如果(i==a)破;

}

}

如果(b==6)

{

I=0;

while(fgets(s9,40,fpk9)!=空)

{

int w;

w=strlen(S9);

如果(w==2)

{

斯图[我]。CJ[5]=S9[0]-' 0 ';

}

else if(w==3)

{

斯图[我]。CJ[5]=(S9[0]-' 0 ')* 10 S9[1]-' 0);

}

我;

如果(i==a)破;

}

}

fclose(FP k1);

fclose(FPK新协议);

fclose(FPK 3);

fclose(FPK 4);

fclose(FPK 5号);

fclose(FPK 6号);

fclose(FPK 7);

fclose(FPK八国集团);

fclose(FPK九大);

printf('读档完成\ n’);

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • ,,使用C语言实现学生成绩管理系统
  • ,,C#实现简单学生成绩管理系统
  • ,,C#实现学生成绩管理系统
  • ,,java实现简单学生成绩管理系统
  • ,,python超详细实现完整学生成绩管理系统
  • c语言实现学生成绩管理系统输入性别,c语言实现学生成绩管理系统课程设计
  • c语言学生成绩管理系统源代码,C语言编写学生成绩管理系统
  • python中学生成绩管理系统,Python成绩管理
  • Python学生成绩管理,python教务系统学生成绩管理系统
  • python中学生成绩管理系统,Python学生成绩管理
  • python中学生成绩管理系统,Python学生成绩管理_1
  • java编写一个学生成绩管理系统,java学生成绩录入系统
  • 简单的学生成绩系统java,java编写一个学生成绩管理系统
  • java swing学生成绩管理系统,javaweb简单的学生管理系统
  • 留言与评论(共有 条评论)
       
    验证码: