师资档案管理程序设计_第1页
师资档案管理程序设计_第2页
师资档案管理程序设计_第3页
师资档案管理程序设计_第4页
师资档案管理程序设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、沈航北方科技学院课程设计说明书课程名称 c语言课程设计教学部 工学一部专 业计算机科学与技术班 级学 号学生姓名指导教师20xx年7月沈航北方科技学院课程设计任务书教学部专业课程设计题目高校师资管理程序设计班级学号姓名课程设计时间:年月日至年月日课程设计的内容及要求:(一)主耍内容设计一个简单的高校师资管理程序,主要实现以下功能:1 记录基本的师资信息。包括:姓名、年龄、籍贯、职务、职称 等;2. 修改、删除师资信息;3. 可根据师资信息的姓名、籍贯以及年龄范围进行查询;4. 统计记录的各类师资信息的数量以及总数;5. 产品可按照年龄进行排序;(二)基木要求1.系统利用c或c+程序设计语言实现

2、。2独立完成系统的设计、编码和调试,通过指导教师当场验收。3 交出完整的课程设计报告。(三)主要参考书(四)评语(五)成绩指导教师 年月日负责教师 年月日师资档案管理程序设计目录1. 绪论12. 系统分析12.1数据需求12.2功能需求12.3性能需求13 总体设计23.1功能模块设计23. 2系统设计方案34. 详细设计和实现44师资信息添加模块44.2师资信息修改模块44.3师资信息删除模块54.4师资信息查询模块64.5师资信息查看模块75. 调试与测试95.1调试95.2测试96. 结论10结束语10附录1 一用户手册11附录2源程序15摘要师资档案管理系统对于现在多而凌乱的师资信息的

3、管理是及其方便的。在 整体对师资信息的概括与整理对许多管理人员很有用处,能节省很多时间,更 清晰的整理师资的信息。此程序为管理人员所开发,便于对师资档案的管理。本系统使用c语言作为程序开发的语言,开发师资档案管理系统,可以对 师资信息作出修改、删除、查询、插入的功能。本次课设从课题背景,课题意义,课题要求以及老师所要补充的要求岀 发,分别从课题需要,设计的概括,细致的设计,课设的测试等各个方而介绍 了系统的设计和实现过程,在最后对课设的完成情况做出了总结与心得体会。关键词:师资信息;查询;插入;c语言;1. 绪论现在学校在对统计与师资信息方面都要用到这种系统,能大大减少管理人 员的时间,只需输

4、入并点击就可以对师资的信息作以管理,能很好的提高工作 人员的工作效率。根据c语言综合训练任务书要求,本系统开发主要完成以下功能和性能。(1)录入师资信息,师资信息包括姓名、籍贯、年龄、职务、职称等。;(2)浏览所有师资信息;(3)按姓名、籍贯等条件查询师资信息;(4)按职务或年龄范圉查询师资信息;(5)修改、删除师资信息;2. 系统分析2.1数据需求本系统主要是对师资基本信息管理的系统。需要向系统输入姓名、籍贯、职务、年龄、职称。22功能需求本系统需要有添加、修改、删除、查询、插入的功能,利用显示函数将个 师资息显示出来。要求有循环显示的主菜单功能。2.3性能需求该系统完成后只要按照正确的提示

