C语言程序设计实训报告_第1页
C语言程序设计实训报告_第2页
C语言程序设计实训报告_第3页
C语言程序设计实训报告_第4页
C语言程序设计实训报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、高级语言程序设计训题 目: 员工信息管理程序 院系专业: 计算机工程系 姓 名: 朱建国 学 号: 2 2011年01月05 日1、 需求分析员工档案是企业劳动,人事部门在招用、调配、培训、考核、奖惩和任用等工作中形成的有关职工个人经历、政治思想、业务技术水平、工作表现以及工作变动等情况的文件材料。1、 基本要求:(1) 程序菜单功能或详细的提示功能;(2) 员工信息的输入(包括员工号、姓名、年龄、职位、工资)功能;(3) 员工信息的浏览功能;(4) 员工信息的添加功能;(5) 员工信息的删除功能;(6) 员工信息的排序功能;(7) 员工信息的查询功能;2、 其他要求:(1) 结构体数组实现,

2、用指针访问结构体成员;(2) 自行设计的程序不少于100行,总体程序不少于200行;(3) 输出数据要求格式美观;(4) 程序要有详细的注释,并画出程序流程图及必要的文字说明书文档,程序内容和文档 内容要体现个性化设计思想;(5) 严禁雷同,任务书除外全部手写;二、程序总体设计:1、程序主要包括三大模块:输入输出模块、管理模块和文件操作模块。如下图:输入输出终端 输入输出模块 管理模块 文件操作模块 存储文件 2、界面设计:程序中visual C+的编译环境中进行,界面将通过屏幕的输出显示功能选项。通过键盘输入完成相应操作。程序主界面是一个文本方式的菜单,通过键盘相应选择操作指令。 3、数据结

3、构设计:员工档案中的记录项由多个不同的数据项构成,是一个结构体数据,因此需要定义结构体数据类型。根据要求,数据项为:员工号、姓名、性别、年龄、职位、工资。据此定义如下结构体数据类型:struct workerint num;/* 员工号*/char name10;/* 姓名*/char sex10;/* 性别*/int age;/* 年龄*/char position10;/*职位*/int pay;/*工资*/workN; 4、程序函数设计main ();/*主函数*/void menu_handle();/*函数处理菜单*/int menu_choose();/*函数选择菜单*/void

4、input_worker();/*创建文件并对工人信息输入函数*/void save_ 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();/*按工资排序函数*

5、/void sort();/*排序函数处理*/void change(struct worker *p,int n);/*交换元素*/3、 程序流程图1、员工信息输入功能 3、添加员工信息开始 开始新建文件 清屏打开文件 以追加方式打开数据文件提示输入提示输入输入 输入写入文件写入文件关闭文件关闭并返回结束并返回2、员工信息浏览功能开始打开数据文件读文件关闭文件结束并返回 结束4、 员工信息删除开始显示该记录清屏删除与否 否提示输入姓名 是输入将数组后移 调用浏览函数 调用文件保存函数数据读到数组中 对比查找 返回5、员工信息查询6、 员工信息排序结束并返回开始 开始清屏清屏 提示提示输入 按

6、什么排序输入 选择数据与数组比较 调用浏览函数读该数组 冒泡排序结束并返回输出 四、实训计划第一天:设计程序设计书;第二天:实现函数菜单功能;第三天:实现员工信息输入(保存在文件中)与浏览功能;第四天:实现员工信息的添加及删除功能;第五天:实现员工信息的查询功能;第六天:实现员工信息的排序功能;第七天:对源程序进行改进与美化;五、详细设计设计总图如下:1、:建立头文件:头文件包含各种调用函数,如图2、建立主函数文件:里面的是主函数并调用菜单函数3、建立菜单函数文件:调用各种功能函数:员工信息的输入输出、添加删除、查询排序4、建立子函数文件:包括各种功能函数:员工信息的输入输出、添加删除、查询排

