C语言课程设计职工管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

洛阳理工学院

课程设计说明书

课程名称C语言程序设计

设计课题职工管理系统

专业计算机科学与技术

班级B140501

学号

姓名

完成日期2015-7-1

课程设计任务书

设计题目:职工信息管理系统

设计内容与要求:

1.1问题描述

对职工信息进行管理,职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

1.2基本要求

(1) 系统以菜单方式工作

(2) 职工信息录入功能(职工信息用文件保存) 。

(3) 输出职工信息、浏览职工信息功能。

(4) 查询和排序功能:(至少一种查询方式) ,如按工资查询、按学历查询等。

(5) 职工信息删除、修改功能(任选项)。

指导教师:_______________

年月日

课程设计评语

成绩:

指导教师:_______________

年月日

目录

1.设计概述

2.总体设计

3.功能模块图

3.1录入员工数据

3.2输出员工数据

3.3查找员工数据

3.4修改员工数据

4.测试

5.设计总结

6.源代码

概述

设计的目标是建立一个可以录入,浏览,查找以及修改员工所有数据的职工管理同,在不知道有多少职工的情况下我采用了动态链表的方式来使员工的信息录入的更加简单方便。实现浏览员工信息的过程中我选择了用循环的方式输出每一个节点信息,同样用循环的方法通过每一个节点中的工号所要查找的工号的对比,实现了员工数据的查找,然后将printf改成scanf从而实现了修改员工信息。这五个功能均在一个不停循环的系统中,每完成一种操作就会返回主界面重新选择要进行的操作,实现退出系统的功能时用break直接跳出五个功能的循环,从而结束整个信息管理系统。

录入员工数据输出员工数据

查找员工数据修改员工数据

测试

录入员工数据

输出员工数据

查找员工数据

修改员工数据

退出系统

设计总结

在程序还没有开始写之前,我一直在想用什么方式来写这个程序,使用一直使用的循环还是用刚学的自己并不熟悉的链表,因为用循环的写法许久没有头绪,最后我选择了写起来难度高但是代码比较简洁的链表。选定用链表写程序后,我开始看课本上关于链表建立、输入输出的例子,然后自己模仿着课本上的例子写出来了程序当录入以及输出部分的代码,通过几次尝试和变通也写出了查找的代码,然后通过对查找的代码的修改完成了修改部分的源代码。在编译解决错误之后,发现录入无法停止,这个问题困扰了我很久,最后在同学的帮助下找到了错误。

解决了无法停止录入的问题后,又发现录入完毕后无法返回主页面,对自己的程序重新梳理之后发现自己的程序只能运行一种功能,然后我在操作选择界面的代码上加上了强制循环的while(1),加入了退出系统这一功能,当选择退出系统时,这个功能的代码会在整个循环中直接使用break跳出整个循环。

在让老师检测这个程序的时候,发现查找员工时只能查找已有数据的员工,查找没有数据的员工时会发生错误。在重新检查这个代码时,看到自己设定的当p=NULL时输出未查找到员工在整个查找员工的循环代码之外,之后把这几句代码放进了循环之内,之后发现还是错误,再一次进行检查代码后发现,只有在找到员工时才会跳出而未找到员工时还是再循环,于是我就在查找到不到员工的情况的代码下也加入了一个break跳出循环代码,再次运行成功的实现了所有的功能,没有出现错误。

通过这次课程设计,我发现写代码并不是想象中的那么简单,在写代码的过程中,尤其是长代码,很容易让人的思维乱掉,所以我在重要的代码完成后给每一个代码加上了注释,然后在调试的过程中虽然问题全部解决了但是功能却不一定能够全部实现,还需要带自己的代码进行不断的分析,然后尝试运行,再分析改正。代码写完并不代表程序的完成,比写出代码更重要的是对自己写出的程序代码的美化、修正,让自己的程序虽然简单但是能够实现所有预设的功能,这次设计也让我对链表的原理、使用方法掌握的更深。

罗马非一日建成,要成长为一个合格的程序员,我要走的路还很多。

源代码

#include //创建动态链表//

#include

#define LEN sizeof(struct worker)

struct worker

{

int num; //工号

char name[20]; // 姓名

char sex[15]; //性别

int age; //年龄

char xueli[10]; //学历

int mon; //工资

char address[20]; //地址

int phone; //手机号

struct worker *next;

};

struct worker *head;

int main()

{

struct worker *head;

struct worker *p;

int a,num;

while(1) //使系统在以下几个操作中循环

{

printf("\n\n");

printf(" ----------------------------------------------- ");

printf(" | 欢迎使用员工信息管理系统| ");

printf(" ----------------------------------------------- ");

printf(" | 请选择你要进行的操作| ");

printf(" -----------------------------------------------

相关文档
最新文档