教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

C语言职工档案管理系统 500多行代码

来源:网络收集 时间:2026-08-29
导读: 500多行代码,加了排序功能 C语言程序设计 课程设计报告 设计题目:职工档案管理系统设计 学 号班 级 电信一班 姓 名 陈文凯 2010年 2 月29 日 500多行代码,加了排序功能 1.程序的总体设计 职工档案管理系统设计,每个职工是一条记录,包括编号,姓名,性别

500多行代码,加了排序功能

C语言程序设计 课程设计报告

设计题目:职工档案管理系统设计

学 号班 级 电信一班 姓 名 陈文凯

2010年 2 月29 日

500多行代码,加了排序功能

1.程序的总体设计

职工档案管理系统设计,每个职工是一条记录,包括编号,姓名,性别,出生年月,所在

部门,职称,工资级别、电话等。系统可实现以下功能: 1、输入功能:输入每一位职工记录,将其信息存入文件中。 2、显示功能:完成全部职工记录的显示。

3、查找功能:完成按编号或姓名查找职工的相关记录,并显示。

2. 数据结构

对于这个职工档案系统的设计,我主要采用结构体存放不同类型的数据,运用数组对各数据进行控制,而所有数据(除ID外)都以字符型的形式存放,这样方便存入中文数据。本程序用指针相对较少,事实上,我只在文件的保存函数上用了指针。只要是因为我们对指针了解相对较少,而且指针相对容易出错误,而这个程序用结构体和数组就可以很好地完成。

3. 函数原型声明的说明(功能,参数,返回值)

500多行代码,加了排序功能

1.主函数 void main()

主函数的主意作用是调用函数以实现程序的预期功能,主函数有各函数的声明调用。主函数用switch语句对各函数进行调用。

2添加函数:void append()

该函数是无参函数,主要功能是添加职工,由于界面为DOS的命令界面,为了使添加更加人性化,我采用先确认添加人数,再对每个员工的每条信息,逐个添加,这样可以减少错误的发生和加快输入速度。员工添加后可用保存函数,将其数据保存到指定文件中。

3查找函数: void search()

该函数是无参函数,主要功能是查找员工,可按编号或姓名查找职工的相关记录,按姓名查找时采用字符串处理函数strcmp()进行比较,这样可以用两种方法查找职工信息。

4输出函数:void output()

该函数是无参函数,主要功能是输出全部员工的信息,用for语句进行输出。

5删除函数:void delete()

该函数是无参函数,主要功能是删除指定员工的全部信息,该函数相对较复杂,用for语句对删除后该员工后的员工的序号进行排列。

6修改函数:void modify()

该函数是无参函数,主要功能是修改指定员工的信息,该函数有密码操作,要输入密码后才能进入修改界面,密码操作采用while语句,用getch()输入密码,可以将密码隐藏。这里getch()函数要调用conio.h文件。

7保存函数:void save()

该函数是无参函数,主要功能是保存添加的员工信息到指定文件,该函数用到了指针和文件的内容。

8主菜单函数:void showmenu()

该函数是无参函数,主要功能是提供美观的菜单界面。

9文档导入函数:void read()

该函数是无参函数,主要功能是导入文件中的职工档案信息。

9数据排序函数:void sort()

500多行代码,加了排序功能

该函数是无参函数,主要将职工数据排序,分按编号排序和工资排序,工资排序又分从高到低和从低到高两种。

二、详细设计 1.main()流程图

500多行代码,加了排序功能

三、测试及调试(程序运行截图,测试方案、存在的问题及解决方法) (写明测试软件的时候采用的测试方法、测试数据,并说明在你软件设计、调试过程中

的遇到的问题和解决方案)

1.程序运行截图

a.这是添加数据的程序运行截图

500多行代码,加了排序功能

b.这是查找数据中的按姓名查找的程序运行截图

c.这是修改数据的程序运行截图,需要输入9个密码才能够修改。

500多行代码,加了排序功能

d.这是删除数据的程序运行截图,我们删除了职工

e.这是排序数据的程序运行截图

500多行代码,加了排序功能

2.测试方案、存在的问题及解决方法

我用的是visual C++ 6.0进行编译和测试的,主要观察程序运行的错误及找出错误发

生的原因,还有各函数的功能的实现以及部分变量在程序运行时的变化。采取逐个函数测验的方法 ,虽然比较耗时间,但是我实在没有找到可以检查我的海量错误的方法。下面是某此调试的截图。

可以看到,这时候几乎什么错误都有,低级的错误数不清,高级的错误无法数,在这样的

500多行代码,加了排序功能

局势下,我仍然心静如水地检查错误,下面介绍我遇到的问题及其解决方案。

我主要遇到了三个函数问题,第一,我原本想用数组代替指针,这样可以更好的检查错误,但是后来的的数据保存就遇到了问题,老是无法正确的保存数据,所以还是用了个FILE *fp,当然也为此狂看了文件一章,最后在数据导入也用到了指针和文件。第二,题目本没有要求写删除函数也没有要求写排序函数,也许修改函数能够代替删除函数的一部分功能,但是无法减少职工的数目,这个对于想裁员的公司不利,所以,我又想了一个删除函数。写删除函数遇到的问题是,我删除了编号为2的函数,如何把2后面的同志移到前面来,而1不动,后来还是用最笨的for语句搞定了,据说这里可以用链表很美妙地完成,但是也可以不用链表。排序函数是最后加上去的,一个原因是我的程序不够500行,就完成了功能,后来要求尽情发挥,我就用了排序函数,这个函数相对简单,用的是我们学过的起泡法排序,有按照编号和工资排序两种方式,也用到了switch语句,这样是程序的功能更加完善了。第三,密码的问题,密码函数是个比较严肃的函数,为此不能敷衍了事用个while语句和字符串处理函数搞定,这样密码是明文的,很别扭。所以,我又加了一个不熟悉的头文件#include <conio.h>,调用了这个文件里的getch()函数,这个函数能够不显示你输入的字符,很有保密特性。

程序设计其实是最大的问题,起初的两三天我根本就不知道从哪里入手,后来参考到可以用switch语句对各功能函数很好的利用,这里还用到了break语句,感觉,课堂上没讲的东西就是这么有用啊!

关于如何输入数据信息的问题,我起初准备用一个scanf语句,输入全部的职工信息,都是后来发现这样极易出现输入格式不正确的问题,后来就考虑用一个一个数据输入的方法,虽然这样做使代码长度加长了一些,但是这样输入简单明了更加人性化,所以我最终采用了逐个数据输入的方法。

我还用宏定义定义了一个最大员工数MAX_NUM,这样能够使程序更高效率更准确地运行,而且改变最大员工数业很方便。

最后谈谈调试错误的问题,上面已经晒了我的错误截图,感觉这些错误确实很震撼人,有时候就一个字符串函数应用错误,找了半天,居然发现strcmp前面忘记加“!”了,还有诸如忘记写“;”“}”,最头痛的还是把%s写成%d,这样程序能够运行,就是系统告诉你内存错误,搞得我以为电脑坏了,调了半天电脑,这就足够悲剧的。最后还是一点一点地去检查,不怕花费时间,就怕那些小东西太不入眼了。越是小的问题,可能浪费的时间就越让人感到悲愤,所以,细心检查永远是解决此类问题的良方。

四、小结(收获和建议)

通过本次课程设计我不仅温习了C程序设计课程的主体知识,还锻炼了对错误的承受能力,而且这个题 …… 此处隐藏:2833字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言职工档案管理系统 500多行代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/104581.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)