欢迎来到天天文库
浏览记录
ID:55922773
大小:234.50 KB
页数:17页
时间:2020-06-15
《C语言职工档案管理系统500多行代码1.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1.程序的总体设计职工档案管理系统设计,每个职工是一条记录,包括编号,姓名,性别,出生年月,所在部门,职称,工资级别、电话等。系统可实现以下功能:1、输入功能:输入每一位职工记录,将其信息存入文件中。2、显示功能:完成全部职工记录的显示。3、查找功能:完成按编号或姓名查找职工的相关记录,并显示。2.数据结构对于这个职工档案系统的设计,我主要采用结构体存放不同类型的数据,运用数组对各数据进行控制,而所有数据(除ID外)都以字符型的形式存放,这样方便存入中文数据。本程序用指针相对较少,事实上,我只在文件的保存函数上用了指针。只要是因为我们对指针了解相对
2、较少,而且指针相对容易出错误,而这个程序用结构体和数组就可以很好地完成。3.函数原型声明的说明(功能,参数,返回值)1.主函数voidmain()主函数的主意作用是调用函数以实现程序的预期功能,主函数有各函数的声明调用。主函数用switch语句对各函数进行调用。2添加函数:voidappend()该函数是无参函数,主要功能是添加职工,由于界面为DOS的命令界面,为了使添加更加人性化,我采用先确认添加人数,再对每个员工的每条信息,逐个添加,这样可以减少错误的发生和加快输入速度。员工添加后可用保存函数,将其数据保存到指定文件中。3查找函数:voidse
3、arch()该函数是无参函数,主要功能是查找员工,可按编号或姓名查找职工的相关记录,按姓名查找时采用字符串处理函数strcmp()进行比较,这样可以用两种方法查找职工信息。4输出函数:voidoutput()该函数是无参函数,主要功能是输出全部员工的信息,用for语句进行输出。5删除函数:voiddelete()该函数是无参函数,主要功能是删除指定员工的全部信息,该函数相对较复杂,用for语句对删除后该员工后的员工的序号进行排列。176修改函数:voidmodify()该函数是无参函数,主要功能是修改指定员工的信息,该函数有密码操作,要输入密码后才
4、能进入修改界面,密码操作采用while语句,用getch()输入密码,可以将密码隐藏。这里getch()函数要调用conio.h文件。7保存函数:voidsave()该函数是无参函数,主要功能是保存添加的员工信息到指定文件,该函数用到了指针和文件的内容。8主菜单函数:voidshowmenu()该函数是无参函数,主要功能是提供美观的菜单界面。9文档导入函数:voidread()该函数是无参函数,主要功能是导入文件中的职工档案信息。9数据排序函数:voidsort()该函数是无参函数,主要将职工数据排序,分按编号排序和工资排序,工资排序又分从高到低和
5、从低到高两种。二、详细设计1.main()流程图17修改数据输入密码由低到高由高到低按工资排序按编号排序导入数据Switch语句查找函数输出数据修改函数开始主函数删除数据保存数据数据排序添加数据主菜单函数按姓名查找按编号查找三、测试及调试(测试方案、存在的问题及解决方法)测试方案、存在的问题及解决方法我用的是visualC++6.0进行编译和测试的,主要观察程序运行的错误及找出错误发生的原因,还有各函数的功能的实现以及部分变量在程序运行时的变化。采取逐个函数测验的方法,虽然比较耗时间,但是我实在没有找到可以检查我的海量错误的方法。下面是某此调试的截
6、图。17可以看到,这时候几乎什么错误都有,低级的错误数不清,高级的错误无法数,在这样的局势下,我仍然心静如水地检查错误,下面介绍我遇到的问题及其解决方案。我主要遇到了三个函数问题,第一,我原本想用数组代替指针,这样可以更好的检查错误,但是后来的的数据保存就遇到了问题,老是无法正确的保存数据,所以还是用了个FILE*fp,当然也为此狂看了文件一章,最后在数据导入也用到了指针和文件。第二,题目本没有要求写删除函数也没有要求写排序函数,也许修改函数能够代替删除函数的一部分功能,但是无法减少职工的数目,这个对于想裁员的公司不利,所以,我又想了一个删除函数。
7、写删除函数遇到的问题是,我删除了编号为2的函数,如何把2后面的同志移到前面来,而1不动,后来还是用最笨的for语句搞定了,据说这里可以用链表很美妙地完成,但是也可以不用链表。排序函数是最后加上去的,一个原因是我的程序不够500行,就完成了功能,后来要求尽情发挥,我就用了排序函数,这个函数相对简单,用的是我们学过的起泡法排序,有按照编号和工资排序两种方式,也用到了switch语句,这样是程序的功能更加完善了。第三,密码的问题,密码函数是个比较严肃的函数,为此不能敷衍了事用个while语句和字符串处理函数搞定,这样密码是明文的,很别扭。所以,我又加了一
8、个不熟悉的头文件#include,调用了这个文件里的getch()函数,这个函数能够不显示你输入的字符,
此文档下载收益归作者所有