版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品 料推荐课 程 设 计 报 告课程名称C 语言课程设计课题名称工资管理系统专业汽车服务工程班级学号姓名指导教师王宁 肖伟平郭芳2014 年1 月 3 日1精品 料推荐湖南工程学院课 程 设 计 任 务 书课程名称C 课程设计课题工资管理系统专业班级汽车服务 1202 班学生姓名学号指导老师王宁肖伟平郭芳审批任务书下达日期2013 年12 月 27 日任 务 完 成 日 期2014 年1 月 3 日2精品 料推荐一 、 设 计 内 容 与 设 计 要 求1设计内容:设计与发开一个工资管理系统,对工号、姓名、编号、姓名、基本工资、扣款、应发工资、税金、实发工资等信息进行管理。主要完成以下功能:
2、1)显示所有数据2)单条显示3)计算实发工资4)查找职工信息数据5)删除记录6)插入记录7)追加记录8)保存文件9)读取文件10)按实发工资升序排序2 设计要求:1)设计正确,方案合理。2)界面友好,使用方便。3)程序精炼,结构清晰。4)设计报告5000 字以上,含程序设计说明、系统的功能框图、流程图、源程序清单等。5) 实际操作过程中遇到的问题及解决方法:设计总结及心得体会.3精品 料推荐6)上机演示。二、进 度 安 排第十七周周五上午 8 :0012:00(查阅相关资料并开始编写源程序)第十七周周五晚上 18 :3022:30(完成源程序编写调试运行课程设计报告)第十七周周六 下午 13
3、:3017:30(完成课程设计报告以及答辩)附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4 大小的图纸及程序清单) 。正文的格式 : 一级标题用3 号黑体 , 二级标题用四号宋体加粗, 正文用小四号宋体; 行距为 22。正文的内容 : 一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试; 五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000 字以上(不含程序原代码)。4精品 料推荐一、课题的主要功能主要实现对职工工资信息实现工资的显示,工资的追加,工资的查询
4、,职工的删除,职工的插入,应发工资的计算等功能。工资管理系统具体提供以下功能:a、工资显示: 完成全部职工工资信息的显示,以表格形式显示出来,并带有表头。b、工资追加: 新增职工工资记录,在追加过程中有相应的提示信息并实现连续追加的功能。c、工资查询:对指定的姓名进行定位查询, 并能显示出符合条件的查询结果。查询的信息不存在时,系统提示:List no * SALARYd、删除职工: 对指定的编号进行定位删除,删除成功时不显示任何信息。若此职工不存在时,系统显示:Not found !e、添加职工: 对指定的编号前进行定位插入,有相应的提示信息。f 、计算应发工资: 对相应的职工输入相应的扣款
5、,系统将自行计算出相应职工的应发工资并以表格形式显示出来,并带有表头。5精品 料推荐二、课题功能模块的划分本程序由八个模块构成,其中主模块是由系统函数搭建而成,其重要功能是显示出功能主菜单,由用户作出选择进入子菜单。在子菜单中操作完毕后,能够准确返回到功能主菜单。2.1 系统主要模块流程图:主函数初输显计查删插追保入示算找除入加存退始信信应信信信记文出息息发息息息录件系化功功工功功功功功统能能资能能能能能2.2 模块说明初始化模块init()将表格清零输入模块create()输入职工工资信息显示模块list()显示职工工资信息计算模块calc()计算职工的应发工资查找模块search()查询职
6、工工资信息删除模块dele()删除职工工资信息插入模块insert()插入职工工资信息追加模块append()追加职工工资信息6精品 料推荐保存模块save()保存信息退出模块Quit()退出系统三、主要功能的实现(下面以删除模块和查找模块为例)3.1 删除模块的流程图开始主菜单Delete a record输 入 职 工 编 号退出系统3.2 查找模块的流程图7精品 料推荐开始主菜单Search record on name输 入 职 工 姓 名显 示 相 应 信 息退出系统四、程序调试4.1 功能主菜单选择界面4.2 初始化功能在主菜单中选择“ Init list”进行初始化。8精品 料推
7、荐4.3 输入功能在主菜单中选择“ Enter list”进入输入界面。在no 列输入 表示完成输入,然后系统会提示按任意键进入主菜单。4.4 显示功能在主菜单中选择“ List all”进入显示界面。这里的扣款、应发工资、税金、实发工资为零是因为还没有进行应发工资的计算。9精品 料推荐4.5 计算应发工资在主菜单中选择“ Calc the salary”进入计算应发工资界面。输入相应的扣款后,系统会提示按任意键继续,然后会提示按任意键进入主菜单。4.6 查找功能在主菜单中选择“ Search recordon name”进入查找界面。根据系统提示按姓名查找职工工资信息,按任意键进入主菜单。1
8、0精品 料推荐4.7 删除功能在主菜单中选择“ Delete a record ”进入删除界面。根据系统提示按编号删除某一职工。若成功删除,系统显示下面的界面;若没有此编号的职工,则系统提示“Notfound !”。然后,按任意键进入主菜单。4.8 插入功能在主菜单中选择“ Insertrecordto list”进入插入界面。要在某编号前插入一职11精品 料推荐工,根据系统的提示先输入编号,再输入此职工的信息。然后按任意键进入主菜单。4.9 追加功能在主菜单中选择“ Append recordto file”进入追加界面。输入一组需要追加的信息后,输入追加到哪个文件,系统显示追加成功。然后按
9、任意键进入主菜单。4.10 保存文件在主菜单中选择“ Save data to file”进行保存文件操作。根据系统提示输入保存12精品 料推荐的文件名,然后按任意键进入主菜单。4.11 读取文件在主菜单中选择“ Load data from the file”读取文件。根据系统提示输入需要读取的文件名,然后按任意键进入主菜单。4.12 退出系统在主菜单中选择“ Quit ”退出系统。界面消失。13精品 料推荐五、总结机械工程学院课程设计评分表课程名称:工资管理系统项目评价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩教师签名:日期:14
10、精品 料推荐六、附件源程序代码:/*头文件( .h )*/#include stdio.h /*I/O函数 */# include bios.h /*ROM基本输入输出函数*/#include dos.h/*dos接口函数 */#include conio.h /*屏幕操作函数*/#include stdlib.h /*其它说明 */#include string.h /*字符串函数 */#include mem.h/*内存操作函数*/#include ctype.h /*字符操作函数*/#include alloc.h /*动态地址分配函数*/*变量定义 */typedef struct z
11、1/*定义数据结构 */char no11;/*编号 */char name15;/*姓名 */float jbgz; /*基本工资 */float koukuan; /*扣款 */float yfgz; /*应发工资 */float shuijin; /*税金 */float sfgz; /*实发工资 */struct z1 *next;/*后继指针 */SALARY; /*结构体类型名 */struct z1 *head;/*链表头指针 */*函数原型 */15精品 料推荐void init();/*初始化 */void create(); /*创建链表 */void calc();/*计
12、算应发工资 */void delete(); /*删除 */void search(); /*查找 */void save();/*保存文件 */void load();/*读取文件 */void insert(); /*插入 */void append(); /*追加 */void list(); /*显示所有数据 */void print(SALARY *p); /*输出单条记录 */float fax(float x); /*计算税金 */int menu_select();/*主菜单 */*主函数开始 */main()int i;clrscr();for(;)switch(menu_s
13、elect() /*调用菜单函数返回一个整数值 */case 0:init();break;/*初始化 */case 1:create();break;/*输入数据创建双链表 */case 2:list();break;/*显示所有数据 */case 3:calc();break;/*计算实发工资 */case 4:search();break;/*查找职工信息数据 */case 5:delete();break;/*删除记录 */case 6:insert();break;/*插入记录 */case 7:append();break; /*追加记录 */case 8:save();break
14、;/*保存文件 */16精品 料推荐case 9:load(); break;/*读取文件 */case 10:exit(0);/*退出 */* 菜单函数,函数返回值为整型,代表所选的菜单项*/menu_select()char *f= /*定义菜单字符串数组*/*MENU*, /*菜单的标题行 */ 0. init list, /*初始化双链表 */ 1. Enter list, /*输入数据,创建链表*/ 2. List all n,/*显示所有记录 */ 3. Calc the salary, /*计算实发工资 */ 4. Search record on name, /*查找记录 */
15、 5. Delete a record, /*删除记录 */ 6. Insert record to list, /*插入记录 */ 7. Append record to file, /*追加记录 */ 8. Save data to the file,/*保存文件 */ 9. Load data from the file,/*读取文件 */ 10. Quit ; /*退出 */char s80;int i;int key=0; /*记录所压键值 */int c=0;gotoxy(1,25); /*移动光标 */printf(press any key enter menu.n);/*压任
16、意键进入主菜单 */getch();clrscr(); /*清屏 */textcolor(YELLOW); /*设置文本颜色为黄色*/textbackground(BLUE); /*设置背景颜色为兰色 */17精品 料推荐gotoxy(10,2);putch(0xda); /*输出左上角边框*/for(i=1;i44;i+)putch(0xc4); /*输出上边框水平线*/putch(0xbf); /*输出右上角边框 */for(i=3;i22;i+)/*输出左右两边的垂直线*/gotoxy(10,i);putch(0xb3);gotoxy(54,i);putch(0xb3);gotoxy(1
17、0,22);putch(0xc0); /*输出左上角边框*/for(i=1;i44;i+)putch(0xc4); /*输出下边框水平线*/putch(0xd9); /*输出右下角边框*/window(11,3,53,21); /*制作显示菜单的窗口,大小根据菜单条数设计*/clrscr();/*清屏 */for(i=0;i8; /*对所压的键进行判断*/gotoxy(10,i+1);18精品 料推荐textbackground(BLUE);/*设置背景颜色为蓝色*/cprintf(%s,fi); /*输出菜单项 */if(key=72) i=i=1?11:i-1; /*如压向上光标键,i减
18、1,如已到第一行再上移,则到最后一行 */if(key=89)i=i=11?1:i+1;/*如压向下光标键,i 加 1,如已到最后一行再下移,则到第一行 */gotoxy(10,i+1); /*光标移动i 的下一项 */textbackground(LIGHTGREEN); /*将背景颜色设为浅绿*/cprintf(%s,fi); /*输出菜单项 */c=i-1; /*给代表菜单选项的整数赋值*/textbackground(BLACK); /*设置背景颜色为黑色*/window(1,1,80,25); /*恢复原窗口大小*/return c; /*返回代表菜单选项的整数值*/* 初始化函数
19、*/void init()head=NULL;/* 输入数据,创建链表*/void create()int x; /*记录行坐标 */int i; /*记录输入记录数*/int flag=0; /*做结束标记 */float temp;/*定义临时变量*/SALARY *info,*p; /*定义临时变量*/if(head!=NULL)init(); /*如果头指针为空,调用初始化函数*/19精品 料推荐p=head; /*从头指针开始*/for(;)if(flag=1)break;/*如果 flag=1 ,结束输入 */i=0;x=0;/*确定移动的行坐标*/clrscr(); /*清屏 *
20、/gotoxy(1,3);printf(*gongziguanli*);/*输出标题 */gotoxy(1,4);printf(-Enter end-);/*提示输入 结束 */gotoxy(1,5);printf(|-|);/*输出表格的起始线*/gotoxy(1,6);printf(|no|name| jbgz |);/*输出字段标题,注意空格数*/for(;)gotoxy(1,7+x);printf(|-|-|-|);/*输出表格的水平线*/info=(SALARY *)malloc(sizeof(SALARY);/*申请一个记录空间*/if(!info)printf(nout of m
21、emory);/*如没有得到空间,输出内存溢出信息*/exit(0);/*退出程序 */info-next=NULL;/*新结点的后继为空*/gotoxy(1,8+x);printf(|); /*输出数据间的分割线*/gotoxy(12,8+x);printf(|);gotoxy(29,8+x);printf(|);gotoxy(38,8+x);printf(|);gotoxy(2,8+x);/*光标到输入编号位置*/20精品 料推荐inputs(info-no,10);/*输入编号,并验证长度不超过10*/if(info-no0=)flag=1;break; /*编号首字符为 结束输入 */
22、gotoxy(13,8+x); /*光标到输入姓名位置*/inputs(info-name,14); /*输入姓名,并验证长度不超过14*/gotoxy(30,8+x); /*光标到输入基本工资位置*/scanf(%f,&temp); /*输入基本工资到临时变量*/info-jbgz=temp; /*基本工资赋值 */info-koukuan=0; /*初始扣款为0,待计算工资时输入*/info-sfgz=0; /*初始实发工资为0,待计算工资时计算*/info-shuijin=0; /*初始税金为0,待计算工资时计算*/info-yfgz=0; /*初始应发工资为0,待计算工资时计算*/if
23、(p=NULL)/*如果 p 为空,说明输入的是第一个结点*/head=info;/*头指针 */info-next=NULL; /*info的后继是空 */else /*插入的结点不是第一结点,则插入在头结点之前*/info-next=p;/*新结点的后继指向原来的头结点*/p=info; /*新结点变为p 结点,暂时的头结点*/head=info; /*新结点变为头结点*/x+=2;/*因为水平线,将光标下移两行*/gotoxy(1,8+x);i+;/*输入记录数加1*/if(i%9=0)break; /*输入 9 个记录,换一页输入*/21精品 料推荐gotoxy(1,8+x);prin
24、tf(|-|-|-|);/*输出结尾水平线*/* 字符串输入和验证函数*/inputs(char *s, int count)char p255;doscanf(%s,p);/*输入字符串 */if(strlen(p)count)printf(n too long! n);/*进行长度校验,超过count 值重输入 */while(strlen(p)count);strcpy(s,p); /*将输入的字符串拷贝到字符串s 中 */* 显示链表 */void list()int i=0,n; /*记录输出行数 */SALARY *p; /*定义移动指针 */clrscr(); /*清屏 */p=
25、head; /*从头指针开始*/if(head!=NULL)clrscr(); /*清屏 */printf(nnn); /*换行 */printf(*SALARY*n);/*输出标题信息 */printf(|no|name|jbgz | koukuan|yfgz | shuijin |sfgz|n); /*输出字段标题 */22精品 料推荐printf(|-|-|-|-|-|-|-|n);doprintf(|%-10s|%-15s|%9.2f|%9.2f|%9.2f|%9.2f|%9.2f|n, p-no,p-name, p-jbgz,p-koukuan,p-yfgz,p-shuijin,p-
26、sfgz);printf(|-|-|-|-|-|-|-|n);p=p-next;while(p!=NULL);/*显示所有内容*/printf(*end*n);getch();/* 输出指针所指结点信息*/void print(SALARY *p)if(p)/*如果指针不为空,则显示信息*/clrscr(); /*清屏 */printf(nnn); /*换行 */printf(*SALARY*n); /*输出标题信息 */printf(|no|name|jbgz | koukuan|yfgz | shuijin |sfgz|n); /*输出字段标题 */23精品 料推荐printf(|-|-|
27、-|-|-|-|-|n); /*输出分割线 */printf(|%-10s|%-15s|%9.2f|%9.2f|%9.2f|%9.2f|%9.2f|n, p-no,p-name,p-jbgz,p-koukuan,p-yfgz,p-shuijin,p-sfgz);/*输出结点信息*/printf(*end*n); /*输出结束标记 */* 计算实发工资 */void calc()int x; /*行坐标 */int i=0; /*记录数 */float temp; /*临时变量扣款 */SALARY *p; /*移动指针 */clrscr();/*清屏 */p=head; /*从头指针开始*/w
28、hile(p!=NULL) /*当 p 不为空时,也就是有记录时,外循环控制换页*/x=0;clrscr();gotoxy(1,3);printf(*gongziguanli*);/* 输出标题 */gotoxy(1,5);printf(|-|);gotoxy(1,6);/*下面输出字段标题*/printf(|no|name| jbgz | koukuan| yfgz |shuijin| sfgz24精品 料推荐|);while(p!=NULL) /*当 p 不为空时,也就是有记录时,内循环控制处理9 条 */gotoxy(1,7+x);printf(|-|-|-|-|-|-|-|);goto
29、xy(1,8+x);printf(|);gotoxy(12,8+x);printf(|);gotoxy(29,8+x);printf(|);gotoxy(38,8+x);printf(|);gotoxy(49,8+x);printf(|);gotoxy(58,8+x);printf(|);gotoxy(67,8+x);printf(|);gotoxy(76,8+x);printf(|);gotoxy(2,8+x);printf(%-10s,p-no); /*输出编号 */gotoxy(13,8+x);printf(%-15s,p-name); /*输出姓名 */gotoxy(30,8+x);p
30、rintf(%.2f,p-jbgz);/*输出基本工资 */gotoxy(39,8+x);scanf(%f,&temp); /*输入扣款 */p-koukuan=temp; /*扣款字段赋值 */p-yfgz=p-jbgz-p-koukuan; /*计算应发工资 =基本工资 - 扣款 */gotoxy(50,8+x);printf(%.2f,p-yfgz);/*输出应发工资 */gotoxy(59,8+x);p-shuijin=(p-yfgz-1000)*fax(p-yfgz); /*否则按税率计算税金 */printf(%.2f,p-shuijin); /*输出税金 */gotoxy(68,
31、8+x);p-sfgz=p-yfgz-p-shuijin; /*计算实发工资 */25精品 料推荐printf(%-8.2f,p-sfgz); /*输出实发工资 */x+=2;/*行坐标下移两行*/i+;/*记录数加1*/if(i%9=0)break; /*记录数超过9 条,跳出内循环*/p=p-next;/*指针后移,处理下一条*/gotoxy(1,7+x);printf(|-|-|-|-|-|-|-|n); /*输出结束行 */printf(Press any key congtinue.n);getch();/* 根据应发工资,计算税率*/float fax(float x)float f1;if(xno)return p; /*比较相等,查找成功,返回指针*/p=p-next; /*不相等指针后移*/printf(not foundn); /*没有找到 */return NULL; /*返回为空指针 */* 删除结点 */void delete()SALARY *p,*q=NULL; /*定义临时变量,p 指向要删除的结点p*/char s11; /*要删除结点的编号*/clrscr(); /*清屏 */printf(please deleted non); /*提示输入信息*/scanf(%s,s);/*输入要删除的职工编号*/p=q=head; /*从头指针
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届四川省成都市彭州市重点达标名校中考适应性考试物理试题含解析
- 《牧场之国》教案(2课时)-2025-2026学年统编版小学语文五年级下册
- 危重患者呼吸机应用与护理
- 临床思维与护理决策训练
- 中医眼保健护理教学课件
- 危重患者护理科研与临床实践
- 2026春小学信息技术五年级下册(电子工业版三起)期末练习卷及答案
- 中医护理在肿瘤科的应用
- 卧床患者皮肤护理的老年护理
- 重庆市北碚区重点达标名校2026年中考三模物理试题含解析
- 医药经销商现场审计制度
- 物业管理安全生产检查自查表样例
- 电力5G通信模组测试规范
- (2025版)微针点阵射频临床应用专家共识
- 2025年注册会计师公司战略与风险管理试题测试题及答案
- 船舶防污染监督制度
- 2026年高考物理上海卷含解析及答案
- 2025年中国银行笔试题型及答案
- 2026年高考理科综合新课标二卷真题含解析及答案
- 弱电监控系统设备日常巡检表模板
- DB65∕T 4397-2021 戈壁地酸枣直播造林技术规程
评论
0/150
提交评论