C语言专业课程设计学生成绩标准管理系统_第1页
C语言专业课程设计学生成绩标准管理系统_第2页
C语言专业课程设计学生成绩标准管理系统_第3页
C语言专业课程设计学生成绩标准管理系统_第4页
C语言专业课程设计学生成绩标准管理系统_第5页
已阅读5页,还剩16页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#includc<stdio.h>

#include<s(ring.h>

/*strcmp函数原型包含*/

#defineN100

/*定义最大学生人数为100*/

structsiudent学生结构体定义/

(

charno[l1];/*学号,10位*/

charname[l()];/*姓名,3个汉字*/

floatscore[5];/*储存5门功课成绩*/

floatave;/*储存平均分*/

intyear;/*入年*/

}stu[NJ;

intnum;

intpanduani(int);/*经过i值,判定信息要查找信息是否存在号

voidoutput();/*输出学生成绩函数(公共函数)句

voidinit();/*系统初始化函数*/

voidnewfile();/*建立新数据文件*/

voidread1();/*从数据文件中读取数据*/

voidweihu();/*维护界面函数*/

voidnew1();/*新增一个学生成绩函数*/

voidxiugai();/*修改学生成绩*/

intxgcj(int);/*修改成绩*/

voiddelete1();/*删除学生信息函数*/

voidtongji();/*统计界面函数*/

voidtongjil();/*计算每个学生平均分列

voidtongji2();/*计算每门课程平均分*/

voidpaixul();/*排序函数*/

voidpaino();/*按学号排序列

voidpaiavc();/*按平均分排序*/

voidpaidkcjO;/*按单科成绩排序*/

voidchangc(int,int);/*交换结构体数组中两个统计列

voidoutputx(int);/*选择输出单科成绩徐修楼编*/

voidfindl();/*查找界面函数*/

intfind(charsno[]);/*按学号查找*/

intfindname(charcname[]);/*按姓名查找*/

voidfindyear(intcyear);/*按入华查找*/

voidsave();/*保留文件*/

voidstop();/*停顿函数*/

voidstop()/*停顿函数(公共函数)*/

printf("PressAnyKeyToContinue..An");

getch();

voidoutput()/*输出学生成绩函数(公共函数)*/

(

inti,j;

printf("===================================================================\n");

printf("XueHaoXingMingRuXueNianCGaoShuDaWuDianLuMoDian\n");

printf("===================================================================\n");

fbr(i=O;i<num;i++)

(

printf("%-lIs%-10s%-lld",stu[i].no,stu[i].name,stu[il.year);

for(j=0;j<5;j++)

printfC1%-7.1f',stu[i].score[j]);

prinlf("\n");

stopO;

voidinit()/*系统初始化函数*/

(

if(access("stu.dat';O))/*判定文件是否存在*/

newfile();/卓若不存在,新建数据文件

else

read1();/*若存在,读取数据*/

)

voidnevvfile()/*建立新数据文件*/

(

inti;

FILE*fp;

iH(fp二fopen(”stu.dat",“wb")尸=NULL)/*创建二进制文件*/

(

printf("ChuangJianShiBai!QingChongXinYunXingChengXu.\n");/*显示“创建文件失败,请重新

运行程序”*/

cxit(O);/*终止程序*/

)

printf("ChuCiYunXing,JinXingShuJuChuShi显示“首次运行,进行数据初始化…”X

stopO;

clrscr();

printf("QingShuRuXueShengRenShu:");/*显示“请输入学生人数:”*/

scanf("%d",&num);

for(i=O;i<nunKi++)

(

prinlfC'QingShuRuDi%dGeXueShengDeXueHao:",i+1);/*显示“请输入第i+1个学生学号:"*/

getchar();/*吃回车*/

gcts(stu[il.no);

printf("XingMing:");/*显示“姓名:"*/

gcts(stu|i|.namc);

printf("RuXueNian:");/*显示“入年”力

scanf("%d'\&stu[i].year);

printfCC-YuYanChengJi*;尸显示“C语言成绩”,

scanf("%f,,&stu|i|.score[0));

prinlf("GaoShuChengJi:");/*显示“高数成绩”*/

scanf("%f\&stu(i].score[1]);

printf("DaWuChengJi:");/*显示“大物成绩”*/

scanf("%f',&slu[i].score[2]);

printf("DianLuChengJi丁'»*显示“电路成绩”力

scanf("%f',&stu[i].score[3]);

printf("MoDianChengJi:");/*显示“模电成绩”*/

$canf("%f;&stu[i].score[4]);

fwrite(&stu[i],1,sizeof(structstudent),fp);/*把第i+1名学生成绩写入文件*/

)

fdose(fp);

clrscr();

printf("======================================\n");

printf("GungCaiShuRuDe%dGeShuJuWci:\n",num);/*显示“刚才输入num个数据为:“求/

printf("======================================\n'n)

output。;

}

voidread1()/*从数据文件中读取数据*/

(

FILE*fp;

num=0;/*num为数据文件中实际存放学生人数*/

fp=fbpen("stu.dat","r");

if(fp==NULL)/*数据文件不存在*/

printf("WcnJianDaKaiShiBai!ChongXinYunXingChengXu\n");/*显示“文件打开失败!重新运行程序

*/

exit(O);

)

while(!feof(fp))

(

fread(&stu[num],1,sizeof(structstudent),fp);

num++;

)

num--;

fclose(fp);

printf("=======================================\n");

printf("XianYou%dGeXueShengDeChengJi:\n",num);/*显示“现有NUM个学生成绩:”*/

printf("=======================================\n\n");

output();

I

voidweihu()/*维护界面函数*/

{

charc1;

while(l)

(

clrscr();

printf("\n\n\n\l\t\t*****************************\n"):

printf("\t\t\t*WeiHu*\n");

printf("\t\t\t*1.XinZeng*\n");/*新增*/

printfC^tMU*2.ShanChu删除(按学号)*/

printf('\t\t\t*3.XiuGai*\n");/*修改*/

printf("\t\t\t*ESC.FanHui返回*/

printf("\t\t\t*****************«***********\n")・

printf(n\t\t\tQingXuanZe:\n");/*请选择:*/

cl=getch();

if(cl==27)

break;

switch(c1)

case'I':

new1();

break;

case'2':

delete1();

case3:

xiugai();

break;

default:

printf("XuanZenYouWu,QingChongXuanJXn");/*"选择有误,请重选!”*/

voidnewl()/*新增一个学生成绩函数*/

{

printf(”QingShuRuXueHao:");/*显示“请输入学号:“*/

getchar();/*吃回车*/

gets(stu[num].no);

printf(”XingMing:");/*显示“姓名:"*/

gets(stu[num].name);

printf("RuXueNian:");/*显示“入年”力

scanf("%d".&stu[nuni].ycar);

printf("C・YuYanCheng丘”);产显示“C语言成绩”*/

scanf("%f',&stu|nuin].scorc[0]);

prinlf("GaoShuChengJi:");/*显示“高数成绩”*/

scanf("%f',&stu[num].score[l]);

printfCDaWuChengJi:”);/*显示“大物成绩”*/

scanf(u%f\&stu[num].score[2]);

prinlf("DianLuChengJi:");/*显示“电路成绩”*/

scanf("%f',&stu[num].score[3]);

printf("MoDianChengJi:");/*显示“模电成绩"*/

scanf("%f',&slu[num].score[4]);

num++;

printf("\n=====================================\n");

printf("XianYou%dGeXueShengDeChengJi:\n",nuni);/*显示“现有NUM个学生成绩:"号

printf(,'======================================\n\nu);

output();

)

voidxiugai()/*修改学生成绩*/

(

charxg[lI];

inti;

printf("\nQingshuruyaoxiugaixueshengdexuehao:\n\ii");

gcts(xg);

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

if(strcmp(stu[i].no,xg)==0)break;

if(i==num)

(

prinlf("\nShujuwenjianwugaishengxixi!\n\nQingchongxinshuruxuehao.\n\n");

stop();

return;

xgcj(i);

)

intxgcj(intx)/*修改成绩*/

(

charxueke[5][10]={"Cyuyan","Gaoshu";'Wuli",,,Dianlu","Modian"};

char(*p)[10],c;

intj,k;

p=xueke;

for(;;)

clrscr();

print-);

printf("\t\t\t*****************木******************\n\n")・

printfC'WtChengJi\n");

prin(f("\t\t\tICYuYan\n”);/*C语言*/

printf(°\t\t\t2.GaoShu\n");/*高数*/

printf("\t\t\t3.WuLiW);/*大学物理*/

prinlfCMMM4.DianLu\n");/*电路*/

prinlf("\t\l\【5.MoDian\n");/*模电*/

printf("\t\t\tEsc.FanHui\n\n");/*返回上级

printf('\t\t\l************************************\n\n"),

prinlf("\tQingxuanzeyaoxiugaidechengji(press.Esc):\n");

c=getch();

if(c==27)break;

elseif(c>-l,&&c<-5')

k=c-49;

printf("\nQingshuru%schcngji:\n".p+k);

scanf("%f\&stu[x].score[k]);

printf("\nXiugaihougaixueshcngxinxiwci:\n");

printf("XueHaoXingMingRuXueNianCGaoShuDaWuDianLuMoDian\n");

prjntf(-===================================================================\n");

printf("%-l1s%-1Os%-11d'\stu[x].no,stu[x].name,stu[x].year);

for(j=0;j<5;j++)

printf("%-7.1f*,stu[x].score[j]);

printf("\n");

}

elseprintf("\nXuanZenYouWu.QingChongXuan!\n\nn):

stop();

intfind(charsno[])/*按学号查找*/

{

inti;

for(i=O;i<niim;i++)

if(strcmp(stu[i].no,sno)==0)/*判定两个字符串相等*/

returni;/*查找成功*/

return-1;/*查找失败*/

)

voiddelete1()/*删除学生信息函数*/

(

charcno[l1J;

inti,j;

printf("QingShuRuYaoShanChuDeXueShengXueHao:");请'输入要删J除学生学号”*/

gcts(cno);

i=find(cno);

if(i!=-l)

{for(j=i;j<num;j++)

stu[j]=stu[j+l];

num—;

printf("XianYou%dGeXueShengDeChengnum);/*显示“现有NUM个学生成绩:"*/

outputO;}

else{printf("qingshuruzhengquedexuehao.\n");

stop();}

voidlongji()/*统计界面函数*/

(

inti;

charc2;

while(l)

clrscr();

printf(''\n\n\n\t\l\l************************************\rT);

printf("\t\t\t*TongJi

printf("\t\t\t*1.XueShengPingJunFen*\n");/*计算学生平均分力

printf("\t\t\t*2.KeChengPingJunFen/*计算每门课程平均分*/

ESC.FanHui返回*/

printf(”\t\t\t************************************\n”);

printf("\t\t\tQingXuanZe:\n");/*请选择:♦/

c2=getch();

if(c2=27)break;

switch(c2)

caseT:

tongjil();

printf("\n\nXueShengPingJunFenWei:\n");

printf(,,===========================================\n");

printf("XueHaoXingMingRuXucNianPingJunFenVn");

printf("===========================================\n");

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

printf("%-lIs%-10s%-lld%-10.2f\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave);

stop();

break;

case'2':

tongji2();

break;

default:

printf("XuanZenYouWu.QingChongXuanJVn");/*"选择有误,请重选!”*/

)

)

)

voidtongjil。/*计算每个学生平均分*/

{

inti,j;

for(i=0;i<num:i++)

(

stu[il.ave=O;

for(j=0;j<5;j++)

stuli].avc+=stuli].scorc[j];

stu[i].ave=slu[i].ave/5;

voidtongji2()/*计算每门课程平均分*/

inti,j;

floatsum;

fluaiavec[5];储存每门课平均分*/

fbr(j=O;j<5;j++)

(

suni=0;

tor(i=0;i<num;i++)

sum+=stu[i].score|j];

avcc|j]=sum/num;

)

printf("\n\nGeKePingJunFenWei:\n");/*”各科平均分:*/

printf("===================================\n");

printf("CGaoShuDaWuDianLuMoDian\n");

printf("===================================\n");

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

printf("%-7.1f',avec[i]);

printf("\n");

stop();

)

voidpaixulO/*排序界面*/

(

charc3;

for(;;)

clrscr();

printf("\n\n\n,');

printf("\t\t\t*PaiXu*\n");

prin(f("\t\t\t*1.AnXueHao*\n");/*按学号排序*/

princf("\t\t\t*2.AnPingJunFen*按平均分排序号

3.Andankechcngji*按单科成绩排序刃

printf("\t\t\t*ESC.FanHui*返回*/

printf("\t\t\t*************************************\n\n')

printf("\t\QingXuanZe(pressL2.3.Esc):\n");/*请选择:*/

c3=gctch();

if(c3==27)break;

switch(c3)

caseT:paino();break;

case'2':paiave();break;

case3':paidkcj();break;

default:

printf("\nXuanZenYouWu.QingChongXuan!\n'n");/*选择有误,请重选!*/

stop();

voidpaino()/*按学号排序*/

{/*按学号从低到高冒泡法排序*/

inti.j.k;

for(i=0:i<num;i++)

for(j=0;j<num-1-i;j++)

if(strcmp(stulj].no,stu[j+1].no)>0)

change(jj+l);

printfC'XnPaiXuHouWci:\nM);;*“排疗后为:”*/

output();

)

voidpaiave()/*按平均分排序*/

{/*按平均分从高到低冒泡法排序*/

inii,j;

structstudenttemp;

tongjil();/*计算平均成绩*/

fbr(i=O;i<num;i++)

for(j=0;j<num-i-1;j++)

if(stu[j].ave<stu[j+l].ave)

changc(jj+l);

printf("\n\tPaiXuHouWei:\n"):/*“排序后为:”*/

printfC'\t===============================================\n");

printfC'XtXueHaoXingMingRuXueNianAvePainiing\nn);

printf(',\t=============================================\n");

fbr(i=O;i<num;i++)

printf("\t%-lls%-1Os%-11d%-6.2f%4d\n",stu[i].no,

stu[i].name,stu[i].year,stu[i].ave,i+l);

stop();

)

voidpaidkcj()/*按单科成绩排序*/

{

charc;

inti,j,k;

for(;;)

clrscr();

printf("\n");

printf('\t\t\t************************************\n\n").

printfC,WtDanKeChengJi\n");

printfC'Wtl.CYuYan\n");/*C语言*/

printf("\t\t\t2.GaoShu\nH);/*高数*/

printf("\t\t\t3.WuLi\n");/*大学物理*/

printf(u\t\t\t4.DianLu\nM);/*电路*/

printf(u\t\t\t5.MDDian\n");/*模电*/

printf("\t\t\tEsc.FanHui返回上级*/

printf(''\t\t\t************************************\n\n");

printf("\tQingxuanze(pressi..Esc):\n");

c=ge(ch();

if(c==27)break;

elseif(c>='r&&c<='5')

(

k=c-49;

for(i=0;i<num:i++)

for(j=0;j<nuin-1-i;j++)

if(stu[j].score[k]<stu[j+l].score[k])

change(jj+l);

outputx(k);

)

elseprin(f("\nXuanZenYouWu,QingChongXuan!\n\n");

stop();

voidchangc(inti,intj)/*交换结构体数组中两个统计*/

structstudenttemp;

tcmp=stu[il;

stu[i]=stu[j];

stu|j]=tcmp;

voidoutputx(intk)/*选择输出单科成绩*/

(

charxueke[5][10]={"Cyuyan";,Gaoshu",,'Wuli",,,Dianlu,,,"Modian"};

char(*p)[10];/*定义一个指向包含10个字符型元素一维数组指针变量*/

inti;

p=xueke;

printfC'VnXtPaiXuHouWei:\n"):

printf("\t=============================================\n");

printf(u\tXueHaoXingMingRuXueNian%sPaiMing\n'\p+k);

printfC'\t===============================================\n");

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

printf("\t%-lIs%-10s%-lld%-6.1f%5d\n",stu[i].no,

slu[i].name,stii[i].year,stii[i].score[k],i+l);

voidfind1()/*查找界面函数曾

charc4;

charcno[11enamel10];

inti,j,cyear;

while(1)

clrscr();

prinlf(''\l\t\t************************************\rT);

ChaZhao*\nu);

printf("\t\t\t*1.AnXueHao按学号查找*/

printf(H\t\t\t*2.AnXingMing*\n");/*按姓名查找刃

printf("\t\t\t*3.AnRJXueNian♦\nM);/*按入年查找*/

printf(n\t\t\t*ESC.FanHui返回*/

printf("\t\t\t*****木*****************************

printf("\t\t\tQingXuanZe:\n");/*请选择:*/

c4=getch();

if(c4==27)break;

switch(c4)

caseT:

printfC'ShuRuXueHao:\n");/*"输入学号:”*/

gets(cno);

i=find(cno);

panduani(i);

break;

case2:

printfC'ShuRuXingMing:\n");/*”输入姓名:”*/

gets(cname);

i=findname(cname);

panduani(i);

break;

case3:

printfC'ShuRuRUXueNian:\n");/*“输入入年”*7

scanf(H%d",&cyear);

findyear(cyear);

stop();

break;

default:

printf("XuanZenYouWu,QingChongXuan!\n");/*"选择有误,请重选!”*/

intfindname(charcname[])/*按姓名查找

(

inti;

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

if(strcmp(stu[i].name,cname)==O)/*判定两个字符串相等*/

returni;/*查找成功*/

return-1;/*杳找失败*/

}

voidfindyear(intcyear)

{

inti,j,flag=O;

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

if(stu[i].year==cyear)

{flag=l;break;)

if(flag==O)

{printf("YaoChaZhaoDeXueShengBuCunZai\n");stop();}

else

(

printf("ChaZhaoDaoDeXueShengXinXiWei:\n");/*“查找到学生信息为:"*/

printf("XueHaoXingMingRuXueNianCGaoShuDaWuDianLuMoDian\n");

,

printf("==================================================================\n');

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

if(slu[i].year==cyear)/*判定两个数值相等*/

printf("%-lIs%-1Os%-11d",stu[i].no,stu[i].namc,stu[i].ycar);

for(j=0:j<5;j++)

printf("%-7.1f\stu[i].score|jj);

printf("\n");

)

)

)

)

intpanduani(inti)/*经过i值,判定信息要查找信息是否存在

(

intj;

if(i==-l)

(

prinlf("YaoChaZhaoDeXueShengBuCunZai\n");/*要查找学生不存在刃

s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论