c语言课程设计报告—工资信息管理系统_第1页
c语言课程设计报告—工资信息管理系统_第2页
c语言课程设计报告—工资信息管理系统_第3页
c语言课程设计报告—工资信息管理系统_第4页
c语言课程设计报告—工资信息管理系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学校:中国地址大学学院:工程学院班级序号:05507101学号:姓名:王雷指导老师:刘文中C 语言程序设计编程实 践是 学习 C 语言程 序设计的 一重要 环节 ,为 提高学 生程 序设计能力,通过课堂和上机实践练习使学生的程序设计能力上一台阶。通过前四单元温顾而知新、庖丁解牛、举一反三、熟能生巧等过程的练习设计下面一个完整的程序1、题目要求 设计“工资信息管理系统” 要求: 该系统能够实现工资信息管理。系统包括录入,浏览,查询,统计 等功能。录入功能要求:能够添加新的工资信息到文件; 浏览功能要求:能够按照工资卡号,姓 名分类浏览,提 供分屏 显示; 有排序功能,排序后按照工资卡号升序或实发

2、工资降序输出; 查询功能要求:能 够按照 工资 卡号,姓名 查询; 统计功能要求:能够按照月份累计统计某职工在某时间段发工资总金 额。职工数据如下:姓名 银行 卡 号 月 份 应发 工 资 水 费 电 费 税金 实 发工资wanglei0550710165000.0025.0035.00360.00 4580.00wanglei0550710175100.0020.0040.00370.00 4670.002、分析:根据题目要求,应当把职工工资信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信 息送 到文 件中,所 以应该提供 一个 结构体 和文 件的输入输

3、出等 操作; 在程序中需实现职工工资浏览,查询,统计等功能的操作,所以需 要建 立相 应的模块来实现;另 外还 需提供 键盘 式选择菜单实现 功能, 在运行时达到所要目的。3、总体设计:根据题目要求,可以将系统分为六个模块:1) 职工 工资信息 浏览模块;2) 添加 工工资信 息模块;3) 统计 职工工资 总合模块;4) 按名 字查询职 工工资信息 模块 ;5) 按卡 号查询职 工工资信息 模块 ;6) 功能 选择工资信息管理系职工 工资 信息 浏览 模块添加 职工 资信 息模 块统计 职工 工资 总合 模块按名 字查 询职 工工 资信 息按卡 号查 询职 工工 资信 息功能 选择4、详细设计

4、:#include #include #include#include/ 头函数名职员工资信息结构体 */* 包括职工的姓名、银行卡好、工作月份、应发工资、实发工资、水费、电费、税*/struct staff/ 职员工资信息结构体char Name10;char CardNumber10;int Month;float SPWages;float APWages;float Water;float Electrical;float Tax;FILE *fp;/ 定义文件指针 =全局变量struct staff temp;void printf_face()/ 输出函数printf(n 姓名 银

5、行卡号 月份 应发工资 水费 电费 税 实发工资 n );printf(%s %s %d %.2f %.2f %.2f %.2f %.2fn,temp.Name,temp.Card Number,temp.Month,temp.SPWages,temp.Water,temp.Electrical,temp.Tax,temp.APWages); 浏览职工工资信息 =模块 */void PrintInformation()/ 浏览职工工资信息开始struct staff temp;if(fp=fopen(wages,rb)=NULL)所查职工信息阅读资料,判断是否是定义结构体全局变量,打开文件Np

6、rintf(cannot open the file!);exit(0);while(fread(&temp,sizeof(struct staff),1,fp)=1) printf_face();fclose(fp);开始 结束二、/* 添加职工工资信息 =模块 */void Increase()/ 添加职工工资信息mp.SPWages1printf(cannot open the file!);exit(0);printf(nprintf(ntemp.SPWages=800计算税金计算税金添加到职工信息中计算税金请输入要 =添加的工资信息 : n);姓名 银行卡号输出月份 应发工资 水费

7、电费 n结 束);scanf(%s%s%d%f%f%f,temp.Name,temp.CardNumber,&temp.Month,&temp.SPWages,&temp.Water,&temp.Electrical);if(temp.SPWages800.0)&(temp.SPWages1400)temp.Tax=(temp.SPWages-1400)*0.1;temp.APWages=temp.SPWages-temp.Water-temp.Electrical-temp.Tax;开 始struct staff temp;sum+=temp.APWag输出char tempname10;f

