C语言程序设计实训报告

上传人:沈*** 文档编号:169439154 上传时间:2022-11-15 格式:DOC 页数:14 大小:351KB
返回 下载 相关 举报
C语言程序设计实训报告_第1页
第1页 / 共14页
C语言程序设计实训报告_第2页
第2页 / 共14页
C语言程序设计实训报告_第3页
第3页 / 共14页
点击查看更多>>
资源描述
高级语言程序设计训题 目: 员工信息管理程序 院系专业: 计算机工程系 姓 名: 朱建国 学 号: 5 2011年01月05 日一、 需求分析员工档案是企业劳动,人事部门在招用、调配、培训、考核、奖惩和任用等工作中形成的有关职工个人经历、政治思想、业务技术水平、工作表现以及工作变动等情况的文件材料。1、 基本要求:(1) 程序菜单功能或详细的提示功能;(2) 员工信息的输入(包括员工号、姓名、年龄、职位、工资)功能;(3) 员工信息的浏览功能;(4) 员工信息的添加功能;(5) 员工信息的删除功能;(6) 员工信息的排序功能;(7) 员工信息的查询功能;2、 其他要求:(1) 结构体数组实现,用指针访问结构体成员;(2) 自行设计的程序不少于100行,总体程序不少于200行;(3) 输出数据要求格式美观;(4) 程序要有详细的注释,并画出程序流程图及必要的文字说明书文档,程序内容和文档 内容要体现个性化设计思想;(5) 严禁雷同,任务书除外全部手写;二、程序总体设计:1、程序主要包括三大模块:输入输出模块、管理模块和文件操作模块。如下图:输入输出终端 输入输出模块 管理模块 文件操作模块 存储文件 2、界面设计:程序中visual C+的编译环境中进行,界面将通过屏幕的输出显示功能选项。通过键盘输入完成相应操作。程序主界面是一个文本方式的菜单,通过键盘相应选择操作指令。 3、数据结构设计:员工档案中的记录项由多个不同的数据项构成,是一个结构体数据,因此需要定义结构体数据类型。根据要求,数据项为:员工号、姓名、性别、年龄、职位、工资。据此定义如下结构体数据类型:struct workerint num;/* 员工号*/char name10;/* 姓名*/char sex10;/* 性别*/int age;/* 年龄*/char position10;/*职位*/int pay;/*工资*/workN; 4、程序函数设计main ();/*主函数*/void menu_handle();/*函数处理菜单*/int menu_choose();/*函数选择菜单*/void input_worker();/*创建文件并对工人信息输入函数*/void save_file(int n);/*文件保存*/int load();/*提取员工数*/void message_output();/*员工信息浏览函数*/void add_worker();/*员工添加函数*/void dele_worker();/*员工信息删除函数*/void fine();/*员工信息查询函数*/void fine_num();/*员工号查询函数*/void fine_name();/*按姓名查询函数*/void sort_age();/*按年龄排序函数*/void sort_pay();/*按工资排序函数*/void sort();/*排序函数处理*/void change(struct worker *p,int n);/*交换元素*/三、 程序流程图1、员工信息输入功能 3、添加员工信息开始 开始新建文件 清屏打开文件 以追加方式打开数据文件提示输入提示输入输入 输入写入文件写入文件关闭文件关闭并返回结束并返回2、员工信息浏览功能开始打开数据文件读文件关闭文件结束并返回 结束4、 员工信息删除开始显示该记录清屏删除与否 否提示输入姓名 是输入将数组后移 调用浏览函数 调用文件保存函数数据读到数组中 对比查找 返回5、员工信息查询6、 员工信息排序结束并返回开始 开始清屏清屏 提示提示输入 按什么排序输入 选择数据与数组比较 调用浏览函数读该数组 冒泡排序结束并返回输出 四、实训计划第一天:设计程序设计书;第二天:实现函数菜单功能;第三天:实现员工信息输入(保存在文件中)与浏览功能;第四天:实现员工信息的添加及删除功能;第五天:实现员工信息的查询功能;第六天:实现员工信息的排序功能;第七天:对源程序进行改进与美化;五、详细设计设计总图如下:1、:建立头文件:头文件包含各种调用函数,如图2、建立主函数文件:里面的是主函数并调用菜单函数3、建立菜单函数文件:调用各种功能函数:员工信息的输入输出、添加删除、查询排序4、建立子函数文件:包括各种功能函数:员工信息的输入输出、添加删除、查询排序六、实训过程在菜单功能的源程序编写过程没有遇到什么困难,但在界面的设计上,花费了许多时间寻找适合的符号和设计,以下是程序菜单选择界面: 菜单功能完成之后,就开始各种功能函数的编写,输入函数一开始没有想到调用一个保存文件的函数,后来在资料上看到这样这个方法,但当时已经编好了,就没有修改。但这次功能我也学会了这样一个方法。下次可以应用到程序中。这个功能的实现也没有遇到困难之后我便一口气把员工信息的浏览功能做好了。 然而在做员工信息添加功能时,开始遇到困难了,当时我的fwrite()语句为fwrite(work,sizeof(struct worker),1,fp);使得加进去的信息读出来的是一堆乱码,结果我不知道错误在哪里,一直以为是输入函数那边出错或者浏览函数那边错误,这么改都改不得,花了很多时间,最后才发现是这里错误,才改成fwrite(p,sizeof(struct worker),1,fp); 实现了添加功能之后,就开始做员工信息的删除功能,这个功能的实现花了我更多的时间。首先,我当时把结构体数组放在头文件的文件中并初始化一个数组,使得调用这个文件时出现一个重复定义的错误,解决完这个错误之后,开始调试,没发现别的错误,但在运行的时候,前面的几个人的信息都无法删除,只能删除最后一个人的信息,这个错误让我苦恼了很久设置断点调试的时候,输入功能的work0、work1都没问题,然而添加功能的work0、work1却发生了变化!删除功能那边的work0是居然是储存最后一名员工的信息,而在浏览员工信息之后的work0、work1却是我想得到的,于是我便在删除函数功能那里调用了浏览函数,终于解决了这个困难。这个困难花了我好几天 解决完那个问题之后,我的编程开始一马平川,之后的功能实现也没有遇到很大的困难提前了两天完成这个任务。七、程序的调试与测试程序调试时在录入员工信息设断点如下:用于调试数组当前储存的数据 在浏览信息函数里设的断点如下:用于调试数组当前储存的数据 在删除信息函数里设如下断点:用于调试数组当前储存的数据用于调试数组当前储存的数据存的数据用于调试数组当前储存的数据用于调试数组当前储存的数据调试结果:发现这几个数组储存的数据不一样,原本以为只要把数组定义在头文件数组内容就不会改变,结果发现这个想法是错误的。这给我的C语言上了一课!七、程序的运行1、程序的欢迎界面2、 按1进入员工信息输入,并输入员工数为2,姓名为张三、李四,如下图:3,、录入员工信息后,按回车,退出员工信息的录入功能,按2浏览员工信息,操作如下图:3、 浏览无误之后,按3进行下一个功能,员工信息的添加,并添加3名员工,如图:4、 添加完成后,按2进行浏览员工信息,如图:5、 浏览无误之后,按4进行员工信息的删除,以下以删除朱总为例:按1删除后,程序浏览删除后的信息并提示是否继续删除或者返回6、 按2退出删除功能,并按5进行员工信息的查询功能,如图:(1) 程序将提示按什么方式查询,以下以按姓名查询为例:(2)输入要查询的姓名为朱总,显示如下图:(2) 按1选择重新输入,以张三为例:7、 按3退出,并选择6进行排序:(1)提示按什么方式排序:(2)按2,以按工资排序为例,提示按从小到大或者从大到小排序:(3)按1,以从大到小排序:8、 按3退出,功能演示完毕,按2浏览员工信息是否改变,如下图:9、 演示完毕按7退出程序:八、结论分析问题问题的解决不能想着一步登天,当时一拿到这个任务的时候,就开始酝酿着用什么是用数组还是用链表去做这个任务,由于对链表的认识不够深刻,就选择了数组。因为员工信息包含多种不同的信息,就着手于结构体,之后开始以菜单为一条线索,随着这条线索,一步一步的把各种功能调用到菜单中,这样才能有清晰的思路去编程。算法分析算法是各个功能函数实现的核心与前提,首先算法是结合数组来思考的,比如在做删除函数的时候,首先要想到如何把你输入的要删除的信息与数组中储存的信息做一个比较,只有这样才能找得到你想要删除的内容。因此就不由自主的想到用strcmp()这个函数,这样不仅节约了许多不必要的程序代码,还能使自己的思维方式更宽。找到更合适自己的算法去解决问题九、心得与体会经过了两个星期的实训培训,虽然这期间很苦很累,在这段时间里,可以说我花了几天几夜去编了吧,从早上9点到凌晨12点半,每次厚着脸皮去找学长借电脑使用,我都会有些不好意思然而,这说明了我已经陷入了编写程序的乐趣当中,虽然每次遇到困难,我都会去研究许久。甚至想到放弃(我第一次的程序啊,有时候看到别人都已经做出来了我自己却没能完成,是不是太执着了呢?其实我也好想借鉴一下别人的方法啊,可是这样能提高吗?哎好累,花了那么多精力去编了,别人却不怎么花时间,好累好累这就是传说中的困难吗?我有些像放弃了。好吧。坚持!跨过去,相信自己理解问题就更深一步了)上面这句话是我在遇到困难的时候勉励自己的话,自己鼓励自己,让我能继续的坚持下去,哪怕花更多的时间。之后,我能提前几天完全结束我的程序编写,调试运行都没有什么错误,那时候自己真的很开心,我觉得自己选择这个专业确实是对了,不管别人怎么去评价我的专业,我以后会说:走自己的路,让别人说去吧
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!