您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C语言班级档案管理系统
课程设计任务书课程名称C语言课程设计课题班级档案管理系目录1.设计目的2.总体设计3.详细设计4.调试与测试:5.总结与体会6.评分附:源程序清单和执行1.设计目的a)了解和掌握c语言面向对象程序设计的基本过程。b)进一步熟悉C语言的特点。c)学会总体规划一个程序,从各个部分把一个程序完成好。d)能够使自己的程序实现一定的功能,对C++产生一种浓厚的兴趣。e)培养耐心,遇困难不退缩。f)了解团队精神的重要性,团结合作。加深对《C语言》课程所学知识的理解,进一步巩固C语言讲法规则。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用,以及文件的读写操作等。2总体设计主菜单界面学生档案管理☆☆☆土木工程☆☆☆∮***班****∮1.录入学生信息2.显示学生信息3.查询学生信息4.删除学生信息5.添加学生信息6.修改学生信息7退出7******************谢谢使用******************信息录入1按学号查询2按姓名查询3按性别查询4按年龄查询3.详细设计本程序由一个Voidmain(),一个Voidinput(),一个VoidSave(),一个Voiddisplay(),一个VoidDelete(),一个Voidadd和一个VoidSearch()共七个主要函数来实现该程序的编程的。其中在主函数Voidmain()中调用其他六个函数,通过Switch语句来实现调用进入各个函数,进入主菜单通过录入函数录入学生信息,并自动保存在c\\student.txt中。学生信息输入应用了结构数组,学生信息主要包括姓名,学号,性别,年龄以及备注。其中年龄为整型,其他为字符型。调用函数时,学生信息运用了指针数组,如voidModfiy(structstudent*arr,intn)在VoidDelete()调用函数中,当boolflag=ture是该学生不存在,即已被删除。在Voidsearch()调用函数中,当boolflag=ture是该学生存在,即已被查询到。当flag=false时则说明没有该学生信息。在查询系统中,有四种查询方式,分别是按姓名查询,按学号查询,按性别查询和按年龄查询。四种查询方式用Switch语句连接起来,进入每种查询方式要输入所需信息才能进入。该程序最大的特点是Switch连接各调用函数和各查询方式以及结构数组的运用,将各函数有序的连接起来。各个调用函数功能的实现如下:1)信息的录入主要运用循环语句将各个学生信息依次输入2)信息的显示也是用循环语句将各个学生信息显示出来。3)信息的保存是将信息重写到保存到的文件位置,其中信息保存在c:\\student.text4)信息的删除是运用字符串复印函数,将空格复印到信息字符上达到删除效果。5)信息的修改是输入学号用循环语句将需修改的信息显示出来,然后再输入新的信息6)信息的查询是通过Switch语句将查询方式连接起来,并在各个查询方式中用循环语句将要查询的信息显示出来。4.调试与测试初步调试的结果出现问题较多,经过多次修正和调试解决了许多问题,调试完成后进入主菜单按1录入学生信息,录入学生信息后可以通过提示按学号,姓名,性别,年龄进行查询。还能按5添加学生信息,按6修改学生信息,按7退出。5.心得与体会终于可以松口气了,经过一个思考,查资料,写源程序,上机调试,现在终于告一段落了。看到自己的劳动成果,心中不免有些惊喜,没想到自己还能独立完成初次的课程设计。这种课程设计是枯燥无味的,但对C语言这门程序语言的掌握却有非常大的作用.。从开始对题目的分析,就注定摆在我这样一个对C语言了解不多的新手面前的是一段艰难的旅程.但最终很庆幸的是我居然能够坚持下来,而且完成了设计工作。C语言是很难学的,这也许是因人而异,但对我来说确实是一个障碍。如今要自己完成一个课程设计,无疑是对自己的一个挑战.先是上网查找有关的资料,分析题目所需的数据,要用到哪些函数等等,星期二上网初步调试,将函数用些结构和语句连接起来,做这个工作时,又将书本翻阅了一遍,重新获得许多东西。如带参函数的特点,以及一些语句的运用及特点等等。将工作分配到每块是我完成这个设计的主要方法,然而将每块都完成看起来比较轻松,但实际操作起来却是比较麻烦的。由于平时对C语言知识的积累较为匮乏,(这可能是最主要的原因了),所以操作起来真是寸步难行,没办法,只有拿出课本找到相应的知识点,临阵磨枪.费了一番功夫,再上机调试时就是最痛苦的时候了,错误一大堆,要一个一个的修改。经过几翻调试修改之后终于可以执行了,那时还兴奋了好长时间呢!然而执行出来的结果是不令人满意的,界面不美观不说,最重要的是输入太烦琐,而且受到的限制太多,如只能以某种方式输入,且个数受限制。于是又发费了大量时间去修改,终于比较满意了,但也到了星期五了,也就是答辩的时间。答辩的时候我才发现还有好多知识是我不会的,老师问了我一些问题,我回答出来的却不多,我体会到我还要很努力的学习,在C语言的学习上我还有很长的一段路要走。今天不管怎样把这个设计作出来是件很高兴的事情,不过能够把这个设计顺利完成要归功于我的指导老师,帮了我很多忙,也让我发现了我有好多欠缺的地方,真的很感谢你们,谢谢!但不管怎么样,我还是完成了这个设计。虽说累了点,但我想这对我们进一步掌握C语言,并为下学期的计算机二级考试是有很大的帮助的.。能够编出程序,其实本身就是对自己的一种肯定,是对自己前面一段时间学习C语言综合水平的一个检阅.当然完成后的兴喜,只有经历过了才能体会到。而我体会到了.课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。源程序#includestdio.h#includewindows.h#includetime.h#includestring.h#defineN100structstudent{intnum;charname[10];charsex;intage;charxueli[30];charbeizhu[50];charaddr[30];longinttel;}st[100];/*定义一个结构体*/voidmenu();voidinput();voidsave(int);voiddisplay();voiddel();voidadd();voidsearch();voidsearch_num();voidsearch_name();voidsearch_sex();voidsearch_age();voidmodify();/*定义各函数*/voidmenu()/*菜单函数*/{printf(☆☆☆土木工程☆☆☆\n);printf(\n);printf(∮***班****∮\n);printf(\n);printf(******************学生档案管理****************\n);printf(1.录入学生信息);printf(2.显示学生信息\n);printf(3.查询学生信息);printf(4.删除学生信息\n);printf(5.添加学生信息);printf(6.修改学生信息\n);printf(7.退出\n);printf(********************谢谢使用******************\n);printf(\n);printf(\n);}voidmain(){menu();/*调用菜单函数*/intn,flag;chara;do{printf(请选择你需要操作的步骤(1--7):\n);scanf(%d,&n);if(n=1&&n=7){flag=1;break;}else{flag=0;printf(您输入有误,请重新选择!);}}while(flag==0);while(flag==1){switch(n){case1:printf(◆◆◆输入学生信息◆◆◆\n);printf(\n);input();break;case2:printf(◆◆◆显示学生信息◆◆◆\n);printf(\n);display();break;case3:printf(◆◆◆按学号查询学生信息◆◆◆\n);printf(\n);search();break;case4:printf(◆◆◆删除学生信息◆◆◆\n);printf(\n);del();break;case5:printf(◆◆◆添加学生信息◆◆◆\n);printf(\n);add();break;case6:printf(◆◆◆修改学生信息◆◆◆\n);printf(\n);modify();break;case7:exit(0);break;default:break;}getchar();printf(\n);printf(是否继续进行(yorn):\n);scanf(%c,&a);if(a=='y'){flag=1;system(cls);/*清屏*/menu();/*调用菜单函数*/printf(请再次选择你需要操作的步骤(1--7):\n);scanf(%d,&n);printf(\n);}elseexit(0);}}voidinput()/*录入函数*/{inti,m;printf(请输入需要创建信息的学生人数(1--100):\n);scanf(%d,&m);for(i=0;im;i++){printf(请输入学号:);srand((int)time(0));st[i].num=rand()%10000+20000000;if(st[i].num!=st[i-1].num)printf(%8d,st[i].num);printf(\n);printf(请输入姓名:);scanf(%s,st[i].name);getchar();printf(请输入性别(f--女m--男):);scanf(%c,&st[i].sex);printf(请输入年龄:);scanf(%d,&st[i].age);printf(请输入备注:);scanf(%s,&st[i].beizhu);printf(\n);}printf(\n创建完毕!\n);save(m);}voidsave(intm)/*保存文件函数*/{inti;FILE*fp;if((fp=fopen(c:\\student.txt,wb))==NULL){printf(cannotopenfile\n);exit(0);}for(i=0;im;i++)/*将内存中学生的信息输出到磁盘文件中去*/if(fwrite(&st[i],sizeof(structstudent),1,fp)!=1)printf(filewriteerror\n);fclose(fp);}intload()/*导入函数*/{FILE*fp;inti=0;if((fp=fopen(c:\\student.txt,rb))==NULL){printf(cannotopenfile\n);exit(0);}else{do{fread(&st[i],sizeof(structstudent),1,fp);i++;}while(feof(fp)==0);}fclose(fp);return(i-1);}voiddisplay()/*显示函数*/{inti;intm=load();printf(\n学号\t姓名\t性别\t年龄\t备注\n);for(i=0;im;i++)/*m为输入部分的学生人数*/printf(\n%d
本文标题:C语言班级档案管理系统
链接地址:https://www.777doc.com/doc-1960255 .html