成都信息工程学院计算机系
课程实验报告
实验课程: C语言程序设计2 实验项目: 职工管理系统 指导教师: 李莉丽 学生姓名: 桂柯 学生学号: 班 级: 计科3班 实验地点: 5201 实验时间: 2011 年 5月 11日 点~ 点 实验成绩: 评阅老师: 李莉丽
(说明:实验报告必须包含下面的每项内容,根据实验情况认真填写,封面必须打印或复印(A4纸),书写上机实验报告内容的纸张也用A4纸,最后从侧面装订)
一【上机实验目的】
通过亲自设计程序,可以令我们熟悉c语言操作,更熟练的掌握c语句。初步体会编程的过程,为将来的程序深入学习打下基础和培养兴趣。
二【实验环境】 TC2.0
三【上机实验内容】
职工信息管理系统 要求:
职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等(职工号不相等)。试设计一职工信息管理系统,使之能够提供下列功能: (1)系统以菜单方式工作
(2)职工信息录入功能(职工信息用文件保存) (3)职工信息浏览功能
(4)职工信息查询功能,查询方式: 1)按学历查询
2)按职工号查询
(5)职工信息删除,修改功能(可选项)。 思路:
(1)录入并向文件里保存数据的实现思路:C语言并没有提供由键盘输入数据直接录入文件的功能,只有内存变量向文件写入数据的功能,而由键盘输入数据可以到内存变量,因此实现此部分功能时,应当由键盘将数据放入变量,再由变量写入文件。这里录入要求不采用书上例子,它是用结构体数组,我们要求只用一个结构体实现。先将一个人的信息放入结构体,将这个结构体数据写入文件后,再将下一个人的信息继续放在这个结构体中,再将这个结构体写入文件。这样节省内存空间。
计算并修改文件里数据的实现思路:这部分的功能的实现应当先将文件的数据读到变量当中,在变量当中完成计算,再将数据写入文件。如果只是修改文件的数据,并不计算,则可以直接定位到文件中相应的位置,写入数据,则把原来的数据覆盖以完成修改。
(2)向文件里追加数据的实现思路:文件本身提供了这项功能,只要以 “a”的方式打开就行。然后向文件写入的数据,直接放在文件末尾。
(3)查找文件里是否有某项数据的实现思路:C语言并没有提供判断文件内容的功能,必须将文件内容读到变量里再进行判断。实际的查找可能是在大量的数据里的查找,高效的查找是折半查找(下学期的数据结构专门讲这一内容),折半的前提是排序,因此需先对排序后的文件读出,以折半方式查找。(这要要求,是希望巩固折半查找与排序两个重要算法,至于它的时空效率是否高,可以学完《数据结构》知识后自己再判断)。
(4)根据要求显示文件里的某些数据或全部数据的实现思路:C语言没有提供将文件内容显示的功能,所以需要将文件内容读到变量里,再显示变量。
(5)在文件里插入或删除某项数据的实现思路:C语言同样没有直接提供该项功能,因此必须借由内存变量完成。由以前的知识知道,在大量的数据里删除一个数,用数组表示不合适,因为涉及到大量的数据的移动,用链表是合适的,效率高(关于这一点,在《数据结构》这门课有详细的讲解)。因此完成