8、loat sum=0;int monthstart=0,monthover=0;printf(n 输入姓名 起始月份 终止月份 n:); scanf(%s%d%d, tempname, &monthstart,&monthover); if(fp=fopen(wages,rb)=NULL)printf(cannot open the file!)结束exit(0);while(fread(&temp,sizeof(struct staff),1,fp)=1)if(strcmp(temp.Name,tempname)=0)/* 判断是否是该职工 */ if(temp.Month=monthsta

9、rt&temp.Month=monthover) sum+=temp.APWages;printf(%d 月到 %d 月的工资总和 %f,monthstart,monthover,sum);fclose(fp);开始struct staff temp;printf(n输入姓名 :);scanf(%s,tempname);if(fp=fopen(wages,rb)=NULL)printf(cannot open the file!);exit(0);while(fread(&temp,sizeof(struct staff),1,fp)=1) /*读文件中资料 */ 开始if(strcmp(te

10、mp.Name,tempname)=0) /*判断是否是该姓名 */printf_face();fclose(fp);五、/* 按卡号查询某职工工资信息 =模块 */ void CardNumberSearch()/ 按卡号查询某职工工资信息char tempCardNumber10;struct staff temp;printf(n输入卡号 :);scanf(%s,tempCardNumber); if(fp=fopen(wages,rb)=NULL)printf(cannot open the file!);exit(0);while(fread(&temp,sizeof(struct

11、staff),1,fp)=1) /*读文件中资料 */if(strcmp(temp.CardNumber,tempCardNumber)=0) /* 判断是否是该 卡号*/printf_face();=模块2fclose(fp);/* 职工工资信息查询 int Search()int n;while(1)按卡号查询按姓名查询printf(n1.按照卡号查询 : n );printf(n2. 按照姓名查询 : n );printf(n0. 返回上级目录 : n);输出switch(n)scanf(%d,&n);case 1:CardNumberSearch();break;case 2:Name

12、Search();break;case 0:return 0;break;七、功能选择 =模块 */void ShowMenu()int n;开始添加工资信息 : n);while(1) printf(1.printf(2. 浏览工资信息 : n );printf(3.统计工资信息: n )printf(4.查询工资信息: n);printf(0.退出系统 : );scanf(%d,&n);switch(n)case 1:Increase();break;根据 n 值调用各功能模块函数case 2:PrintInformation();break;case 3:Statistics();bre

13、ak;case 4:Search();break;case 0:exit(0);break;主函数 */*void main()ShowMenu();运行结果可以达到要求的目的 运行结果:1. 添加工资信息2. 浏览工资信息 :3. 统计工资信息 :4. 查询工资信息 :0. 退出系统 : 1请输入要 =添加的工资信息 : 姓名 银行卡号 月份 应发工资 水费 电费wanglei 05507101 6 5000 25 351. 添加工资信息 :2. 浏览工资信息 :3. 统计工资信息 :4. 查询工资信息 :0. 退出系统 : 1请输入要 =添加的工资信息 : 姓名 银行卡号 月份 应发工资

14、水费 电费wanglei 05507101 7 5100 20 401. 添加工资信息 :2. 浏览工资信息 :3. 统计工资信息 :4. 查询工资信息 :0. 退出系统 : 2实发工资姓名 银行卡号 月份 应发工资 水费 电费 税wanglei 05507101 6 5000.00 25.00 35.00 360.00 4580.00实发工资姓名 银行卡号 月份 应发工资 水费 电费 税 wanglei 05507101 7 5100.00 20.00 40.00 370.00 4670.001. 添加工资信息 :2. 浏览工资信息 :3. 统计工资信息 :4. 查询工资信息 :0. 退出系

15、统 : 3输入姓名 起始月份 终止月份:wanglei 6 76 月到 7 月的工资总和 9250.0000001. 添加工资信息 :2. 浏览工资信息 :3. 统计工资信息 :4. 查询工资信息 :0. 退出系统 : 41. 按照卡号查询 :2. 按照姓名查询 :0. 返回上级目录 :1输入卡号 :05507101姓名 银行卡号 月份 应发工资 水费 电费 税实发工资wanglei 05507101 6 5000.00 25.0035.00360.004580.00姓名 银行卡号 月份 应发工资水费电费税 实发工资wanglei 05507101 7 5100.00 20.0040.0037

16、0.004670.001. 按照卡号查询 :2. 按照姓名查询 :0. 返回上级目录 :2输入姓名 :wanglei姓名 银行卡号月份 应发工资水费电费税实发工资wanglei 055071016 5000.00 25.0035.00360.004580.00姓名 银行卡号月份 应发工资水费电费税实发工资wanglei 055071017 5100.00 20.0040.00370.004670.001. 按照卡号查询2. 按照姓名查询0. 返回上级目录01. 添加工资信息2. 浏览工资信息3. 统计工资信息4. 查询工资信息0. 退出系统 : 0Press any key to continue

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论