C语言学生成绩管理系统源程序1word版本.docx

上传人:b****2 文档编号:12672538 上传时间:2023-04-21 格式:DOCX 页数:21 大小:19.27KB
下载 相关 举报
C语言学生成绩管理系统源程序1word版本.docx_第1页
第1页 / 共21页
C语言学生成绩管理系统源程序1word版本.docx_第2页
第2页 / 共21页
C语言学生成绩管理系统源程序1word版本.docx_第3页
第3页 / 共21页
C语言学生成绩管理系统源程序1word版本.docx_第4页
第4页 / 共21页
C语言学生成绩管理系统源程序1word版本.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言学生成绩管理系统源程序1word版本.docx

《C语言学生成绩管理系统源程序1word版本.docx》由会员分享,可在线阅读,更多相关《C语言学生成绩管理系统源程序1word版本.docx(21页珍藏版)》请在冰豆网上搜索。

C语言学生成绩管理系统源程序1word版本.docx

C语言学生成绩管理系统源程序1word版本

附录程序

#include"stdio.h"

#include

#include

#include"process.h"

#include"ctype.h"

typedefstruct

{

charnum[10];

charname[10];

intchinese;

intmath;

intenglish;

intdianlu;

doubleaver;

}Student;

Studentstu[99];

intshuru(Studentstud[],intn)/*输入若干条记录*/

