版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南理工高校本科生课程设计报告题目:同学成果管理系统同学姓名:***学号:***********专业:信管班级:12-1指导老师:安葳鹏2013年7月10日名目TOC\o”1-3"\h\z\uHYPERLINK\l”_Toc281638515"C语言课程设计任务书ﻩPAGEREF_Toc281638515\h3HYPERLINK\l”_Toc281638516"同学成果管理系统ﻩPAGEREF_Toc281638516\h4HYPERLINK\l"_Toc281638517"【摘要】ﻩPAGEREF_Toc281638517\h4HYPERLINK\l"_Toc281638518”1.论文题目:同学成果管理系统 PAGEREF_Toc281638518\h4HYPERLINK\l"_Toc281638519"2。技术参数、设计步骤:ﻩPAGEREF_Toc281638519\h4HYPERLINK\l"_Toc281638520"3.设计理论分析方法: PAGEREF_Toc281638520\h5HYPERLINK\l"_Toc281638521”4。设计结论及分析:ﻩPAGEREF_Toc281638521\h5HYPERLINK\l"_Toc281638522”4.1各个函数功能简洁分析:ﻩPAGEREF_Toc281638522\h5HYPERLINK\l"_Toc281638523"4。1.1主菜单函数(main):ﻩPAGEREF_Toc281638523\h5HYPERLINK\l"_Toc281638524”4.1.2输入函数(input):ﻩPAGEREF_Toc281638524\h5HYPERLINK\l”_Toc281638525"4.1.3输出函数(display): PAGEREF_Toc281638525\h6HYPERLINK\l"_Toc281638526”4。1。4查找(find):ﻩPAGEREF_Toc281638526\h6HYPERLINK\l"_Toc281638527"4。1。5修改(change): PAGEREF_Toc281638527\h6HYPERLINK\l”_Toc281638528"4.1.6删除(del):ﻩPAGEREF_Toc281638528\h6HYPERLINK\l"_Toc281638529”4.1。7添加(add):ﻩPAGEREF_Toc281638529\h6HYPERLINK\l”_Toc281638530"4.1.8读入(read):ﻩPAGEREF_Toc281638530\h6HYPERLINK\l"_Toc281638531”4。1.9保存(save):ﻩPAGEREF_Toc281638531\h6HYPERLINK\l"_Toc281638532"4.1.10排序(sort):ﻩPAGEREF_Toc281638532\h6HYPERLINK\l"_Toc281638533"4.1.11学号排序(sortx):ﻩPAGEREF_Toc281638533\h7HYPERLINK\l”_Toc281638534"4.1.12不及格输出(no_pass): PAGEREF_Toc281638534\h7HYPERLINK5.参考文献:ﻩPAGEREF_Toc281638536\h7HYPERLINK\l"_Toc281638537"6.附录: PAGEREF_Toc281638537\h8HYPERLINK\l”_Toc281638538"6.1程序部分:ﻩPAGEREF_Toc281638538\h8C语言课程设计任务书课程名称C语言课程设计设计题目同学成果管理系统一、教学要求1.巩固和加深同学对C语言课程的基本知识的理解和掌握2。掌握C语言编程和程序调试的基本技能3。利用C语言进行基本的软件设计4。掌握书写程序设计说明文档的能力5.提高运用C语言解决实际问题的能力二、设计资料及参数每个同学在老师供应的课程设计题目中任意选择一题,独立完成,题目选定后不行更换。某班同学成果管理,包括以下功能:1、从键盘输入包括学号、姓名、各门课程成果(不少于2门),并将其保存在磁盘文件student里2、打开文件后,计算每个人的总分和平均分,排序并保存3、具有在文件中进行单项查询或多项查询的功能(即能够依据给定的关键字,如姓名等找出满意条件的纪录)4、具有输出文件数据信息的功能三、设计要求及成果1.分析课程设计题目的要求2.写出简略设计说明3。编写程序代码,调试程序使其能正确运行4.设计完成的软件要便于操作和使用5。设计完成后提交课程设计报告四、进度支配1、选择课程设计题目,分析课题的要求2、编程3、编程及调试4、写课程设计报告5、提交课程设计报告(打印稿及电子稿)五、评分标准1.依据课程设计完成情况,必须有可运行的程序.2.依据课程设计报告的质量评定。六、建议参考资料《C语言程序设计》,贾宗璞,电子工业出版社同学成果管理系统【摘要】通过课程设计,让我对C语言有了更深的理解,让我们把学到的理论应用于简略实践中,熬炼了我们各方面的能力,从而让我们更快提高。通过一些简洁函数的叠加构成了功能比较完备的同学成果管理系统,从输入处处理再到输出,你将体会到完善的真正含义。同学成果管理系统具有以下简洁功能:1.从键盘输入包括学号、姓名、各门课程成果(不少于2门),并将其保存在磁盘文件里2.打开文件后,计算每个人的总分,排序并保存3。具有在文件中进行单项查询或多项查询的功能(即能够依据给定的关键字,如姓名等找出满意条件的纪录)4。具有输出文件数据信息的功能1.论文题目:同学成果管理系统2.技术参数、设计步骤:本程序包含输入(input)、输出(display)、查找(find)、修改(change)、删除(del)、添加(add)、读入(read)、保存(save)等基本功能。先分别定义各种全局函数和全局变量now,同时定义结构体及结构体数组(本程序为实现简洁操作暂定义长度为3).其中now作为现有同学信息的一个标记作用尤为重要。每次执行完函数就返回主菜单.共含有四个开关语句,依次在main,display,find,change中,使界面更友好,用户操作更简洁。设计共分四步完成,依次为简洁设计,添加细节,上机调试,先改错再修改。遇到的问题可以查资料或向老师提问.3.设计理论分析方法:应有全局的概念,拿到题目首先进行总体功能分析,只有对整体功能有了全局把握才能去里自己用那部分知识进行编写。这个阶段好比盖房子,如果这个阶段做好了,说明房子已改好了。剩下任务就是怎么去装修了。确定了大体方向接下来就是功能实现阶段了,即所谓装修阶段。同样需要逐一地先写出能实现此功能的简洁程序。比如同学成果管理系统,先写出最简洁的输入、输出、排序等功能函数。然后通过简洁函数的相互调用、嵌套构成一个新功能的简洁函数。淡然这中间要加很多其他东西,这就需要我们多看书,多问老师同学啦。等到全部功能都能“正常”(按提示正确输入)实现,再考虑一些细节问题,例如:如果全部都能简洁运行,可是有些时候有些输入错误或正确它都运行,这就需要我们通过改写程序使之在正确输入时运行,在错误输入时给出出错提示.就像性别问题,输入M/W时运行,输入其他就不让它运行,同时给出正确输入的提示。这样就好很多了。后面的一一修改就可以了。同时还要考虑到见名知意,如:输入(input)、输出(display)、查找(find)、修改(change)、删除(del)、添加(add)、读入(read)、保存(save)、排序(sort)、按学号排序(sortx)、不及格(no_pass)、输出(shuchu)。当然还有其他问题需要注意,在这里不一一细说.4。设计结论及分析:4.1各个函数功能简洁分析:4.1.1主菜单函数(main):主函数为一个死循环,前几个是功能实现函数,只有9是退出。也就是说每执行完一个函数,他就自动返回主菜单。只有选择9(退出)时才跳出循环.当然每选择一次它就自动清空屏幕,所以运行结果更直观。4.1.2输入函数(input):先输入要添加的同学数量n,同时now标记现有同学的数量。执行n次循环,输入n个同学的信息;其中输入性别时只有为M/W(M为男,W为女,均大写)时才跳出循环。如果出错,有提示信息.最后自动求和并保存。4。1.3输出函数(display):三部分1.按总分名次输出2.按学号挨次输出3.输出有不及格课程的同学4。1。4查找(find):查找分为按学号查找和按姓名查找,查找成功就输出,查找失败就返回,输出提示信息连续输入。4.1.5修改(change):输入学号,然后选择修改项,修改完后,提示用户“是否连续修改”,只有输入N/n时退出,输入其它字符都是连续.4.1.6删除(del):输入要删除同学的学号,如果找到就删除其信息,并提示用户删除成功,如果没找到就提示用户删除失败。4.1。7添加(add):依据信息总容量(结构体数组的长度)和第一次输入的信息量推断是否能连续添加。如果添加后信息已满,则提示用户不能连续添加,同时屏蔽了添加选项。4。1。8读入(read):从文件读入,避开了用户多次大量输入数据.4.1.9保存(save):每次执行完修改信息包括添加、录入、修改、删除等都需要保存信息。当然在每个修改函数最后都需要调用一下保存函数。4.1.10排序(sort):按总成果名次排序(冒泡法排序)。n为要排序的同学数量,为形参.4.1.11学号排序(sortx):按学号先后挨次进行排序(冒泡法排序)。n为要排序的同学数量,为形参.4。1.12不及格输出(no_pass):输出不及格的同学信息.4.1.13输出(shuchu):输出第n个同学信息。5.参考文献:《C语言程序设计》,贾宗璞,电子工业出版社6。附录:6。1程序部分:#include<stdio.h〉#include<conio。h>#include<string.h〉#include<stdlib.h>#definemax3voidinput();voiddisplay();voidfind();voidchange();voiddel();voidread();voidsave();voidadd();voidsort(intn);voidsortx(intn);voidshuchu(intn);voidno_pass();intnow=0;/*标记位*/structstudent{ﻩintnum;ﻩ[20];ﻩcharsex;ﻩintNO;ﻩfloatscore1; floatscore2; floatsum;};structstudentstu[max+1];voidmain()/*主函数(菜单)*/{ﻩintas; doﻩ{ printf(”\n\t\t\t欢迎使用同学成果管理系统\n\n");ﻩ printf(”\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.查找学员信息\n\t\t\t\t4.修改学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6。添加学员信息\n\t\t\t\t7.读入学员信息\n\t\t\t\t8。保存学员信息\n\t\t\t\t9。退出");ﻩ printf(”\n\n\n\t\t\t\t请选择”);ﻩﻩscanf(”%d",&as);ﻩ switch(as)ﻩ {ﻩﻩcase1:system("cls");input();break;ﻩﻩcase2:system("cls");display();break;ﻩ case3:system("cls");find();break;ﻩﻩcase4:system("cls”);change();break; ﻩcase5:system("cls”);del();break;ﻩﻩcase6:system("cls");add();break;ﻩﻩcase7:system("cls");read();break;ﻩﻩcase8:system(”cls");save();break;ﻩﻩcase9:system("cls”);exit(0);ﻩﻩ}ﻩ}ﻩwhile(1);}ﻩvoidinput()/*输入函数*/ {ﻩ inti,n,j;ﻩfor(i=0;;i++)ﻩﻩ{ﻩﻩprintf(”\n请输入添加的同学数量(在%d以内):",max—now);scanf("%d",&n);ﻩﻩif(n>max)printf(”\n请确保添加的数量在%d以内\t!!!",max);ﻩ if(n〈=max)break;ﻩ }now=n; ﻩfor(i=0;i〈n;i++)ﻩ {ﻩﻩﻩprintf("\n\t\t\t\t输入第%d个同学的信息\n”,i+1); ﻩﻩprintf(”\n输入同学的学号:"); ﻩﻩscanf("%d”,&stu[i]。num); ﻩgetchar();ﻩﻩﻩprintf("\n输入同学的姓名:");ﻩﻩ gets(stu[i].name);ﻩ ﻩprintf("\n请输入同学的性别(M/W):”);ﻩﻩ for(j=0;;j++)ﻩﻩ {ﻩﻩﻩﻩstu[i]。sex=getchar();ﻩﻩﻩ if(stu[i]。sex=='M'||stu[i].sex=='W')break;ﻩﻩﻩ elseprintf("\n\t\t\t请确保输入性别的正确性(区分大小写)!!!"); ﻩﻩ getchar();ﻩ ﻩ} ﻩﻩprintf("\n请输入同学成果1:");ﻩﻩﻩscanf("%f",&stu[i]。score1);ﻩﻩﻩprintf("\n请输入同学成果2:”);ﻩ ﻩscanf(”%f”,&stu[i].score2);ﻩﻩ stu[i].sum=stu[i].score1+stu[i].score2; ﻩ}ﻩﻩsort(n); ﻩsave();system("cls”);ﻩ}ﻩvoiddisplay()/*整体输出函数*/ﻩ{ ﻩintas,i;ﻩﻩprintf("\n\t\t\t班级同学成果列表\n\n\n”); printf("\n\t\t\t\t请选择\n\n\t\t\t1.按名次输出\n\t\t\t2.按学号输出\n\t\t\t3。不及格的同学信息\n\t\t\t"); ﻩscanf("%d",&as);ﻩ switch(as) ﻩ{ ﻩcase1:sort(now);for(i=0;i〈now;i++)shuchu(i);break;ﻩﻩcase2:sort(now);sortx(now);for(i=0;i<now;i++)shuchu(i);break;ﻩﻩﻩcase3:no_pass();break;ﻩﻩ}ﻩ}ﻩvoidfind()/*查询函数*/ﻩ{ﻩﻩintnum,as,i;ﻩ charname[20];ﻩﻩprintf(”\n\t\t\t请选择\n\n\n");ﻩﻩprintf(”\n\t\t\t1.按学号查找\n\t\t\t2。按姓名查找\n\t\t\t");scanf(”%d",&as);ﻩ switch(as)ﻩﻩ{ ﻩcase1:system(”cls");printf("请输入要查找的学号:");ﻩ ﻩdoﻩﻩﻩ { ﻩﻩﻩﻩscanf("%d”,&num);ﻩﻩﻩfor(i=0;i<now;i++)ﻩ ﻩﻩﻩ{ﻩ ﻩﻩif(num==stu[i].num)ﻩﻩﻩ ﻩ{ ﻩﻩﻩ shuchu(i);break; ﻩﻩﻩﻩ}ﻩﻩﻩﻩ }ﻩﻩ ﻩif(i>=now)ﻩﻩﻩﻩﻩprintf("\n\t\t该生信息不存在!!!请重新输入学号:”); ﻩﻩﻩ}while(i〉=now);break; ﻩcase2:system("cls");getchar();printf(”请输入要查找的同学姓名:"); ﻩ doﻩﻩ {ﻩ ﻩ gets(name); ﻩﻩfor(i=0;i<now;i++) ﻩ {ﻩﻩﻩﻩif(strcmp(name,stu[i].name)==0)ﻩﻩﻩ {ﻩ ﻩﻩ shuchu(i);break; ﻩ ﻩﻩ} ﻩﻩﻩ}if(i>=now) ﻩﻩﻩprintf(”\n\n\t\t\t该生信息不存在!!!请重新输入姓名:"); ﻩﻩ}while(i>=now);break;ﻩﻩ}ﻩ} voidchange()/*修改函数*/ {ﻩﻩintnum,as,j,i,m; chara; printf(”\n\t\t\t请输入要修改的同学的学号:");ﻩﻩscanf("%d",&num);ﻩ for(i=0;i<now;i++)ﻩﻩ{ﻩ if(stu[i]。num==num)ﻩﻩﻩ{ﻩﻩﻩ for(j=0;j〈6;j++) ﻩﻩﻩ{ﻩﻩﻩﻩﻩprintf(”\n\t\t\t请选择\n\n\n");printf("\n\t\t\t1.修改学号\n\t\t\t2.修改姓名\n\t\t\t3。修改性别(M/W)\n\t\t\t4.修改成果1\n\t\t\t5。修改成果2\n\t\t\t");ﻩ ﻩ ﻩscanf("%d",&as); ﻩ ﻩswitch(as)ﻩﻩﻩﻩﻩ{ﻩ ﻩﻩﻩcase1:printf(”请输入新的学号:");scanf("%d”,&stu[i]。num);break;ﻩﻩ ﻩﻩcase2:printf(”请输入新的姓名:”);getchar();gets(stu[i]。name);break;ﻩﻩﻩﻩ case3:printf("请输入新的性别:");getchar();ﻩ ﻩﻩ ﻩfor(m=0;;m++)ﻩﻩﻩ ﻩ ﻩ ﻩﻩﻩﻩﻩ {ﻩﻩﻩﻩstu[i]。sex=getchar(); ﻩ if(stu[i].sex=='M'||stu[i].sex=='W')break;ﻩﻩ ﻩelseprintf(”\n\t\t\t请确保输入性别的正确性(区分大小写)!!!");ﻩ ﻩﻩﻩﻩﻩﻩ ﻩﻩ ﻩﻩﻩgetchar();ﻩ ﻩﻩﻩﻩﻩﻩﻩﻩﻩ ﻩﻩﻩ}break;ﻩﻩﻩ ﻩcase4:printf(”请输入新成果1:");scanf("%f",&stu[i].score1);break;ﻩﻩﻩﻩﻩcase5:printf(”请输入新成果2:”);scanf("%f",&stu[i].score2);break;ﻩ ﻩ }ﻩﻩﻩﻩﻩstu[i].sum=stu[i].score1+stu[i].score2; ﻩﻩ ﻩprintf("\n是否连续修改该生信息?(Y/N)”);ﻩ ﻩﻩﻩgetchar();ﻩ ﻩﻩﻩ a=getchar();ﻩﻩﻩ ﻩif(a==’N'||a==’n’)break; ﻩ }ﻩﻩﻩsort(now);ﻩﻩﻩsave();ﻩﻩ ﻩbreak;ﻩﻩﻩ} ﻩ}ﻩﻩif(i〉=now)ﻩ ﻩprintf("\n\n\t\t\t\t学号输入有误!!!\n\n"); } voiddel()/*删除函数*/ {ﻩ intnum,i; ﻩprintf("\n\t\t\t输入要删除的同学学号"); ﻩscanf("%d",&num); ﻩﻩfor(i=0;i<=now;i++) ﻩ{ﻩ ﻩ if(i>=now) ﻩ ﻩ{ﻩﻩ ﻩ printf("\n\n\n\t\t\t学号输入有误!!!删除失败!!!\n\n"); ﻩﻩﻩﻩbreak;ﻩﻩ ﻩ} ﻩﻩ if(stu[i].num==num)ﻩﻩﻩﻩ{ﻩ ﻩ if(i==now-1)ﻩ ﻩﻩnow-=1;ﻩﻩﻩﻩ elseﻩ ﻩ ﻩ{ﻩﻩﻩ ﻩﻩstu[i]=stu[now-1]; ﻩﻩﻩﻩnow-=1; ﻩﻩ ﻩ}ﻩﻩﻩﻩprintf("\n\n\t\t\t删除成功!!!\n\n”);sort(now); ﻩﻩbreak;ﻩ ﻩﻩ}ﻩﻩﻩ}ﻩ ﻩﻩsave();ﻩ} voidadd()/*添加函数*/ﻩ{ﻩﻩcharch;ﻩﻩintj; ﻩprintf("\n\t\t\t\t还能添加%d个同学信息!!!\n\n",max-now);ﻩﻩif(now〈max)ﻩﻩ{ ﻩdoﻩﻩ{ﻩﻩﻩprintf(”\n\t\t\t\t输入新插入同学的信息\n”); ﻩprintf("\n输入同学的学号:");ﻩﻩ scanf("%d”,&stu[now].num); ﻩgetchar(); ﻩﻩprintf("\n输入同学的姓名:");ﻩﻩﻩgets(stu[now].name);ﻩ ﻩprintf("\n输入同学的性别(M/W):");ﻩ for(j=0;;j++)ﻩﻩﻩ{ ﻩﻩﻩstu[now].sex=getchar(); ﻩﻩﻩif(stu[now].sex==’M’||stu[now].sex=='W')break;ﻩﻩ elseprintf(”\n\t\t\t请确保输入性别的正确性(区分大小写)!!!");ﻩﻩﻩ getchar();ﻩﻩﻩ}ﻩﻩﻩprintf(”\n输入同学的成果1:");ﻩﻩﻩscanf("%f",&stu[now].score1);ﻩprintf("\n输入同学的成果2:");ﻩﻩﻩscanf(”%f”,&stu[now]。score2);ﻩstu[now].sum=stu[now]。score1+stu[now]。score2;ﻩﻩﻩnow=now+1;sort(now);ﻩﻩﻩif(now〉=max) ﻩﻩ{ ﻩﻩﻩprintf(”\n\n\n\t\t存储空间已满无法连续添加!!!\n\n"); ﻩﻩbreak; ﻩﻩ} ﻩﻩprintf("\n\t\t\t是否连续添加?(Y/N)");ﻩﻩﻩgetchar(); ﻩch=getchar();ﻩ }ﻩﻩwhile(ch!='n'||ch!=’n');ﻩ }ﻩ} voidsave()/*文件保存函数*/ﻩ{ﻩﻩFILE*fp;/*fp为文件指针*/ﻩﻩinti; ﻩif((fp=fopen("stu_infer",”wb"))==NULL) { ﻩ printf("\n\n\t\t\t文件打开失败!!!");ﻩﻩﻩreturn;ﻩ }ﻩ for(i=0;i<max+1;i++)ﻩﻩﻩif(fwr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度宠物用品连锁店承包经营服务协议4篇
- 二零二五版明星代言合同合作方责任与义务协议4篇
- 建设工程设计合同(2篇)
- 聚氨酯管壳施工方案
- 二零二五版数码产品典当借款服务协议4篇
- 2025年度个人贷款还款计划合同模板8篇
- 中央处理器GPU:性能跃迁与行业应用的深度剖析 头豹词条报告系列
- 班会安全教育模板
- 二零二五年度民间担保机构与企业合作协议4篇
- 鲸的自述200字5篇
- 《消防设备操作使用》培训
- 新交际英语(2024)一年级上册Unit 1~6全册教案
- 2024年度跨境电商平台运营与孵化合同
- 2024年电动汽车充电消费者研究报告-2024-11-新能源
- 湖北省黄冈高级中学2025届物理高一第一学期期末考试试题含解析
- 上海市徐汇中学2025届物理高一第一学期期末学业水平测试试题含解析
- 稻壳供货合同范本
- 《采气树基础知识》课件
- 超龄员工用工免责协议书
- 机械工程师招聘笔试题及解答(某大型国企)
- 软件运维考核指标
评论
0/150
提交评论