2022年C语言课程设计工资管理系统 .pdf
《2022年C语言课程设计工资管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言课程设计工资管理系统 .pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计说明书NO.1 课程设计题目:工资管理系统1. 课程设计的目的C语言程序设计课程设计是计算机科学与技术专业一门重要的专业技术基础课程,也是一门核心课程。本课程设计的目的是为了配合C语言程序设计 课程的开设,使学生能够较熟练地掌握语言的基本内容及程序设计的基本方法与编程技巧,并能够培养学生应用计算机解决和处理实际问题的思维方法与基本能力,为进一步学习和应用计算机的专业知识打下基础。2. 设计方案论证及源程序清单2.1 课程设计思路(1)设定一个一维数组,可先按员工序号设定每位员工的工资(2)利用 While 语句和 printf语句完成用户菜单的设计(3)当用户选择 1、2 项时,需输入
2、员工编号,所以需要设计编号校正功能,如果出错可输出“ The error employee number”(4)当选择 2 时, 进行工资数据的修改,并将新数据存回该员工的工资数组中(5)利用 for 循环中判断语句,将用户工资数与数组中的工资数进行比较2.2 系统功能需求:该系统利用双向链表结构实现一个单位最基本的财务管理工资管理。该系统应该具有:初始化、输入、显示、单条显示、删除、查找、插入、追加、保存、读入、计算工资、拷贝、排序、索引、分类统计等功能。2.3 系统功能模块划分:(1)输入 : 用于输入职工工资的数据模块, 字段: 编号、姓名、工资、补贴。(2)查询 : 可根据输入的职工编
3、号查找某职工, 并显示其工资数据。(3)统计 : 计算每个职工的应发、实发。应发=基本工资 +补贴实发=应发- 水电费沈阳大学名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 27 页 - - - - - - - - - 课程设计说明书NO.2 (4)维护 : 可以增加或者删除一个职工的工资数据。显示: 在显示器上列表输出职工工资数据2.4 源程序清单/*12.3.2 源程序 */ /*头文件( .h)*/ #include stdio.h /*I/O 函数 */ # in
4、clude 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 z1 /*定义数据结构*/ char no11; /*编号 */ char name1
5、5; /*姓名 */ float jbgz; /*基本工资 */ float koukuan; /* 扣款 */ float yfgz; /*应发工资 */ float shuijin; /*税金 */ float sfgz; /*实发工资 */ struct z1 *prior;/* 前驱指针 */沈阳大学名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 27 页 - - - - - - - - - 课程设计说明书NO.3 struct z1 *next;/* 后继指针
6、*/ SALARY; /*结构体类型名*/ struct z1 *First; /*双链表头指针 */ struct z1 *Last; /*双链表尾指针*/ /*函数原型 */ void init(); /* 初始化 */ void create(); /* 创建链表 */ void calc(); /*计算应发工资*/ void delete(); /* 删除 */ void search(); /* 查找 */ void save(); /*保存文件 */ void load(); /*读取文件 */ void computer(); /* 计算所需各种票面张数*/ void inser
7、t(); /*插入 */ void append(); /* 追加 */ void copy(); /* 复制文件 */ void sort(); /*排序 */ void index(); /*索引 */ void total(); /*分类合计 */ void list(); /* 显示所有数据*/ void print(SALARY *p); /*输出单条记录*/ void display(); /*随意逐条显示*/ float fax(float x); /*计算税金 */ int menu_select(); /*主菜单 */沈阳大学名师资料总结 - - -精品资料欢迎下载 - -
8、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 27 页 - - - - - - - - - 课程设计说明书NO.4 main() int i; clrscr(); for(;) switch(menu_select() /*调用菜单函数返回一个整数值*/ case 0:init();break; /*初始化 */ case 1:create();break; /*输入数据创建双链表*/ case 2:list();break; /*显示所有数据*/ case 3:display();break; /*单条显示 */ c
9、ase 4:calc();break; /*计算实发工资 */ case 5:search();break; /* 查找职工信息数据*/ case 6:delete();break; /* 删除记录 */ case 7:insert();break; /* 插入记录 */ case 8:append();break; /*追加记录 */ case 9:save();break; /*保存文件 */ case 10:load(); break; /*读取文件 */ case 11:copy();break; /*复制文件 */ case 12:sort();break; /*按实发工资升序排序*
10、/ case 13:computer();break; /* 计算所需票面数*/ case 14:index();break; /* 按职工号索引*/ case 15:total();break; /*按部门求合计*/ case 16:exit(0); /*退出 */ 沈阳大学名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 27 页 - - - - - - - - - 课程设计说明书NO.5 /*菜单函数,函数返回值为整型,代表所选的菜单项*/ menu_select()
11、 char *f= /*定义菜单字符串数组*/ *MENU*, /*菜单的标题行*/ 0. init list, /* 初始化双链表*/ 1. Enter list, /* 输入数据,创建双链表*/ 2. List all n, /*显示所有记录 */ 3. Display record by step, /* 显示单条记录*/ 4. Calc the salary, /* 计算实发工资*/ 5. Search record on name, /* 查找记录 */ 6. Delete a record, /* 删除记录 */ 7. Insert record to list, /* 插入记录
12、*/ 8. Append record to file, /* 追加记录 */ 9. Save data to the file, /*保存文件 */ 10. Load data from the file,/*读取文件 */ 11. Copy the file to new file, /*复制文件 */ 12. Sort on sfgz, /*排序 */ 13. Computer ticket number, /* 计算所需票面数*/ 14. Index on number, /*索引 */ 15. Total on number, /*分类合计 */ 16. Quit ; /*退出 */
13、 char s80; int i; int key=0; /* 记录所压键值*/ int c=0; gotoxy(1,25); /* 移动光标 */沈阳大学名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 27 页 - - - - - - - - - 课程设计说明书NO.6 printf(press any key enter menu.n);/* 压任意键进入主菜单*/ getch(); clrscr(); /*清屏 */ textcolor(YELLOW); /*设置文
14、本颜色为黄色*/ textbackground(BLUE); /*设置背景颜色为兰色*/ gotoxy(10,2); putch(0 xda); /* 输出左上角边框*/ for(i=1;i44;i+) putch(0 xc4); /* 输出上边框水平线*/ putch(0 xbf); /*输出右上角边框*/ for(i=3;i22;i+)/*输出左右两边的垂直线*/ gotoxy(10,i);putch(0 xb3); gotoxy(54,i);putch(0 xb3); gotoxy(10,22);putch(0 xc0); /* 输出左上角边框*/ for(i=1;i44;i+) put
15、ch(0 xc4); /* 输出下边框水平线*/ putch(0 xd9); /*输出右下角边框*/ window(11,3,53,21); /* 制作显示菜单的窗口,大小根据菜单条数设计*/ clrscr(); /*清屏 */ for(i=0;i8; /*对所压的键进行判断*/ gotoxy(10,i+1); textbackground(BLUE);/* 设置背景颜色为蓝色*/ cprintf(%s,fi); /*输出菜单项 */ if(key=72) i=i=1?17:i-1; /*如压向上光标键 ,i 减 1,如已到第一行再上移,则到最后一行*/ if(key=80)i=i=17?1:
16、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; /*返回代表菜单选项的整数值*/ 沈阳大学名师资料总结 - - -精品资料欢迎下载 - - - - - -
17、 - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 27 页 - - - - - - - - - 课程设计说明书NO.8 /*初始化函数 */ void init() First=NULL; Last=NULL; /*输入数据,创建双链表*/ void create() int x; /* 记录行坐标 */ int i; /* 记录输入记录数*/ int flag=0; /* 做结束标记 */ float temp; /*定义临时变量*/ SALARY *info,*p; /*定义临时变量*/ if(First!=NULL) init()
18、;/* 如果头指针为空,调用初始化函数*/ p=First; /* 从头指针开始*/ for(;) if(flag=1) break; /* 如果 flag=1,结束输入 */ i=0; x=0; /*确定移动的行坐标*/ clrscr(); /* 清屏 */ gotoxy(1,3); 沈阳大学名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 27 页 - - - - - - - - - 课程设计说明书NO.9 gotoxy(1,6); printf(| no | name
19、 | jbgz | ); gotoxy(1,7); printf(|-|-|-|); info=(SALARY *)malloc(sizeof(SALARY); /*申请空间 */ if(!info) printf(nout of memory); /*如没有得到空间,内存溢出*/ exit(0); /* 退出程序 */ info-next=NULL; /* 新结点的后继为空*/ info-prior=NULL; /*新结点的前驱为空*/ gotoxy(1,8);printf(|); gotoxy(12,8);printf(|); gotoxy(29,8);printf(|); gotoxy(
20、38,8);printf(|); gotoxy(2,8); inputs(info-no,10); /*输入新结点的编号,并校验*/ gotoxy(13,8); inputs(info-name,14); /* 输入新结点的姓名,并校验*/ gotoxy(30,8); scanf(%f,&temp); /* 输入基本工资*/ info-jbgz=temp; /* 给基本工资字段赋值*/ info-koukuan=0; /* 扣款初始为0*/ info-yfgz=0; /*应发工资初始为0*/沈阳大学名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
21、 - - - - 名师精心整理 - - - - - - - 第 9 页,共 27 页 - - - - - - - - - 课程设计说明书NO.10 info-shuijin=0; /*税金初始为0*/ info-sfgz=0; /* 实发工资初始为0*/ printf(|-|-|-|); p=First; /*移动指针从头指针开始*/ while(strcmp(p-no,s)&p!=NULL) /*查找结点确定插入位置*/ p=p-next; /*指针后移,继续查找*/ if(p=NULL) /*如 p 为空 */ if(p=First) /* 如 p 为头指针,说明链表为空*/ First=
22、info; /* 新结点为头指针*/ First-prior=NULL; /*头结点的前驱为空*/ Last=First; /* 唯一结点,尾指针等于头指针*/ else /* 新结点插在尾部*/ Last-next=info; info-prior=Last; Last=info; /*尾指针指向新结点*/ else if(p=First) /*p 不为空,但p 为头指针,新结点插在第一个结点位置*/ info-prior=NULL; /*新结点的前驱为空*/ info-next=p; /* 新结点的后继为p*/ p-prior=info; /*p的前驱是新结点*/沈阳大学名师资料总结 -
23、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 27 页 - - - - - - - - - 课程设计说明书NO.11 First=info; /* 修改头指针指向新结点*/ else /*新结点插入在中间某一个位置p 之前 */ info-next=p; /* 新结点的后继是p*/ info-prior= p-prior; /*新结点的前驱是p 的前驱 */ p-prior-next=info; /*p的前驱的后继是新结点*/ p-prior=info; /*p的前驱是新结点*/ pr
24、intf(nnn -have inserted %s SALARY-n,info-name); printf(n-Dont forget save-n); /*提醒调用保存文件存盘*/ /*保存文件 */ void save() FILE *fp; /*定义指向文件的指针*/ SALARY *p; /*定义移动指针*/ char outfile10; /* 保存输出文件名*/ clrscr();/* 清屏 */ printf(Enter outfile name,for example c:f1te.txt:n);/*提示输入文件名格式信息*/ scanf(%s,outfile); if(fp
25、=fopen(outfile,wb)=NULL) /*为输出打开一个二进制文件*/ printf(can not open filen);沈阳大学名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 27 页 - - - - - - - - - 课程设计说明书NO.12 return; /* 返回 */ printf(nSaving file.n); p=First; /* 移动指针从头指针开始*/ while(p!=NULL) /*如 p 不为空 */ fwrite(p,s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言课程设计工资管理系统 2022 语言 课程设计 工资管理 系统
限制150内