简单职工管理系统课程 数据结构_第1页
简单职工管理系统课程 数据结构_第2页
简单职工管理系统课程 数据结构_第3页
简单职工管理系统课程 数据结构_第4页
简单职工管理系统课程 数据结构_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

精品文档 1欢迎下载 课程设计 论文 题 目 名 称 简单的职工管理系统 课 程 名 称 数据结构课程设计 学 生 姓 名 学 号 系 专 业 信息工程系 网络工程 指 导 教 师 2014 年 12 月 16 日 精品文档 2欢迎下载 摘 要 建立一个 简单的职工管理系统 系统以菜单方式工作 编写存放有职工 基本信息 包含职工工号 姓名 性别 出生年月 学历 职务 工资 住址 电话等 并且要求录入职工号不重复 录入的职工号信息要求用文件形式保存 并可以对其进行浏览 查询 修改 删除等基本操作 建立职工信息管理的文 件 关键词 职工信息管理 文件 浏览 查询 修改 插入 删除 排序 精品文档 3欢迎下载 精品文档 4欢迎下载 目 录 1 问题描述 2 2 需求分析 2 3 概要设计 3 3 1 抽象数据类型定义 3 3 2 模块划分 3 4 详细设计 4 4 1 数据类型的定义 4 4 2 主要模块的算法描述 6 5 测试分析 7 6 课程设计总结 12 参考文献 12 附录 源程序清单 13 精品文档 2欢迎下载 1 问题描述 1 对单位的职工进行管理 包括插入 删除 查找 排序等功能 2 要求 职工对象包括姓名 性别 出生年月 工作年月 学历 职务 住址 电 话等信息 1 新增一名职工 将新增职工对象按姓名以字典方式职工管理文件中 2 删除一名职工 从职工管理文件中删除一名职工对象 3 查询 从职工管理文件中查询符合某些条件的职工 4 修改 检索某个职工对象 对其某些属性进行修改 5 排序 按某种需要对职工对象文件进行排序 3 实现提示 职工对象数不必很多 便于一次读入内存 所有操作不经过内外存交换 1 由键盘输入职工对象 以文件方式保存 程序执行时先将文件读入内 存 2 对职工对象中的 姓名 按字典顺序进行排序 3 对排序后的职工对象进行增 删 查询 修改 排序等操作 4 选做内容 将职工对象按散列法存储 并设计解决冲突的方法 在此基础上实现增 删 查询 修改 排序等操作 2 需求分析 1 该程序可用于对企业员工情况基本信息的存储 更新 查询 输出等操 作 以实现对企业员工的管理 2 其中更新功能包括 添加信息 删除信息 修改信息 可根据需要添加 一个或多个员工信息 也可对个别员工信息进行适当的删除或修改 以便随时更 新员工信息 3 程序中设计的查询功能可根据需要从若干数据中查询某个员工信息 并 且可根据两种不同的方法查询 按工作证号查询和按姓名查询 以满足不同的 需要 精品文档 3欢迎下载 3 概要设计 3 1 抽象数据类型定义 struct employee 定义一个职工信息的结构体 int num char name 10 char sex int age char xueli 30 int wage char addr 30 char tel 20 em 100 3 2 模块划分 各模块的功能和实现 1 菜单模块 显示职工管理系统的主菜单 供用户选择所需的功能 通过 自己定义的void menu 函数来实现 2 输入模块 输入职工的工号 姓名以及其它的一些职工的相关信息 通 过自己定义的void input 函数来实现 3 保存模块 将内存中职工的信息输出到磁盘文件中 可以通过自己定义 的void save int 函数来实现 4 浏览模块 浏览所有职工的相关信息 通过自己定义的void display 函数来实现 5 删除模块 删除需要删除的职工的所有信息 通过自己定义的void del 函数来实现 6 添加模块 添加需要添加的职工的相关信息 通过自己定义的void add 函数来实现 7 按职工号查询模块 可以按职工号来查询职工的相关信息 通过自己定 义的void search num 函数来实现 8 按职工的的学历查询模块 可以按职工的学历来查询职工的相关信息 通过自己定义的void search xuelil函数来实现 9 按职工的电话号码查询模块 可以按职工的电话来查询职工的相关信息 通过自己定义的void search tel函数来实现 精品文档 3欢迎下载 10 修改模块 可以修改需要修改的职工的相关信息 通过自己定义的 void modify 函数 来实现 11 退出系统模块 退出职工信息管理系统 通过头文件windows h中的 exit 0 函数来实现 4 详细设计 4 1 数据类型的定义 1 职工管理系统类型 include include include include include include include include 2 队列类型 struct Employee 声明职工的结构作为链表节点 数据域 string m Code string m Name unsigned short int m Year string m Sex string m Post string m Department unsigned int m Wage 链表节点的指针域 struct Employee Next 个人习惯 取别名 精品文档 4欢迎下载 typedef struct Employee Node typedef Node Link 函数声明 Link Create Link Head void Release Link Head Link Add Link Head bool Search Link Head Link Search Unique Link Head void Display List Link Head void Display Node Link pNode Link Modify Link Head Link Del Link Head void Save ByFile Link Head fstream Link Sort Link Head 函数实现 Link Create Link Head 创建一个带头节点的空链表 Head Link new Node if Head cout 分配内存失败 m Code Head m Name Head m Year 0 Head m Sex Head m Post Head m Department Head m Wage 0 Head Next NULL return Head 精品文档 5欢迎下载 4 2 主要模块的算法描述 菜单 开始 根据菜单输入n 的值选择程 序 保存 结束 是否继续进行 NY Y Y 5 添加 职工 信息 6 修改 职工 信息 2 浏览 职工 信息 3 查询 职工 信息 4 删除 职工 信息 7 退出 1 录入 职工 信息 精品文档 6欢迎下载 5 测试分析 1 运行程序 进入职工信息管理系统的主菜单 图 1 进入主菜单界面 2 输入数字 1 进行录入职工信息 图 2 录入职工信息 3 输入 y 返回主菜单 界面同图 1 精品文档 7欢迎下载 4 输入 2 浏览职工信息 图 3 浏览职工信息 5 输入 y 后继续 输入 3 进行查询职工信息 图 4 按职工号及学历查询职工信息 精品文档 8欢迎下载 图 5 按电话号码查询职工信息 6 进入主菜单 输入 4 进行删除职工信息 图 6 删除职工信息 精品文档 9欢迎下载 7 进入主菜单输入 5 进行添加职工信息 图 7 添加职工信息 精品文档 10欢迎下载 8 进入主菜单输入 6 进行修改职工信息 图 8 修改职工信息 9 进入主菜单输入 7 退出职工信息管理系统 精品文档 11欢迎下载 6 课程设计总结 通过这次课程设计 增加了我们对软件技术的了解 虽然还不明确软件技 术包含的具体内容 但从学习数据结构这门课程开始 已发现程序设计的好处 它对我们的学习也有很大的帮助 在学习数据结构的过程中也学到并巩固了许 多计算机应用基础知识 对计算机的机体也有了一个较为详细的了解 在具体 操作中对这学期所学的数据结构的理论知识得到巩固加强 达到实训的目的 也发现自己的不足之处 为我们以后的数据结构学习奠定了基础 同时体会到 数据结构具有语句简洁 使用灵活 执行效率高等特点 发现上机操作的重要 作用 特别是对数组和循环有了深刻的理解 通过黄老师的精心指导及我的实 际操作 我学会 了数据结构程序编程的基本步骤 基本方法 开发了自己的逻 辑思维能力 培养了分析问题 解决问题的能力 在此我要非常感谢我的指导老师黄同成老师 感谢老师认真细心地为我解 答我在数据结构中遇到的疑难问题 感谢老师为我指出我在实际操作中出现的 问题并及时帮我纠正过来 因为老师一直对我认真细心地辅导 使我对数据结 构这门功课有了浓厚的兴趣并认真去学习它 所以我的这门功课有了很大的进 步 参考文献 1 黄同成 黄俊民 董建寅 数据结构 M 北京 中国电力出版社 2008 2 董建寅 黄俊民 黄同成 数据结构实验指导与题解 M 北京 中国电力出版社 2008 3 严蔚敏 吴伟民 数据结构 C 语言版 M 北京 清华大学出版社 2002 4 刘振鹏 张晓莉 郝杰 数据结构 M 北京 中国铁道出版社 2003 精品文档 12欢迎下载 附录 源程序清单 include include include define N 100 struct employee int num char name 20 char sex int age char xueli 30 int wage char addr 30 char tel 20 em 100 定义一个结构体 void menu void input void save int void display void del void add void search void search num void search xueli void search tel void modify 定义各函数 void main menu int n flag char a do printf 请选择你需要操作的步骤 1 7 n scanf d if n 1 break else 精品文档 13欢迎下载 flag 0 printf 您输入有误 请重新选择 while flag 0 while flag 1 switch n case 1 printf 输入职工信息 n printf n input break case 2 printf 浏览职工信息 n printf n display break case 3 printf 按职工号查询 职工信息 n printf n search break case 4 printf 删除职工信息 n printf n del break case 5 printf 添加职工信息 n printf n add break case 6 printf 修改职工信息 n printf n modify break case 7 exit 0 break default break getchar printf n printf 是否继续进行 y or n n scanf c if a y flag 1 system cls 清屏 menu 调用菜单函数 printf 请再次选择你需要操作的步骤 1 7 n scanf d printf n else exit 0 void menu 菜单函数 精品文档 14欢迎下载 printf 欢迎进入职工信息管理系统 n printf 1 录入职工信息 printf 2 浏览职工信息 n printf 3 查询职工信息 printf 4 删除职工信息 n printf 5 添加职工信息 printf 6 修改职工信息 n printf 7 退出 n printf 谢谢使用 n printf n printf n void input 录入函数 int i m printf 请输入需要创建信息的职工人数 1 100 n scanf d for i 0 i m i printf 请输入职工号 scanf d printf 请输入姓名 scanf s em i name getchar printf 请输入性别 f 女 m 男 scanf c printf 请输入年龄 scanf d printf 请输入学历 scanf s em i xueli printf 请输入工资 scanf d printf 请输入住址 scanf s em i addr printf 请输入电话 scanf s em i tel printf n 精品文档 15欢迎下载 printf n创建完毕 n save m void save int m 保存文件函数 int i FILE fp if fp fopen employee list wb NULL printf cannot open file n exit 0 for i 0 i m i 将内存中职工的信息输出到磁盘文件中去 if fwrite fclose fp int load 导入函数 FILE fp int i 0 if fp fopen employee list rb NULL printf cannot open file n exit 0 else do fread i while feof fp 0 fclose fp return i 1 void display 浏览函数 int i int m load printf 职工号 t姓名 t t性别 t t年龄 n for i 0 i m i m为输入部分的职工人数 printf n d t t s t c t t d t n em i num em i name em i sex em i age 精品文档 16欢迎下载 printf n 学历 t t工资 t t住址 t t电话 n for i 0 i m i m为输入部分的职工人数 printf n s t d t t s t s n em i xueli em i wage em i addr em i t el void del 删除函数 int m load int i j n t flag char name 20 printf n 原来的职工信息 n display printf n printf 请输入要删除的职工的姓名 n scanf s name for flag 1 i 0 flagi if strcmp em i name name 0 printf n已找到此人 原始记录为 n printf 职工号 t姓名 t t性别 t t年龄 n printf n d t t s t c t t d t n em i num em i name em i sex em i age printf n 学历 t t工资 t t住址 t t电话 n printf n s t d t t s t s n em i xueli em i wage em i addr em i t el printf n确实要删除此人信息请按1 不删除请按0 n scanf d if n 1 for j i j m 1 j strcpy em j name em j 1 name em j num em j 1 num em j sex em j 1 sex em j age em j 1 age strcpy em j xueli em j 1 xueli em j wage em j 1 wage strcpy em j addr em j 1 addr strcpy em j tel em j 1 tel 精品文档 17欢迎下载 flag 0 精品文档 18欢迎下载 if flag m m 1 else printf n对不起 查无此人 n printf n 浏览删除后的所有职工信息 n save m 调用保存函数 display 调用浏览函数 printf n继续删除请按1 不再删除请按0 n scanf d switch t case 1 del break case 0 break default break void add 添加函数 FILE fp int n int count 0 int i int m load printf n 原来的职工信息 n display printf n fp fopen emploee list a printf 请输入想增加的职工数 n scanf d for i m i 1 break else flag 0 printf 您输入有误 请重新选择 精品文档 20欢迎下载 while flag 0 while flag 1 switch t case 1 printf 按职工号查询 n search num break case 2 printf 按学历查询 n search xueli break case 3 printf 按电话号码查询 n search tel break case 4 main break default break void search num int num int i t int m load printf 请输入要查找的职工号 n scanf d for i 0 i m i if num em i num printf n已找到此人 其记录为 n printf 职工号 t姓名 t t性别 t t年龄 n printf n d t t s t c t t d t n em i num em i name em i sex em i age printf n 学历 t t 工资 t t 住址 t t 电话 n printf n s t d t t s t s n em i xueli em i wage em i addr em i t el break if i m printf n对不起 查无此人 n printf n printf 返回查询函数请按1 继续查询职工号请按2 n scanf d switch t 精品文档 21欢迎下载 case 1 search break case 2 break 精品文档 22欢迎下载 default break void search xueli char xueli 30 int i t int m load printf 请输入要查找的学历 n scanf s xueli for i 0 i m i if strcmp em i xueli xueli 0 printf n已找到 其记录为 n printf 职工号 t姓名 t t性别 t t年龄 n printf n d t t s t c t t d t n em i num em i name em i sex em i age printf n 学历 t t工资 t t住址 t t电话 n printf n s t d t t s t s n em i xueli em i wage em i addr em i t el if i m printf n对不起 查无此人 n printf n printf 返回查询函数请按1 继续查询学历请按2 n scanf d switch t case 1 search break case 2 break default break void search tel char tel 20 int i t int m load printf 请输入要查找的电话号码 n scanf s tel 精品文档 23欢迎下载 for i 0 i m i if strcmp tel em i tel 0 精品文档 24欢迎下载 printf n已找到此人 其记录为 n printf 职工号 t姓名 t t性别 t t年龄 n printf n d t t s t c t t d t n em i num em i name em i sex em i age printf n 学历 t t工资 t t住址 t t电话 n printf n s t d t t s t s n em i xueli em i wage em i addr em i t el break if i m printf n对不起 查无此人 n printf n printf 返回查询函数请按1 继续查询电话号码请按2 n scanf d switch t case 1 search break case 2 break default break void modify 修改函数 int num char name 20 char sex int age char xueli 30 int wage char addr 30 char tel 20 int b c i n

温馨提示

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

评论

0/150

提交评论