您好,欢迎访问三七文档
东莞理工学院《C语言程序设计》课程设计题目:职工薪金管理系统院系:机械工程学院专业:机械设计制造及其自动化年级:2011班别:2班指导教师:侯家利组长:汤宝强(201141101230)同组成员:许昌(201141101229)张堃(201141101239)郑贵祥(201141101240)目录一、目的.......................................................................................................1二、需求分析...............................................................................................1三、概要设计...............................................................................................1四、详细设计...............................................................................................3五、调试分析...............................................................................................4六、测试结果...............................................................................................5七、用户使用说明......................................................错误!未定义书签。八、课程设计总结....................................................................................错误!未定义书签。附录:参考代码...........................................................错误!未定义书签。职工薪金管理系统................................................错误!未定义书签。一、实验目的⑴掌握结构体类型变量的定义和使用;⑵掌握用户自定义类型的特点和应用;⑶掌握自加(++)和自减(--)运算符的使用;⑷掌握不同的类型数据之间赋值的规律;⑸了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”);⑹学会正确使用逻辑运算符和逻辑表达式;⑺学习C语言中函数的定义和调用方法;⑻将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解。二、需求分析根据职工薪金管理的需要,建立一个“职工薪金管理系统”,以方便对职工工资信息的各项管理操作。开发目的如下:1、职工信息包括:编号、姓名、工资。2、职工薪金管理系统,提供以下功能:1)查询记录功能:主要完成在数组中查找满足相关条件的记录的功能。2)修改记录功能:主要完成对数组中目标元素的数据域中的值进行修改的功能。3)删除记录功能:主要完成删除指定职工编号记录的功能。4)插入记录功能:主要完成在指定职工编号的随后位置插入新记录功能。5)排序记录功能:主要完成按职工工资降序排列功能。(采用“冒泡法)。三、概要设计1.程序总体功能框架:2.采用结构:typedefstructyuangong//定义结构{charnum[6];//定义职工编号charname[25];//定义职工姓名floatsalary;//定义职工工资}YG;3.各功能独立自定义的函数:(1)查询职工信息:voidcheck_note();职工薪金管理系统查询职工信息修改职工信息删除职工信息插入员工信息员工信息排序退出程序(2)修改职工信息:voidamend_record();(3)删除职工信息:voiddelete_note();(4)插入职工信息:voidinsert();(5)职工薪金排序:voidsort_note();四、详细设计1.设计思路:经过对程序设计题目的分析可知,整个程序的设计实现大致分为五个模块,其中每一个模块对应一个功能,他们的功能分别是:程序界面设计模块,查询模块,修改模块,删除模块,插入模块,排序模块。为了方便了解每次对职工信息操作后的结果,我们组特意在每个模块上用到printf()语句,显示每次操作后的职工信息,以便提高效率和减少查询的时间,增强程序实用性,也方便使用!①、程序界面设计模块主要是使程序界面美观,简明的操作提示方便使用者使用我们的系统。②、查询模块在数组中查找满足相关条件的职工信息记录。③、修改模块对数组中目标元素的数据域中的值进行修改。④、删除模块删除指定职工编号的有关记录。⑤、插入模块指定职工编号的随后位置插入新记录。⑥、排序模块按职工工资降序排列。2.数据结构的选择:据职工信息的特点,决定选用结构数组表这种数据结构来作为组成编号与姓名的基本框架。每一个职工的基本信息项都是相同的,我们将这些具有相同结构类型的变量组织起来,形成一个结构数组。3.设计思想的选择:用模块化程序设计理念,对各个功能定义不同函数,分块处理,这样有利于后期调试及今后对功能的完善。五、调试分析1、刚刚开始运行程序的时候,因为我们的被调函数放在主调函数的后面,但我们忘记在函数调用前声明,导致无法运行,后来我们将被调函数放在了主调函数的前面,就能正常运行了。2、在结构变量的整体赋值时,我们直接运用了赋值符号“=”,结构程序出现错误,后来改用strcpy()语句解决了问题。3、主函数中,我们对程序界面进行了处理,我们采用循环语句“for”的空语句来实现每次操作结束都将循环显示程序界面来进行简明的下一步操作提示。4、一开始时,我们的程序只有查询时才能看到职工的详细信息表格,但后来我们经过一系列改进,在每个模块后面都加入printf()语句来实现每次操作完都能立刻观察操作结果,以便更好地对职工薪金进行管理。六、测试界面1.运行开始的界面2.还没有记录的情况3.插入职工信息4.修改职工信息5.删除职工信息6.员工信息排序7.结束程序七、用户使用说明首先启动visualc++6.0,运行程序的时候,页面会显示欢迎使用的界面,而且友好地提示让大家选择要操作的内容。我们的操作有“输入1:可以进行对员工信息查询的操作”,“输入2:可以修改员工信息”,“输入3:可以删除员工记录”,“输入4:可以插入员工记录”,“输入5:可以对已经存有记录的员工进行按薪金降序排列”,“输入0:退出程序”。1.输入“1”,将提示按编号还是按姓名进行查询,按提示输入后将可以看到职工的编号、姓名和薪金。2.输入“2”,将提示输入要修改的职工的编号或姓名,找到该职工的信息后,系统会提醒修改姓名还是薪金,按提示进行修改,最后能看到修改后的职工信息。3.输入“3”,将提示输入要删除的职工的编号或姓名,找到该职工后系统会直接删除,并输出“此记录已删除”。4.输入“4”,将提示输入职工编号或姓名,如果没有记录,则系统会提醒输入新编号,并提示输入职工姓名以及薪金,最后系统会显示新插入的职工信息。5.输入“5”,系统会直接将已经存有记录的员工进行按薪金降序排列,并以表格形式显示。6.输入“0”,退出程序。八、课程设计总结汤宝强:我是这个程序设计的组长,我对于我们组员这次经过共同努力所编写出来的程序还比较满意,因为我们的程序都符合了题目的要求,能够顺利地完成查询、删除、修改、排序等功能。毕竟是第一次真正地编写程序,所以在编写的过程中也的确遇到了很多问题,如选择循环结构的时候,我们都进行过小组分析与讨论,最后经过几次调试才得出了结论,同时我们基本上都把手上的书本翻透了,在真正掌握这一学期C语言知识的前提下,我们才开始真正地展开工作的。通过这次课程设计后,我才明白老师的用心良苦,原来我们平时学的C语言在生活中的确大有用处,只是我们课本上的例子略显简单而已,真正的C语言程序的确有一种“前人栽树,后人乘凉”魅力,能够方便迅捷地处理解决生活中的很多数据问题。在此,我要感谢我们的组员,在这几周我们讨论过,争执过,笑过,兴奋过,最后我们终于完成了整个程序的编写,谢谢你们对我这个组长的支持与包容,让我体现到团结的力量。同时也很感谢我们的侯老师给了这么一次机会我们亲身体会C语言的魅力!虽然我不是读编程专业的,但经过这次体会后,在今后的日子里我仍会继续努力学习C语言的。郑贵祥:这C语言实训总体来说收获很大。通过两个星期的学习,巩固和提高了基本编程能力。当然其中遇到过很多问题,当在自己的思考中把这些问题一一解决之后,才发现只有自己认真对待了,没有解决不了的问题。就像一开始根本就没有一点思路,因为毕竟是第一次做这么一个大题目,但我们到处都有学习的机会,通过同学们的相互讨论和老师的教导,终于找到了自己的解决方法。虽然我们的专业不是编程,但老师也说过,最主要的通过这一次机会来提高自己。许昌:这是我第一次如此深刻地体会到C语言在编程方面的强大兼容性和便利性,通过对职工薪金管理系统的编造,加深了我对VC++系统的熟练度,是我对编程语言产生了浓厚的兴趣,在课程设计期间我也从多方下手查阅了程序的错漏,进行修改,是我对这门课程有了更深的理解,也因此是我感觉到学习和利用C语言在当今时代的必要性,也明白了安排这个课程的必要性,虽然我不是计算机专业的,但我认为这门课程对我未来的就业是有很大影响的。张堃:这次的课程设计对我们所拥有的专业技能来讲,具备很大的难度,但是通过这次课程实训,我的收获很多。很多我们不能解决的问题,我们通过团队的努力,一起思考,最终解决了问题,毕竟是第一次做C语言大的题目,但我们极大地丰富了我们的专业技能能力,也加强了团队协作能力。让我懂得通过努力是能解决自己原本认为很难的问题的。附录:参考代码#includestdio.h#includestring.h#defineN1000typedefstructyuangong{charnum[6];charname[25];floatxj;}YG;YGyg[N];intn=0;//存储的员工当前个数intm=0;voidcheck_note()//查询记录{//chara[6],b[25];YGa;inti,j;intg,p;printf(请选择职工的编号或姓名,编号输入1,姓名输入2\n);for(;;){scanf(%d,&j);if(j==1){printf(请输入编号(5位)\n);scanf(%s,a.num);break;}elseif(j==2){printf(请输入姓名\n);scanf(%s,a.name);break;}else{printf(请输入1或2\n);continue;}}for(i=0;i=n;i++){if(in){g=strcmp(yg[i].num,a.num);p=strcmp(yg[i].name,a.name);if((g==0)||(p==0)){printf(这个员工的信息为:\n);printf(_____________________________________________\n);printf(|编号:%s|姓名:%s|工资:%5.2f|\n,yg[i].num,yg[i].name,yg[i].xj);printf(|------------|------------------|------------|\n\n\n\n);m=i;break;}}else{printf(未找到该记录\n\n\n);m=0;break;
本文标题:14 植树的牧羊人
链接地址:https://www.777doc.com/doc-3434506 .html