C语言班级档案管理系统_第1页
C语言班级档案管理系统_第2页
C语言班级档案管理系统_第3页
C语言班级档案管理系统_第4页
C语言班级档案管理系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计任务书课程名称C语言课程设计课题班级档案治理系目录1 .设计目的2 .总体设计3 .详细设计4 .调试与测试:5 .总结与体会附:源程序清单和执行1.设计目的a了解和掌握c语言面向对象程序设计的根本过程.b进一步熟悉C语言的特点.c学会总体规划一个程序,从各个局部把一个程序完成好.d能够使自己的程序实现一定的功能,对C+产生一种浓厚的兴趣.e培养耐心,遇困难不退缩.f了解团队精神的重要性,团结合作.加深对?C语言?课程所学知识的理解,进一步稳固C语言讲法规那么.学会编制结构清楚、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的水平.在熟练掌握C语言的根本知识:数据类型整

2、形、实型、字符型、指针、数组、结构等;运算类型算术运算、逻辑运算、自增自减运算、赋值运算等;程序结构顺序结构、判断选择结构、循环结构;大程序的功能分解方法即函数的使用等.进一步掌握各种函数的应用,以及文件的读写操作等.2总体设计主菜单界面学生档案治理*班*1 .录入学生信息2 .显示学生信息3 .查询学生信息4 .删除学生信息5 .添加学生信息6 .修改学生信息7退出7*谢谢使用*信息录入1按学号查询2按姓名查询3按性别查询4按年龄查询3 .详细设计本程序由一个Voidmain(),一个Voidinput(),一个VoidSave(),一个Voiddisplay(),一个VoidDelete(

3、),一个Voidadd和一个VoidSearch()共七个主要函数来实现该程序的编程的.其中在主函数Voidmain()中调用其他六个函数,通过Switch语句来实现调用进入各个函数,进入主菜单通过录入函数录入学生信息,并自动保存在cstudent.txt中.学生信息输入应用了结构数组,学生信息主要包括姓名,学号,性别,年龄以及备注.其中年龄为整型,其他为字符型.调用函数时,学生信息运用了指针数组,如voidModfiy(structstudent*arr,intn)在VoidDelete()调用函数中,当boolflag=ture是该学生不存在,即已被删除.在Voidsearch()调用函数

4、中,当boolflag=ture是该学生存在,即已被查询到.当flag=false时那么说明没有该学生信息.在查询系统中,有四种查询方式,分别是按姓名查询,按学号查询,按性别查询和按年龄查询.四种查询方式用Switch语句连接起来,进入每种查询方式要输入所需信息才能进晨该程序最大的特点是Switch连接各调用函数和各查询方式以及结构数组的运用,将各函数有序的连接起来.各个调用函数功能的实现如下:1信息的录入主要运用循环语句将各个学生信息依次输入2信息的显示也是用循环语句将各个学生信息显示出来.3信息的保存是将信息重写到保存到的文件位置,其中信息保存在c:student.text4信息的删除是运

5、用字符串复印函数,将空格复印到信息字符上达到删除效果.5信息的修改是输入学号用循环语句将需修改的信息显示出来,然后再输入新的信息6) 信息的查询是通过Switch语句将查询方式连接起来,并在各个查询方式中用循环语句将要查询的信息显示出来.4 .调试与测试初步调试的结果出现问题较多,经过屡次修正和调试解决了许多问题,调试完成后进入主菜单按1录入学生信息,录入学生信息后可以通过提示按学号,姓名,性别,年龄进行查询.还能按5添加学生信息,按6修改学生信息,按7退出.5 .心得与体会终于可以松口气了,经过一个思考,查资料,写源程序,上机调试,现在终于告一段落了.看到自己的劳动成果,心中不免有些惊喜,没

6、想到自己还能独立完成初次的课程设计.这种课程设计是枯燥无味的,但对C语言这门程序语言的掌握却有非常大的作用.从开始对题目的分析,就注定摆在我这样一个对C语言了解不多的新手面前的是一段艰难的旅程.但最终很庆幸的是我居然能够坚持下来,而且完成了设计工作.C语言是很难学的,这也许是因人而异,但对我来说确实是一个障碍.如今要自己完成一个课程设计,无疑是对自己的一个挑战.先是上网查找有关的资料,分析题目所需的数据,要用到哪些函数等等,星期二上网初步调试,将函数用些结构和语句连接起来,做这个工作时,又将书本翻阅了一遍,重新获得许多东西.如带参函数的特点,以及一些语句的运用及特点等等.将工作分配到每块是我完

