C语言课程设计学生学籍管理系统.docx
《C语言课程设计学生学籍管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计学生学籍管理系统.docx(10页珍藏版)》请在冰豆网上搜索。
C语言课程设计学生学籍管理系统
2013
XXXXXX学院课程设计任务书
[文档副标题]
XXXXX
分析系统功能,绘制系统功能结构框架图
1.1、分析系统功能
1.2、结构框架图
程序代码以及界面形式
2.1程序代码如下
2.2、界面形式
三、使用说明
四、日志
五、心得体会
六、参考文献
(1)用户进入主菜单后,就会在看到,菜单选项中添加有系统的各项功能,进入的应的选项就可进行相应的操作.其主要功能有:
1、录入学生信息
2、删除学生信息
3、查询学生信息
4、学生信息排序
5、改学生信息
6、保存退出系统
2)用户选择所需操作的选项,进入相应的操作界面,在这里用户就可开始进行操作。
主菜单
#include"stdio.h"
#include"conio.h"
#include"string.h"
#include"stdlib.h"
#definePFprintf
#defineSFscanfstaticintn,i;
structaddress_book
{
charname[20];
intnum;
charsex;
charclas[40];
longtelephone;
charaddr[40];
}stud[200];
voidadd()
charj;
front1:
system("cls");/*清屏*/PF("\n");
PF("\n请输入要添加的姓名:
");
SF("%s",stud[n].name);
PF("\n请输入要添加的学号(8位):
")
SF("%d",&stud[n].num);
PF("\n请输入要添加的性别(F/M):
");SF("\n%c",&stud[n].sex);
PF("\n请输入要添加的班级:
SF("%s",&stud[n].clas);
PF("\n请输入要添加的电话号码:
");SF("%ld",&stud[n].telephone);
PF("\n请输入要添加的地址:
SF("%s",stud[n].addr);getchar();
n++;
PF("是否继续(Y/N)?
:
/*再输入记录*/
/*查找记录*/
/*删除记录*/
j=getchar();getchar();if(j=='y'||j=='Y')gotofront1;
}
voiddel()
{intk=0,m,i;charj;
front2:
system("cls");/*清屏*/
PF("\n请输入要删除的学号:
");scanf("%d",&m);
getchar();
for(i=0;iif(m==stud[i].num){k=1;break;}if(k==1){for(k=i;k{stud[k]=stud[k+1];}n--;PF("已删除\n\n");}else{PF("找不到要删除的记录!\n");PF("按回车键返回:");getchar();}PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront2;}voidfind(){inti,k,s=0;charj;front3:s=0;system("cls");/*清屏*/PF("\n请输入要查询的学号:");SF("%d",&k);for(i=0;iif(k==stud[i].num)地址{PF("姓名学号性别班级电话\n");PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);s=1;}if(s==0)PF("查无此人!\n");getchar();PF("是否继续查询(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront3;getchar();}voidarrange(){intk,i;structaddress_bookt;地址system("cls");/*清屏*/PF("姓名学号性别班级电话\n");for(k=0;kfor(i=0;iif(stud[i].num>stud[i+1].num){t=stud[i];stud[i]=stud[i+1];stud[i+1]=t;}elsecontinue;for(i=0;i<=n-1;i++)if(stud[k].num!=0)PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);PF("按回车键返回!");getchar();getchar();}voidchange(){intk=0,m;charj;front5:system("cls");/*清屏*/PF("\n请输入要修改记录的学号:");SF("%d",&m);getchar();/*查找*//*修改*/for(i=0;iif(m==stud[i].num){k=1;break;}if(k==1){PF("\n");PF("\n请输入修改后的姓名:");SF("%s",stud[i].name);PF("\n请输入修改后的学号:");SF("%d",&stud[i].num);PF("\n请输入修改后的性别(F/M):");SF("\n%c",&stud[i].sex);PF("\n请输入修改后的班级:");SF("%s",&stud[i].clas);PF("\n请输入修改后的电话号码:");SF("%ld",&stud[i].telephone);PF("\n请输入修改后的地址:");SF("%s",stud[i].addr);PF("修改成功\n");getchar();}if(k==0){PF("找不到要修改的记录!\n");PF("按回车键返回:");getchar();}getchar();PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront5;}voidmain()charj;PF("\n\n\n\n\n\n\t\t\t欢迎使用学生学籍管理系统");PF("\n\n\n\t\t\t\tPF("\n\n\n\t\t\t\tPF("\n\n\n\n\n\t制作人:刘健");2008年6月");按回车键进入主菜单:");getchar();loop:system("cls");PF("\n");PF("\t\t\t\t************\n");PF("\t\t\t\t*主菜单*\n");PF("\t\t\t\t************\n");PF("\t\t1:录入学生信息2:删除学生信息\n\n");PF("\t\t3:查询学生信息4:学生信息排序\n\n");PF("\t\t5:修改学生信息6:保存退出系统\n\n");PF("\t请选择[1/2/3/4/5/6]:");j=getchar();if(j=='\n')gotoloop;/*返回主菜单*/switch(j){case'1':add();gotoloop;/*返回主菜单*/case'2':del();gotoloop;case'3':find();gotoloop;case'4':arrange();gotoloop;case'5':change();gotoloop;case'6':{FILE*fp;fp=fopen("student.dat","w");for(i=0;i{fwrite(&stud[i],sizeof(structaddress_book),1,fp);}fclose(fp);exit(0);}default:gotoloop;}}学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。用户打开程序,进入主界面(如图1)(1)、按回车进入主菜单,列出各项功能(2)、输入1进入录入界面,用户即可录入信息,当录入完即会提示“是否继续”,如果输入“Y”或者“y”,则会继续录入,若输入“N”或者“n”则会退出到主菜单。(2)、在主菜单中,输入2,则会进入删除界面,输入要删除的学生的学号即可将该学生的信息删除。(3)、在主菜单中,输入3,则会进入查询界面,输入要查的学生的学号即可查询到信息。(4)、在主菜单中,输入4,则会进入进入学生信息排序,在这里会显示按学号由小到大排列出的所有学生的信息。(5)、在主菜单中,输入5,则会进入学生信息修改界面,输入想修改学生的学号后,就可在这里可以对该学生信息进行修改。(6)、在主菜单中,输入6,则会退出系统,并且系统会自动对信息进行保存。6月23日星期一从今天起,正式开始做课程设计了。但坐到电脑前想开始做时,却不懂如何开始写起,都感到有点陌生了。因为前一阵一直在忙于各科的考试,好久没碰C语言了,都开始有生疏感了。但还是试着在电脑上编了下,光要写个主函数还很吃力,更头痛的吃力的结果还换来了很多错误,本想编译下,试试的,结果错误警告一大堆。鉴于此,我还是决定先把书再好好看下,“工欲善其事,必先利其器”嘛!月24日星期二昨天看了一天的书,又加上今天看的,可却连一半还没看完。我是按部就班的顺序往下看的,但因为书的前半部分大多是基础知识,因此在晚上上课时依旧不知如何编写折腾了一晚上,想编写要调用的函数的,试着编了好多,但都是些到处是错误的程序,根本没法用。而且编的时候还是发现自己好多东西都忘记了,因此觉得还是得接着去看书,没辙,还是先把书吃透,把基本程理论再实践吧!月25日星期三今天又是啃了一天的书,本还想去机房试试的呢,结果都没来得及去,刚够把书看完。今天重点把数组、函数和文件部分看了下。晚上上机的时候在机器上试了下,并为我的主函数编了个结构体数组,用来存录入的信息。同时今晚在调试主函数时发现我的主函数没有清屏的功能,所有工作都在同一屏幕上。问了同学,为里面加了个清屏的语句,但要加这语句得另加个头文件,问为什么要加这头文件,他也不懂,只知道就是这样规定的,并且这些规定都是得记住的。还是学得不够多,得慢慢充实自己!6月26日星期四下午C语言考试,复习了一上午,丁点课程设计也没碰。等下午考完试直奔机房,编写了两小时,只给我的程序加了个添加了个“录入学生信息”的函数。在做时候碰到了不少的问题。主要是我的程序一次只能录入一个学生信息,好不容易加了个可以继续录入的语句,可又碰到了新的问题。当我录入学生信息的前三项后,就直接进入“是否继续录入”。我怀疑是有肯能在定义数组长度时定义太大了,当我把它缩小后再编译、连接、运行时居然成功了,可我现在还没确定到底时什么原因。月27日星期五又碰到新问题了。我把其他要调用的函数也加进去了,但是在用的时候发现加进去的那些函数都不能用,就一添加函数在运行时是正常的,而其他的进入是可以,但在执行的时候,它就会出来警告,说不能被读。自己找,也请同学帮忙找了,但都没找出毛病。碰这问题实在是难办,因为不能执行,我也就不知道这些函数在这里运行是否会正常,也就不知道是否需要改动。6月30日星期一关于“警告”的问题到现在还没解决,有点心烦意乱了,改了下程序,可问题又多了。在“查找”项里也出现了问题,在查找时候即使是查找一个人,它却也会每次都会把所查找的人给找出后,接着又会把其他人的信息以“查无此人”显示出来。反复检查下发现好像是算法的问题。是在循环里的时候出了错,它自己不停了,非得把所有的运行一遍在停。在我加了停止条件后问题总算是得到解决了。可“警告的问题今天还是没解决掉。7月1号星期二“警告”的问题困扰好久了,真是头痛,都快被它给崩溃了。今天上课时,我又检查和调试了下,可还是没找到问题在哪儿。自己是搞不定了,只能是请教老师了。虽然向老师去请教的人很多,但还是被我逮到机会了,让老师帮我看了下,检查发现原来是在调用函数和主函数中所定义的类型产生了差异。将被掉函数里的改过来后问题久解决了。7月2号星期三程序差不多搞定了,就等答辩了!准备答辩至于还是在调试程序,检查下是否会有遗漏的毛病。但目前为止还没有找到。去答辩的人已经有很多了,顺利通过的也不少。有点安奈不住了,想去答辩,可还是有点担心。为了一次通过也不急着去答辩,反正人多,轮到我还不知道要等多久,还是静下心来再把程序检查下吧。7月3号星期四昨天想答辩来着,可是答辩的人实在是太多,把老师围得严严实实的,想必他们都急着回家,而我又不着急,就不和他们去抢着去答辩了,大家都在那儿挤一块儿,天又这么热,虽然开可空调在那儿也不好受,还是接着检查我的程序。今天检查时候还真检查出了个警告,虽然每次编译之后都是0个错误0个警告,但在编译之后实际是会显示一个警告的只是没仔细去看。但问题也不大,对程序也没影响的,只是我重复对文件进行了定义,其实是不必要的,删除那个定义就解决了。7月4号星期五现在是万事俱备,只欠答辩了。下午一上课,我就在那儿等着答辩了。老师一来我就去答辩了,坐那儿也没紧张的感觉了,因为对程序已经太熟悉了,胸有成竹了。结果与意料一样顺利通过答辩,虽然谈不上什么很了不起的事,但心里还是有点小喜悦的,为这课程设计都做了两星期了,光是程序就不知改了多少回,其中的困难也只有自己知道了。现在都搞定了,呵呵!两周的课程过起来其实也是很快的。这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。并不是这些问题多难,而是不够心细。因此做课程设计、编程时,它还考验并锻炼我们的心细程度。经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。[1]谭浩强.编着.C程序设计.北京:清华大学出版社,1991[2]谭浩强.编着.C程序设计题解与上机指导.北京:清华大学出版社,1992[3]潭浩.田淑清编着.PASCAL语言程序设计〔第二版〕.北京:高等教育出版社,1998[4]HerbertSchildt.着戴健鹏译.C语言大全〔第二版〕.北京:电子工业出版社,1994
if(m==stud[i].num){k=1;break;}if(k==1)
{for(k=i;k{stud[k]=stud[k+1];}n--;PF("已删除\n\n");}else{PF("找不到要删除的记录!\n");PF("按回车键返回:");getchar();}PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront2;}voidfind(){inti,k,s=0;charj;front3:s=0;system("cls");/*清屏*/PF("\n请输入要查询的学号:");SF("%d",&k);for(i=0;iif(k==stud[i].num)地址{PF("姓名学号性别班级电话\n");PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);s=1;}if(s==0)PF("查无此人!\n");getchar();PF("是否继续查询(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront3;getchar();}voidarrange(){intk,i;structaddress_bookt;地址system("cls");/*清屏*/PF("姓名学号性别班级电话\n");for(k=0;kfor(i=0;iif(stud[i].num>stud[i+1].num){t=stud[i];stud[i]=stud[i+1];stud[i+1]=t;}elsecontinue;for(i=0;i<=n-1;i++)if(stud[k].num!=0)PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);PF("按回车键返回!");getchar();getchar();}voidchange(){intk=0,m;charj;front5:system("cls");/*清屏*/PF("\n请输入要修改记录的学号:");SF("%d",&m);getchar();/*查找*//*修改*/for(i=0;iif(m==stud[i].num){k=1;break;}if(k==1){PF("\n");PF("\n请输入修改后的姓名:");SF("%s",stud[i].name);PF("\n请输入修改后的学号:");SF("%d",&stud[i].num);PF("\n请输入修改后的性别(F/M):");SF("\n%c",&stud[i].sex);PF("\n请输入修改后的班级:");SF("%s",&stud[i].clas);PF("\n请输入修改后的电话号码:");SF("%ld",&stud[i].telephone);PF("\n请输入修改后的地址:");SF("%s",stud[i].addr);PF("修改成功\n");getchar();}if(k==0){PF("找不到要修改的记录!\n");PF("按回车键返回:");getchar();}getchar();PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront5;}voidmain()charj;PF("\n\n\n\n\n\n\t\t\t欢迎使用学生学籍管理系统");PF("\n\n\n\t\t\t\tPF("\n\n\n\t\t\t\tPF("\n\n\n\n\n\t制作人:刘健");2008年6月");按回车键进入主菜单:");getchar();loop:system("cls");PF("\n");PF("\t\t\t\t************\n");PF("\t\t\t\t*主菜单*\n");PF("\t\t\t\t************\n");PF("\t\t1:录入学生信息2:删除学生信息\n\n");PF("\t\t3:查询学生信息4:学生信息排序\n\n");PF("\t\t5:修改学生信息6:保存退出系统\n\n");PF("\t请选择[1/2/3/4/5/6]:");j=getchar();if(j=='\n')gotoloop;/*返回主菜单*/switch(j){case'1':add();gotoloop;/*返回主菜单*/case'2':del();gotoloop;case'3':find();gotoloop;case'4':arrange();gotoloop;case'5':change();gotoloop;case'6':{FILE*fp;fp=fopen("student.dat","w");for(i=0;i{fwrite(&stud[i],sizeof(structaddress_book),1,fp);}fclose(fp);exit(0);}default:gotoloop;}}学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。用户打开程序,进入主界面(如图1)(1)、按回车进入主菜单,列出各项功能(2)、输入1进入录入界面,用户即可录入信息,当录入完即会提示“是否继续”,如果输入“Y”或者“y”,则会继续录入,若输入“N”或者“n”则会退出到主菜单。(2)、在主菜单中,输入2,则会进入删除界面,输入要删除的学生的学号即可将该学生的信息删除。(3)、在主菜单中,输入3,则会进入查询界面,输入要查的学生的学号即可查询到信息。(4)、在主菜单中,输入4,则会进入进入学生信息排序,在这里会显示按学号由小到大排列出的所有学生的信息。(5)、在主菜单中,输入5,则会进入学生信息修改界面,输入想修改学生的学号后,就可在这里可以对该学生信息进行修改。(6)、在主菜单中,输入6,则会退出系统,并且系统会自动对信息进行保存。6月23日星期一从今天起,正式开始做课程设计了。但坐到电脑前想开始做时,却不懂如何开始写起,都感到有点陌生了。因为前一阵一直在忙于各科的考试,好久没碰C语言了,都开始有生疏感了。但还是试着在电脑上编了下,光要写个主函数还很吃力,更头痛的吃力的结果还换来了很多错误,本想编译下,试试的,结果错误警告一大堆。鉴于此,我还是决定先把书再好好看下,“工欲善其事,必先利其器”嘛!月24日星期二昨天看了一天的书,又加上今天看的,可却连一半还没看完。我是按部就班的顺序往下看的,但因为书的前半部分大多是基础知识,因此在晚上上课时依旧不知如何编写折腾了一晚上,想编写要调用的函数的,试着编了好多,但都是些到处是错误的程序,根本没法用。而且编的时候还是发现自己好多东西都忘记了,因此觉得还是得接着去看书,没辙,还是先把书吃透,把基本程理论再实践吧!月25日星期三今天又是啃了一天的书,本还想去机房试试的呢,结果都没来得及去,刚够把书看完。今天重点把数组、函数和文件部分看了下。晚上上机的时候在机器上试了下,并为我的主函数编了个结构体数组,用来存录入的信息。同时今晚在调试主函数时发现我的主函数没有清屏的功能,所有工作都在同一屏幕上。问了同学,为里面加了个清屏的语句,但要加这语句得另加个头文件,问为什么要加这头文件,他也不懂,只知道就是这样规定的,并且这些规定都是得记住的。还是学得不够多,得慢慢充实自己!6月26日星期四下午C语言考试,复习了一上午,丁点课程设计也没碰。等下午考完试直奔机房,编写了两小时,只给我的程序加了个添加了个“录入学生信息”的函数。在做时候碰到了不少的问题。主要是我的程序一次只能录入一个学生信息,好不容易加了个可以继续录入的语句,可又碰到了新的问题。当我录入学生信息的前三项后,就直接进入“是否继续录入”。我怀疑是有肯能在定义数组长度时定义太大了,当我把它缩小后再编译、连接、运行时居然成功了,可我现在还没确定到底时什么原因。月27日星期五又碰到新问题了。我把其他要调用的函数也加进去了,但是在用的时候发现加进去的那些函数都不能用,就一添加函数在运行时是正常的,而其他的进入是可以,但在执行的时候,它就会出来警告,说不能被读。自己找,也请同学帮忙找了,但都没找出毛病。碰这问题实在是难办,因为不能执行,我也就不知道这些函数在这里运行是否会正常,也就不知道是否需要改动。6月30日星期一关于“警告”的问题到现在还没解决,有点心烦意乱了,改了下程序,可问题又多了。在“查找”项里也出现了问题,在查找时候即使是查找一个人,它却也会每次都会把所查找的人给找出后,接着又会把其他人的信息以“查无此人”显示出来。反复检查下发现好像是算法的问题。是在循环里的时候出了错,它自己不停了,非得把所有的运行一遍在停。在我加了停止条件后问题总算是得到解决了。可“警告的问题今天还是没解决掉。7月1号星期二“警告”的问题困扰好久了,真是头痛,都快被它给崩溃了。今天上课时,我又检查和调试了下,可还是没找到问题在哪儿。自己是搞不定了,只能是请教老师了。虽然向老师去请教的人很多,但还是被我逮到机会了,让老师帮我看了下,检查发现原来是在调用函数和主函数中所定义的类型产生了差异。将被掉函数里的改过来后问题久解决了。7月2号星期三程序差不多搞定了,就等答辩了!准备答辩至于还是在调试程序,检查下是否会有遗漏的毛病。但目前为止还没有找到。去答辩的人已经有很多了,顺利通过的也不少。有点安奈不住了,想去答辩,可还是有点担心。为了一次通过也不急着去答辩,反正人多,轮到我还不知道要等多久,还是静下心来再把程序检查下吧。7月3号星期四昨天想答辩来着,可是答辩的人实在是太多,把老师围得严严实实的,想必他们都急着回家,而我又不着急,就不和他们去抢着去答辩了,大家都在那儿挤一块儿,天又这么热,虽然开可空调在那儿也不好受,还是接着检查我的程序。今天检查时候还真检查出了个警告,虽然每次编译之后都是0个错误0个警告,但在编译之后实际是会显示一个警告的只是没仔细去看。但问题也不大,对程序也没影响的,只是我重复对文件进行了定义,其实是不必要的,删除那个定义就解决了。7月4号星期五现在是万事俱备,只欠答辩了。下午一上课,我就在那儿等着答辩了。老师一来我就去答辩了,坐那儿也没紧张的感觉了,因为对程序已经太熟悉了,胸有成竹了。结果与意料一样顺利通过答辩,虽然谈不上什么很了不起的事,但心里还是有点小喜悦的,为这课程设计都做了两星期了,光是程序就不知改了多少回,其中的困难也只有自己知道了。现在都搞定了,呵呵!两周的课程过起来其实也是很快的。这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。并不是这些问题多难,而是不够心细。因此做课程设计、编程时,它还考验并锻炼我们的心细程度。经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。[1]谭浩强.编着.C程序设计.北京:清华大学出版社,1991[2]谭浩强.编着.C程序设计题解与上机指导.北京:清华大学出版社,1992[3]潭浩.田淑清编着.PASCAL语言程序设计〔第二版〕.北京:高等教育出版社,1998[4]HerbertSchildt.着戴健鹏译.C语言大全〔第二版〕.北京:电子工业出版社,1994
{stud[k]=stud[k+1];
n--;PF("已删除\n\n");
else
PF("找不到要删除的记录!
\n");
PF("按回车键返回:
");getchar();
j=getchar();getchar();if(j=='y'||j=='Y')gotofront2;
voidfind()
{inti,k,s=0;charj;
front3:
s=0;
PF("\n请输入要查询的学号:
SF("%d",&k);
for(i=0;iif(k==stud[i].num)地址{PF("姓名学号性别班级电话\n");PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);s=1;}if(s==0)PF("查无此人!\n");getchar();PF("是否继续查询(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront3;getchar();}voidarrange(){intk,i;structaddress_bookt;地址system("cls");/*清屏*/PF("姓名学号性别班级电话\n");for(k=0;kfor(i=0;iif(stud[i].num>stud[i+1].num){t=stud[i];stud[i]=stud[i+1];stud[i+1]=t;}elsecontinue;for(i=0;i<=n-1;i++)if(stud[k].num!=0)PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);PF("按回车键返回!");getchar();getchar();}voidchange(){intk=0,m;charj;front5:system("cls");/*清屏*/PF("\n请输入要修改记录的学号:");SF("%d",&m);getchar();/*查找*//*修改*/for(i=0;iif(m==stud[i].num){k=1;break;}if(k==1){PF("\n");PF("\n请输入修改后的姓名:");SF("%s",stud[i].name);PF("\n请输入修改后的学号:");SF("%d",&stud[i].num);PF("\n请输入修改后的性别(F/M):");SF("\n%c",&stud[i].sex);PF("\n请输入修改后的班级:");SF("%s",&stud[i].clas);PF("\n请输入修改后的电话号码:");SF("%ld",&stud[i].telephone);PF("\n请输入修改后的地址:");SF("%s",stud[i].addr);PF("修改成功\n");getchar();}if(k==0){PF("找不到要修改的记录!\n");PF("按回车键返回:");getchar();}getchar();PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront5;}voidmain()charj;PF("\n\n\n\n\n\n\t\t\t欢迎使用学生学籍管理系统");PF("\n\n\n\t\t\t\tPF("\n\n\n\t\t\t\tPF("\n\n\n\n\n\t制作人:刘健");2008年6月");按回车键进入主菜单:");getchar();loop:system("cls");PF("\n");PF("\t\t\t\t************\n");PF("\t\t\t\t*主菜单*\n");PF("\t\t\t\t************\n");PF("\t\t1:录入学生信息2:删除学生信息\n\n");PF("\t\t3:查询学生信息4:学生信息排序\n\n");PF("\t\t5:修改学生信息6:保存退出系统\n\n");PF("\t请选择[1/2/3/4/5/6]:");j=getchar();if(j=='\n')gotoloop;/*返回主菜单*/switch(j){case'1':add();gotoloop;/*返回主菜单*/case'2':del();gotoloop;case'3':find();gotoloop;case'4':arrange();gotoloop;case'5':change();gotoloop;case'6':{FILE*fp;fp=fopen("student.dat","w");for(i=0;i{fwrite(&stud[i],sizeof(structaddress_book),1,fp);}fclose(fp);exit(0);}default:gotoloop;}}学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。用户打开程序,进入主界面(如图1)(1)、按回车进入主菜单,列出各项功能(2)、输入1进入录入界面,用户即可录入信息,当录入完即会提示“是否继续”,如果输入“Y”或者“y”,则会继续录入,若输入“N”或者“n”则会退出到主菜单。(2)、在主菜单中,输入2,则会进入删除界面,输入要删除的学生的学号即可将该学生的信息删除。(3)、在主菜单中,输入3,则会进入查询界面,输入要查的学生的学号即可查询到信息。(4)、在主菜单中,输入4,则会进入进入学生信息排序,在这里会显示按学号由小到大排列出的所有学生的信息。(5)、在主菜单中,输入5,则会进入学生信息修改界面,输入想修改学生的学号后,就可在这里可以对该学生信息进行修改。(6)、在主菜单中,输入6,则会退出系统,并且系统会自动对信息进行保存。6月23日星期一从今天起,正式开始做课程设计了。但坐到电脑前想开始做时,却不懂如何开始写起,都感到有点陌生了。因为前一阵一直在忙于各科的考试,好久没碰C语言了,都开始有生疏感了。但还是试着在电脑上编了下,光要写个主函数还很吃力,更头痛的吃力的结果还换来了很多错误,本想编译下,试试的,结果错误警告一大堆。鉴于此,我还是决定先把书再好好看下,“工欲善其事,必先利其器”嘛!月24日星期二昨天看了一天的书,又加上今天看的,可却连一半还没看完。我是按部就班的顺序往下看的,但因为书的前半部分大多是基础知识,因此在晚上上课时依旧不知如何编写折腾了一晚上,想编写要调用的函数的,试着编了好多,但都是些到处是错误的程序,根本没法用。而且编的时候还是发现自己好多东西都忘记了,因此觉得还是得接着去看书,没辙,还是先把书吃透,把基本程理论再实践吧!月25日星期三今天又是啃了一天的书,本还想去机房试试的呢,结果都没来得及去,刚够把书看完。今天重点把数组、函数和文件部分看了下。晚上上机的时候在机器上试了下,并为我的主函数编了个结构体数组,用来存录入的信息。同时今晚在调试主函数时发现我的主函数没有清屏的功能,所有工作都在同一屏幕上。问了同学,为里面加了个清屏的语句,但要加这语句得另加个头文件,问为什么要加这头文件,他也不懂,只知道就是这样规定的,并且这些规定都是得记住的。还是学得不够多,得慢慢充实自己!6月26日星期四下午C语言考试,复习了一上午,丁点课程设计也没碰。等下午考完试直奔机房,编写了两小时,只给我的程序加了个添加了个“录入学生信息”的函数。在做时候碰到了不少的问题。主要是我的程序一次只能录入一个学生信息,好不容易加了个可以继续录入的语句,可又碰到了新的问题。当我录入学生信息的前三项后,就直接进入“是否继续录入”。我怀疑是有肯能在定义数组长度时定义太大了,当我把它缩小后再编译、连接、运行时居然成功了,可我现在还没确定到底时什么原因。月27日星期五又碰到新问题了。我把其他要调用的函数也加进去了,但是在用的时候发现加进去的那些函数都不能用,就一添加函数在运行时是正常的,而其他的进入是可以,但在执行的时候,它就会出来警告,说不能被读。自己找,也请同学帮忙找了,但都没找出毛病。碰这问题实在是难办,因为不能执行,我也就不知道这些函数在这里运行是否会正常,也就不知道是否需要改动。6月30日星期一关于“警告”的问题到现在还没解决,有点心烦意乱了,改了下程序,可问题又多了。在“查找”项里也出现了问题,在查找时候即使是查找一个人,它却也会每次都会把所查找的人给找出后,接着又会把其他人的信息以“查无此人”显示出来。反复检查下发现好像是算法的问题。是在循环里的时候出了错,它自己不停了,非得把所有的运行一遍在停。在我加了停止条件后问题总算是得到解决了。可“警告的问题今天还是没解决掉。7月1号星期二“警告”的问题困扰好久了,真是头痛,都快被它给崩溃了。今天上课时,我又检查和调试了下,可还是没找到问题在哪儿。自己是搞不定了,只能是请教老师了。虽然向老师去请教的人很多,但还是被我逮到机会了,让老师帮我看了下,检查发现原来是在调用函数和主函数中所定义的类型产生了差异。将被掉函数里的改过来后问题久解决了。7月2号星期三程序差不多搞定了,就等答辩了!准备答辩至于还是在调试程序,检查下是否会有遗漏的毛病。但目前为止还没有找到。去答辩的人已经有很多了,顺利通过的也不少。有点安奈不住了,想去答辩,可还是有点担心。为了一次通过也不急着去答辩,反正人多,轮到我还不知道要等多久,还是静下心来再把程序检查下吧。7月3号星期四昨天想答辩来着,可是答辩的人实在是太多,把老师围得严严实实的,想必他们都急着回家,而我又不着急,就不和他们去抢着去答辩了,大家都在那儿挤一块儿,天又这么热,虽然开可空调在那儿也不好受,还是接着检查我的程序。今天检查时候还真检查出了个警告,虽然每次编译之后都是0个错误0个警告,但在编译之后实际是会显示一个警告的只是没仔细去看。但问题也不大,对程序也没影响的,只是我重复对文件进行了定义,其实是不必要的,删除那个定义就解决了。7月4号星期五现在是万事俱备,只欠答辩了。下午一上课,我就在那儿等着答辩了。老师一来我就去答辩了,坐那儿也没紧张的感觉了,因为对程序已经太熟悉了,胸有成竹了。结果与意料一样顺利通过答辩,虽然谈不上什么很了不起的事,但心里还是有点小喜悦的,为这课程设计都做了两星期了,光是程序就不知改了多少回,其中的困难也只有自己知道了。现在都搞定了,呵呵!两周的课程过起来其实也是很快的。这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。并不是这些问题多难,而是不够心细。因此做课程设计、编程时,它还考验并锻炼我们的心细程度。经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。[1]谭浩强.编着.C程序设计.北京:清华大学出版社,1991[2]谭浩强.编着.C程序设计题解与上机指导.北京:清华大学出版社,1992[3]潭浩.田淑清编着.PASCAL语言程序设计〔第二版〕.北京:高等教育出版社,1998[4]HerbertSchildt.着戴健鹏译.C语言大全〔第二版〕.北京:电子工业出版社,1994
if(k==stud[i].num)
地址
PF("姓名学号性别班级电话\n");
PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);
s=1;
if(s==0)
PF("查无此人!
PF("是否继续查询(Y/N)?
j=getchar();getchar();
if(j=='y'||j=='Y')gotofront3;
voidarrange()
{intk,i;
structaddress_bookt;
PF("姓名学号性别班级电话
for(k=0;kfor(i=0;iif(stud[i].num>stud[i+1].num){t=stud[i];stud[i]=stud[i+1];stud[i+1]=t;}elsecontinue;for(i=0;i<=n-1;i++)if(stud[k].num!=0)PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);PF("按回车键返回!");getchar();getchar();}voidchange(){intk=0,m;charj;front5:system("cls");/*清屏*/PF("\n请输入要修改记录的学号:");SF("%d",&m);getchar();/*查找*//*修改*/for(i=0;iif(m==stud[i].num){k=1;break;}if(k==1){PF("\n");PF("\n请输入修改后的姓名:");SF("%s",stud[i].name);PF("\n请输入修改后的学号:");SF("%d",&stud[i].num);PF("\n请输入修改后的性别(F/M):");SF("\n%c",&stud[i].sex);PF("\n请输入修改后的班级:");SF("%s",&stud[i].clas);PF("\n请输入修改后的电话号码:");SF("%ld",&stud[i].telephone);PF("\n请输入修改后的地址:");SF("%s",stud[i].addr);PF("修改成功\n");getchar();}if(k==0){PF("找不到要修改的记录!\n");PF("按回车键返回:");getchar();}getchar();PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront5;}voidmain()charj;PF("\n\n\n\n\n\n\t\t\t欢迎使用学生学籍管理系统");PF("\n\n\n\t\t\t\tPF("\n\n\n\t\t\t\tPF("\n\n\n\n\n\t制作人:刘健");2008年6月");按回车键进入主菜单:");getchar();loop:system("cls");PF("\n");PF("\t\t\t\t************\n");PF("\t\t\t\t*主菜单*\n");PF("\t\t\t\t************\n");PF("\t\t1:录入学生信息2:删除学生信息\n\n");PF("\t\t3:查询学生信息4:学生信息排序\n\n");PF("\t\t5:修改学生信息6:保存退出系统\n\n");PF("\t请选择[1/2/3/4/5/6]:");j=getchar();if(j=='\n')gotoloop;/*返回主菜单*/switch(j){case'1':add();gotoloop;/*返回主菜单*/case'2':del();gotoloop;case'3':find();gotoloop;case'4':arrange();gotoloop;case'5':change();gotoloop;case'6':{FILE*fp;fp=fopen("student.dat","w");for(i=0;i{fwrite(&stud[i],sizeof(structaddress_book),1,fp);}fclose(fp);exit(0);}default:gotoloop;}}学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。用户打开程序,进入主界面(如图1)(1)、按回车进入主菜单,列出各项功能(2)、输入1进入录入界面,用户即可录入信息,当录入完即会提示“是否继续”,如果输入“Y”或者“y”,则会继续录入,若输入“N”或者“n”则会退出到主菜单。(2)、在主菜单中,输入2,则会进入删除界面,输入要删除的学生的学号即可将该学生的信息删除。(3)、在主菜单中,输入3,则会进入查询界面,输入要查的学生的学号即可查询到信息。(4)、在主菜单中,输入4,则会进入进入学生信息排序,在这里会显示按学号由小到大排列出的所有学生的信息。(5)、在主菜单中,输入5,则会进入学生信息修改界面,输入想修改学生的学号后,就可在这里可以对该学生信息进行修改。(6)、在主菜单中,输入6,则会退出系统,并且系统会自动对信息进行保存。6月23日星期一从今天起,正式开始做课程设计了。但坐到电脑前想开始做时,却不懂如何开始写起,都感到有点陌生了。因为前一阵一直在忙于各科的考试,好久没碰C语言了,都开始有生疏感了。但还是试着在电脑上编了下,光要写个主函数还很吃力,更头痛的吃力的结果还换来了很多错误,本想编译下,试试的,结果错误警告一大堆。鉴于此,我还是决定先把书再好好看下,“工欲善其事,必先利其器”嘛!月24日星期二昨天看了一天的书,又加上今天看的,可却连一半还没看完。我是按部就班的顺序往下看的,但因为书的前半部分大多是基础知识,因此在晚上上课时依旧不知如何编写折腾了一晚上,想编写要调用的函数的,试着编了好多,但都是些到处是错误的程序,根本没法用。而且编的时候还是发现自己好多东西都忘记了,因此觉得还是得接着去看书,没辙,还是先把书吃透,把基本程理论再实践吧!月25日星期三今天又是啃了一天的书,本还想去机房试试的呢,结果都没来得及去,刚够把书看完。今天重点把数组、函数和文件部分看了下。晚上上机的时候在机器上试了下,并为我的主函数编了个结构体数组,用来存录入的信息。同时今晚在调试主函数时发现我的主函数没有清屏的功能,所有工作都在同一屏幕上。问了同学,为里面加了个清屏的语句,但要加这语句得另加个头文件,问为什么要加这头文件,他也不懂,只知道就是这样规定的,并且这些规定都是得记住的。还是学得不够多,得慢慢充实自己!6月26日星期四下午C语言考试,复习了一上午,丁点课程设计也没碰。等下午考完试直奔机房,编写了两小时,只给我的程序加了个添加了个“录入学生信息”的函数。在做时候碰到了不少的问题。主要是我的程序一次只能录入一个学生信息,好不容易加了个可以继续录入的语句,可又碰到了新的问题。当我录入学生信息的前三项后,就直接进入“是否继续录入”。我怀疑是有肯能在定义数组长度时定义太大了,当我把它缩小后再编译、连接、运行时居然成功了,可我现在还没确定到底时什么原因。月27日星期五又碰到新问题了。我把其他要调用的函数也加进去了,但是在用的时候发现加进去的那些函数都不能用,就一添加函数在运行时是正常的,而其他的进入是可以,但在执行的时候,它就会出来警告,说不能被读。自己找,也请同学帮忙找了,但都没找出毛病。碰这问题实在是难办,因为不能执行,我也就不知道这些函数在这里运行是否会正常,也就不知道是否需要改动。6月30日星期一关于“警告”的问题到现在还没解决,有点心烦意乱了,改了下程序,可问题又多了。在“查找”项里也出现了问题,在查找时候即使是查找一个人,它却也会每次都会把所查找的人给找出后,接着又会把其他人的信息以“查无此人”显示出来。反复检查下发现好像是算法的问题。是在循环里的时候出了错,它自己不停了,非得把所有的运行一遍在停。在我加了停止条件后问题总算是得到解决了。可“警告的问题今天还是没解决掉。7月1号星期二“警告”的问题困扰好久了,真是头痛,都快被它给崩溃了。今天上课时,我又检查和调试了下,可还是没找到问题在哪儿。自己是搞不定了,只能是请教老师了。虽然向老师去请教的人很多,但还是被我逮到机会了,让老师帮我看了下,检查发现原来是在调用函数和主函数中所定义的类型产生了差异。将被掉函数里的改过来后问题久解决了。7月2号星期三程序差不多搞定了,就等答辩了!准备答辩至于还是在调试程序,检查下是否会有遗漏的毛病。但目前为止还没有找到。去答辩的人已经有很多了,顺利通过的也不少。有点安奈不住了,想去答辩,可还是有点担心。为了一次通过也不急着去答辩,反正人多,轮到我还不知道要等多久,还是静下心来再把程序检查下吧。7月3号星期四昨天想答辩来着,可是答辩的人实在是太多,把老师围得严严实实的,想必他们都急着回家,而我又不着急,就不和他们去抢着去答辩了,大家都在那儿挤一块儿,天又这么热,虽然开可空调在那儿也不好受,还是接着检查我的程序。今天检查时候还真检查出了个警告,虽然每次编译之后都是0个错误0个警告,但在编译之后实际是会显示一个警告的只是没仔细去看。但问题也不大,对程序也没影响的,只是我重复对文件进行了定义,其实是不必要的,删除那个定义就解决了。7月4号星期五现在是万事俱备,只欠答辩了。下午一上课,我就在那儿等着答辩了。老师一来我就去答辩了,坐那儿也没紧张的感觉了,因为对程序已经太熟悉了,胸有成竹了。结果与意料一样顺利通过答辩,虽然谈不上什么很了不起的事,但心里还是有点小喜悦的,为这课程设计都做了两星期了,光是程序就不知改了多少回,其中的困难也只有自己知道了。现在都搞定了,呵呵!两周的课程过起来其实也是很快的。这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。并不是这些问题多难,而是不够心细。因此做课程设计、编程时,它还考验并锻炼我们的心细程度。经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。[1]谭浩强.编着.C程序设计.北京:清华大学出版社,1991[2]谭浩强.编着.C程序设计题解与上机指导.北京:清华大学出版社,1992[3]潭浩.田淑清编着.PASCAL语言程序设计〔第二版〕.北京:高等教育出版社,1998[4]HerbertSchildt.着戴健鹏译.C语言大全〔第二版〕.北京:电子工业出版社,1994
for(i=0;iif(stud[i].num>stud[i+1].num){t=stud[i];stud[i]=stud[i+1];stud[i+1]=t;}elsecontinue;for(i=0;i<=n-1;i++)if(stud[k].num!=0)PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,stud[i].addr);PF("按回车键返回!");getchar();getchar();}voidchange(){intk=0,m;charj;front5:system("cls");/*清屏*/PF("\n请输入要修改记录的学号:");SF("%d",&m);getchar();/*查找*//*修改*/for(i=0;iif(m==stud[i].num){k=1;break;}if(k==1){PF("\n");PF("\n请输入修改后的姓名:");SF("%s",stud[i].name);PF("\n请输入修改后的学号:");SF("%d",&stud[i].num);PF("\n请输入修改后的性别(F/M):");SF("\n%c",&stud[i].sex);PF("\n请输入修改后的班级:");SF("%s",&stud[i].clas);PF("\n请输入修改后的电话号码:");SF("%ld",&stud[i].telephone);PF("\n请输入修改后的地址:");SF("%s",stud[i].addr);PF("修改成功\n");getchar();}if(k==0){PF("找不到要修改的记录!\n");PF("按回车键返回:");getchar();}getchar();PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront5;}voidmain()charj;PF("\n\n\n\n\n\n\t\t\t欢迎使用学生学籍管理系统");PF("\n\n\n\t\t\t\tPF("\n\n\n\t\t\t\tPF("\n\n\n\n\n\t制作人:刘健");2008年6月");按回车键进入主菜单:");getchar();loop:system("cls");PF("\n");PF("\t\t\t\t************\n");PF("\t\t\t\t*主菜单*\n");PF("\t\t\t\t************\n");PF("\t\t1:录入学生信息2:删除学生信息\n\n");PF("\t\t3:查询学生信息4:学生信息排序\n\n");PF("\t\t5:修改学生信息6:保存退出系统\n\n");PF("\t请选择[1/2/3/4/5/6]:");j=getchar();if(j=='\n')gotoloop;/*返回主菜单*/switch(j){case'1':add();gotoloop;/*返回主菜单*/case'2':del();gotoloop;case'3':find();gotoloop;case'4':arrange();gotoloop;case'5':change();gotoloop;case'6':{FILE*fp;fp=fopen("student.dat","w");for(i=0;i{fwrite(&stud[i],sizeof(structaddress_book),1,fp);}fclose(fp);exit(0);}default:gotoloop;}}学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。用户打开程序,进入主界面(如图1)(1)、按回车进入主菜单,列出各项功能(2)、输入1进入录入界面,用户即可录入信息,当录入完即会提示“是否继续”,如果输入“Y”或者“y”,则会继续录入,若输入“N”或者“n”则会退出到主菜单。(2)、在主菜单中,输入2,则会进入删除界面,输入要删除的学生的学号即可将该学生的信息删除。(3)、在主菜单中,输入3,则会进入查询界面,输入要查的学生的学号即可查询到信息。(4)、在主菜单中,输入4,则会进入进入学生信息排序,在这里会显示按学号由小到大排列出的所有学生的信息。(5)、在主菜单中,输入5,则会进入学生信息修改界面,输入想修改学生的学号后,就可在这里可以对该学生信息进行修改。(6)、在主菜单中,输入6,则会退出系统,并且系统会自动对信息进行保存。6月23日星期一从今天起,正式开始做课程设计了。但坐到电脑前想开始做时,却不懂如何开始写起,都感到有点陌生了。因为前一阵一直在忙于各科的考试,好久没碰C语言了,都开始有生疏感了。但还是试着在电脑上编了下,光要写个主函数还很吃力,更头痛的吃力的结果还换来了很多错误,本想编译下,试试的,结果错误警告一大堆。鉴于此,我还是决定先把书再好好看下,“工欲善其事,必先利其器”嘛!月24日星期二昨天看了一天的书,又加上今天看的,可却连一半还没看完。我是按部就班的顺序往下看的,但因为书的前半部分大多是基础知识,因此在晚上上课时依旧不知如何编写折腾了一晚上,想编写要调用的函数的,试着编了好多,但都是些到处是错误的程序,根本没法用。而且编的时候还是发现自己好多东西都忘记了,因此觉得还是得接着去看书,没辙,还是先把书吃透,把基本程理论再实践吧!月25日星期三今天又是啃了一天的书,本还想去机房试试的呢,结果都没来得及去,刚够把书看完。今天重点把数组、函数和文件部分看了下。晚上上机的时候在机器上试了下,并为我的主函数编了个结构体数组,用来存录入的信息。同时今晚在调试主函数时发现我的主函数没有清屏的功能,所有工作都在同一屏幕上。问了同学,为里面加了个清屏的语句,但要加这语句得另加个头文件,问为什么要加这头文件,他也不懂,只知道就是这样规定的,并且这些规定都是得记住的。还是学得不够多,得慢慢充实自己!6月26日星期四下午C语言考试,复习了一上午,丁点课程设计也没碰。等下午考完试直奔机房,编写了两小时,只给我的程序加了个添加了个“录入学生信息”的函数。在做时候碰到了不少的问题。主要是我的程序一次只能录入一个学生信息,好不容易加了个可以继续录入的语句,可又碰到了新的问题。当我录入学生信息的前三项后,就直接进入“是否继续录入”。我怀疑是有肯能在定义数组长度时定义太大了,当我把它缩小后再编译、连接、运行时居然成功了,可我现在还没确定到底时什么原因。月27日星期五又碰到新问题了。我把其他要调用的函数也加进去了,但是在用的时候发现加进去的那些函数都不能用,就一添加函数在运行时是正常的,而其他的进入是可以,但在执行的时候,它就会出来警告,说不能被读。自己找,也请同学帮忙找了,但都没找出毛病。碰这问题实在是难办,因为不能执行,我也就不知道这些函数在这里运行是否会正常,也就不知道是否需要改动。6月30日星期一关于“警告”的问题到现在还没解决,有点心烦意乱了,改了下程序,可问题又多了。在“查找”项里也出现了问题,在查找时候即使是查找一个人,它却也会每次都会把所查找的人给找出后,接着又会把其他人的信息以“查无此人”显示出来。反复检查下发现好像是算法的问题。是在循环里的时候出了错,它自己不停了,非得把所有的运行一遍在停。在我加了停止条件后问题总算是得到解决了。可“警告的问题今天还是没解决掉。7月1号星期二“警告”的问题困扰好久了,真是头痛,都快被它给崩溃了。今天上课时,我又检查和调试了下,可还是没找到问题在哪儿。自己是搞不定了,只能是请教老师了。虽然向老师去请教的人很多,但还是被我逮到机会了,让老师帮我看了下,检查发现原来是在调用函数和主函数中所定义的类型产生了差异。将被掉函数里的改过来后问题久解决了。7月2号星期三程序差不多搞定了,就等答辩了!准备答辩至于还是在调试程序,检查下是否会有遗漏的毛病。但目前为止还没有找到。去答辩的人已经有很多了,顺利通过的也不少。有点安奈不住了,想去答辩,可还是有点担心。为了一次通过也不急着去答辩,反正人多,轮到我还不知道要等多久,还是静下心来再把程序检查下吧。7月3号星期四昨天想答辩来着,可是答辩的人实在是太多,把老师围得严严实实的,想必他们都急着回家,而我又不着急,就不和他们去抢着去答辩了,大家都在那儿挤一块儿,天又这么热,虽然开可空调在那儿也不好受,还是接着检查我的程序。今天检查时候还真检查出了个警告,虽然每次编译之后都是0个错误0个警告,但在编译之后实际是会显示一个警告的只是没仔细去看。但问题也不大,对程序也没影响的,只是我重复对文件进行了定义,其实是不必要的,删除那个定义就解决了。7月4号星期五现在是万事俱备,只欠答辩了。下午一上课,我就在那儿等着答辩了。老师一来我就去答辩了,坐那儿也没紧张的感觉了,因为对程序已经太熟悉了,胸有成竹了。结果与意料一样顺利通过答辩,虽然谈不上什么很了不起的事,但心里还是有点小喜悦的,为这课程设计都做了两星期了,光是程序就不知改了多少回,其中的困难也只有自己知道了。现在都搞定了,呵呵!两周的课程过起来其实也是很快的。这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。并不是这些问题多难,而是不够心细。因此做课程设计、编程时,它还考验并锻炼我们的心细程度。经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。[1]谭浩强.编着.C程序设计.北京:清华大学出版社,1991[2]谭浩强.编着.C程序设计题解与上机指导.北京:清华大学出版社,1992[3]潭浩.田淑清编着.PASCAL语言程序设计〔第二版〕.北京:高等教育出版社,1998[4]HerbertSchildt.着戴健鹏译.C语言大全〔第二版〕.北京:电子工业出版社,1994
if(stud[i].num>stud[i+1].num)
{t=stud[i];
stud[i]=stud[i+1];
stud[i+1]=t;}
elsecontinue;
for(i=0;i<=n-1;i++)if(stud[k].num!
=0)
PF("按回车键返回!
voidchange()
{intk=0,m;charj;
front5:
PF("\n请输入要修改记录的学号:
SF("%d",&m);
/*查找*/
/*修改*/
for(i=0;iif(m==stud[i].num){k=1;break;}if(k==1){PF("\n");PF("\n请输入修改后的姓名:");SF("%s",stud[i].name);PF("\n请输入修改后的学号:");SF("%d",&stud[i].num);PF("\n请输入修改后的性别(F/M):");SF("\n%c",&stud[i].sex);PF("\n请输入修改后的班级:");SF("%s",&stud[i].clas);PF("\n请输入修改后的电话号码:");SF("%ld",&stud[i].telephone);PF("\n请输入修改后的地址:");SF("%s",stud[i].addr);PF("修改成功\n");getchar();}if(k==0){PF("找不到要修改的记录!\n");PF("按回车键返回:");getchar();}getchar();PF("是否继续(Y/N)?:");j=getchar();getchar();if(j=='y'||j=='Y')gotofront5;}voidmain()charj;PF("\n\n\n\n\n\n\t\t\t欢迎使用学生学籍管理系统");PF("\n\n\n\t\t\t\tPF("\n\n\n\t\t\t\tPF("\n\n\n\n\n\t制作人:刘健");2008年6月");按回车键进入主菜单:");getchar();loop:system("cls");PF("\n");PF("\t\t\t\t************\n");PF("\t\t\t\t*主菜单*\n");PF("\t\t\t\t************\n");PF("\t\t1:录入学生信息2:删除学生信息\n\n");PF("\t\t3:查询学生信息4:学生信息排序\n\n");PF("\t\t5:修改学生信息6:保存退出系统\n\n");PF("\t请选择[1/2/3/4/5/6]:");j=getchar();if(j=='\n')gotoloop;/*返回主菜单*/switch(j){case'1':add();gotoloop;/*返回主菜单*/case'2':del();gotoloop;case'3':find();gotoloop;case'4':arrange();gotoloop;case'5':change();gotoloop;case'6':{FILE*fp;fp=fopen("student.dat","w");for(i=0;i{fwrite(&stud[i],sizeof(structaddress_book),1,fp);}fclose(fp);exit(0);}default:gotoloop;}}学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。用户打开程序,进入主界面(如图1)(1)、按回车进入主菜单,列出各项功能(2)、输入1进入录入界面,用户即可录入信息,当录入完即会提示“是否继续”,如果输入“Y”或者“y”,则会继续录入,若输入“N”或者“n”则会退出到主菜单。(2)、在主菜单中,输入2,则会进入删除界面,输入要删除的学生的学号即可将该学生的信息删除。(3)、在主菜单中,输入3,则会进入查询界面,输入要查的学生的学号即可查询到信息。(4)、在主菜单中,输入4,则会进入进入学生信息排序,在这里会显示按学号由小到大排列出的所有学生的信息。(5)、在主菜单中,输入5,则会进入学生信息修改界面,输入想修改学生的学号后,就可在这里可以对该学生信息进行修改。(6)、在主菜单中,输入6,则会退出系统,并且系统会自动对信息进行保存。6月23日星期一从今天起,正式开始做课程设计了。但坐到电脑前想开始做时,却不懂如何开始写起,都感到有点陌生了。因为前一阵一直在忙于各科的考试,好久没碰C语言了,都开始有生疏感了。但还是试着在电脑上编了下,光要写个主函数还很吃力,更头痛的吃力的结果还换来了很多错误,本想编译下,试试的,结果错误警告一大堆。鉴于此,我还是决定先把书再好好看下,“工欲善其事,必先利其器”嘛!月24日星期二昨天看了一天的书,又加上今天看的,可却连一半还没看完。我是按部就班的顺序往下看的,但因为书的前半部分大多是基础知识,因此在晚上上课时依旧不知如何编写折腾了一晚上,想编写要调用的函数的,试着编了好多,但都是些到处是错误的程序,根本没法用。而且编的时候还是发现自己好多东西都忘记了,因此觉得还是得接着去看书,没辙,还是先把书吃透,把基本程理论再实践吧!月25日星期三今天又是啃了一天的书,本还想去机房试试的呢,结果都没来得及去,刚够把书看完。今天重点把数组、函数和文件部分看了下。晚上上机的时候在机器上试了下,并为我的主函数编了个结构体数组,用来存录入的信息。同时今晚在调试主函数时发现我的主函数没有清屏的功能,所有工作都在同一屏幕上。问了同学,为里面加了个清屏的语句,但要加这语句得另加个头文件,问为什么要加这头文件,他也不懂,只知道就是这样规定的,并且这些规定都是得记住的。还是学得不够多,得慢慢充实自己!6月26日星期四下午C语言考试,复习了一上午,丁点课程设计也没碰。等下午考完试直奔机房,编写了两小时,只给我的程序加了个添加了个“录入学生信息”的函数。在做时候碰到了不少的问题。主要是我的程序一次只能录入一个学生信息,好不容易加了个可以继续录入的语句,可又碰到了新的问题。当我录入学生信息的前三项后,就直接进入“是否继续录入”。我怀疑是有肯能在定义数组长度时定义太大了,当我把它缩小后再编译、连接、运行时居然成功了,可我现在还没确定到底时什么原因。月27日星期五又碰到新问题了。我把其他要调用的函数也加进去了,但是在用的时候发现加进去的那些函数都不能用,就一添加函数在运行时是正常的,而其他的进入是可以,但在执行的时候,它就会出来警告,说不能被读。自己找,也请同学帮忙找了,但都没找出毛病。碰这问题实在是难办,因为不能执行,我也就不知道这些函数在这里运行是否会正常,也就不知道是否需要改动。6月30日星期一关于“警告”的问题到现在还没解决,有点心烦意乱了,改了下程序,可问题又多了。在“查找”项里也出现了问题,在查找时候即使是查找一个人,它却也会每次都会把所查找的人给找出后,接着又会把其他人的信息以“查无此人”显示出来。反复检查下发现好像是算法的问题。是在循环里的时候出了错,它自己不停了,非得把所有的运行一遍在停。在我加了停止条件后问题总算是得到解决了。可“警告的问题今天还是没解决掉。7月1号星期二“警告”的问题困扰好久了,真是头痛,都快被它给崩溃了。今天上课时,我又检查和调试了下,可还是没找到问题在哪儿。自己是搞不定了,只能是请教老师了。虽然向老师去请教的人很多,但还是被我逮到机会了,让老师帮我看了下,检查发现原来是在调用函数和主函数中所定义的类型产生了差异。将被掉函数里的改过来后问题久解决了。7月2号星期三程序差不多搞定了,就等答辩了!准备答辩至于还是在调试程序,检查下是否会有遗漏的毛病。但目前为止还没有找到。去答辩的人已经有很多了,顺利通过的也不少。有点安奈不住了,想去答辩,可还是有点担心。为了一次通过也不急着去答辩,反正人多,轮到我还不知道要等多久,还是静下心来再把程序检查下吧。7月3号星期四昨天想答辩来着,可是答辩的人实在是太多,把老师围得严严实实的,想必他们都急着回家,而我又不着急,就不和他们去抢着去答辩了,大家都在那儿挤一块儿,天又这么热,虽然开可空调在那儿也不好受,还是接着检查我的程序。今天检查时候还真检查出了个警告,虽然每次编译之后都是0个错误0个警告,但在编译之后实际是会显示一个警告的只是没仔细去看。但问题也不大,对程序也没影响的,只是我重复对文件进行了定义,其实是不必要的,删除那个定义就解决了。7月4号星期五现在是万事俱备,只欠答辩了。下午一上课,我就在那儿等着答辩了。老师一来我就去答辩了,坐那儿也没紧张的感觉了,因为对程序已经太熟悉了,胸有成竹了。结果与意料一样顺利通过答辩,虽然谈不上什么很了不起的事,但心里还是有点小喜悦的,为这课程设计都做了两星期了,光是程序就不知改了多少回,其中的困难也只有自己知道了。现在都搞定了,呵呵!两周的课程过起来其实也是很快的。这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。并不是这些问题多难,而是不够心细。因此做课程设计、编程时,它还考验并锻炼我们的心细程度。经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。[1]谭浩强.编着.C程序设计.北京:清华大学出版社,1991[2]谭浩强.编着.C程序设计题解与上机指导.北京:清华大学出版社,1992[3]潭浩.田淑清编着.PASCAL语言程序设计〔第二版〕.北京:高等教育出版社,1998[4]HerbertSchildt.着戴健鹏译.C语言大全〔第二版〕.北京:电子工业出版社,1994
if(m==stud[i].num){k=1;break;}if(k==1){PF("\n");
PF("\n请输入修改后的姓名:
");SF("%s",stud[i].name);
PF("\n请输入修改后的学号:
SF("%d",&stud[i].num);
PF("\n请输入修改后的性别(F/M):
");SF("\n%c",&stud[i].sex);
PF("\n请输入修改后的班级:
");SF("%s",&stud[i].clas);
PF("\n请输入修改后的电话号码:
");SF("%ld",&stud[i].telephone);
PF("\n请输入修改后的地址:
");SF("%s",stud[i].addr);
PF("修改成功\n");getchar();
if(k==0)
PF("找不到要修改的记录!
");j=getchar();getchar();if(j=='y'||j=='Y')gotofront5;
voidmain()
PF("\n\n\n\n\n\n\t\t\t
欢迎使用学生学籍管理系统
PF("\n\n\n\t\t\t\t
PF("\n\n\n\n\n\t
制作人:
刘健");2008年6月");按回车键进入主菜单:
getchar();loop:
system("cls");
PF("\n");
PF("\t\t\t\t
************\n");
*主菜单*\n");
PF("\t\t
1:
录入学生信息
2:
删除学生信息
\n\n");
3:
查询学生信息
4:
学生信息排序
5:
修改学生信息
6:
保存退出系统
PF("\t请选择[1/2/3/4/5/6]:
j=getchar();
if(j=='\n')gotoloop;/*返回主菜单*/
switch(j)
case'1':
add();gotoloop;/*返回主菜单*/
case'2':
del();gotoloop;
case'3':
find();gotoloop;
case'4':
arrange();gotoloop;
case'5':
change();gotoloop;case'6':
{FILE*fp;
fp=fopen("student.dat","w");for(i=0;i{fwrite(&stud[i],sizeof(structaddress_book),1,fp);}fclose(fp);exit(0);}default:gotoloop;}}学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。用户打开程序,进入主界面(如图1)(1)、按回车进入主菜单,列出各项功能(2)、输入1进入录入界面,用户即可录入信息,当录入完即会提示“是否继续”,如果输入“Y”或者“y”,则会继续录入,若输入“N”或者“n”则会退出到主菜单。(2)、在主菜单中,输入2,则会进入删除界面,输入要删除的学生的学号即可将该学生的信息删除。(3)、在主菜单中,输入3,则会进入查询界面,输入要查的学生的学号即可查询到信息。(4)、在主菜单中,输入4,则会进入进入学生信息排序,在这里会显示按学号由小到大排列出的所有学生的信息。(5)、在主菜单中,输入5,则会进入学生信息修改界面,输入想修改学生的学号后,就可在这里可以对该学生信息进行修改。(6)、在主菜单中,输入6,则会退出系统,并且系统会自动对信息进行保存。6月23日星期一从今天起,正式开始做课程设计了。但坐到电脑前想开始做时,却不懂如何开始写起,都感到有点陌生了。因为前一阵一直在忙于各科的考试,好久没碰C语言了,都开始有生疏感了。但还是试着在电脑上编了下,光要写个主函数还很吃力,更头痛的吃力的结果还换来了很多错误,本想编译下,试试的,结果错误警告一大堆。鉴于此,我还是决定先把书再好好看下,“工欲善其事,必先利其器”嘛!月24日星期二昨天看了一天的书,又加上今天看的,可却连一半还没看完。我是按部就班的顺序往下看的,但因为书的前半部分大多是基础知识,因此在晚上上课时依旧不知如何编写折腾了一晚上,想编写要调用的函数的,试着编了好多,但都是些到处是错误的程序,根本没法用。而且编的时候还是发现自己好多东西都忘记了,因此觉得还是得接着去看书,没辙,还是先把书吃透,把基本程理论再实践吧!月25日星期三今天又是啃了一天的书,本还想去机房试试的呢,结果都没来得及去,刚够把书看完。今天重点把数组、函数和文件部分看了下。晚上上机的时候在机器上试了下,并为我的主函数编了个结构体数组,用来存录入的信息。同时今晚在调试主函数时发现我的主函数没有清屏的功能,所有工作都在同一屏幕上。问了同学,为里面加了个清屏的语句,但要加这语句得另加个头文件,问为什么要加这头文件,他也不懂,只知道就是这样规定的,并且这些规定都是得记住的。还是学得不够多,得慢慢充实自己!6月26日星期四下午C语言考试,复习了一上午,丁点课程设计也没碰。等下午考完试直奔机房,编写了两小时,只给我的程序加了个添加了个“录入学生信息”的函数。在做时候碰到了不少的问题。主要是我的程序一次只能录入一个学生信息,好不容易加了个可以继续录入的语句,可又碰到了新的问题。当我录入学生信息的前三项后,就直接进入“是否继续录入”。我怀疑是有肯能在定义数组长度时定义太大了,当我把它缩小后再编译、连接、运行时居然成功了,可我现在还没确定到底时什么原因。月27日星期五又碰到新问题了。我把其他要调用的函数也加进去了,但是在用的时候发现加进去的那些函数都不能用,就一添加函数在运行时是正常的,而其他的进入是可以,但在执行的时候,它就会出来警告,说不能被读。自己找,也请同学帮忙找了,但都没找出毛病。碰这问题实在是难办,因为不能执行,我也就不知道这些函数在这里运行是否会正常,也就不知道是否需要改动。6月30日星期一关于“警告”的问题到现在还没解决,有点心烦意乱了,改了下程序,可问题又多了。在“查找”项里也出现了问题,在查找时候即使是查找一个人,它却也会每次都会把所查找的人给找出后,接着又会把其他人的信息以“查无此人”显示出来。反复检查下发现好像是算法的问题。是在循环里的时候出了错,它自己不停了,非得把所有的运行一遍在停。在我加了停止条件后问题总算是得到解决了。可“警告的问题今天还是没解决掉。7月1号星期二“警告”的问题困扰好久了,真是头痛,都快被它给崩溃了。今天上课时,我又检查和调试了下,可还是没找到问题在哪儿。自己是搞不定了,只能是请教老师了。虽然向老师去请教的人很多,但还是被我逮到机会了,让老师帮我看了下,检查发现原来是在调用函数和主函数中所定义的类型产生了差异。将被掉函数里的改过来后问题久解决了。7月2号星期三程序差不多搞定了,就等答辩了!准备答辩至于还是在调试程序,检查下是否会有遗漏的毛病。但目前为止还没有找到。去答辩的人已经有很多了,顺利通过的也不少。有点安奈不住了,想去答辩,可还是有点担心。为了一次通过也不急着去答辩,反正人多,轮到我还不知道要等多久,还是静下心来再把程序检查下吧。7月3号星期四昨天想答辩来着,可是答辩的人实在是太多,把老师围得严严实实的,想必他们都急着回家,而我又不着急,就不和他们去抢着去答辩了,大家都在那儿挤一块儿,天又这么热,虽然开可空调在那儿也不好受,还是接着检查我的程序。今天检查时候还真检查出了个警告,虽然每次编译之后都是0个错误0个警告,但在编译之后实际是会显示一个警告的只是没仔细去看。但问题也不大,对程序也没影响的,只是我重复对文件进行了定义,其实是不必要的,删除那个定义就解决了。7月4号星期五现在是万事俱备,只欠答辩了。下午一上课,我就在那儿等着答辩了。老师一来我就去答辩了,坐那儿也没紧张的感觉了,因为对程序已经太熟悉了,胸有成竹了。结果与意料一样顺利通过答辩,虽然谈不上什么很了不起的事,但心里还是有点小喜悦的,为这课程设计都做了两星期了,光是程序就不知改了多少回,其中的困难也只有自己知道了。现在都搞定了,呵呵!两周的课程过起来其实也是很快的。这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。并不是这些问题多难,而是不够心细。因此做课程设计、编程时,它还考验并锻炼我们的心细程度。经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。[1]谭浩强.编着.C程序设计.北京:清华大学出版社,1991[2]谭浩强.编着.C程序设计题解与上机指导.北京:清华大学出版社,1992[3]潭浩.田淑清编着.PASCAL语言程序设计〔第二版〕.北京:高等教育出版社,1998[4]HerbertSchildt.着戴健鹏译.C语言大全〔第二版〕.北京:电子工业出版社,1994
{fwrite(&stud[i],sizeof(structaddress_book),1,fp);}fclose(fp);exit(0);
}default:
gotoloop;
学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信
息、查询学生信息、学生信息排序、修改学生信息、保存信息。
用户打开程序,进入主界面(如图1)
(1)、按回车进入主菜单,列出各项功能
(2)、输入1进入录入界面,用户即可录入信息,当录入完即会提示“是否继续”,如果输入“Y”或者“y”,则会继续录入,若输入“N”或者“n”则会退出到主菜单。
(2)、在主菜单中,输入2,则会进入删除界面,输入要删除的学生的学号即可将该学生的信息删除。
(3)、在主菜单中,输入3,则会进入查询界面,输入要查的学生的学号即可查询到信息。
(4)、在主菜单中,输入4,则会进入进入学生信息排序,在这里会显示按学号由小到大排列出的所有学生的信息。
(5)、在主菜单中,输入5,则会进入学生信息修改界面,输入想修改学生的学号后,就可在这里可以对该学生信息进行修改。
(6)、在主菜单中,输入6,则会退出系统,并且系统会自动对信息进行保存。
6月23日星期一
从今天起,正式开始做课程设计了。
但坐到电脑前想开始做时,却不懂如何开始写起,都感到有点陌生了。
因为前一阵一直在忙于各科的考试,好久没碰C语言了,都开始有生疏感了。
但还是试着在电脑上编了下,光要写个主函数还很吃力,更头痛的吃力的结果还换来了很多错误,本想编译下,试试的,结果错误警告一大堆。
鉴于此,我还是决定先把书再好好看下,“工欲善其事,必先利其器”嘛!
月24日星期二
昨天看了一天的书,又加上今天看的,可却连一半还没看完。
我是按部就班的顺序往下看的,但因为书的前半部分大多是基础知识,因此在晚上上课时依旧不知如何编写折腾了一晚上,想编写要调用的函数的,试着编了好多,但都是些到处是错误的程序,根本没法用。
而且编的时候还是发现自己好多东西都忘记了,因此觉得还是得接着去看书,没辙,还是先把书吃透,把基本程理论再实践吧!
月25日星期三
今天又是啃了一天的书,本还想去机房试试的呢,结果都没来得及去,刚够把书看完。
今天重点把数组、函数和文件部分看了下。
晚上上机的时候在机器上试了下,并为我的主函数编了个结构体数组,用来存录入的信息。
同时今晚在调试主函数时发现我的主函数没有清屏的功能,所有工作都在同一屏幕上。
问了同学,为里面加了个清屏的语句,但要加这语句得另加个头文件,问为什么要加这头文件,他也不懂,只知道就是这样规定的,并且这些规定都是得记住的。
还是学得不够多,得慢慢充实自己!
6月26日星期四
下午C语言考试,复习了一上午,丁点课程设计也没碰。
等下午考完试直奔机房,编写了两小时,只给我的程序加了个添加了个“录入学生信息”的函数。
在做时候碰到了不少的问题。
主要是我的程序一次只能录入一个学生信息,好不容易加了个可以继续录入的语句,可又碰到了新的问题。
当我录入学生信息的前三项后,就直接进入“是否继续录入”。
我怀疑是有肯能在定义数组长度时定义太大了,当我把它缩小后再编译、连接、运行时居然成功了,可我现在还没确定到底时什么原因。
月27日星期五
又碰到新问题了。
我把其他要调用的函数也加进去了,但是在用的时候发现加进去的那些函数都不能用,就一添加函数在运行时是正常的,而其他的进入是可以,但在执行的时候,它就会出来警告,说不能被读。
自己找,也请同学帮忙找了,但都没找出毛病。
碰这问题实在是难办,因为不能执行,我也就不知道这些函数在这里运行是否会正常,也就不知道是否需要改动。
6月30日星期一
关于“警告”的问题到现在还没解决,有点心烦意乱了,改了下程序,可问题又多了。
在“查找”项里也出现了问题,在查找时候即使是查找一个人,它却也会每次都会把所查找的人给找出后,接着又会把其他人的信息以“查无此人”显示出来。
反复检查下发现好像是算法的问题。
是在循环里的时候出了错,它自己不停了,非得把所有的运行一遍在停。
在我加了停止条件后问题总算是得到解决了。
可“警告的问题今天还是没解决掉。
7月1号星期二
“警告”的问题困扰好久了,真是头痛,都快被它给崩溃了。
今天上课时,我又检查和调试了下,可还是没找到问题在哪儿。
自己是搞不定了,只能是请教老师了。
虽然向老师去请教的人很多,但还是被我逮到机会了,让老师帮我看了下,检查发现原来是在调用函数和主函数中所定义的类型产生了差异。
将被掉函数里的改过来后问题久解决了。
7月2号星期三
程序差不多搞定了,就等答辩了!
准备答辩至于还是在调试程序,检查下是否会有遗漏的毛病。
但目前为止还没有找到。
去答辩的人已经有很多了,顺利通过的也不少。
有点安奈不住了,想去答辩,可还是有点担心。
为了一次通过也不急着去答辩,反正人多,轮到我还不知道要等多久,还是静下心来再把程序检查下吧。
7月3号星期四
昨天想答辩来着,可是答辩的人实在是太多,把老师围得严严实实的,想必他们都急着回家,而我又不着急,就不和他们去抢着去答辩了,大家都在那儿挤一块儿,天又这么热,虽然开可空调在那儿也不好受,还是接着检查我的程序。
今天检查时候还真检查出了个警告,虽然每次编译之后都是0个错误0个警告,但在编译之后实际是会显示一个警告的只是没仔细去看。
但问题也不大,对程序也没影响的,只是我重复对文件进行了定义,其实是不必要的,删除那个定义就解决了。
7月4号星期五
现在是万事俱备,只欠答辩了。
下午一上课,我就在那儿等着答辩了。
老师一来我就去答辩了,坐那儿也没紧张的感觉了,因为对程序已经太熟悉了,胸有成竹了。
结
果与意料一样顺利通过答辩,虽然谈不上什么很了不起的事,但心里还是有点小喜悦的,为这课程设计都做了两星期了,光是程序就不知改了多少回,其中的困难也只有自己知道了。
现在都搞定了,呵呵!
两周的课程过起来其实也是很快的。
这是我第一次做课程设计,起初还没做的时候觉得很快自己就将得编一个较大的程序,将会很有意思。
带着最初的好奇心,新鲜感就这样开始了第一天的编程,结果是大失所望。
做课程设计并不是自己想象中的那样有意思,而是很枯燥,很乏味的。
也没想象中的那样简单,并不是像我们平时上C语言课时,每次编的那些小程序,没那么简单。
我们现在要做的就是将我们平时学的,做的那些小程序都合理的凑到一块儿来。
而把这些小程序都加到一块儿来,并不是随意的将它们放到一个程序中就完事的,而是必须得合理,且得顾及到各个方面。
正是由于编程的纷繁复杂,且结构的严谨,因此编程的过程中到处是困难和问题。
它考验的不仅是我们的平时用功程度,以及我们对所学知识的熟练掌握程度、应用的灵活程度,它还考验我们的毅力。
在刚开始的几天时,由于前一阵忙于各科的考试,C语言已经好久没碰了,所学的知识都有点遗忘了,在编写时处处碰壁,一直会停顿翻书,编得自己都开始心烦意乱了,实在是编不下去了,于是索性就停了三天去看书,先把书给吃透。
并在后期的程序调试中也碰到不少的问题,好多问题自己反复检查了几遍都没查出,但在老师的帮助下还是一下就查出了。
并不是这些问题多难,而是不够心细。
因此做课程设计、编程时,它还考验并锻炼我们的心细程度。
经过这次的课程设计的实践,我受益颇多,不仅是对我掌握知识、灵活运用知识的一次考验和锻炼,也是对我生活态度的一次锻炼,让我学会心细和拥有毅力,更具信心和恒心,碰到困难不再退缩,而是坚强面对。
[1]谭浩强.编着.C程序设计.北京:
清华大学出版社,1991
[2]谭浩强.编着.C程序设计题解与上机指导.北京:
清华大学出版社,1992
[3]潭浩.田淑清编着.PASCAL语言程序设计〔第二版〕.北京:
高等教育出版社,1998
[4]HerbertSchildt.着戴健鹏译.C语言大全〔第二版〕.北京:
电子工业出版社,1994
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1