




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内蒙古科技大学课程设计说明书内蒙古科技大学本科生课程设计说明书题 目:C语言课程设计 人事管理系统学生姓名: 学 号:1467111228专 业:计算机科学与技术班 级:计科2班指导教师:日 期: 2015 年1 月 5日45内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目人事管理系统指导教师时间2015.1.5-2015.1.9一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力6. 熟练C语言循环结构,结构体数组,链表的使用技巧和语法。二、设计资料及参数人事管理系统v 人事管理系统是为了满足企业,学校等单位的信息化管理的需求,将企事业单位的职工的信息输入计算机,进行全面的信息化管理,可以对职工信息档案进行输入,查询,删除,添加,打印等。新建文件、打开文件等操作。v 本系统设计到的功能如下:v 本系统采用菜单界面,操作简明,界面比较友好。v 插入模块:根据需要,将职工信息插入链表中。v 修改模块:根据职工编号进行信息修改。v 删除模块:若某条记录错误或者不需要则可以删除。v 查询模块:可以根据需求进行查询,可以根据职工编号和姓名进行查询。将职工信息列出。v 统计模块,可以统计平均工资,或者列出高于某一数字的工资的职工。v 导出模块:将职工信息导出到磁盘文件。v 导入模块:从磁盘文件将职工信息导入链表中。三、设计要求及成果1. 分析课程设计题目的功能需求(见课设报告)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)(见课设报告)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)(见课设报告)4. 设计完成的软件要便于操作和使用(见课设报告)5. 设计完成后提交课程设计报告(请严格按照模板进行排版)(见课设报告)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。目 录内蒙古科技大学课程设计任务书I目 录III第一章 需求分析41.1引言41.2任务概述41.3数据描述41.4功能需求51.5性能需求51.6运行需求51.7任务计划6第二章概要设计72.1总体设计72.2数据类型设计(或数据结构设计)72.3接口设计82.4运行界面设计9第三章详细设计113.1输入模块设计113.2输出模块设计113.3查找模块设计123.4删除模块设计133.5 工资统计143.6 保存及读取模块设计14第四章测试分析154.1测试程序执行情况154.2出现的问题和解决的方法17第五章用户手册(可选)185.1使用说明185.2运行说明18第六章课程设计总结21附录:程序代码23参考文献44第一章 需求分析1.1 引言 为了配合C语言的学习,我们进行了这次课程设计,本次课程设计我们选择了人事管理系统作为课题, 之所以选择该课题,是因为现代企业的管理日益自动化,信息化,都是基于软件进行管理,我们现在以此为课题进行C语言的设计和研究,无疑对于将来走向社会进行软件设计工作具有很大的现实意义。1.2 任务概述人事管理系统是为了满足企业,学校等单位的信息化管理的需求,将企事业单位的职工的信息输入计算机,进行全面的信息化管理,可以对职工信息档案进行输入,查询,删除,添加,打印,统计等。 本次课程设计配合课本的相关知识, 综合使用了结构体,指针,链表等知识,对该项目进行了比较完善的设计,经过实际调试和运行,证明该系统运行稳定可靠,达到了设计目的。1.3 数据描述我们采用了结构体加链表的方式进行数据存储和操作。struct bumen /*部门*/char department10;char position26;char memo10;struct gongzi /*工资*/char position36;char poname10;float pay;struct Employee /*雇员*/int num;char name12;char sex4;char position6;char birthday10;char address20;struct bumen bumen1; struct gongzi gongzi1;Employee * next; 我们在本次课程设计中,数据结构采用了链表,链表是一种动态进行存储分配的结构。链表的每一个一个节点中包含了一个指针变量,用它存放下一个结点的地址,环环相扣,中间决不能断开,该指针指向一个struct Employee类型的数据。链表比起数组有很大的优势,只要在于储存空间不浪费,临时需要,临时开辟,不用占用非常大的空间。1.4 功能需求根据我们初步测算,需要如下功能:1)Main函数函数,它主要用while 语句形成一个循环,执行菜单-选择菜单-执行菜单后返回-如果是0则退出系统.2) void menu(); 主菜单,有一些列printf 语句组成,目的是显示系统菜单。3) void zengjia(); 增加信息,输入新的职工信息,添加到链表中。4) void charu(); 插入信息根据职工编号,将信息插入链表。5) void tuichu(); 退出系统,只是一系列显示语句。6) void print(); 打印,将职工信息链表打印到屏幕上。7) void shanchu(); 删除删除某个职工的信息。8) void xiugai();修改,根据职工编号找到信息进行修改。9) void chazhao(); 查找,根据职工编号或者名字进行信息查找8)void gongzijisuan() 统计平均工资,或者列出高于某数字的工资。11) void daochu(); 导出磁盘文件,将职工信息导出到磁盘,以后可以使用。12) void daoru();导入磁盘文件,将职工信息导入到链表中。1.5 性能需求本软件可以在任何586以上采用WIN平台的机器上运行,现有的内存大于1G,硬盘剩余容量大于10M的计算机上都可以满足其运行性能要求。1.6 运行需求本软件运行需求如下:开发工具:VC6+ 应用平台Windows 2000/XP/Vista 32位/WIN7/WIN81.7 任务计划我们本次课程设计的目地,在于设计一套人事管理系统,该系统采用结构体加链表的形式组织数据,并且用 while循环进行程序的循环读取,在屏幕上显示菜单,用户可以循环输入自己的选择,进行程序的各个功能,比如输入,查询,删除,数据的导入导出等。 本程序还将设计内存数据保存到磁盘文件,并且可以将磁盘文件导入链表的功能:(1) 输入形式和输入值的范围:输入形式采用对于链表的每个元素的各个成员用scanf进行读取, 读入数据类型有 int ,float,char 数组。各个数据类型的取值根据各自的数据类型范围限定。(2) 程序输出是在屏幕上将数据根据要求将链表元素用printf语句列出,并且达到比较整齐的排版要求。(3) 程序完成后,可以对职工信息档案进行输入,查询,删除,添加,打印等。(4) 测试数据:输入例子:比如: int num;1char name12;王平char sex4;男char position6;部长char birthday10;1970/1/1char address20;北京路8号char department10设备char position26;R01char memo10;党员char position36;B01char poname10;部长float pay5000第二章 概要设计2.1 总体设计根据上面的任务书,我们初步画出框架图如下:2.2 数据类型设计(或数据结构设计)本次课程设计采用结构体加链表的形式进行数据的组织:struct bumen /*部门*/char department10;char position26;char memo10;struct gongzi /*工资*/char position36;char poname10;float pay;struct Employee /*雇员*/int num;char name12;char sex4;char position6;char birthday10;char address20;struct bumen bumen1; struct gongzi gongzi1;Employee * next; 我们在本次课程设计中,数据结构采用了链表,链表是一种动态进行存储分配的结构。链表的每一个一个节点中包含了一个指针变量,用它存放下一个结点的地址,环环相扣,中间决不能断开,该指针指向一个struct Employee类型的数据。链表比起数组有很大的优势,只要在于储存空间不浪费,临时需要,临时开辟,不用占用非常大的空间。2.3 接口设计 Main函数函数Int main()要用while 语句形成一个循环,执行菜单-选择菜单-执行菜单后返回-如果是0则退出系统.menu();Void menu()主菜单,有一些列printf 语句组成,目的是显示系统菜单Charu()void charu()插入信息根据职工编号,将信息插入链表。zengjia()void zengjia()增加信息,输入新的职工信息,添加到链表中。print()void print();将职工信息链表打印到屏幕上shanchu()void shanchu()删除某个职工的信息xiugai()void xiugai();根据职工编号找到信息进行修改。chazhao()void chazhao();根据职工编号或者名字进行信息查找gongzijisuan()void gongzijisuan()工资平均值计算和高于某数字工资人员列出daochu()void daochu();将职工信息导出到磁盘,以后可以使用。daoru()void daoru()将职工信息导入到链表中。tuichu();void tuichu();退出系统,只是一系列显示语句。2.4 运行界面设计本程序采用结构体和链表进行数据存储:struct bumen ,struct gongzi ,struct Employee ,是结构体数组,其中struct Employee 包括了其他两个结构体。在main函数执行后,程序里面开始进行一个while 循环,输入int n 的值,然后用 switch (n)语句进行分支判断,调动相应的函数。 其中 menu 函数在每次的循环中都执行,显示菜单,其他的则是根据输入由main函数调用。各个函数的功能如下:1)Main函数函数,它主要用while 语句形成一个循环,执行菜单-选择菜单-执行菜单后返回-如果是0则退出系统.2) void menu(); 主菜单,有一些列printf 语句组成,目的是显示系统菜单。(每次循环都要被主函数调用)3) void zengjia(); 增加信息,输入新的职工信息,添加到链表中。(由main函数根据输入调用)4) void charu(); 插入信息根据职工编号,将信息插入链表。(由main函数根据输入调用)5) void tuichu(); 退出系统,只是一系列显示语句(退出的时候执行)。6) void print(); 打印,将职工信息链表打印到屏幕上。(由main函数根据输入调用)7) void shanchu(); 删除删除某个职工的信息。(由main函数根据输入调用)8) void xiugai();修改,根据职工编号找到信息进行修改。(由main函数根据输入调用)9) void chazhao(); 查找,根据职工编号或者名字进行信息查找(由main函数根据输入调用)10)void gongzijisuan () 工资平均值计算和高于某数字工资人员列出11)void daochu(); 导出磁盘文件,将职工信息导出到磁盘,以后可以使用。(由main函数根据输入调用)12) void daoru();导入磁盘文件,将职工信息导入到链表中。(由main函数根据输入调用)第三章 详细设计3.1 输入模块设计增加信息插入信息是先进行判断,如果链表是空的,则直接将链表头作为输入的第一个节点,开辟空间,将信息写入该空间. 如果链表不是空的,则使用一个指向链表头的指针,然后根据next指针的指向向链表尾部循环,找到其尾部,然后将信息追加输入系统.追加的时候先开辟一段大小为结构体的空间,将前面的next指针指向这段空间, 这段空间的next指针指向NULL.插入信息插入信息是使用一个指向链表头的指针,然后根据next指针的指向向链表尾部循环,找到所需要编号的项,然后将信息插入输入系统.插入的时候先开辟一段大小为结构体的空间,将前面的next指针指向这段空间, 这段空间的next指针指向下一项.3.2 输出模块设计打印信息打印信息的时候,是首先用了一个指向链表头的指针,然后根据next指针的指向向链表尾部循环一直到next指针为NULL为止,在这个过程中将所有的信息打印.3.3 查找模块设计查询的时候有两个选择,当输入是1的时候,按照职工编号查询,输入其他值的时候按照姓名选择.这里是用了判断分支语句.逻辑图如下:编号查询是首先用了一个指向链表头的指针,然后根据next指针的指向向链表尾部循环一直到next指针为NULL为止,在这个过程中将符合条件的信息打印(职工编号等于输入值).姓名查询是首先用了一个指向链表头的指针,然后根据next指针的指向向链表尾部循环一直到next指针为NULL为止,在这个过程中将符合条件的信息打印(职工姓名等于输入值)3.4 删除模块设计删除是首先用了一个指向链表头的指针,然后根据next指针的指向向链表尾部循环一直,在这个过程中将符合条件的信息删除, 就是将相邻元素的指针重新接上,把需要删除的”隔离”开,然后释放这段空间.3.5 工资统计工资统计分为两个功能,一个是平均工资计算,是首先用了一个指向链表头的指针,然后根据next指针的指向向链表尾部循环一直到next指针为NULL为止,在这个过程中将人数和总工资加起来,然后进行平均值计算。还有一个功能是高于某数字的工资的人员列出,也是是首先用了一个指向链表头的指针,然后根据next指针的指向向链表尾部循环一直到next指针为NULL为止,在这个过程中将符合工资条件的人打印出来。这两个功能和查询有些相似,不单独画图。3.6 保存及读取模块设计导出信息是磁盘保存,就是把文件保存到磁盘文件里面。文件名字是test.dat ; 这里首先要产生一个指向文件的指针,然后将其指向磁盘文件,如果不存在则建立新文件。然后利用该文件指针将数据逐一写入磁盘。导出的时候按照结构体Employee的大小逐块读出,直到信息全部导出。在导出的时候,同样需要一个指向链表头的指针,然后根据next指针的指向向链表尾部循环一直到next指针为NULL为止。导入信息是将磁盘文件加载到系统中,就是从test.dat 这个文件加载已经保存的文件到内存中。里首先要产生一个指向文件的指针,然后将其指向磁盘文件,如果不存在则提示错误,如果存在,则利用该文件指针将数据逐一从磁盘写入内存,读入的时候按照结构体Employee的大小逐块读入,直到文件尾。写入的时候,要经过开辟空间,设置next指针的次序,将数据按照结构体大小逐一读入。第四章 测试分析4.1 测试程序执行情况程序测试运行结果如下:a)主界面显示及输入数据:测试结果:正常。b)数据功能:结论:运行结果正常。c)删除人数数据功能:结论:运行结果正常。d)查询人数数据选择查询方式:结论:两种查询形式都可以正常进行。e)工资统计功能平均工资统计:高于某数字列出结论:运行正常f)磁盘导入和导出:我们选择磁盘数据导出功能, 然后重新启动系统, 在没有输入任何数据的情况下,进行数据导入功能,结果数据全部导入回来,证明导入和导出的功能都正常实现。 4.2 出现的问题和解决的方法如果进行极端测试,在应该数据数据量的时候输入很多字母,程序会发生异常,我上网查询的结果应该是有清理缓冲区的命令执行就好了。我们使用的语句是 fflush(stdin); 第五章 用户手册(可选)5.1 使用说明开始程序后程序进入菜单界面, 建议用户先用导入磁盘文件功能,将数据从磁盘文件导入。这样避免从头逐条输入数据,操作简单。本软件是菜单引导的界面,比较直观。数据输入后,用户应该根据菜单提示,进行数据的输入,删除,查询,导入,导出等操作。5.2 运行说明*/图1:程序初始运行界面:输入选择1 后:图2:输入信息界面: 输入3后,可以进行数据修改,修改截图和输入基本一致。不再单独截取。输入4, 图3:删除记录:输入5的时候有两个选择,职工编号查询和姓名查询,如下:图4:职工编号查询图5 职工姓名选择选择6的时候将全部记录列出:图6 浏览职工记录输入7的时候有两个选择,计算平均工资和列出某个工资值,列出高于这个数值的人。图7:计算平均工资图8列出工资高于某个数值的人数据的导入和导出由于没有相关的很明显的界面,截图不再显示。第六章 课程设计总结 本次课程设计的难度,也不算太低,尤其是500句的要求还是比较高的,我也是千辛万苦,费了很多力气才做出来,这其中主要的原因是因为平时做题目不够多,熟练程度不够造成,在程序设计中遇到过如下难点和问题: 1) 由于不熟练造成的一些低级错误, 这些错误往往造成大面积的错误提示,甚至错误提示比程序还长,令人手足无措,不过最后慢慢冷静下来仔细分析,也能发现问题,比如输入的时候是汉字字符状态,而不是英文字符,两者的括号很相似,但是汉字状态在C语言里面是无法认出的,这类问题的解决方法是写英文代码时,一定要切换到英文状态, 直到输入汉字的时候才切换回来。 再比如输入数字的时候,用scanf语句开始总是编译正常但是运行的时候却发生错误, 百思不得其解,看了几个小时也没有发现问题,换个机器也不行,最后万般无奈,请一个同学帮着看,才发现没有加地址符,这个错误耽误我了很多时间。 再比如C进行判断的时候等于用的是= 而不是 = ,但是由于从小到大一直在判断相等的时候用的 = 符号,所以,在判断语句的时候用了 = 号,但是并不报错,运行结果却是总是不对, 这个问题是通过老师上课做实例的时候才醒悟过来。这个错误属于非常麻烦的错误,因为编译没有错误,很难发现这种逻辑错误。 解决方法是多练,多学。2)由于对于课本的理解不深造成的问题,尤其是指针部分,确实是令人头痛的。 4)编译出现错误的解决:对于初学者来说,程序发生编译错误是经常的,并不奇怪,我们要掌握F4的追查故障点的方法,在VC6中,如果编译出错误,我们可以按F4,系统就自动把光标停留在出故障的第一个地方,仔细查看提示,虽然是英语的比较麻烦,但是很多时候还是可以看懂的,根据提示大概可以找到故障点,有的时候提示的故障点在一个地方, 但是实际故障点在其上一行,比如上一行没有加分号,这点我们要注意。C语言的结构体和指针是大难点,也是十分重要的知识点,在这次课设中,却是躲不过去的坎儿,在课程设计中, 反复理解,反复看别人的例子,好容易才慢慢初步理解了数组的一些细节, 但是如果再出新的题目,可能我还要费很多力气再来重新复习,可见其难度。在程序调试中,我请教了很多网上高手,我的同学们也给了我很多帮助。再次一并感谢。我更要感谢我的老师们,他们有着极高的专业水平,他们在课堂上教育我们,在课后的时候将知识难点给我们一遍一遍耐心讲解,使我们的知识慢慢积累,逐步提高,从而完成了这次课程设计。他们的精益求精的学术作风,平易近人的待人态度,是我今后人生长久发展的动力,老师,感谢你们!附录:程序代码#include #include #include #include /*数据定义*/struct bumen /*部门*/char department10;char position26;char memo10;struct gongzi /*工资*/char position36;char poname10;float pay;struct Employee /*雇员*/int num;char name12;char sex4;char position6;char birthday10;char address20;struct bumen bumen1; struct gongzi gongzi1;Employee * next;int pub=0 ; /*数据条目数*/struct Employee * head; /*头结点*/*函数声明*/void menu(); /*主菜单*/void zengjia(); /*增加信息*/void charu(); /*插入信息*/void tuichu(); /*退出系统*/void print(); /*打印*/void shanchu(); /*删除*/void xiugai();/*修改*/void chazhao();/*查找*/void gongzijisuan();/*工资相关计算 */void daochu();/*导出磁盘文件*/void daoru();/*导入磁盘文件*/*主函数*/int main()int n;printf(t 欢迎使用人事管理系统 n);printf(*n);printf(本系统可以进行人事数据的输入,添加,删除n);printf(以及查询,修改等功能 n);printf(本系统也可以把数据保存到磁盘文件n);printf(或者把磁盘文件的数据导入到系统中n);printf(操作建议:n); printf(在刚进入系统的时候n); printf(请先执行8,将数据从磁盘文件直接读入。n); printf(这样就不用从头数据数据 n); printf(*n);while (1) menu(); scanf(%d,&n); fflush(stdin); switch (n) case 1: zengjia(); break; /*增加信息*/case 2: charu(); break; /*插入*/case 3: xiugai(); break; /*修改*/case 4: shanchu(); break; /*删除*/case 5: chazhao(); break; /*查找*/ case 6: print(); break; /*打印*/ case 7: gongzijisuan(); /*工资计算*/ case 8: daochu(); break; /*导出*/ case 9: daoru(); break; /*导入*/case 0: tuichu();exit(0); default: printf(无该选项,请重新输入!n);Sleep(1000);system(cls);break;return 0;/*函数具体说明*/void menu()printf(nn);printf(t 人事管理系统n);printf(*n);printf(t选择1:录入人事信息n);printf(t选择2:插入人事信息n);printf(t选择3:修改人事信息n);printf(t选择4:删除人事信息n);printf(t选择5:查询人事信息n); printf(t选择6:打印人事信息n); printf(t选择7:工资相关计算n); printf(t选择8:导出磁盘文件n); printf(t选择9:导入磁盘文件n); printf(t选择0:退出系统nn);printf(*n);printf(请输入08输入其他键不起作用n);/*退出*/void tuichu()printf(*n);printf(* 谢谢使用 ! *n);printf(*n);Sleep(1000);/*退出*/*录入*/void zengjia()int i,n,m,w_biaozhi=0; struct Employee *newnode,*p,*pm2;if (pub=0) newnode=(struct Employee *)malloc(sizeof(struct Employee);/注意和上面语句的区别,上面的不对,因为指针类型没有定义好printf(请输入职工编号(整数)-); scanf(%d,&newnode-num); fflush(stdin); printf(请输入职工姓名-); scanf(%s,newnode-name); printf(请输入职工性别(男或女)-); scanf(%s,newnode-sex); printf(请输入职工职务编号(少于等于3位编码)-); scanf(%s,newnode-position); printf(请输入职工生日(年/月/日,如1980/3/4)-); scanf(%s,newnode-birthday); printf(请输入职工地址(少于10个汉字); scanf(%s,newnode-address); printf(请输入职工部门信息-部门编号(少于10位编码); scanf(%s,newnode-bumen1.department); printf(请输入职工部门信息-职务编号(少于等于3位编码)-); scanf(%s,newnode-bumen1.position2); printf(请输入职工部门信息-备注(少于等于5个汉字)-); scanf(%s,newnode-bumen1.memo); printf(请输入职工工资信息-职务编号(少于等于3位编码)-); scanf(%s,newnode-gongzi1.position3); printf(请输入职工工资信息-职务名称(少于等于5个汉字)-); scanf(%s,newnode-gongzi1.poname); printf(请输入职工工资信息-工资-); scanf(%f,&newnode-gongzi1.pay);/scanf(%d%s%f%f%f,&newnode-number,newnode-name,&newnode-maths,&newnode-english,&newnode-chinese);head=newnode;newnode-next =NULL;pub+;return;p=head; /*如果不是第一个元素则添加到后面*/for (i=0;p!=NULL;i+)pm2=p;p=p-next; /*找到尾部节点*/newnode=(struct Employee *)malloc(sizeof(struct Employee);printf(请输入职工编号(整数)-); scanf(%d,&newnode-num); fflush(stdin); printf(请输入职工姓名-); scanf(%s,newnode-name); printf(请输入职工性别(男或女)-); scanf(%s,newnode-sex); printf(请输入职工职务编号(少于等于3位编码)-); scanf(%s,newnode-position); printf(请输入职工生日(年/月/日,如1980/3/4)-); scanf(%s,newnode-birthday); printf(请输入职工地址(少于10个汉字); scanf(%s,newnode-address); printf(请输入职工部门信息-部门编号(少于10位编码); scanf(%s,newnode-bumen1.department); printf(请输入职工部门信息-职务编号(少于等于3位编码)-); scanf(%s,newnode-bumen1.position2); printf(请输入职工部门信息-备注(少于等于5个汉字)-); scanf(%s,newnode-bumen1.memo); printf(请输入职工工资信息-职务编号(少于等于3位编码)-); scanf(%s,newnode-gongzi1.position3); printf(请输入职工工资信息-职务名称(少于等于5个汉字)-); scanf(%s,newnode-gongzi1.poname); printf(请输入职工工资信息-工资-); scanf(%f,&newnode-gongzi1.pay); pm2-next=newnode;newnode-next=0; pub+;/*插入*/void charu()int n,m,w_biaozhi=0; struct Employee *newnode,*p,*pm2;if (pub=0) printf(*); printf(0记录,无法插入); printf(*); return;printf(请输入要插入节点的职工编号,插入项目将插在它的后面n);scanf(%d,&n);fflush(stdin);p=head;for (m=0;mnum=n)newnode=(struct Employee *)malloc(sizeof(struct Employee);/注意和上面语句的区别,上面的不对,因为指针类型没有定义好printf(请输入职工编号(整数)-); scanf(%d,&newnode-num); fflush(stdin); printf(请输入职工姓名-); scanf(%s,newnode-name); printf(请输入职工性别(男或女)-); scanf(%s,newnode-sex); printf(请输入职工职务编号(少于等于3位编码)-); scanf(%s,newnode-position); printf(请输入职工生日(年/月/日,如1980/3/4)-); scanf(%s,newnode-birthday); printf(请输入职工地址(少于10个汉字); scanf(%s,newnode-address); printf(请输入职工部门信息-部门编号(少于10位编码); scanf(%s,newnode-bumen1.department); printf(请输入职工部门信息-职务编号(少于等于3位编码)-); scanf(%s,newnode-bumen1.position2); printf(请输入职工部门信息-备注(少于等于5个汉字)-); scanf(%s,newnode-bumen1.memo); printf(请输入职工工资信息-职务编号(少于等于3位编码)-); scanf(%s,newnode-gongzi1.position3); printf(请输入职工工资信息-职务名称(少于等于5个汉字)-); scanf(%s,newnode-gongzi1.poname); printf(请输入职工工资信息-工资-); scanf(%f,&newnode-gongzi1.pay);w_biaozhi=1;/newnode-next=p; /定义了这一项的指针 pm2=p-next ; newnode-next=p-next; p-next =newnode;pub=pub+1;break;p=p-next ;void print()struct Employee *p;int i=0;if (pub=0)printf(现在没有空记录,请增加记录后再进行);return; /=下面正式开始=p=head;printf(-n);for (i=0;p!=NULL;i+) printf(职工编号 职工姓名 性别 职务编号 生日 地址 n);printf(%5d%10s%10s%10s%20s%10sn,p-num,p-name,p-sex,p-position,p-birthday,p-address) ; printf(部门编号 部门职工编号 备注 工资职务编号 工资职务名 工资 n); printf(%5s%10s%16s%14s%6s%12.2fn,p-bumen1.department,p-bumen1.position2,p-bumen1.memo,p-gongzi1.position3,p-gongzi1.poname,p-gongzi1.pay) ;p=p-next;printf(-n);Sleep(1500);return;/*删除*/void shanchu() int x,y,w_shanchu=0,w_counter=0,w_biaozhi=0;struct Employee *pm,*p;if(pub=0) printf(没有可以删除的记录n); if(pub=1) head=NULL;pub=0;printf(只有一条记录已经删除n);if (pub=2)printf(请输入需要删除的记录的职工编号n);scanf(%d,&y);fflush(stdin);p=head;pm=p;/.for (x=0;xnum=y)/ w_biaozhi=1; if (y=1)head=p-next;pub=pub-1;break;if(p-next =NULL) printf(aaa); pm-next=NULL; pub=pub-1; break;if (y!=1)&(p-next!=NULL) /=pm-next =p-next; pub=pub-1;/=/=/= pm=p;p=p-next ;if (w_biaozhi=0) printf(没有符合条件的记录);Sleep(1000);return;/*修改*/void xiugai()int x,y,w_biaozhi=0;struct Employee *p;printf(请输入职工编号n);scanf(%d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信阳航空考试题目及答案
- 三甲医院住院医师规范化培训全科师资培训考试题及答案
- 2025年航天质量知识试题及答案
- 维修电工考级考证试题题库及答案
- 2025年风机检修培训试题及答案
- 安全用电考试题及答案
- smt基础知识考试试题及答案
- 跨国企业劳动合同制定与海外员工权益保障合同
- 高新技术研发项目资金拨付合同
- 2025公务员省考面试题及答案
- 乡镇综合执法工作培训
- 2025新会计法培训
- 小儿麻醉危机管理方案
- 成人床旁心电监护护理规程
- 本科生科研管理制度
- 大输液产品研究报告
- 2025版技术服务合同协议
- GB 5768.1-2025道路交通标志和标线第1部分:总则
- 江西红色文化考试试题及答案
- 食品仓库记录管理制度
- 企业团委管理制度
评论
0/150
提交评论