{

inti=0;

charsign,x[10];

doublea=0.0;

while(sign!

='n'&&sign!

='N')

{

printf("输入学生学号:

");

scanf("%s",stu[n+i].num);

printf("输入学生姓名:

");

scanf("%s",stu[n+i].name);

printf("输入学生的语文、数学、英语、电路分数:

");

scanf("%d%d%d%d",&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu);

a=1.0*(stu[n+i].chinese+stu[n+i].math+stu[n+i].english+stu[n+i].dianlu)/4;

stu[n+i].aver=a;

gets(x);/*清除多余的输入*/

printf("是否继续输入?

(Y/N):

\n");

scanf("%c",&sign);

i++;

}

return(n+i);

}

voidxianshi(Studentstud[],intn)/*显示所有记录*/

{

inti;

printf("----------------------------------------------------------\n");/*格式头*/

printf("学号姓名语文数学英语电路平均成绩\n");

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

for(i=0;i

{

printf("%-10s%-10s%-10d%-10d%-10d%-10d%-10.2lf\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver);

}

}

voidxiugai(Studentstud[],intn)/*修改*/

{

inti=0,choice=1;

charx[10];

while(choice!

=0)

{printf("请输入您要修改的学生的学号:

\n");

scanf("%s",x);

for(i=0;;i++)

{

if(strcmp(stu[i].num,x)==0)break;

}

printf("请选择您要修改的内容:

\n");

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

printf("|姓名请按1|\n");

printf("|语文请按2|\n");

printf("|数学分数请按3|\n");

printf("|英语分数请按4|\n");

printf("|电路请按5|\n");

printf("|退出请按0|\n");

printf("+----------------------+\n");

printf("请输入您的选择:

");

scanf("%d",&choice);

switch(choice)

{

case0:

break;

case1:

printf("请输入新姓名:

");

scanf("%s",stu[i].name);

break;

case2:

printf("请输入新的语文分数:

");

scanf("%d",&stu[i].chinese);

break;

case3:

printf("请输入新的数学分数:

");

scanf("%d",&stu[i].math);

break;

case4:

printf("请输入新的英语分数:

");

scanf("%d",&stu[i].english);

break;

case5:

printf("请输入新的电路分数:

");

scanf("%d",&stu[i].dianlu);

break;

default:

printf("\n无效选项!

");

break;

}break;

}

return;

}

intshanchu(Studentstud[],intn)/*按姓名查找,删除一条记录*/

{chars[20];

inti;

intj;

i=0;

printf("输入要删除记录的姓名:

");

scanf("%s",s);

while(strcmp(stu[i].name,s)!

=0&&i

if(i==n)

{printf("notfind!

\n");

return(n);}

for(j=i;j

{

strcpy(stu[j].num,stu[j+1].num);

strcpy(stu[j].name,stu[j+1].name);

stu[j].chinese=stu[j+1].chinese;

stu[j].math=stu[j+1].math;

stu[j].english=stu[j+1].english;

stu[j].dianlu=stu[j+1].dianlu;

stu[j].aver=stu[j+1].aver;

}

printf("DeleteSuccessed!

\n");

return(n-1);

}

voidchaxun_xingming(Studentstud[],intn)/*按姓名查找并显示一个记录*/

{chars[20];

inti=0;

printf("输入姓名:

");

scanf("%s",s);

while(strcmp(stu[i].name,s)!

=0&&i

if(i==n)

{printf("notfind!

\n");/*输入失败信息*/

return;}

printf("他的姓名、学号是:

%s%s\n",stu[i].name,stu[i].num);/*输出该学生信息*/

printf("语文高数英语电路平均成绩是:

%d,%d,%d,%d,%lf\n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver);

}

voidchaxun_pingjun(Studentstud[],intn)/*按平均成绩查找并显示一个记录*/

{doubles;

inti=0;

printf("输入平均成绩:

");

scanf("%lf",&s);

while(stu[i].aver!

=s&&i

if(i==n)

{printf("notfind!

\n");/*输入失败信息*/

return;

}

printf("他的学号是:

%s\n",stu[i].num);/*输出该学生信息*/

printf("他的姓名是:

%s\n",stu[i].name);

printf("他的语文、数学、英语、电路分数是:

%d%d%d%d\n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu);

}

voidpaixu_xuehao(Studentstud[],intn)/*按学号排序*/

{inti,j,p,q,r,w;

doubley;

charx[20],t[10];

for(i=0;i

for(j=0;j

if(strcmp(stud[j].num,stud[j+1].num)>0)

{strcpy(t,stud[j].num);

strcpy(stud[j].num,stud[j+1].num);

strcpy(stud[j+1].num,t);

strcpy(x,stud[j].name);

strcpy(stud[j].name,stud[j+1].name);

strcpy(stud[j+1].name,x);

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;

p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;

q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;

r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;

w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;

}

return;

}

voidpaixu_pingjun(Studentstud[],intn)/*按平均成绩排序*/

{inti,j,p,q,r,w;

doubley;

charx[20],t[10];

for(i=0;i

for(j=0;j

if(stu[j].aver>stu[j+1].aver)

{y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;

p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;

q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;

r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;

w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;

strcpy(x,stu[j].name);

strcpy(stu[j].name,stu[j+1].name);

strcpy(stu[j+1].name,x);

strcpy(t,stu[j].num);

strcpy(stu[j].num,stu[j+1].num);

strcpy(stu[j+1].num,t);

}

return;

}

voidpaixu_chinese(Studentstud[],intn)/*按语文成绩排序*/

{inti,j,p,q,r,w;

doubley;

charx[20],t[10];

for(i=0;i

for(j=0;j

if(stu[j].chinese>stu[j+1].chinese)

{

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;

p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;

q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;

r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;

w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;

strcpy(x,stu[j].name);

strcpy(stu[j].name,stu[j+1].name);

strcpy(stu[j+1].name,x);

strcpy(t,stu[j].num);

strcpy(stu[j].num,stu[j+1].num);

strcpy(stu[j+1].num,t);

}

return;

}

voidpaixu_english(Studentstud[],intn)/*按英语成绩排序*/

{inti,j,p,q,r,w;

doubley;

charx[20],t[10];

for(i=0;i

for(j=0;j

if(stu[j].english>stu[j+1].english)

{

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;

p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;

q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;

r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;

w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;

strcpy(x,stu[j].name);

strcpy(stu[j].name,stu[j+1].name);

strcpy(stu[j+1].name,x);

strcpy(t,stu[j].num);

strcpy(stu[j].num,stu[j+1].num);

strcpy(stu[j+1].num,t);

}

return;

}

voidpaixu_math(Studentstud[],intn)/*按数学成绩排序*/

{inti,j,p,q,r,w;

doubley;

charx[20],t[10];

for(i=0;i

for(j=0;j

if(stu[j].math>stu[j+1].math)

{

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;

p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;

q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;

r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;

w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;

strcpy(x,stu[j].name);

strcpy(stu[j].name,stu[j+1].name);

strcpy(stu[j+1].name,x);

strcpy(t,stu[j].num);

strcpy(stu[j].num,stu[j+1].num);

strcpy(stu[j+1].num,t);

}

return;

}

voidpaixu_dianlu(Studentstud[],intn)/*按电路成绩排序*/

{inti,j,p,q,r,w;

doubley;

charx[20],t[10];

for(i=0;i

for(j=0;j

if(stu[j].dianlu>stu[j+1].dianlu)

{

y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;

p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;

q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;

r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;

w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;

strcpy(x,stu[j].name);

strcpy(stu[j].name,stu[j+1].name);

strcpy(stu[j+1].name,x);

strcpy(t,stu[j].num);

strcpy(stu[j].num,stu[j+1].num);

strcpy(stu[j+1].num,t);

}

return;

}

voidtongji(Studentstud[],intn)//按分数段统计人数

{inti,j,a,max,min,k,l,q,p,w;

k=0,l=0,p=0,q=0,w=0;

printf("你想统计哪科成绩:

1语文2数学3英语4电路5平均\n");

scanf("%d",&j);

printf("input2score:

\n");

scanf("%d%d",&max,&min);

if(max

{

a=max;max=min;min=a;

}

if(j==1)

{

for(i=0;i<99;i++)

{

if(stu[i].chinese>min&&stu[i].chinese

}

printf("分数段的人数为:

%d",k);

}

elseif(j==2)

{

for(i=0;i<99;i++)

{

if(stu[i].math>min&&stu[i].math

}

printf("分数段的人数为:

%d",l);

}

elseif(j==3)

{

for(i=0;i<99;i++)

{

if(stu[i].english>min&&stu[i].english

}

printf("分数段的人数为:

%d",p);

}

elseif(j==4)

{

for(i=0;i<99;i++)

{

if(stu[i].dianlu>min&&stu[i].dianlu

w++;

}

printf("分数段的人数为:

%d",w);

}

elseif(j==5)

{

for(i=0;i<99;i++)

{

if(stu[i].aver>min&&stu[i].aver

}

printf("分数段的人数为:

%d",q);

}

return;

}

intwenjian2(Studentstud[],intn)/*从文件中读入数据*/

{inti=0,num;

FILE*fp;/*定义文件指针*/

charfilename[20];/*定义文件名*/

printf("\t\t\tInputthefilename:

");

scanf("\t\t\t%s",filename);/*输入文件名*/

if((fp=fopen(filename,"rb"))==NULL)/*打开文件*/

{printf("\t\t\tcann'topenthefile\n");/*打开失败信息*/

printf("\t\t\t");

system("pause");

return(n);

}

fscanf(fp,"%d",&num);/*读入总记录量*/

while(i

{

fscanf(fp,"%s%s%d%d%d%d%lf\n",stu[n+i].num,stu[n+i].name,&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu,&stu[n+i].aver);

i++;

}

n+=num;

fclose(fp);/*关闭文件*/

printf("\t\t\tSuccessed!

\n");

printf("\t\t\t");

system("pause");

return(n);

}

voidwenjian1(Studentstud[],intn)/*将所有记录写入文件*/

{

inti=0;

FILE*fp;/*定义文件指针*/

charfilename[20];/*定义文件名*/

printf("Inputthefilename:

");/*输入文件名*/

scanf("%s",filename);

if((fp=fopen(filename,"w"))==NULL)/*打开文件*/

{

printf("cann'topenthefile\n");

return;

}

fprintf

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1