C语言课程设计学生成绩管理系统1.docx
- 文档编号:12450096
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:25
- 大小:19.27KB
C语言课程设计学生成绩管理系统1.docx
《C语言课程设计学生成绩管理系统1.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生成绩管理系统1.docx(25页珍藏版)》请在冰豆网上搜索。
C语言课程设计学生成绩管理系统1
#include
#include
/*strcmp函数原型包含*/
#defineN100
/*定义最大学生人数为100*/
structstudent/*学生结构体定义*/
{
charno[11];/*学号,10位*/
charname[10];/*,3个汉字*/
floatscore[5];/*储存5门功课的成绩*/
floatave;/*储存平均分*/
intyear;/*入学年*/
}stu[N];
intnum;
intpanduani(int);/*通过i的值,判断信息要查找的信息是否存在*/
voidoutput();/*输出学生成绩函数(公共函数)*/
voidinit();/*系统初始化函数*/
voidnewfile();/*建立新的数据文件*/
voidread1();/*从数据文件中读取数据*/
voidweihu();/*维护界面函数*/
voidnew1();/*新增一个学生成绩函数*/
voidxiugai();/*修改学生成绩*/
intxgcj(int);/*修改成绩*/
voiddelete1();/*删除学生信息函数*/
voidtongji();/*统计界面函数*/
voidtongji1();/*计算每个学生平均分*/
voidtongji2();/*计算每门课程的平均分*/
voidpaixu1();/*排序函数*/
voidpaino();/*按学号排序*/
voidpaiave();/*按平均分排序*/
voidpaidkcj();/*按单科成绩排序*/
voidchange(int,int);/*交换结构体数组中的两个记录*/
voidoutputx(int);/*选择输出单科成绩徐修楼编*/
voidfind1();/*查找界面函数*/
intfind(charsno[]);/*按学号查找*/
intfindname(charame[]);/*按查找*/
voidfindyear(intcyear);/*按入学年查找*/
voidsave();/*保存文件*/
voidstop();/*停顿函数*/
voidstop()/*停顿函数(公共函数)*/
{
printf("PressAnyKeyToContinue...\n");
getch();
}
voidoutput()/*输出学生成绩函数(公共函数)*/
{
inti,j;
printf("===================================================================\n");
printf("XueHaoXingMingRuXueNianCGaoShuDaWuDianLuMoDian\n");
printf("===================================================================\n");
for(i=0;i { printf("%-11s%-10s%-11d",stu[i].no,stu[i].name,stu[i].year); for(j=0;j<5;j++) printf("%-7.1f",stu[i].score[j]); printf("\n"); } stop(); } voidinit()/*系统初始化函数*/ { if(access("stu.dat",0))/*判断文件是否存在*/ newfile();/*若不存在,新建数据文件*/ else read1();/*若存在,读取数据*/ } voidnewfile()/*建立新的数据文件*/ { inti; FILE*fp; if((fp=fopen("stu.dat","wb"))==NULL)/*创建二进制文件*/ { printf("ChuangJianShiBai! QingChongXinYunXingChengXu.\n");/*显示“创建文件失败,请重新运行程序”*/ exit(0);/*终止程序*/ } printf("ChuCiYunXing,JinXingShuJuChuShiHua...\n");/*显示“初次运行,进行数据初始化...”*/ stop(); clrscr(); printf("QingShuRuXueShengRenShu: ");/*显示“请输入学生人数: ”*/ scanf("%d",&num); for(i=0;i { printf("QingShuRuDi%dGeXueShengDeXueHao: ",i+1);/*显示“请输入第i+1个学生的学号: ”*/ getchar();/*吃回车*/ gets(stu[i].no); printf("XingMing: ");/*显示“: ”*/ gets(stu[i].name); printf("RuXueNian: ");/*显示“入学年”*/ scanf("%d",&stu[i].year); printf("C-YuYanChengJi: ");/*显示“C语言成绩”*/ scanf("%f",&stu[i].score[0]); printf("GaoShuChengJi: ");/*显示“高数成绩”*/ scanf("%f",&stu[i].score[1]); printf("DaWuChengJi: ");/*显示“大物成绩”*/ scanf("%f",&stu[i].score[2]); printf("DianLuChengJi: ");/*显示“电路成绩”*/ scanf("%f",&stu[i].score[3]); printf("MoDianChengJi: ");/*显示“模电成绩”*/ scanf("%f",&stu[i].score[4]); fwrite(&stu[i],1,sizeof(structstudent),fp);/*把第i+1名学生成绩写入文件*/ } fclose(fp); clrscr(); printf("======================================\n"); printf("GungCaiShuRuDe%dGeShuJuWei: \n",num);/*显示“刚才输入的num个数据为: ”*/ printf("======================================\n\n"); output(); } voidread1()/*从数据文件中读取数据*/ { FILE*fp; num=0;/*num为数据文件中实际存储的学生人数*/ fp=fopen("stu.dat","r"); if(fp==NULL)/*数据文件不存在*/ { printf("WenJianDaKaiShiBai! ChongXinYunXingChengXu\n");/*显示“文件打开失败! 重新运行程序”*/ exit(0); } 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(); } voidweihu()/*维护界面函数*/ { charc1; while (1) { clrscr(); printf("\n\n\n\t\t\t*****************************\n"); printf("\t\t\t*WeiHu*\n"); printf("\t\t\t*1.XinZeng*\n");/*新增*/ printf("\t\t\t*2.ShanChu*\n");/*删除(按学号)*/ printf("\t\t\t*3.XiuGai*\n");/*修改*/ printf("\t\t\t*ESC.FanHui*\n");/*返回*/ printf("\t\t\t*****************************\n"); printf("\t\t\tQingXuanZe: \n");/*请选择: */ c1=getch(); if(c1==27) break; switch(c1) { case'1': new1(); break; case'2': delete1(); case'3': xiugai(); break; default: printf("XuanZenYouWu,QingChongXuan! \n");/*“选择有误,请重选! ”*/ } } } voidnew1()/*新增一个学生成绩函数*/ { printf("QingShuRuXueHao: ");/*显示“请输入学号: ”*/ getchar();/*吃回车*/ gets(stu[num].no); printf("XingMing: ");/*显示“: ”*/ gets(stu[num].name); printf("RuXueNian: ");/*显示“入学年”*/ scanf("%d",&stu[num].year); printf("C-YuYanChengJi: ");/*显示“C语言成绩”*/ scanf("%f",&stu[num].score[0]); printf("GaoShuChengJi: ");/*显示“高数成绩”*/ scanf("%f",&stu[num].score[1]); printf("DaWuChengJi: ");/*显示“大物成绩”*/ scanf("%f",&stu[num].score[2]); printf("DianLuChengJi: ");/*显示“电路成绩”*/ scanf("%f",&stu[num].score[3]); printf("MoDianChengJi: ");/*显示“模电成绩”*/ scanf("%f",&stu[num].score[4]); num++; printf("\n======================================\n"); printf("XianYou%dGeXueShengDeChengJi: \n",num);/*显示“现有NUM个学生的成绩: ”*/ printf("======================================\n\n"); output(); } voidxiugai()/*修改学生成绩*/ { charxg[11]; inti; printf("\nQingshuruyaoxiugaixueshengdexuehao: \n\n"); gets(xg); for(i=0;i if(strcmp(stu[i].no,xg)==0)break; if(i==num) { printf("\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(); printf("\n"); printf("\t\t\t************************************\n\n"); printf("\t\t\tChengJi\n"); printf("\t\t\t1.CYuYan\n");/*C语言*/ printf("\t\t\t2.GaoShu\n");/*高数*/ printf("\t\t\t3.WuLi\n");/*大学物理*/ printf("\t\t\t4.DianLu\n");/*电路*/ printf("\t\t\t5.MoDian\n");/*模电*/ printf("\t\t\tEsc.FanHui\n\n");/*返回上级*/ printf("\t\t\t************************************\n\n"); printf("\tQingxuanzeyaoxiugaidechengji(press1.2.3.4.5.Esc): \n"); c=getch(); if(c==27)break; elseif(c>='1'&&c<='5') { k=c-49; printf("\nQingshuru%schengji: \n",p+k); scanf("%f",&stu[x].score[k]); printf("\nXiugaihougaixueshengxinxiwei: \n"); printf("XueHaoXingMingRuXueNianCGaoShuDaWuDianLuMoDian\n"); printf("===================================================================\n"); printf("%-11s%-10s%-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\n"); stop(); } } intfind(charsno[])/*按学号查找*/ { inti; for(i=0;i if(strcmp(stu[i].no,sno)==0)/*判断两个字符串相等*/ returni;/*查找成功*/ return-1;/*查找失败*/ } voiddelete1()/*删除学生信息函数*/ { charo[11]; inti,j; printf("QingShuRuYaoShanChuDeXueShengXueHao: ");/*“请输入要删除的学生学号”*/ gets(cno); i=find(cno); if(i! =-1) {for(j=i;j stu[j]=stu[j+1]; num--; printf("XianYou%dGeXueShengDeChengJi: \n",num);/*显示“现有NUM个学生的成绩: ”*/ output();} else{printf("qingshuruzhengquedexuehao.\n"); stop();} } voidtongji()/*统计界面函数*/ { inti; charc2; while (1) { clrscr(); printf("\n\n\n\t\t\t************************************\n"); printf("\t\t\t*TongJi*\n"); printf("\t\t\t*1.XueShengPingJunFen*\n");/*计算学生平均分*/ printf("\t\t\t*2.KeChengPingJunFen*\n");/*计算每门课程平均分*/ printf("\t\t\t*ESC.FanHui*\n");/*返回*/ printf("\t\t\t************************************\n"); printf("\t\t\tQingXuanZe: \n");/*请选择: */ c2=getch(); if(c2==27)break; switch(c2) { case'1': tongji1(); printf("\n\nXueShengPingJunFenWei: \n"); printf("===========================================\n"); printf("XueHaoXingMingRuXueNianPingJunFen\n"); printf("===========================================\n"); for(i=0;i printf("%-11s%-10s%-11d%-10.2f\n",stu[i].no,stu[i].name,stu[i].year,stu[i].ave); stop(); break; case'2': tongji2(); break; default: printf("XuanZenYouWu,QingChongXuan! \n");/*“选择有误,请重选! ”*/ } } } voidtongji1()/*计算每个学生平均分*/ { inti,j; for(i=0;i { stu[i].ave=0; for(j=0;j<5;j++) stu[i].ave+=stu[i].score[j]; stu[i].ave=stu[i].ave/5; } } voidtongji2()/*计算每门课程的平均分*/ { inti,j; floatsum; floatavec[5];/*储存每门课的平均分*/ for(j=0;j<5;j++) { sum=0; for(i=0;i sum+=stu[i].score[j]; avec[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(); } voidpaixu1()/*排序界面*/ { charc3; for(;;) { clrscr(); printf("\n\n\n"); printf("\t\t\t*************************************\n"); printf("\t\t\t*PaiXu*\n"); printf("\t\t\t*1.AnXueHao*\n");/*按学号排序*/ printf("\t\t\t*2.AnPingJunFen*\n");/*按平均分排序*/ printf("\t\t\t*3.Andankechengji*\n");/*按单科成绩排序*/ printf("\t\t\t*ESC.FanHui*\n");/*返回*/ printf("\t\t\t*************************************\n\n"); printf("\t\QingXuanZe(press1.2.3.Esc): \n");/*请选择: */ c3=getch(); if(c3==27)break; switch(c3) { case'1': paino();break; case'2': paiave();break; case'3': paidkcj();break; default: printf("\nXuanZenYouWu,QingChongXuan! \n\n");/*选择有误,请重选! */ stop(); } } } voidpaino()/*按学号排序*/ {/*按学号从低到高冒泡法排序*/ inti,j,k; for(i=0;i for(j=0;j if(strcmp(stu[j].no,stu[j+1].no)>0) change(j,j+1); printf("\nPaiXuHouWei: \n");/*“排序后为: ”*/ output(); } voidpaiave()/*按平均分排序*/ {/*按平均分从高到低冒泡法排序*/ inti,j; structstudenttemp; tongji1();/*计算平均成绩*/ for(i=0;i for(j=0;j if(stu[j].ave change(j,j+1); pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 成绩管理系统