




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 1 页 共 33 页 课程名称 课程名称 C C 语言程序设计语言程序设计 人事管人事管 理理 班级序号 班级序号 学学 号 号 姓姓 名 名 指导老师 指导老师 时时 间 间 2010 8 282010 8 28 2010 9 42010 9 4 第 2 页 共 33 页 目录目录 第一部分第一部分 课程设计编号 名称 内容课程设计编号 名称 内容 5 5 第二部分第二部分 需求分析需求分析 6 6 第三部分第三部分 程序总体设计思路程序总体设计思路 6 6 第四部分第四部分 程序详细设计程序详细设计 6 6 4 4 1 1 系统功能模块说明系统功能模块说明 6 4 4 2 2 各功能模块设计各功能模块设计 7 4 2 1 数据读取模块 7 4 2 1 1 此模块源程序及说明 7 4 2 1 2 函数流程图 9 4 2 1 3 模块运行界面 9 4 2 24 2 2 目录模块目录模块 10 4 2 2 1 此模块源程序及说明 10 4 2 2 2 函数流程图 11 4 2 2 3 模块运行界面 11 4 2 34 2 3 增添功能模块增添功能模块 12 4 2 3 1 此模块源程序及说明 12 第 3 页 共 33 页 4 2 3 2 函数流程图 13 4 2 3 3 模块运行界面 13 4 2 44 2 4 删除模块设计删除模块设计 14 4 2 4 1 此模块源程序及说明 14 4 2 4 2 函数流程图 16 4 2 4 3 模块运行界面 16 4 2 44 2 4 查询模块设计查询模块设计 17 4 2 4 1 此模块源程序及说明 17 4 2 4 2 函数流程图 19 4 2 4 3 模块运行界面 19 4 2 54 2 5 修改模块设计修改模块设计 20 4 2 5 1 此模块源程序及说明 20 4 2 5 2 函数流程图 22 4 2 5 3 模块运行界面 23 4 2 64 2 6 统计模块设计统计模块设计 23 4 2 6 1 此模块源程序及说明 23 4 2 6 2 函数流程图 26 4 2 6 3 模块运行界面 27 4 2 74 2 7排序模块设计排序模块设计 27 4 2 7 1此模块源程序及说明 27 第 4 页 共 33 页 4 2 7 2函数流程图 29 4 2 7 3模块运行界面 30 第五部分第五部分 程序设计心得程序设计心得 3030 5 15 1 遇到的问题及解决方法遇到的问题及解决方法 30 5 25 2 本程序优点本程序优点 31 5 35 3 本程序缺点本程序缺点 32 第 5 页 共 33 页 第一部分第一部分 课程设计编号 名称 内容课程设计编号 名称 内容 编号 C C 语言课程设计与学习指导语言课程设计与学习指导 第第 9696 页页 2323 题题 名称 人事管理人事管理 要求 某高校主要人员有 在职人员在职人员 行政人员 教师 一般员工 退休人员和临时工退休人员和临时工 现在需要存储存储这些人员的人事档案信息 内容 包括编号编号 姓名姓名 性别性别 年龄年龄 职务职务 职称职称 政治面貌政治面貌 最高学历最高学历 任职时间任职时间 来院时间来院时间 人员类别人员类别 其中 人员编号唯一人员编号唯一 不能重复 1 添加删除功能添加删除功能 能根据学院人事的变动情况 添加删除 记录 2 查询功能查询功能 能根据编号和姓名编号和姓名进行查询 3 编辑功能编辑功能 高级 根据查询对相应的记录进行修改并存存 储储 4 统计功能统计功能 能根据多种参数进行人员统计 在职人数在职人数 党员人数党员人数 女工人数女工人数 高学历高职称人数高学历高职称人数 硕士学位以 上或副教授以上 统计要求同时显示被统计者的信息显示被统计者的信息 5 排序功能排序功能 按照年龄年龄 来院时间来院时间进行排序 第 6 页 共 33 页 6 保存功能保存功能 能对输入的数据进行相应的存储 第二部分第二部分 需求分析需求分析 根据题目要求 由于人事档案信息存放在文件中 而且此程序 要求具有显示 查询 增添删除 修改并将改动内容存储在原文件 中 因此 在设计中应提供文件输出 读入文件输出 读入等操作 由于每位员工 的信息由十一项组成 因此需要建立结构体建立结构体来存储这些信息 因为 此程序需要多重选择 所以要建立完备的键盘式选择菜单建立完备的键盘式选择菜单实现用户 的功能选择 第三部分第三部分 程序总体设计思路程序总体设计思路 根据对此程序的初步分析 要满足系统要求 最基本的三大步骤 是 1 1 读入文本文档数据 读入文本文档数据 2 2 选择功能板块 选择功能板块 3 3 向文本文档存储数据向文本文档存储数据 人事管理系统 读入文本文档 数据 选择功能板块存储数据 添加统计删除查询修改排序 第 7 页 共 33 页 第四部分第四部分 程序详细设计程序详细设计 4 4 1 1 系统功能模块说明系统功能模块说明 目录函数功能子函数功能函数说明 Voids add 增添功能函数 void del 删除功能函数 Void edit 修改功能函数 void stat 统计功能函数 Void sort 排序功能函数 menu void check 查询功能函数 4 4 2 2 各功能模块设计各功能模块设计 4 4 2 2 1 1 数据读取模块数据读取模块 思路 数据需要从文本文档中读取 因此应先建立结构体 然后运 用文件函数将文档的数据赋值给结构体 然后再使用循环语 句将结构体中的数据读入 dos 窗口中 供用户浏览 4 2 1 14 2 1 1 此模块源程序及说明此模块源程序及说明 struct staff char num 10 char name 10 char sex 2 char age 10 char duty 10 char title 10 第 8 页 共 33 页 char politic 10 char wenpin 10 char coming time 10 char duty time 10 char kinds of staff 10 sta N 注 以上程序段就是建立结构体 用以储存员工信息 int read FILE fp int i j if fp fopen staff txt r NULL printf nCannot open file n 注 以上是用指向文件的指针 fp 打开文件 for i 0 feof fp i fscanf fp s s s s s s s s s s s fclose fp 注 以上程序段是将文本数据赋值给 staff 结构体 并关闭文件 j i for i 0 i j 1 i printf s s s s s s s s s s s n sta i num sta i name sta i sex sta i age sta i duty sta i title sta i politic sta i wenpin sta i coming time sta i duty time sta i kinds of staff 注 通过循环将结构体中的数据输入到窗口中 return i 返回文本文档中存储人员的个数 第 9 页 共 33 页 4 2 1 24 2 1 2 函数流程图函数流程图 4 2 1 34 2 1 3 模块运行界面模块运行界面 无法打无法打 开文件开文件 未找到 文件 找到 文件 将文件信将文件信 息赋息赋 于结构体于结构体 显示结构显示结构 体信息体信息 开始开始 第 10 页 共 33 页 4 2 24 2 2 目录模块目录模块 思路 此模块的作用是在界面显示功能选项显示功能选项 由用户进行选择 进入下一个功能模块 此模块应设有容错功能 容错功能 如果用户 的选择在功能选项之外 应提醒提醒用户输入错误错误 并可以重重 新输入新输入 4 2 2 14 2 2 1 此模块源程序及说明此模块源程序及说明 void menu int j int n printf menu n printf 1 add n2 delete n3 check n4 edit n5 statistics n6 sort n printf n 完成选择菜单的显示 printf Please input your choice scanf d while n7 printf This is wrong number please input again n printf Please input your choice scanf d printf d n n 容错功能 switch n case 1 add break case 2 del j break case 3 check break case 4 edit j break case 5 stat j break case 6 sort j break 第 11 页 共 33 页 4 2 2 24 2 2 2 函数流程图函数流程图 N 用户输入选项 输入选项是否 合理 Y N 是否合理 提示错误 进入功能子函数 Y 显示菜单选项 第 12 页 共 33 页 4 2 2 34 2 2 3 模块运行界面模块运行界面 4 2 34 2 3 增添功能模块增添功能模块 思路 当用户选择增添功能后 就进入了增添功能函数 此函数 要考虑的是用户需要增添几位增添几位工作人员的信息 因此需要 提示用户 您需要输入几组信息 然后由用户输入个数 再提示用户输入需要增添的信息 并由 scanf 语句将这些 信息赋给结构体变量赋给结构体变量 再通过 save1 模块中的文件追文件追 加加将结构体的信息读入文本文档中进行存储存储 第 13 页 共 33 页 4 2 3 14 2 3 1 此模块源程序及说明此模块源程序及说明 void add int i j printf How many person do you want to add 提示用户需要输入几位员工的信息 scanf d printf please input for i 0 i j i scanf s s s s s s s s s s s 通过 for 循环实现多组数据对结构体变量的赋值 save1 j 将增添的信息通过此子函数储存入文本文档 4 24 2 3 2 3 2 函数流程函数流程图图 提 示 信 息 输 入 个 数 用 户 输 入 数 据 提 示 用 户 输 入 信 息 用 户 输 入 信 息 将 信 息 赋 值 给 结 构 体 变 量 存储 至文 本文 档 第 14 页 共 33 页 4 2 3 34 2 3 3 模块运行界面模块运行界面 4 2 44 2 4 删除模块设计删除模块设计 思路 如果用户在菜单界面选择删除功能 就进入了删除模块 此模块应该首先请用户输入需要删除的人员的编号编号 然后 显示显示被删除人员的详细信息详细信息 提示用户是否需要删除此用提示用户是否需要删除此用 户信息户信息 若选 否 则要求用户重新输入编号 若选 是 找出存放需被删除人员的结构体变量 sta i 然后将 sta i 1 的信息赋给 sta i 依次循环循环赋值 然后用 save 函数的文件只写文件只写将修改后的结构体变量信息储存在 原文本文档中 最后提示用户 删除成功 4 2 4 14 2 4 1 此模块源程序及说明此模块源程序及说明 void del int j int f k i 0 char a 10 printf please input the number you want to delete scanf s while strcmp a sta i num 0 i 第 15 页 共 33 页 查询出存储被删除用户结构体变量的位置 printf 您想删除此项 printf s s s s s s s s s s s n sta i num sta i name sta i sex sta i age sta i duty sta i title sta i politic sta i wenpin sta i coming time sta i duty time sta i kinds of staff printf 1 是 n2 否 n printf 您的选择是 scanf d 以下循环用于用户来确定是否删除此用户信息 while f 2 printf please input the number you want to delete scanf s while strcmp a sta i num 0 i printf 您想删除此项 printf s s s s s s s s s s s n sta i num sta i name sta i sex sta i age sta i duty sta i title sta i politic sta i wenpin sta i coming time sta i duty time sta i kinds of staff printf 1 是 n2 否 n printf 您的选择是 scanf d if f 1 for k i k j k sta k sta k 1 通过循环覆盖被删除用户的信息 printf 已经删除成功 save j 存储删除后的信息 4 4 2 4 2 2 4 2 函数流程图函数流程图 显示将被删除用户信息 确定是否删除 是 否 将存储被删除人员信息的结构体变量覆 盖 存储变动后的信息于文本文档中 并提示用户删除成功 是 否 用户输入需要 删除的编号 第 16 页 共 33 页 4 2 4 34 2 4 3 模块运行界面模块运行界面 4 2 44 2 4 查询模块设计查询模块设计 思路 按照系统要求 此程序需要完成能根据编号和姓名编号和姓名进行查 询 因此 当用户选择此功能后 需要向用户提供按何种方 式进行查询的菜单查询的菜单 由用户进行选择 此处需要设置容错设置容错 当用户选择编号编号时 由用户输入需要查询的编号 因为在结 构体中将编号定义为字符型数组字符型数组 因此需要使用 strcmp strcmp 第 17 页 共 33 页 语句语句进行比较 然后显示显示被查询者的信息 如果用户选择姓 名 则用同样同样的查询方式进行查询 然后显示被查询者的信 息 4 2 4 14 2 4 1此模块源程序及说明此模块源程序及说明 void check int a printf check n 菜单显示 printf 1 number n 2 name n printf please choice scanf d while a2 容错功能 printf This is wrong choice please input again n printf Please input your choice scanf d printf d n a switch a case 1 num break case 2 name break 进入子函数 void num int i 0 j printf please input your number scanf d while strcmp j sta i num 0 进行字符串比较 i printf s s s s s s s s s s s n sta i num sta i name sta i sex sta i age sta i duty sta i title sta i politic 第 18 页 共 33 页 sta i wenpin sta i coming time sta i duty time sta i kinds of staff 显示被查询者信息 注 按姓名查询的子函数的查询方式与按编号查询的方式基本相同 因此不再列举 4 2 4 24 2 4 2函数流程图函数流程图 用户输入选择 鉴别输入的数据 1 2 或者其他 提示 错误 12 按编号 查询并显示 按姓名查 询并显示 显示菜单选项 第 19 页 共 33 页 4 2 4 34 2 4 3 模块运行界面模块运行界面 4 2 54 2 5 修改模块设计修改模块设计 思路 此模块用于用户对已经在文本中存在的人员信息进行修改 因此首先要求用户输入被修改人员的编号 系统通过编号 进行查询 并显示出此人员的详细信息 进入修改环节 在界面显示菜单 提示用户要修改此人员的哪一类信息 由用户选择 此处同样需要设计容错功能 修改的方法是 将需要改动的数据通过 scanf 输入到存放此人信息的结构 体中的相应项目 对原数据进行覆盖 然后通过 save 函数将改动后的信息存于文本文档 并在界面提示 修改 成功 第 20 页 共 33 页 4 2 5 14 2 5 1此模块源程序及说明此模块源程序及说明 void edit j int i 0 b char a 10 printf please input the number you want to modify scanf s while strcmp a sta i num 0 查找出要修改的人员的信息 i printf s s s s s s s s s s s n sta i num sta i name sta i sex sta i age sta i duty sta i title sta i politic sta i wenpin sta i coming time sta i duty time sta i kinds of staff printf which do you want to chang n1 number n2 name n3 sex n4 age n5 duty n6 title n7 politic n8 wenpin n9 c oming time n10 duty time n11 kinds of staff n 菜单显示 printf your choice is scanf d while b11 容错功能 printf This is wrong choice please input again n printf Please input your choice scanf d printf d n b printf 您想将此项改为 switch b case 1 scanf s break case 2 scanf s break case 3 scanf s break case 4 scanf s break case 5 scanf s break case 6 scanf s break case 7 scanf s break case 8 scanf s break case 9 scanf s break case 10 scanf s break case 11 scanf s break 输入用户要修改的 信息 第 21 页 共 33 页 save j 对已修改的信息进行存储 printf 已经修改成功 4 2 5 24 2 5 2 函数流程图函数流程图 由用户输入编号 界面显示详细信息 及菜单选项 用户输入选择 系统判断输入是 否合理 Y N Y 错误提示 N 对 编 号 修 改 对 姓 名 修 改 对 性 别 修 改 对 年 龄 修 改 对 职 务 修 改 对 职 称 修 改 对 政 治 面 貌 修 改 对 文 凭 修 改 对 来 院 时 间 修 改 对 任 职 时 间 修 改 对 人 员 类 别 修 改 将修改后的信息储存 并提示用户修改成功 第 22 页 共 33 页 4 2 5 34 2 5 3 模块运行界面模块运行界面 4 2 64 2 6 统计模块设计统计模块设计 思路 系统要求程序需要完成能对在职人数在职人数 党员人数党员人数 女工人女工人 数数 高学历高职称人数高学历高职称人数要求进行统计并显示信息 首先还是 在界面显示出供用户选择的菜单 同样要设计容错功能 对 在职人数的统计 因为人员类别除了退休人员均在职 所以 根据此条件可统计出在职人员信息 对党员数 则只需要求 sta i politic party 即可 对女工人数则只需使 sta i sex f 即可 对于高学历只需使结构体中文凭项中存储为硕 第 23 页 共 33 页 士或博士或者使结构体中职称项中为教授或副教授即可 4 2 6 14 2 6 1 此模块源程序及说明此模块源程序及说明 void stat int j int n printf which do you want to use to count n printf 1 female n 2 party member n 3 on the job n 4 advanced academic degrees n 提供菜单显示 printf your choice scanf d while n 4 n 1 提供容错功能 printf Inputting is wrong please input again n printf which do you want to use to count scanf d switch n 根据用户选择调用子函数 case 1 fem j break case 2 part j break case 3 jo j break case 4 adv j break 对女工人数进行统计的子函数 void fem int j int n 0 i 0 char a 50 f for n 0 n j n if strcmp a sta n sex 0 printf s s s s s s s s s s s n sta n num sta n name sta n sex sta n age sta n duty sta n title sta n politic sta n wenpin sta n coming time sta n duty time sta n kinds of staff i 第 24 页 共 33 页 printf the number of female is d n i 对党员人数进行统计的子函数 void part int j int n 0 i 0 char a 50 p a r t y for n 0 n j n if strcmp a sta n politic 0 printf s s s s s s s s s s s n sta n num sta n name sta n sex sta n age sta n duty sta n title sta n politic sta n wenpin sta n coming time sta n duty time sta n kinds of staff i printf the number of party is d n i 对在职人数进行统计的子函数 void jo int k int n 0 i 0 j 0 char a 50 t u i x i u for j 0 j k j if sta j num 0 break for n 0 n j n if strcmp a sta n kinds of staff 0 printf s s s s s s s s s s s n sta n num sta n name sta n sex sta n age sta n duty sta n title sta n politic sta n wenpin sta n coming time sta n duty time sta n kinds of staff i printf the number of on the job is d n i 对有高学历高文凭的人员进行统计 void adv int k int n 0 i 0 j 0 char a 50 s h u o s h i b 50 b o s h i c 50 f u 第 25 页 共 33 页 j i a o s h o u d 50 j i a o s h o u for j 0 j k j if sta j num 0 break for n 0 n j n if strcmp a sta n wenpin 0 strcmp b sta n wenpin 0 strcmp c sta n t itle 0 strcmp d sta n title 0 printf s s s s s s s s s s s n sta n num sta n name sta n sex sta n age sta n duty sta n title sta n politic sta n wenpin sta n coming time sta n duty time sta n kinds of staff i printf the number of advanced academic degrees is d n i 第 26 页 共 33 页 4 2 6 24 2 6 2 函数流程图函数流程图 用户选择 容错功能进行判 断 Y N 提示错误 N 按女工 人数统 计并显 示 按党员 人数进 行统计 并显示 按在职 人数进 行统计 并显示 按高文凭 高学历进 行统计并 显示 Y 1234 显示菜单提示用户 按哪种信息统计 第 27 页 共 33 页 4 2 6 34 2 6 3 模块运行界面模块运行界面 4 2 74 2 7排序模块设计排序模块设计 思路 对于排序功能 系统要求能根据年龄及来院时间进行排序 第 28 页 共 33 页 首先应提供给用户按何种项目进行排序的菜单 并需要有 容错功能 然后进入子程序 按年龄排序 只需将相邻两 结构体数组中的变量进行比较 如果前者大于后者 交换 两结构体变量中的信息 依次进行二重循环 然后显示信 息 来院时间的排序与按年龄排的方法相同 4 2 7 14 2 7 1 此模块源程序及说明此模块源程序及说明 void sort int j 排序功能板块 int a printf sort n 显示菜单 printf 1 age n ing time n printf please choice scanf d while a2 容错功能 printf This is wrong choice please input again n printf Please input your choice scanf d printf d n a switch a 选择并进入子函数 case 1 age j break case 2 coming time j break 对年龄排序的子函数 void age int k int i j for i 0 i k 1 i 进行排序的二重循环 for j i 1 j0 第 29 页 共 33 页 sta k 1 sta i sta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书婚姻关系解除及财产处理合同
- 离婚后子女抚养权转让及父母子女共同成长与监护协议
- 《离婚协议书范本与子女监护权法律问题》
- 2025货运物流承包经营合同终止协议书 员工合同协议书
- 离婚房产分割附带财产权益补偿及共同债务分担协议
- 夫妻离婚协议书(含财产分割、子女抚养及赡养费)
- 邮政快递运输合同服务质量提升与行业规范执行标准
- 山场租赁租赁合同范本:山地旅游项目合作框架协议
- 2025年的居民购房合同范本
- 历史研究在青少年教育中的应用与效果评估-洞察及研究
- 人教版英语单词表-六年级上册689
- 南京市交通建设投资控股(集团)有限责任公司公司2024年半年度财务报表及附注
- 部编版(2024)三年级道德与法治上册第8课《同学相伴》教学课件
- 年度广告物料制作安装投标方案(技术方案)
- 加强基层应急管理一体管理与实战训练实施方案
- 2024年中级注册安全工程师《安全生产专业实务(道路运输安全)》真题及答案
- 中药活血化瘀成分的分子靶向作用
- 劳务分包合同1正规范本
- HJ 1249-2022 排污单位自行监测技术指南 储油库、加油站
- 数字金融驱动区域技术创新水平提升的空间溢出效应研究
- 一次性餐具配送投标方案
评论
0/150
提交评论