7、成这个设计的主要方法,然而将每块都完成看起来比拟轻松,但实际操作起来却是比较麻烦的.由于平时对C语言知识的积累较为匮乏,这可能是最主要的原因了,所以操作起来真是寸步难行,没方法,只有拿出课本找到相应的知识点,临阵磨枪.费了一番功夫,再上机调试时就是最痛苦的时候了,错误一大堆,要一个一个的修改.经过几翻调试修改之后终于可以执行了,那时还兴奋了好长时间呢!然而执行出来的结果是不令人满意的,界面不美观不说,最重要的是输入太烦琐,而且受到的限制太多,如只能以某种方式输入,且个数受限制.于是又发费了大量时间去修改,终于比拟满意了,但也到了星期五了,也就是辩论的时间.辩论的时候我才发现还有好多知识是我不会

8、的,老师问了我一些问题,我答复出来的却不多,我体会到我还要很努力的学习,在C语言的学习上我还有很长的一段路要走.今天不管怎样把这个设计作出来是件很快乐的事情,不过能够把这个设计顺利完成要归功于我的指导老师,帮了我很多忙,也让我发现了我有好多欠缺的地方,真的很感谢你们,谢谢!但不管怎么样,我还是完成了这个设计.虽说累了点,但我想这对我们进一步掌握C语言,并为下学期的计算机二级测试是有很大的帮助的.能够编出程序,其实本身就是对自己的一种肯定,是对自己前面一段时间学习C语言综合水平的一个检阅.当然完成后的兴喜,只有经历过了才能体会到.而我体会到了.课程设计是培养学生综合运用所学知识,发现,提出,分析

9、和解决实际问题,锻炼实践水平的重要环节,是对学生实际工作水平的具体练习和考察过程.随着科学技术开展的日新日异,当今计算机应用在生活中可以说得是无处不在.因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的.源程序#include#include#include#include#defineN100structstudentintnum;charname10;charsex;intage;charxueli30;charbeizhu50;charaddr30;longinttel;st100;/*定义一个结构体*/voidmenu();voidinput();voidsave(int);v