5、操作就不会出现错误,稳定性好,并且安全可靠。3 总体设计3.1功能模块设计根据分析整个系统主要划分为五个功能模块,分别执行要求中的功能。该 系统需要有添加、修改、删除、查询、插入功能,利用显示函数将老师的所有 信息显示。要求有循环显示菜单功能。功能模块图如图1所示。(1息师资俘理乘统询j.j.图1功能模块图(1) 添加模块对师资信息的添加。(2) 修改师资信息模块对师资信息的修改,其内部分为对教师姓名、籍贯、职务、年龄的子模块。(3) 查询师资信息模块对师资信息的查询包括通过姓名,学历,籍贯,年龄范围查询的子模 块。(4) 删除师资信息模块删除输入的师资姓名的信息。(5) 插入师资信息模块实现

6、插入新的师资的信息并保存到系统中。3. 2系统设计方案菜单设计一个总菜单,1.添加师资信息,2.修改师资信息,3.删除师资信息,4.查 询师资信息,5.插入师资信息。基本功能的实现都将体现在这几个菜单选项 屮。(2) 数据结构建立结构体如下:struct studentstruct teacherchar name20; /姓名int age; 年龄char nativeplace20; 籍贯int post; /职务(1 .助教2.讲师3.副教授4.教授)struct teacher 細ext;(3) 函数定义了个函数,实现以下功能:void show() 显示void add()增加voi

7、d modifyo/彥改void del()删除void search() 查找void cha() 插入void end() 结束void menu() 主菜单4. 详细设计和实现4.1师资信息添加模块实现对师资信息的输入,按照提示一步步的填写信息。设定所需要的指针(teacher * addteacher;),使用while (true)进行无限的程序循环,设定一个结构 体指针teacher *p使其指向空(null)依次录入教师名、籍贯、职称、职务等信 息,取其地址覆盖于current指向的结构体中再把其指向主链表住head).next中。再依 据需要选如图2所示。图2师资信息添加模块4

8、.2师资信息修改模块对师资信息进行修改,其内部分为对师资姓名,籍贯,职务,年龄,以及 职称等子模块,找到要修改的老师,输入修改后的信息覆盖原有信息。运用结 构体modifyteacher(struct teacher * head),定义指针,利用printf ("n请输入欲修改的 老师姓名:”)在界面上输lb信息提示,程序框图如图3所示。4.3师资信息删除模块此模块为删除师资信息所用。利用两个指针*p、*q使node *q = head; node *p = (*head).next确定其前一个节点与后一个节点的位置,然后仍旧用到查找函 数段上文已说明,此间不再赘述。再利用q二p;

9、p二tp)next使指针p与q向下 移动,达到指针p对目标节点查找育到定位的目的,之后使(*q).next二(*p).next 另目标节点的前节点与后节点相连完成删除。如图4所示。4.4师资信息查询模块此模块实现对师资信息的查询功能,能将已存的师资信息显示出来,定义 结构体searchteacher(struct teacher *head),利用printfcn请指定约束条件(条件可叠 加):")输出想要查询的条件,再利用指针struct teacher *p = head->next ,指向所 给的信息printf输出所查的结果如图5所示。图5师资信息查询模块45师资信息查

10、看模块描述实现对师资信息的查看,利用p->name, p->age, p->nativeplace, p->post)指针 来对信息进行查看经过条件语句if(p->post = 1) printfc助教n");elseif (p->post 二二 2) printf (/z讲师nz,) ; else if (p->post 二二 3) printf (z,畐!教授rt); else if(p->post = 4) printf c教授n"); 的使用最后就可以看见查询的结 果。如图6所示图6师资信息查看模块5. 调试与测试5.

11、1调试调试是开发c语言系统当中最困难也是最重要的一步,对于我这种水平的 人来说有限的初级开发者来说调试有时是比较困难的。测试是为了在程序的编 程过程中发现错误并及时的改正所有错误。调试过程中,根据电脑的提示对所 编的程序进行一步步的调试,找岀拼写错误以及逻辑错误,最困难的就是逻辑 错误,电脑本身并不会提示,可运行的时候却出现错误,这是就需要我们仔细 寻找,运用所学的知识替代错误的程序段。调试的过程就是运行程序,根据电脑提示的错误,从而进行修改,本系统 调试过程屮遇到问题、原因和解决方法如下面介绍。(1) 经过调试发现输入的师资信息中籍贯一栏只能输入一个字符,原因是编 写程序的时候将$拼写错误成