7、序六、实训过程在菜单功能的源程序编写过程没有遇到什么困难,但在界面的设计上,花费了许多时间寻找适合的符号和设计,以下是程序菜单选择界面: 菜单功能完成之后,就开始各种功能函数的编写,输入函数一开始没有想到调用一个保存文件的函数,后来在资料上看到这样这个方法,但当时已经编好了,就没有修改。但这次功能我也学会了这样一个方法。下次可以应用到程序中。这个功能的实现也没有遇到困难···之后我便一口气把员工信息的浏览功能做好了。 然而在做员工信息添加功能时,开始遇到困难了,当时我的fwrite()语句为fwrite(work,sizeof(struct worker),1,f

8、p);使得加进去的信息读出来的是一堆乱码,结果我不知道错误在哪里,一直以为是输入函数那边出错或者浏览函数那边错误,这么改都改不得,花了很多时间,最后才发现是这里错误,才改成fwrite(p,sizeof(struct worker),1,fp); 实现了添加功能之后,就开始做员工信息的删除功能,这个功能的实现花了我更多的时间。首先,我当时把结构体数组放在头文件的文件中并初始化一个数组,使得调用这个文件时出现一个重复定义的错误,解决完这个错误之后,开始调试,没发现别的错误,但在运行的时候,前面的几个人的信息都无法删除,只能删除最后一个人的信息,这个错误让我苦恼了很久··

9、83;设置断点调试的时候,输入功能的work0、work1·····都没问题,然而添加功能的work0、work1·····却发生了变化!删除功能那边的work0是居然是储存最后一名员工的信息,而在浏览员工信息之后的work0、work1·····却是我想得到的,于是我便在删除函数功能那里调用了浏览函数,终于解决了这个困难。这个困难花了我好几天··· 解决完那个问题之后,我的编程开始一马平川,之后的功能实现也没有遇到

10、很大的困难···提前了两天完成这个任务。七、程序的调试与测试程序调试时在录入员工信息设断点如下:用于调试数组当前储存的数据 在浏览信息函数里设的断点如下:用于调试数组当前储存的数据 在删除信息函数里设如下断点:用于调试数组当前储存的数据用于调试数组当前储存的数据存的数据用于调试数组当前储存的数据用于调试数组当前储存的数据调试结果:发现这几个数组储存的数据不一样,原本以为只要把数组定义在头文件数组内容就不会改变,结果发现这个想法是错误的。这给我的C语言上了一课!七、程序的运行1、程序的欢迎界面2、 按1进入员工信息输入,并输入员工数为2,姓名为张三、李四,如下图:3

11、,、录入员工信息后,按回车,退出员工信息的录入功能,按2浏览员工信息,操作如下图:3、 浏览无误之后,按3进行下一个功能,员工信息的添加,并添加3名员工,如图:4、 添加完成后,按2进行浏览员工信息,如图:5、 浏览无误之后,按4进行员工信息的删除,以下以删除朱总为例:按1删除后,程序浏览删除后的信息并提示是否继续删除或者返回6、 按2退出删除功能,并按5进行员工信息的查询功能,如图:(1) 程序将提示按什么方式查询,以下以按姓名查询为例:(2)输入要查询的姓名为朱总,显示如下图:(2) 按1选择重新输入,以张三为例:7、 按3退出,并选择6进行排序:(1)提示按什么方式排序:(2)按2,以按

12、工资排序为例,提示按从小到大或者从大到小排序:(3)按1,以从大到小排序:8、 按3退出,功能演示完毕,按2浏览员工信息是否改变,如下图:9、 演示完毕按7退出程序:八、结论分析问题问题的解决不能想着一步登天,当时一拿到这个任务的时候,就开始酝酿着用什么是用数组还是用链表去做这个任务,由于对链表的认识不够深刻,就选择了数组。因为员工信息包含多种不同的信息,就着手于结构体,之后开始以菜单为一条线索,随着这条线索,一步一步的把各种功能调用到菜单中,这样才能有清晰的思路去编程。算法分析算法是各个功能函数实现的核心与前提,首先算法是结合数组来思考的,比如在做删除函数的时候,首先要想到如何把你输入的要删

13、除的信息与数组中储存的信息做一个比较,只有这样才能找得到你想要删除的内容。因此就不由自主的想到用strcmp()这个函数,这样不仅节约了许多不必要的程序代码,还能使自己的思维方式更宽。找到更合适自己的算法去解决问题···九、心得与体会经过了两个星期的实训培训,虽然这期间很苦很累,在这段时间里,可以说我花了几天几夜去编了吧,从早上9点到凌晨12点半,每次厚着脸皮去找学长借电脑使用,我都会有些不好意思···然而,这说明了我已经陷入了编写程序的乐趣当中,虽然每次遇到困难,我都会去研究许久。甚至想到放弃(我第一次的程序啊,有时候看到别人都已经做出来了···我自己却没能完成,是不是太执着了呢?其实我也好想借鉴一下别人的方法啊,可是这样能提高吗?哎···好累,花了那么多精力去编了,别人却不怎么花时间,好累好累···这就是传说中的

温馨提示

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

评论

0/150

提交评论