




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 目录 一 系统功能 2 1 系统需求分析 2 2 系统功能总体设计 2 3 输入输出功能 2 4 总体设计流程图 3 二 概要设计 4 1 抽象数据类型定义 4 2 系统模块组成及其功能 4 三 详细设计 5 1 用 C 语言定义相关数据 5 2 各模块的类 C 码算法 5 1 职工信息显示函数 5 2 职工信息的追加函数 6 3 职工信息修改函数 6 4 职工信息删除函数 8 5 职工信息查询函数 10 6 职工信息排序函数 10 7 退出函数 10 3 函数的调用关系图 10 四 调试分析 包括流程图和截图 11 1 显示模块 N S 图 11 2 追加模块的流程图 12 3 查询模块的流程图 14 4 排序模块的流程图 15 5 修改模块的流程图 16 6 删除模块流程图 18 7 各个模块的截图及说明 20 五 总结 28 六 参考文献 28 七 程序原代码 29 精品文档 2欢迎下载 一一 系统功能系统功能 1 1 系统需求分析系统需求分析 这是一个对职工信息管理的系统 通过这个系统可以显示所有职工的信息 并可以对职工信息进行追加 修改 删除 查询 排序等多种功能的操作 2 2 系统功能总体设计系统功能总体设计 程序的功能 随着计算机科学的发展 现在我们不可能还是用手写的方式 对职工的信息进行管理 这就需要设计一个系统运用计算机来实现对职工 信息的管理 该系统用数组实现对职工信息数据的存储 且总体数据结构应 用文件类型数据 文件类型为结构体数组 这就要建立数据库来存放职工 的信息 通过指针文件来实现对数据库里信息的读和写 需要存储的职工 信息包括职工号 职工姓名 性别 年龄 学历 工资 部门 职称等等 最后通过函数的调用来实现对职工信息的管理 3 3 输入输出功能输入输出功能 数据库中的数据全通过 fread 函数来读取数据 并且通过 fwrite 函数将 主 涵 数 main 初始化 显示函数 追加函数 修改函数 删除函数 查询函数 排序函数 退出函数 精品文档 3欢迎下载 修改过后的数据放到一个新的文件里去 从而实现的系统的输入输出功能 4 4 总体设计流程图总体设计流程图 开始 主菜单 选择功能 显 示 模 块 追 加 模 块 修 改 模 块 删 除 模 块 查 询 模 块 排 序 模 块 退 出 模 块 保存修改后的数据 结束 精品文档 4欢迎下载 二二 概要设计概要设计 1 1 抽象数据类型定义抽象数据类型定义 Struct stu long int zgh 职工号 Char name 10 姓名 Char xb 4 性别 Int nl 年龄 Char xl 10 学历 Double gz 工资 Char bm 15 部门 Char zc 10 职称 s 40 2 2 系统模块组成及其功能系统模块组成及其功能 主函数 void main 显示函数 void Disp 功能 显示数据库中职工的所有信息 追加函数 void Appe 功能 加入你想加入的职工的信息 可以追加多条 也可以追加多次 修改函数 void Modi 功能 修改你想修改的职工的信息 可以修改职工的某项信息 也可以修 改多项信息 还可以多次修改其他职工的信息 你可以通过选择职 工号 或者职工的姓名二种方式进行修改职工的信息 删除函数 void Dele 功能 删除你想删除的职工的所有信息 可以多次删除 同样可以通过职 工号或者职工的姓名二种方式进行删除 删除后会显示删除结果 查询函数 void Query 精品文档 5欢迎下载 功能 可以通过该函数来查询你所需职工的所有信息并显示 同样你可以 选择是按职工号 职工的姓名 工资或者部门来查询 当你查询的 职工不存在时系统还会提示你 你所查询的职工不存在 排序函数 void Sore 功能 通过该函数完成按职工工资降序排列并显示 退出函数 功能 完成退出程序 三三 详细设计详细设计 1 1 用用 C C 语言定义相关数据语言定义相关数据 Struct stu long int zgh 职工号 Char name 10 姓名 Char xb 4 性别 Int nl 年龄 Char xl 10 学历 Double gz 工资 Char bm 15 部门 Char zc 10 职称 s 40 2 2 各模块的类各模块的类 C C 码算法码算法 1 1 职工信息显示函数职工信息显示函数 void Disp 显示模块 int i 定义循环变量 system COLOR 1f 调整显示界面颜色 for i 0 i N i 利用 for 循环 将数据库的内容出来 精品文档 6欢迎下载 printf 输出职工信息 2 2 职工信息的追加函数职工信息的追加函数 void Appe 追加模块 int i p t void Wr file printf 请输入你想添加的职工个数 scanf d for p 0 p i p 利用 for 循环追加想要追加的职工的个数 printf 你还想要追加吗 是 请按 1 否 请按 2 scanf d if t 1 Appe printf 追加后的信息为 3 3 职工信息修改函数职工信息修改函数 void Modi 修改模块 int n c p i b 1 j 0 k 1 char fname 10 int long r system COLOR 9f 控制颜色 void Wr file printf 请选择修改方式 n printf 1 职工号 2 姓名 n scanf d switch n 输入工号或姓名 for i 0 i N i case 1 for b 1 b 2 printf 请输入职工号 scanf ld for i 0 i N i if s i zgh r p i j 1 switch j case 0 printf 无此人信息 n scanf d break 精品文档 7欢迎下载 case 1 for k 2 printf 请选择修改项目 n scanf d switch c 修改并保存 Wr file printf 你还要修改此人其他项目吗 n printf 1 yes 2 no n scanf d if k 1 continue 若是 k 1 则继续修改此人的信息 printf 你还要修改其他职工的其他项目吗 n printf 1 yes 2 no n scanf d if k 1 continue break case 2 for b 2 printf 请输入姓名 scanf s fname for i 0 i N i if strcmp s i name fname 0 判断是否找到这个人 p i j 1 switch j case 0 printf 无此人信息 n scanf d break case 1 for k 2 printf 请选择修改项目 n scanf d switch c 修改并保存 printf 你还要修改此人其项目吗 n printf 1 yes 2 no n scanf d if k 1 continue break printf 你还要修改其他职工的其他项目吗 n printf 1 yes 2 no n 精品文档 8欢迎下载 scanf d break break 修改完了输出 4 4 职工信息删除函数职工信息删除函数 void Dele 删除模块 int a b c d x p i j 0 char sname 10 long int sgh system COLOR 5f void Quit 退出函数 printf 请选择删除方式 n scanf d switch x case 1 for c 1 c 2 printf 请输入删除工号 n scanf ld for i 0 i N i if s i zgh sgh b i j 1 switch j case 0 printf 无此人 n printf 还要删 n printf 1 yes 2 no n 选择是否还要删除 scanf d break case 1 printf 是否删除此人 n printf 1 yes 2 no n scanf d switch a case 1 for p b 1 p N p d b 1 s b s d b N N 1 精品文档 9欢迎下载 Wr file printf 还要删除吗 n printf 1 yes 2 no n 选择是否还要删除 scanf d break case 2 c 2 break break case 2 for c 1 c 2 按姓名进行删除 用 for 循环控制 printf 请输入删除姓名 n scanf s for i 0 i N i if strcmp s i name sname 0 b i j 1 switch j case 0 printf 无此人 n printf 是否还要删除 n printf 1 yes 2 no n scanf d break case 1 printf 是否删除此人 n printf 1 yes 2 no n 选择是否删除 scanf d switch a case 1 for p b 1 p N p d b 1 s b s d b N N 1 Wr file printf 还要删除吗 n printf 1 yes 2 no n scanf d break case 2 c 2 break 精品文档 10欢迎下载 break 5 5 职工信息查询函数职工信息查询函数 void Query 查询模块 int i t flag long int b char s1 8 system COLOR 5f printf 选择按职工号 姓名 工资 部门查询 查找该职工并显示其信息 6 6 职工信息排序函数职工信息排序函数 void Sort 排序 int i j struct stu s1 定义一个结构体中间变量 system COLOR 6f 控制颜色 for i 0 i N 1 i for j i 1 j N j if s i gz s j gz s1 s i s i s j s j s1 交换结构体的值 7 7 退出函数退出函数 void Quit 退出 printf Thank you bye n 3 3 函数的调用关系图函数的调用关系图 精品文档 11欢迎下载 Void main void Disp void Appe void Modi void Dele void Sort void Query void Quit 四四 调试分析 包括流程图和截图 调试分析 包括流程图和截图 1 1 显示模块显示模块 N SN S 图图 j 打开 rsdak 文件 For i 0 fread i 显示读出第 i 个职工的 信息 打开 nwersk 文件 For i 0 i N i 将第 i 个职工的数据写入文件 关闭 neaersk 文件 显示第 i 个职工的信息 精品文档 12欢迎下载 2 2 追加模块流程图追加模块流程图 精品文档 13欢迎下载 选择追加模块 主菜单 开始 输入要追加的个数 P 0 P i 输入要追加职工的信息 N P 结束 还追加 吗 否 3 3 查询模块的流程图查询模块的流程图 否 精品文档 14欢迎下载 开始 选择 5 查询模块 输入职工号 或姓名或工 资或部门 结束 选择按什么方 式寻找这个人 i 职工号或姓 名在数据库 中是否存在 是 显示找到的这 个职工的信息 否 按职工 按姓名 返回 按部门 按工资 精品文档 15欢迎下载 4 4 排序模块的流程图排序模块的流程图 开始 定义一个结构体 s1 I N 1 I 0 是 j i 1 J N 是 s i gz s j gz s1 s i s i s j s j s1 交换结构 体的值 j I 否 否 结束 否 选择排序模块 精品文档 16欢迎下载 5 5 修改模块的流程图修改模块的流程图 开始 选择修改模块 选择修改方式 职 工 号 姓 名 退 出 输入职工号或姓名 输入职工号输入姓名 职工号是 否存在 姓名是否存在 选择要修改哪一 项信息并修改 选择要修改哪一项信息 并修改 还要修改吗 还要修改吗 结束 否 否 是 是 精品文档 17欢迎下载 6 6 删除模块流程图删除模块流程图 开始 选择删除模块 选择删除方式 职 工 号 姓 名 退 出 输入职工号或姓名 输入职工号输入姓名 职工号 是否存在 姓名是否存在 确认删 确认删 删除 删除 是否还继续 是否继续 结束 是 是 是 否 否 是 是 精品文档 18欢迎下载 7 7 各个模块的截图及说明各个模块的截图及说明 运行程序 进入主菜单 显示如图所示 系统提供了七个选项 可以通过选择数字进入你需要的模块操作 选择 1 显示模块的截图如下图所示 精品文档 19欢迎下载 按任意键返回主菜单 选择菜单 2 进入追加模块的操作 追加模块的截图 如下所示 精品文档 20欢迎下载 精品文档 21欢迎下载 在该模块的操作中可以选择追加一条 也可以追加多条 按任意键退出 选择 3 进入修改模块的操作截图如下所示 精品文档 22欢迎下载 可以修改一个职工的某项信息也可以修改多项信息 还可以修改其他职工的 信息 按任意键退出该模块 选择 4 进入删除模块的操作 截图如下 精品文档 23欢迎下载 可以按照两种方法删除当输入的人不存在是系统会给出提示此人不存在 可 以进行多项删除 按任意键退出 选择 5 进入查询模块的操作 截图如下 精品文档 24欢迎下载 该模块可以选择 4 种方式进行查询 当查询的信息不存在时 会给出此人不存 在的提示 按 5 键退出查询模块 按任意键退出后进入主菜单 选择 6 进入排序模块的操作 截图如下 精品文档 25欢迎下载 该排序是按员工的工资降序排列的 选菜单 7 退出系统截图如下 精品文档 26欢迎下载 五五 总结总结 在整个 C 语言的学习过程中让我学会了很多 老师也非常用心的教我们这门 课程 带我们进入了这门课程的学习 刚开始的时候是最艰难的 在这里我要 感谢老师的用心教导 让我慢慢学会了该怎样去学习这种与机器对话的语言 经过半年的学习 我们迎来了将近一周的课程设计 刚拿到题目我吓到了 啊 要编这么多啊 而且还这么的难 但下来后通过查找资料 通过仔细思考以及 组员的帮助 我还是完成了这次的设计任务 在这次设计中我是负责编查询模 块的 另外我还编了排序模块 编的过程中遇到了很多的问题 但还是一一解 决了 但在调试的过程中还是出现了很多的错误 这就需要我们仔细的发现问 题和培养解决问题的能力 在这个方面我还是学习的不够 所以在以后的学习 过程中我应该要培养自己的逻辑思维能力 在设计程序时首先要理解各个模块的作用 只有这样才能为设计好程序做好 铺垫 在这次程序设计中我发现了其他组员的设计模块还存在着不足 这就需 要我们认真思考程序中存在的不足 同时可以和其他组的同学一起讨论 学习 的过程交流也是非常重要的 此外课后我们还需要和老师多交流 好好利用学 习资源 程序答辩时我的程序出现了一点点小问题 虽然通过自己的检查还是 解决了问题但它教会了我在平时要更用心的去检查和调试程序 通过这次一周 的程序设计我明白只有抱着认真的态度才能做好每一件事 最后我要感谢我的 老师 谢谢你的用心指导 六六 参考文献参考文献 C 语言程序案例分析 人民邮电出版社 C 语言程序设计 第 2 版 北京邮电大学出版社 C 程序设计 第三版 清华大学出版社 C 语言程序设计案例分析 人民邮电出版社 精品文档 27欢迎下载 七七 程序原代码程序原代码 include stdio h include include string h include conio h int N 0 struct stu long int zgh 职工号 char name 10 姓名 char xb 4 性别 int nl 年龄 char xl 10 学历 double gz 工资 char bm 15 部门 char zc 10 职称 s 40 void Re file FILE fp 定义一个指针文件 fp fopen D rsdak txt r 打开文件所指的文件 进行读取文件 里的内容 while fscanf fp ld n s n s n d n s n lf n s n s n fclose fp 关闭文件 void Wr file int i 精品文档 28欢迎下载 FILE fp fp fopen D nwersk txt w 打开文件把文件里的内容写到新的文 件里 for i 0 i N i fprintf fp ld n s n s n d n s n lf n s n s n s i zgh s i name s i xb s i nl s i xl s i gz s i bm s i zc fclose fp void Disp 显示模块 int i system COLOR 2f printf n printf 职工号 姓名 性别 年龄 学历 工资 部门 职称 n for i 0 i N i 用 for 循环把职工的信息显示出来 printf 6ld 6s 4s 5d 7s 10 2lf 10s 4s n s i zgh s i name s i xb s i nl s i xl s i gz s i bm s i z c printf n 精品文档 29欢迎下载 void Appe 追加模块 int i p t void Wr file printf 请输入你想添加的职工个数 scanf d for p 0 p i p 定义 P 来控制追加的职工的个数 printf pleasinput 职工号 输入追加的职工号 scanf ld printf nplease inpue 姓名 输入追加的姓名 scanf s s N name printf npleaseinput 性别 输入追加的性别 scanf s printf npleaseinput 年龄 输入追加的年龄 scanf d printf nplease input 学历 输入追加的学历 scanf s s N xl printf npleaseinput 工资 输入追加的工资 scanf lf printf npleaseinput 部门 输入追加的部门 scanf s s N bm printf nplease input 职称 输入追加的职称 scanf s s N zc printf n next n N printf 你还想要追加吗 是 请按 1 否 请按 2 scanf d if t 1 Appe void Modi 修改模块 精品文档 30欢迎下载 int n c p i b 1 j 0 k 1 char fname 10 int long r system COLOR 9f 控制颜色 void Wr file printf 请选择修改方式 n printf 1 职工号 2 姓名 n scanf d switch n case 1 for b 1 b 2 printf 请输入职工号 scanf ld for i 0 i N i if s i zgh r 判断输入的职工号是否存在 p i j 1 若库文件里存在输入的职工号则 p i 代表已经 找到 switch j case 0 printf 无此人信息 n scanf d break case 1 for k 2 printf 请选择修改项目 n printf n printf n printf 1 性别 2 年龄 3 学历 4 工资 5 部门 6 职 称 7 退出 n printf n printf n 精品文档 31欢迎下载 scanf d if c 7 break switch c case 1 printf 请输入性别 n scanf s s p xb break case 2 printf 请输入年龄 n scanf d break case 3 printf 请输入学历 n scanf s s p xl break case 4 printf 请输入工资 n scanf lf break case 5 printf 请输入部门 n scanf s s p bm break case 6 printf 请输入职称 n scanf s s p zc break Wr file printf 你还要修改此人其他项目吗 n printf 1 yes 2 no n scanf d if k 1 continue printf 你还要修改其他职工的其他项目吗 n printf 1 yes 2 no n scanf d if k 1 continue break case 2 for b 2 printf 请输入姓名 scanf s fname for i 0 i N i if strcmp s i name fname 0 判断输入的姓名是否存 在 p i j 1 精品文档 32欢迎下载 switch j case 0 printf 对不起 找不到此人信息 n printf 还要 继续 n printf 1 yes 2 no n scanf d if b 1 continue case 1 for k 2 printf 请选择修改项目 n printf n printf n printf 1 性别 2 年龄 3 学历 4 工资 5 部门 6 职称 7 退出 n printf n printf n scanf d if c 7 break switch c 定义一个开关语句来修改职工的某项信息 case 1 printf 请输入性别 n scanf s s p xb break case 2 printf 请输入年龄 n scanf d break case 3 printf 请输入学历 n scanf s s p xl break case 4 printf 请输入工资 n scanf lf break case 5 printf 请输入部门 n scanf s s p bm break case 6 printf 请输入职称 n scanf s s p zc break Wr file printf 你还要修改此人其项目吗 n printf 1 yes 2 no n scanf d if k 1 continue break printf 你还要修改其他职工的其他项目吗 n printf 1 yes 2 no n scanf d 精品文档 33欢迎下载 break break void Dele 删除模块 int a b c d x p i j 0 char sname 10 long int sgh system COLOR 5f 控制颜色 void Quit printf 请选择删除方式 n printf n printf n printf 1 职工号 2 姓名 3 退出 n printf n printf n scanf d switch x 定义一个开关语句来选择按哪种方式删除职工的信息 case 1 for c 1 c 2 printf 请输入删除工号 n scanf ld for i 0 i N i if s i zgh sgh 判断要删除的职工信息库文件里是否存在 b i j 1 switch j case 0 printf 无此人 n printf 还要删除吗 n printf 1 yes 2 no n scanf d break case 1 printf 是否删除此人 n printf 1 yes 2 no n scanf d switch a 精品文档 34欢迎下载 case 1 for p b 1 p N p d b 1 s b s d b N N 1 Wr file printf 还要删除吗 n printf 1 yes 2 no n scanf d break case 2 c 2 break break case 2 for c 1 c 2 printf 请输入删除姓名 n scanf s for i 0 i N i if strcmp s i name sname 0 判断要删除的职工库文件里是否存 在 b i j 1 switch j case 0 printf 无此人 n printf 还要删除吗 n printf 1 yes 2 no n scanf d break case 1 printf 是否删除此人 n printf 1 yes 2 no n scanf d switch a case 1 for p b 1 p N p d b 1 s b s d b N N 1 Wr file printf 还要删除吗 n printf 1 yes 2 no n scanf d break 精品文档 35欢迎下载 case 2 c 2 break break case 3 Quit break void Query 查询模块 int i t flag long int b double c char s1 8 system COLOR 5f printf n n printf 1 按职工号查询 n printf 2 按姓名查询 n printf 3 基本工资查询 n printf 4 按部门查询 n printf 5 退出本菜单 n printf n while 1 flag 0 printf 请输入子菜单编号 精品文档 36欢迎下载 scanf d switch t 用开关语句控制按哪种方式查询职工的信息 case 1 printf 请输入要查询的职工号 scanf ld for i 0 i N i if s i zgh b 判断输入的职工号是否存在 flag 1 职工号存在 flag 1 显示查询的职工的信息 printf printf 职工号 姓名 性别 年龄 学历 工资 部 门 职称 n printf 6ld 6s 4s 5d 7s 10 2lf 10s 4s n s i zgh s i name s i xb s i nl s i xl s i gz s i bm s i z c printf n if flag 0 printf 该职工号不存在 n break case 2 printf 请输入要查询的姓名 scanf s for i 0 i N i if strcmp s i name s1 0 判断输入的职工姓名是否存在 flag 1 职工姓名存在 flag 1 显示查询的职工的信息 printf 精品文档 37欢迎下载 printf 职工号 姓名 性别 年龄 学历 工资 部 门 职称 n printf 6ld 6s 4s 5d 7s 10 2lf 10s 4s n s i zgh s i name s i xb s i nl s i xl s i gz s i bm s i z c printf n if flag 0 printf 该姓名不存在 n break case 3 printf 请输入要查询的基本工资 scanf lf for i 0 i N i if s i gz c 判断输入的工资在文件库里是否有职工的工资与其相 同 flag 1 已经找到显示符合条件的职工的信息 printf printf 职
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年创新药研发靶点发现与验证技术标准化流程研究报告
- 航空航天高精度加工技术在2025年航空器试验设备加工中的应用报告
- 村级公路挡水墙合同协议
- 消防分包合同协议书范本
- 生鲜仓储配送承包协议书
- 电梯除尘垫采购合同范本
- 混凝土废渣处理合同范本
- 独栋写字楼出租合同范本
- 消费扶贫合作合同协议书
- 自动放弃工伤待遇协议书
- UL4703标准中文版-2020光伏线UL中文版标准
- 设备部班组安全培训
- 2024安置点生活垃圾清运合同书
- VMware双活数据心解决方案详解
- 管理学说课稿
- 办公用品及耗材采购服务投标方案(技术方案)
- 小学三年级数学下册计算题大全(每日一练共25份)
- SHT+3413-2019+石油化工石油气管道阻火器选用检验及验收标准
- 劳务招聘合作伙伴合同模板
- 甄嬛传电子版剧本第01-10集
- 2024年职业卫生技术人员评价方向考试题库附答案
评论
0/150
提交评论