还剩32页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
C语言课程设计学生成绩管理系统完整版case T:new1;break;case2:delete1;case3:xiugai;break;default:选择有误,请重选!选择有误,请重选!*/printf\n;/*新增一个学生成绩函数*/void new1/*”请输入学号:”;/*显示”请输入学号:“*/printfgetsstu[num].no;姓名:;/*显示”姓名:“*/printfgetsstu[num].name;班级:;/*显示班级:*/printfgetsstu[num].grade;专业:;/*显示”专业:“*/printfgetsstu[num].pro;“入年:;/*显示“入年”*/printfscanf%d,stu[num].year;语言成绩:;/*显示”语言成绩”*/printfC Cscanf%f1,stu[num].score
[0];高数成绩:;/*显示”高数成绩”*/printfscanf%f,stu[num].score[l];大物成绩:;/*显示”大物成绩”/printfscanf%fn,stu[num].score
[2];电路成绩:;/*显示”电路成绩”*/printfscanf%f1,stu[num].score
[3];模电成绩:;/*显示”模电成绩”*/printfscanf%f1,stu[num].score
[4];num++;printf\n======================================\n;现有个学生的成绩:显示现有个学生的printf%1\n”,num;/*NUM成绩*/printf=========================\n\n;outputQ;/*修改学生成绩*/void xiugaicharxg[ll];int i;请输入要修改学生的学号:printf\n\n\n;getsxg;fori=0;inum;i++ifstrcmpstu[i].no,xg==0break;ifi==num数据文件无该生信息!请重新输入学号printf\n\n\n.\n\n;stopO;return;xgcji;/*修改成绩*/void xgcjintx语言高数商物理物电路模电};char xueke
[5]
[10]={”C7char*p
[10],c;int jk;9p=xueke;for;;printfn\nn;printfn\t\t\t成绩\n;语言*/printf\t\t\t语言\n;/*Cl.cprintf\t\t\t.高数/*高数*/2\n;printf\t\t\t物理/*大学物理*/3\n;printf\t\t\t.电路4/*电路*/\n;printf\t\t\t.模电5/*模电*/\n;printfn\t\t\t.返回9返回上级*/\n\n”;/*printf\t\t\t************************************\n\n•请选择要修改的成绩按printfH\t
1.
2.
3.
4.
5.9:\nn;c=getchar;getchar;ifc==19,break;二else ifc=Tc5k=c-49;请输入成绩:printf\n%s\n”,p+k;scanf%f,stu[x].score[k];修息为:printf\n\n;学号姓名班级专业入年语言高数大物电路模电printf C\n”;printf=========================\n;======================printf%s%s%s%s%d,stu[x].no,stu[x].name,stu[x].grade,stu[x].pro,stu[x].year;forj=0;j5;j++printf%.lf,stu[x].score[j];printf\n;选择有误,请重选!else printfn\n\n\n;;stop按学号查找*/int findcharsno[]/*int i;fori=0;inum;i++判断两个字符串相等*/ifstrcmpstu[i].no,sno==0/*查找成功*/return i;/*查找失败*/return-1;/*/*册除学生信息函数*/voiddeletel Uchar cno[ll];int i,j;请输入要删除的学生学号:;/*请输入要删除的学生学号printfgetscno;i=findcno;ifi!=-l{forj=i;j num;j++stu[j]=stu[j+l];num—;”现有%个学生的成绩:/*显示现有个学生printf1\n\num;NUM的成绩*/outputO;}”请输入正确的学号.else{printf\n;stop;}/*统计界面函数*/void tongjiint i;char c2;whilel printfn\n\n\n\t\t\t*******************************\n.•.学生平均分计算学生平均分*/1*\n;/*课程平均分计算每门课程平均分*/
2.*\n/*统计.返回9请选择:prmtf\t\t\t*******************************\n•printfn\t\t\t\n;清请选择:*/c2=getchar;getcharQ;ifc2==,9,break;switchc2case T:tongjilQ;学生平均分为:printf\n\n\n;printf====================================\n;学号姓名入年平均分printf W;printf=========================================\n;fori=0;inum;i++printfn%s%s%d%.2f\nH,stu[i].no,stu[i].name,stu[i].year,stu[i].a ve;stop;break;case2:tongji2;break;default:(选择有误,请重选)选择有误,请重选!*/printf\n;/*”计算每个学生平均分*/void tongjilQ/*int ij;fori=0;inum;i++{stu[i].ave=0;forj=0;j5;j++stu[i].ave+=stu[i].score[j];stu[i].ave=stu[i].ave/5;/*计算每门课程的平均分*/void tongji2int ij;float sum;储存每门课的平均分*/float avec
[5];/*forj=0;j5;j++sum=O;fori=0;inum;i++sum+=stu[i].score[j];avec[j]=sum/num;各科平均分各科平均分”*/printf”\n\n\n;/*”printf===================\n;语言高数大物电路模电printfC\n”;printf============================\n;fori=0;i5;i++printf%-
7.1f,avec[i];printf\n;stop;/*排序界面*/void paixulcharc3;for;;printf\n\n\n;printf\t\t\t51c51c•#includestdio.h#includestdlib.h#includeio.h#includestring.h函数原型包含*//*strcmp#define N100/*定义最大学生人数为100*//*学生结构体定义*/struct student/*学号位*/char no[ll];,10姓名,个汉字*/char name
[10];/*3班级*/char grade
[10];/*专业*/char pro
[20];/*储存门功课的成绩*/float score
[5];/*5储存平均分*/float ave;/*入年*/int year;/*}stu[N];int num;/*经过的值,判断信息要查找的信息是void panduaniint;i否存在*//*输出学生成绩函数公共函数*/void output;/*系统初始化函数*/void init;排序printfn\t\t\t**\nn;.按学号排序按学号排序*/printf\t\t\t*1*\n;/*按平均分排序按平均分排序*/printf\t\t\t*
2.*\n”;/*按单科成绩排序按单科成绩排printf\t\t\t*
3.*\n;/*序*/.返回返回*/printfH\t\t\t*9*\n”;/*printfn\t\t\t***********************************\n\ri•(、请选择(按))请选择*/printf
1.
2.
3.9:\11;/*c3=getchar;getchar;ifc3==19,break;switchc3case T:paino;break;case!2f:paiave;break;case3f:paidkcj;break;default:printf(n\n选择有误,请重选!\n\n);/*选择有误,请重选!*/stop();/*按学号排序*/void paino{/*按学号从低到高冒泡法排序*/int ij;fori=0;inum;i++forj=0;jnum-l-i;j++ifstrcmpstu[j].no,stu[j+1].no0changejj+l;排序后为:排序后为”*/printf\n\n”;/*output;/*按平均分排序*/void paiave{/*按平均分从高到低冒泡法排序*/int ij;计算平均成绩*/tongjil;/*fori=0;inum;i++forj=0;jnum-i-l;j++ifstu[j].avestu[j+1].avechangejj+l;排序后为:排序后为叫/printf\n\t\n/*”printfn\t===\n;(、学号姓名入年平均分排名)printf\n”;==\n”;fori=0;inum;i++printf\t%s%s%d%.2f%4d\n,stu[i].no,stu[i].name,stu[i].year,stu[i].ave,i+1;stop;/*按单科成绩排序*/void paidkcjOcharc;int i,j,k;whilelprintfn\nn;printfn\t\t\t************************************\n\n•单科成绩printfn\t\t\t\n;语言语言*/printfn\t\t\t LC\nn;/*C.高数/*高数*/printfn\t\t\t2\nn;.物理/*大学物理*/printf\t\t\t3\n;.电路/*电路*/printf\t\t\t4\n;.模电/*模电*/printf\t\t\t5\n;.返回printfn\t\t\t9返回上级*/\n\n;/*printfn************************************\n\n■请选择按printf”\t L2・3・4・
5.9:\n;c=getchar;getchar;ifc==191break;else ifc=Tc=5k=c-49;fori=0;inum;i++forj=0;j num-l-i;j++ifstu[j].score[k]stu[j+l].score[k]changejj+l;outputxk;选择有误,请重选!else printfn\n\n\n;stop;/*交换结构体数组中的两个记录*/void changeint i,int jstructstudent temp;temp=stu[i];stu[i]=stu[j];stu[j]=temp;/*选择输出单科成绩*/void outputxintk语言“,“高数“,“物理“,“电路“,“模char xueke
[5]
[10]={C电”};/*定义一个指向包含个字符型元素的一维数组的指char*p
[10];10针变量*/int i;p=xueke;排序后为:printf\n\t\n”;printf\t=================================\n;学号姓名入年排名printf\t%s\n”,p+k;printfn\t===\n;fori=0;inum;i++printfn\t%-lls%-l Os%-11d%-
6.1f%5d\n\stu[i].no,stu[i].name,stu[i].y ear,s tu[i].score[k],i+1;/*查找界面函数*/void find1charc4;char cno[ll],cname
[10];inti,cyear;whilelpnntf\t\t\t*************************************\n•.按学号查找*;/*按学号查找*/
1.按姓名查找按姓名查找*/2*\n;/*按入年查找按入年查找*/
3.*\n;/*查找.返回9请printff1\t\t\t*************************************\n•printfn\t\t\t选择:请选择*/\n;/*c4=getchar;getcharQ;ifc4==57break;switchc4case T:输入学号:输入学号printf\n”;/*””*/getscno;i=findcno;panduanii;break;case2:输入姓名:输入姓名:“*/printf\n”;/*getscname;i=findnamecname;panduanii;break;case3:输入入年:输入入年”*/printf\n”;/*”scanf%d,cyear;findyearcyear;break;default:选择有误,请重选选择有误,请重选!”刃printf!\n;/*按姓名查找*/int findnamecharcname[]/*inti;fori=0;inum;i++判断两个字符串相等*/ifstrcmpstu[i].name,cname==O/*/*查找成功*/return i;/*查找失败*/return-1;void findyearintcyearint i,j,flag=O;fori=0;inum;i++ifstu[i].year==cyear{flag=1;break;}ifflag==0要查找的学生不存在{printf\n”;stop;}else”查找到的学生信息为:查找到的学生信息为printf\n”;/*”*/学号姓名班级专业入年语言高数大物电路模电printf C\n;printf====================================================,;fori=0;inum;i++/*判断两个数值相等*/ifstu[i].year=cyearprintf%s%s%s%s%d,stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year;forj=0;j5;j++printf%.lf,stu[i].score[j];printf\n;/*经过的值,判断信息要查找的信息是否存在*/void panduaniinti iintj;ifi==-l要查找的学生不存在要查找的学生不存在*/printf\n”;/*stop;else”查找到的学生信息为查找到的学生信息为*/printf\n;/*”学号姓名班级专业入年语言高数大物电路printf C模电W”;printf===============================\n;======================printf%s%s%s%s%d,stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year;forj=0;j5;j++printf%.lf,stu[i].score[j];/*建立新的数据文件*/void newfile;/*从数据文件中读取数据*/void read1;/*维护界面函数*/void weihu;/*新增一个学生成绩函数*/void new1;/*修改学生成绩*/void xiugai;/*修改成绩*/void xgcjint;void delete1;/*删除学生信息函数*//*统计界面函数*/void tongji;/*计算每个学生平均分*/void tongjilQ;/*计算每门课程的平均分*/void tongji2;/*排序函数*/void paixulQ;/*按学号排序*/void paino;/*按平均分排序*/void paiave;/*按单科成绩排序*/void paidkcjO;/*交换结构体数组中的两个记录*/void changeint,int;/*选择输出单科成绩*/void outputxint;/*查找界面函数*/void find1;/*按学号查找*/int findcharsno[];按姓名查找*/int findnamecharcname[];/*/*按入年查找*/void findyearintcyear;/*保存文件*/void save;/*停顿函数*/void stop;printf\n;stop;/*保存文件*/void saveinti;FILE*fp;^^匕!气山尸=^创立二进制文件*/iffp=
101.^,”1111/*创立文件失败,请重新运行程序/*显示创立文件printf.\n;失败,请重新运行程序”*//*终止程序*/exitO;fori=0;inum;i++名学生成绩写入fwritestu[i],l,sizeofstruct student,fp;/*W1+1文件*/fclosefp;/*主控菜单*/void maincharc;whilel欢迎登陆学生成绩管理系统printf\t\t*************************\n“・制作王清珍,陈超,路梓裕,卢诚知,任卓辉printf\n\t\t*******\n“;printfn\n\t\t*£*KL*KL**1•KL*K1**1*J*KL*V、〃、—、、力、—、[、〃、、力、力、、力、rj*4rj*rj*rj*rj*rj*rj*rj*rj*4^Jw r^w rj*r^w维护维护*/printfH\t\t*
1.*\n;/*统计统计*/printfn\t\t*
2.*\n/*主菜单.排序printfn\t\t*3查找排序*/printfH\t\t*
4.*\n”;/*存盘退出存盘退出*/
9.*\n;/*printfn\t\tKJK1KI^1vt vfvt vf^1KI vtvt vlvt K1KI K1KI vtKI KIKI vfKJ K1力、?、、〃、、、力、?、?、、、〃、q\nn;请选择:请选择*/printf\t\t\n;/*c=getchar;getchar;switchccase T:weihu;break;case2:tongjiQ;break;case3:paixulQ;break;case4:find1;break;case9:save;exitO;break;default:选择有误,请重选!选择有误,请重选!”*/printf\n”;/*”/*停顿函数公共函数*/void stopprintfPressAny KeyTo Continue..An;getcharQ;/*输出学生成绩函数公共函数*/void outputinti,j;printf”===========================================================.”;”学号姓名班级专业入年语言高数大物电路模电printf C\n”;printf===============================================.,,;fori=0;inum;i++printf%s%s%s%s%d,stu[i].no,stu[i].name,stu[i].grade,stu[i].pro,stu[i].year;forj=0;j5;j++printf%.If,stu[i].score[j];printf\n;stop;/*系统初始化函数*/void init/*判断文件是否存在*/ifaccessstu.dat,O/*若不存在,新建数据文件*/newfile;else/*若存在,读取数据*/readl;/*建立新的数据文件*/void newfileinti;FILE*fp;二二仓立二进制文件*/iffp=fopen”stu.dat,“wb NULL/*U创立文件失败,请重新运行程序/*显示创立文件printf.\n失败,请重新运行程序”*//*终止程序*/exitO;初次运行,进行数据初始化显示初次运行,进行printf...\n;/*数据初始化…”*/stop;”请输入学生人数;/*显示”请输入学生人数”*/printfscanf%d,num;fori=0;inum;i++请输入第个学生的学号/*显示”请输入第个printf%1i+1;i+1学生的学号:*//*吃回车*/getchar;getsstu[i].no;姓名:;/*显示”姓名:“*/printfgetsstu[i].name;班级:;/*显示班级:*/printfgetsstu[i].grade;“专业:;/*显示”专业:“*/printfgetsstu[i].pro;入年显示“入年”*/printf n:;/*scanf%d,stu[i].year;语言成绩:;/*显示语言成绩”*/printfnC“Cscanf%f,stu[i].score
[0];高数成绩:;/*显示”高数成绩”*/printfscanf%f,stu[i].score[l];大物成绩:;/*显示”大物成绩”*/printfscanfn%f,stu[i].score
[2];电路成绩:;/*显示”电路成绩”*/printfscanf%f,stu[i].score
[3];模电成绩:;/*显示”模电成绩”*/printfscanf%f,stu[i].score
[4];/*把第名学生成绩写入文fwritestu[i],1,sizeofstruct student,fp;i+1件*/fclosefp;printf========================\n;刚才输入的个数据为/*显示”刚才输入的printf%d\n”,num;num个数据为”*/printf====================\n\iT;output;/*从数据文件中读取数据*/void read1FILE*fp;为数据文件中实际存储的学生人数*/num=O;/*numfp=fopenstu.dat,r;数据文件不存在*/iffp==NULL/*文件打开失败!重新运行程序/*显示”文件打开失败!printf\n”;重新运行程序”*/exitO;文件结束检测”*/while!feoffp/*freadstu[num],1,sizeofstruct student,fp;num++;num--;fcloselp;printf\t\t\t=======================================\n;printf”现有个学生的成绩/*显示现有个学生的成\t\t\t%d\n”,num;NUM绩”*/\n\n;output;/*维护界面函数*/void weihucharc1;whilelpnntf\n\n\n\t\t\t************************\n•维护*\n;printf\t\t\t*新增*/新增*\n”;/*printf\t\t\t*
1.删除按学号*/删除*\n”;/*printfH\t\t\t*
2.修改*/.修改*\n;/*printf\t\t\t*3返回*/.返回*\rT;/*printf\t\t\t*9printf\t\t\t************************\n•请选择请选择printfn\t\t\t\n;/**/cl=getchar;getchar;ifcl=9break;switchcl。
个人认证
优秀文档
获得点赞 0