C语言程序课程设计报告(工资管理).doc
《C语言程序课程设计报告(工资管理).doc》由会员分享,可在线阅读,更多相关《C语言程序课程设计报告(工资管理).doc(22页珍藏版)》请在沃文网上搜索。
1、 No 22目录1. 题目内容-22. 程序特点及功能-33. 总体思路-34. 详细设计-45. 程序清单-56. 运行结果与分析-177. 参考文献-22正文1题目内容:工资管理1. 课程设计目的和要求A 巩固和加强C语言程序设计课程的理论知识。B 掌握C语言的基本概念,语法,语义和数据类型的使用特点。C 掌握C语言程序设计的方法及编程技巧,能正确的使用C语言编写程序。D 进一步理解和运用结构化程序设计的思想和方法。E 使学生掌握调试程序的基本方法及上机操作方法。F 通过查询手册和文献资料,培养学生独立分析问题和解决问题的能力。G 初步掌握开发一个小型实用系统的方法。H 培养学生的创新能力
2、创新思维。I 培养学生良好的程序设计风格。进一步理解和运用。2.相关知识1. 函数的调用,指针,数组,结构体,链表2. 主函数无限循环2程序特点及功能1.特点:程序简单易懂2.功能:各种基本信息数据的录入;各种基本数据的修改;各种基本数据的插入;各种基本数据的删除;基于各种数据的查询;基于各种数据的计算。3总体思路主要设计思想:主函数无限循环;操作之前先开辟内存,建立动态链表,文件中如果有数据则导入内存,每条记录存入一个链表节点;数据的录入、修改、插入、删除、查询等均是对内存中的链表进行操作,每次操作后将数据保存到文件。4详细设计u .设计方案(流程图)5程序清单u 程序代码实现#includ
3、e/*I/O 函数*/#include/*字符串函数*/#include/*动态存储分配函数*/#include /*标准函数库*/#include/*屏幕操作函数*/#define NULL 0 /*宏定义*/#define LEN sizeof(struct worker)/*宏定义*/struct worker /*数据结构 链表*/char id19;char name9;char sex3;int age;int work_age;char department7;char position7;char position_num6;char credit_num20;char tel
4、ephone13;char mobile14;float basepay;float positionpay;float others;int waterpay;int powerpay;double maypay;int neatpay;int tvpay;int extra;double endpay;struct worker *next;void newRec();/*新建职工记录*/void searchRec();/*查询职工记录*/void modifyRec();/*修改职工记录*/void deleteRec();/*删除职工记录*/void displayRec();/*显
5、示所有职工信息*/void loadRec();/*导入文件到内存*/void saveRec();/*保存所有记录*/void printRec();/*输出报表*/int menu_select();/*主菜单*/struct worker * head,* p1,* p2,* p3;/*定义结构体指针 head为头指针 p1为输入数据缓存空间指针 p2为尾指针*/void main() /*主函数*/for(;)loadRec();switch(menu_select()case 1: system(cls); newRec();break;case 2: system(cls); se
6、archRec();break;case 3: system(cls); modifyRec();break;case 4: system(cls); deleteRec();break;case 5: system(cls); displayRec();break;case 6: system(cls); printRec();break;case 0: exit(0);int menu_select()/*主菜单*/char *menu=tt*菜单*n,ttt1.新建职工记录 ,ttt2.查询职工记录,ttt3.修改职工记录,ttt4.删除职工记录,ttt5.显示所有信息,ttt6.打印职
7、工报表,ttt0.退出(任何情况下按Ctrl+C退出程序);int c,i;for(i=0;i=7;i+) printf(%sn,menui);doprintf(ntt 输入你的选择(06):);scanf(%d,&c);while(c6);return c;void loadRec()/*导入文件到内存*/p2=p3=(struct worker *)malloc(LEN);/*开辟一个新单元*/p3-next =NULL;head=p1=(struct worker *)malloc(LEN);/*开辟一个新单元*/p1-next =NULL;FILE * fp;if(fp=fopen(d
8、ata,rb)!=NULL)fp=fopen(data,rb);p2-next =p1;dofread(p1,LEN,1,fp);p2-next =p1;p2=p1;p1=(struct worker * )malloc(LEN);/*开辟一个新单元*/while(p2-next!=NULL);fclose(fp);return;void newRec()/*新建职工记录*/printf(nnttt请输入身份证号码:);scanf(%s, p1-id);printf(ttt请输入姓名:);scanf(%s,p1-name );printf(ttt请输入性别:);scanf(%s,p1-sex
9、);printf(ttt请输入年龄:);scanf(%d,&p1-age );printf(ttt请输入工龄:);scanf(%d,&p1-work_age );printf(ttt请输入部门:);scanf(%s,p1-department );printf(ttt请输入技术职称:);scanf(%s,p1-position );printf(ttt请输入技术职称编号:);scanf(%s,p1-position_num );printf(ttt请输入工资卡号:);scanf(%s,p1-credit_num );printf(ttt请输入家庭电话号码:);scanf(%s,p1-telep
10、hone );printf(ttt请输入手机号码:);scanf(%s,p1-mobile );printf(ttt请输入基本工资:);scanf(%f,&p1-basepay );printf(ttt请输入职务工资:);scanf(%f,&p1-positionpay );printf(ttt请输入各种补助资金:);scanf(%f,&p1-others );printf(ttt请输入水费:);scanf(%d,&p1-waterpay );printf(ttt请输入电费:);scanf(%d,&p1-powerpay );printf(ttt请输入特别奖励资金:);scanf(%d,&p1
11、-extra );p1-neatpay =5;p1-tvpay =10;p1-maypay =(p1-basepay + p1-positionpay + p1-others + p1-extra) -(p1-waterpay + p1-powerpay + p1-neatpay +p1-tvpay );double cathe;cathe=p1-basepay + p1-positionpay ;if(cathe=800)cathe=cathe-(cathe-800)*0.05;else cathe=cathe-(cathe-1400)*0.1;p1-endpay =(cathe + p1-
12、others + p1-extra) -(p1-waterpay + p1-powerpay + p1-neatpay +p1-tvpay );p2-next =p1;p2=p1;p2-next =NULL;saveRec();/*保存数据*/printf(ntt按任意键返回.n);getch();system(cls); /*清屏*/void saveRec()/*保存所有记录*/p1=head;FILE *fp;fp=fopen(data,wb);dofwrite(p1,LEN,1,fp);p1=p1-next ;while(p1!=NULL);fclose(fp);void search
13、Rec()/*查询职工记录*/p1=head;char id19;printf(nntt请输入职工身份证以便查证:);scanf(%s,id);while(strcmp(p1-id,id )!=NULL)if(p1-next =NULL)printf(nnttt找不到该职工信息!n);goto back;else p1=p1-next ;printf(ttt信息如下:nttt身份证号码:);printf(%sn,p1-id );printf(ttt姓名:);printf(%sn,p1-name);printf(ttt性别);printf(%sn,p1-sex);printf(ttt年龄:);p
14、rintf(%dn,p1-age);printf(ttt工龄:);printf(%dn,p1-work_age);printf(ttt电话号码:);printf(%sn,p1-telephone);printf(ttt手机号码:);printf(%sn,p1-mobile );printf(ttt技术职称编号:);printf(%sn,p1-position_num );printf(ttt部门:);printf(%sn,p1-department );printf(ttt职务:);printf(%sn,p1-position );printf(ttt工资卡号:);printf(%sn,p1-
15、credit_num );printf(ttt基本工资:);printf(%.0fn,p1-basepay );printf(ttt职务工资:);printf(%.0fn,p1-positionpay );printf(ttt各种补助:);printf(%.0fn,p1-others );printf(ttt特别奖励:);printf(%dn,p1-extra );printf(ttt应发工资:);printf(%.0fn,p1-maypay );printf(ttt水费:);printf(%dn,p1-waterpay );printf(ttt电费:);printf(%dn,p1-power
16、pay );printf(ttt清洁费:);printf(%dn,p1-neatpay );printf(ttt闭路电视费:);printf(%dn,p1-tvpay );printf(ttt实发工资:);printf(%.0fn,p1-endpay );printf(nttt按任意键返回.n);getch();system(cls); /*清屏*/back:return;void modifyRec()/*修改职工记录*/p1=head;char id19;printf(nnttt请输入职工身份证以便查证:);scanf(%s,id);while(strcmp(p1-id,id )!=NUL
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 课程设计 报告 工资管理