12、了山 解决方法:只要将s换成d就行了。(2) 输出师资信息的时候发现从职务往后就输入乱码,原因是scanf的输入 之间没有间隔,所以c输入的是空格,随后的就改为乱码了。解决方法:只要 将每个输岀之间加一个空格就行了。5.2测试再好的程序不经过测试也不知道其价值如何,也许编的程序很好,可是却 不适合市场的需求,所以理论上编完的程序需要实践的检验。经过实践后暴露 的缺点与不足才是真正需要修改的地方,而且在实践中检验这款系统也能发现 他的更高的潜力,经过顾客的需求进行修改,这样会更切合实际,所以测试时 非常重要的一道程序,不可忽略。测试数据过程如下:此师资档案管理系统具备对师资信息的添加、修改、删除

13、、查询、插入等 功能,现在测试系统能否正确显示岀的信息,当系统中存入的师资信息通过显 示功能显示时,系统会将师资的信息显示出来,而当输入的查询信息不符合系 统中的已存信息时,系统会提示“错误”。添加一个师资信息:,姓名:wang,籍贯:shengyang,年龄:21,职务:lo显示该师资信息:姓名:wang,年龄:21,籍贯:shengyang,职务:助 教。6. 结论终于完成了 c语言综合训练,任务书中所给出的任务都已全部实现,可以 对教师的信息进行添加、修改、删除、查询、排序以及统计,将教师的档案系 统的保存到系统当中。总体上能很好的完成教师档案的管理,不过还是有一些 不足之处,对数据输入

14、的形式上面有一些缺陷,例如性别上的输入,系统并没 有给出输入错误后的提示,需要认真输入才能减少出错。而且操作后输出的界 面不是很清晰。一些界面也没有设置返冋,所以比较麻烦,有待于提高,而口 也没设计文件保存。改进方式:再用一个函数对数据进行处理并带回,然后再 设计一个文件保存与读取的函数进行操作。结束语感觉c语言综合训练会非常的难,不过在老师和同学的帮助下终于顺利的 完成了这次综合训练,在此期间我真真正正的学到了一些知识,能够系统的掌 握c语言复杂的知识,在任务书中包括了大部分书中的内容,是对整个学期的 一个总结,将一个学期的知识全部运用到这次的课程设计当中来。其中运用到 了一些以前的程序,经

15、过调用成为新程序的零件,自己亲手一个一个的将散乱 的小程序编城一个大程序,由此真正提高了我的动手能力与实践能力,而且经 过调试使错误慢慢的减少,也使自己的信心慢慢增长对今后的编程的道路有了 新的体会。未来的路还有很长,遇到的困难也会比现在多很多,不过有此次课 设,我觉得我能接受更多的挑战,走更长的路。在未来的道路上边走边学。自 我成长,自我完善。参考文献1 谭浩强c语言程序设计(第三版).北京:清华犬学出版社2 林碧英c语言程序设计教程.中国电力出版社,20063 美赫伯特.希尔特,王子恢等译.c语言大全.电子工业出版社,20034 林小茶.c语言程序设计习题解答与上机指导m.北京:中国铁道出

16、版社, 2004黄远林c语言程序设计基础m.北京:高等教育岀版社,2004附录1 一用户手册1.点击运行,岀现操作界面,如图7所示,按数字提示进行操作即可rrr_ 一部师师息息息计 19 全老老信信信查添删修杳-it123456780择先一主月图7操作界面2.图8正在执行查看操作,根据条目选择你查看的信息部师师息息息计 全老老信信信 查添删修查保统矍 123456780选择:1名年龄籍贯职、2eweq 2£3图9执行删除功能,选择条目输入删除信息,并且成功rm 一s123456780部师师息息息 全老老信信信 查添删修查保统曹荫选择:3旌名一年龄一籍贯一一职、斎 qvj 2 eweq

17、 2 讲师 请輸入想要删除的老师姓名;dw 删廉成功?图9删除界面4.图10执行的是修改信息,选择你要修改的信息进行修改阻名-i年龄-籍贯-一一职务43duw讲师.高校师资管理系统部师师息息息计 全老老信信信 m 查添删修查保统矍 123456780陡专諱龄籍贯_职峦 qw 43 duw 2 讲师x青输入欲修改的老师姓名:q讨1目师条 w3 u t 攵 q 4 d ? wtm 师条 t 3 u t 攵 t 4 d & w囊b2.3.4.靈2.3.4.请图10修改界面5图11执行的是查询界面,根据条件选择你要查询的信息6 图12执行的是保存功能高校 师资管 理系统部师师息息息计0 全老老