10、oiddisplay.;voiddel();voidadd();voidsearch();voidsearch_num();voidsearch_name();voidsearch_sex();voidsearch_age();voidmodify();/*定义各函数*/voidmenu()/*菜单函数*/printf(printf(n);printf(printf(n);printf(printf(printf(printf(printf(printf(printf(printf(printf(printf(n);printf(n);*1 .录入学生信息2 .显示学生信息3 .查询学生信息4

11、 .删除学生信息5 .添加学生信息6 .修改学生信息7 .退出n);*班*dn);学生档案治理*n););n););n););n);谢谢使用*n);voidmain()menu();/*调用菜单函数*/intn,flag;chara;doprintf(请选择你需要操作的步骤(1-7):n);scanf(%d,&n);if(n=1&n=7)flag=1;break;elseflag=0;printf(您输入有误,请重新选择!);while(flag=0);while(flag=1)switch(n)(输入学生信息显示学生信息按学号查询学生信息case1:printf(n);printf(n);i

12、nput();break;case2:printf(n);printf(n);display();break;删除学生信息n);printf(n);del();break;添加学生信息n);printf(n);add();break;修改学生信息case3:printf(n);printf(n);search();break;case4:printf(case5:printf(case6:printf(n);printf(n);modify();break;case7:exit(0);break;default:break;getchar();printf(n);printf(是否继续进行(y

13、orn):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);sti.num=rand()%10000+20000000;if(sti.num!=sti

14、-1.num)printf(%8d,sti.num);printf(n);printf(请输入姓名:);scanf(%s,);getchar();printf(请输入性别(f-女m-男):);scanf(%c,&sti.sex);printf(请输入年龄:);scanf(%d,&sti.age);printf(请输入备注:);scanf(%s,&sti.beizhu);printf(n);printf(n创立完毕!n);save(m);voidsave(intm)/*保存文件函数*/inti;FILE*fp;if(fp=fopen(c:student.txt,wb)=NULL)

15、printf(cannotopenfilen);exit(0);for(i=0;im;i+)/*将内存中学生的信息输出到磁盘文件中去*/if(fwrite(&sti,sizeof(structstudent),1,fp)!=1)printf(filewriteerrorn);fclose(fp);intload()/*导入函数*/FILE*fp;inti=0;if(fp=fopen(c:student.txt,rb)=NULL)printf(cannotopenfilen);exit(0);elsedofread(&sti,sizeof(structstudent),1,fp);i+;)whi

16、le(feof(fp)=0);)fclose(fp);return(i-l);)voiddisplay()/*显示函数*/(inti;intm=load();printf(n学号t姓名t性另t年龄t备注n);for(i=0;im;i+)/*m为输入局部的学生人数*/printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel);)voiddel()/*删除函数*/(intm=load();inti,j,n,t,flag;charname20;pri

17、ntf(n原来的学生信息:n);display();/*调用显示函数*/printf(n);printf(请输入要删除的学生的姓名:n);scanf(%s,name);for(flag=1,i=0;flag&im;i+)(if(strcmp(,name)=0)(printf(n已找到此人,原始记录为:n);printf(n学号t姓名t性别t年龄t备注n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel);printf(

18、n确实要删除此人信息请按1,不删除请按0n);scanf(%d,&n);if(n=1)/*如果删除,那么其他的信息都往上移一行*/(for(j=i;jm-1;j+)(strcpy(,stj+1.name);stj.num=stj+1.num;stj.sex=stj+1.sex;stj.age=stj+1.age;strcpy(stj.xueli,stj+1.xueli);strcpy(stj.beizhu,stj+1.beizhu);strcpy(stj.addr,stj+1.addr);stj.tel=stj+1.tel;flag=0;if(!flag)m=m-1;elsep

19、rintf(n对不起,查无此人!n);printf(n浏览删除后的所有学生信息:n);save(m);/*调用保存函数*/display();/*调用显示函数*/printf(n继续删除请按1,不再删除请按0n);scanf(%d,&t);switch(t)case1:del();break;case0:break;default:break;voidadd()/*添加函数*/FILE*fp;intn;intcount=0;inti;intm=load();printf(n原来的学生信息:n);display();/*调用显示函数*/printf(n);fp=fopen(student_lis

20、t,a);printf(请输入想增加的学生数:n);scanf(%d,&n);for(i=m;i=1&t=5)flag=1;break;elseflag=0;printf(您输入有误,请重新选择!);)while(flag=0);while(flag=1)(switch(t)(case1:printf(按学号查询n);search_num();break;case2:printf(按姓名查询n);search_name();break;case3:printf(按性别查询n);search_sex();break;case4:printf(按年龄查询n);search_age();break;

21、case5:main();break;default:break;)voidsearch_num()(intnum;inti,t;intm=load();printf(请输入要查找的学号:n);scanf(%d,&num);for(i=0;im;i+)if(num=sti.num)(printf(n已找到此人,其记录为:n);printf(n学号t姓名t性别t年龄t备注n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel);break

22、;)if(i=m)printf(n对不起,查无此人n);printf(n);printf(返回查询函数请按1,继续查询学号请按2n);scanf(%d,&t);switch(t)(case1:search();break;case2:break;default:break;)voidsearch_name()(charname10;inti,t;intm=load();printf(请输入要查找的姓名:n);scanf(%s,name);for(i=0;im;i+)if(strcmp(,name)=0)(printf(n已找到,其记录为:n);printf(n学号t姓名t性别t

23、年龄t备注n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel);if(i=m)printf(n对不起,查无此人n);printf(n);printf(返回查询函数请按1,继续查询姓名请按2n);scanf(%d,&t);switch(t)(case1:search();break;case2:break;default:break;voidsearch_sex()(charsex;inti,t;intm=load();printf(

24、请输入要查找的性别:n);scanf(%c,sex);for(i=0;im;i+)if(sex=sti.sex)(printf(n已找到此人,其记录为:n);printf(n学号t姓名t性别t年龄t备注n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel);break;if(i=m)printf(n对不起,查无此人n);printf(n);printf(返回查询函数请按1,继续查询性别请按2n);scanf(%d,&t);switch

25、(t)(case1:search();break;case2:break;default:break;voidsearch_age()(intage;inti,t;intm=load();printf(请输入要查找的年龄:n);scanf(%d,&age);for(i=0;im;i+)if(age=sti.age)(printf(n已找到此人,其记录为:n);printf(n学号t姓名t性别t年龄t备注n);printf(n%dt%st%ct%dt%st%st%st%ldn,sti.num,,sti.sex,sti.age,sti.xueli,sti.beizhu,sti.addr,sti.tel);break;if(i=m)printf(n对不起,查无此人n);printf(n);printf(返回查询函数请按1,继续查询年龄请按2n);scanf(%d,&t);switch(t)(case1:search();break;case2:break;default:break;voidmodify()/*修改函数*/(intn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论