版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赢战月考 2026年秋季高三道德与法治部编版第六单元单元检测卷(含答案)
- 2027届江苏省英语中考鲁教版考前提分模拟卷(含答案)
- 2027年陕西省语文初三题型突破卷(含答案)
- 2027年台湾省英语九年级模拟演练卷(含答案)
- 2027年中考山东省语文初三考前提分卷(含答案)
- 2027年吉林省语文中考押题密卷(含答案)
- 2027年广东省语文中考冲刺模拟卷(含答案)
- 2026计算机岗面试高频题题库备考指南易错题集
- 2026计算机岗事业编面试易错题集 题库含答案
- 2026 综合岗面试易错题集 题库 含答案含解析
- 6.3 文化自信日益增强课件(25张内嵌视频)- 2026-2027学年统编版道德与法治九年级上册
- 中国邮政集团有限公司笔试真题
- 2026年秋季开学初中开学第一课(感恩教育)课件
- 2026年药师执业资格考试真题题库及答案
- 免疫与免疫规划课件-2026-2027学年八年级上册生物学人教版
- 2026年某大型央企十五五企业级数据编织(Data Fabric)架构与主动元数据管理平台初步设计方案新版
- 火电厂施工方案大全
- 原材料质量控制措施
- 中国航空工业集团校招面试题及答案
- 雨课堂学堂在线学堂云《人工智能通识(西南交通)》单元测试考核答案
- 醒后卒中课件
评论
0/150
提交评论