18、信信信查添删修查保统矍 123456780图12保存界面7图13执行的是统计功能,对已有的数据进行统计,并通过此界面显示出来高校师资管理系统部师师息息息计 全老老信信信 查添删修查保统矍 123456780诒选择:?韋畐賣尖:«-43岁 最小:tt43岁图13统计界面附录2源程序ttinclude<stdio. h>#include<string>h>#include<stdlib. h>#include<conio.h>struct teacherchar name 20; /姓名int age; /年龄char nativep

19、lace20;/籍贯int post; /职务(1.助教2.讲师3.副教授4.教授)struct teacher *next;;/* * * * * * * *函数声明 void sortteacher(struct teacher *head, int (compare) (struct teacher *p);/排序 int compare.age(struct teacher *p);void menu();/主菜单struct teacher * readfromfileo;/从文件读取信息void writetoeile(struct teacher * head);/信息写入文件v

20、oid output (struct teacher * head);/显示所有信息、struct teacher * addteacher (struct teacher * head) ;/添加信息、void deleteteacher(struct teacher * head) ;/删除信息void modifyteacher (struet teacher * head) ;/修改信息void searchtcachcr (struct teacher *head);/查找信息void heightest (struct teacher * head): /统计void sortme

21、nu(struct teacher *head) ;/查询菜单f f%/x 7"|z|zt>*7* zj、"卜#tv"厂 zj> xjvz*j>#7 彳、(、z?>#(、厂 "卜l、l / . jmain()char n;struct teacher *head=null; hcacl=rcadfromfilc ();while(l)systemc'cls'o ; fflush (stdin);menu ();n=getche();switch(n)case t' : output (head) ;getc

22、h () ; break; case 2: addteachcr(head):break;case ' 3 :output(head);deleteteacher(head);break;case ' 4 :output(head); modifyteacher(head);break;case '5': searchteacher(head);break; case ' 6 :writetofile(head);print("n信息更新成功! n");getch ();break;case 7: heightest(head) ;

23、getch(): break;case 8: sortmenu(head); break;case ' o' : exit (0);/主菜单vo i d【nenu()printf cn");printfci高校师资管理系统ln);p广intf();printf(“1n);printf("|1.查看全部1 );p广intf c2.添加老师1 );printf("|3.删除老师1 );printf("|4.修改信息1 );printf(“5.查询信息1n);printf("|6.保存信息1 );p广intf c7.统计1n);pri

24、ntf("|&排序1 );printf("|0.退出1 );p广intf c1n);printf(-n);printf (择:);从文件读取信息struct teacher * readfromfile()file *fp;struct teacher *p, *head, *ta订;head=tail=(struct teacher *)malloc(sizeof(struct teacher); tail->next二null;if (fp=fopen("teachers", "r")=null)return hea

25、d;wh i 1 e (! f eof (fp)p=(struct teacher *)malloc(sizoof(struct teacher): if(fread(p, sizeof(struct teacher), 1, fp)p->next=null;tail>next=p; tail=p;fclose(fp);return head;/信息写入文件void writetoeile(struct teacher * head)struct teacher * p=head->next;file *fp;ip=i open( i each巳rs , w ):while

26、(p!=null)if(fwrite(p, sizeof(struct teacher), 1, fp) p=p->next;fclose (fp);/显示所有商品信息void output (struct teacher * head)struct teacher *p;printfcn姓名一年龄一籍贯一一职 务);for (p=hcacl->ncxt; p =null; p=p-next)printf (,z%s %d%s %d"、p->name, p->age, p->nativeplace,p->post);if(p->post =

27、1) printf c助教rt);else if (p->post 二二 2) printf (z,讲师rt); else if (p->post = 3) printf c副教授n") ; else if (p->post = 4) printf (,z教授rt); /添加structteacher * addteacher(struct teacher * head)struct teacher *p=hcad, *q;while (p->next!=null)p二p->next;q= (struct teacher *)malloc(sizcof(

28、struct teacher);printf cn姓名:");gets(q->name);if (strcmp(q->name,,zexit,)=0)return null;printf ("年龄:");seanf&q-age);while(getchar () !=' n );printfc籍贯:);gets(q->nat iveplace);printfc职务:”);scanf("%d", &q->post);q->next=null;p->next=q;p二 q;while(ge

29、tchar () !=' n );printf (信息添加成功! n);getch();return q;/删除信息void deleteteacher(struct teacher * head)char name20;struct teacher *q;q=head;printf (请输入想要删除的老师姓名:);gets(name);if (strcmp(name, "exit")二二0)return;for (p=head->ncxt;p!=nill;p=p->next)if(strcmp(name, p->name)二二0)q->ne

30、xt=p->next;printf(刪除成功! ); break;q二p;辻(p=nlll)printf c该老师不存在! n");getch();/修改信息void modi fyteacher(struct teacher * head)struct teacher *p;char name20;int. x;printfcn请输入欲修改的老师姓名:); gets(name);if (strcmp(name, "exit/)=0)return;for (p=head->ncxt;p!=nill;p=p->next)if (strcmp(name, p-

31、nanie) =0)wh i1e (1)printf(z/nl.姓名:%sn2.年龄:%dn3.籍贯:%sn4.职 务 :%d", p-name, p->age, p->nativeplace);if (p->post = 1) printf c助教n");else if (p->post = 2) printf (z/讲师n"); else if (p->post = 3) printf (“副教授n") ; else if (p->post = 4) printf ("教授n"); printf

32、t请选择欲修改的条目:);scanf&x);fflush(stdin);switch (x)icase 1:printf ("姓名:”);gets (p-name);break;case 2:pdntf ("年龄:);scanf&p->age);break;case 3:printf c籍贯:);gets (p->nativeplace);break;case 4:printf r职务(1.助教2讲师3.副教授4.教授):"); seanf("%d",&p->post); break;ease 0: r

33、eturn;辻(p = null)printf ("找不到该老师n");getcho ;/查找信息void scarchtcachcr(struct teacher *head)struct teacher *p;char x;char name20;int agemax, agemin;char nativeplace20;int post; /位置(1.助教2.讲师3.副教授4.教授)int flag5 = 0;while(!flagloj)system("cis");printf c'二二二二二二二二查 找二二二二二二二二 n")

34、;printftl 1.姓名2.年龄3.籍贯4.职务0.确认|);printf c = = = = = = = = = = = = = = = = = = = n");if (flag 1) printf ("姓名=%sn", name);if (flag2) printf (*%d < 年龄 < %dn,/, agemax, agemin):if (flag3) printf ("nativeplace 二 %sn,z, nativeplace);if(flag4)printf c职务二”);if (post = 1)printf (,z助

35、教rt);else if (post = 2)printf (,z讲师rt);print""副教授n);printf ("教授n");else if (post 二二 3)else if(post = 4) pcnt"、请指定约束条件(条件可叠加):);x=getchc();switch(x)case i :printf ("n请输入姓名:");gets(name);break;case ' 2 :printf (n请输入年龄区间(空格分隔)“);scanf("%d%d", &agemin

36、, &agcmax);break;case ' 3 :printf ("n请输入籍贯");gets (nativeplacc);break;case '4 :printf (、请输入职务(1.助教2.讲师3.副教授4.教授):“);scanf apost);break;case ' o' : break;flagx-' o' = 1;system("cis");printfc名年龄一籍贯职务n);for (p=hcacl->ncxt; p! =nill; p=p->ncxt)if(fla

37、g1&&strcmp(name, p->name)!=0) continue;if(flag2&&(p->agc>agcmax| p->agc<agemin) continue;if (flag3&&strcmp(nativeplacc, p->nativcplacc)!=0) continue; if(flag4&&post!二p->post) continue;printf (“ tos%-2d%-15s”、p->name, p->age, p->nativeplace);if (p->post = 1

温馨提示

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

评论

0/150

提交评论