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

下载本文档

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

文档简介

序学校:中国地址大学学院:工程学院班级序号:05507101学号:姓名:王雷C语言程序设计编程实践是学习C语言程序设计的一重要环节,为提高学生程序设计能力,通过课堂和上机实践练习使学生的程序设计能力上一台阶。通过前四单元温顾而知新、庖丁解牛、举一反三、熟能生巧等过程的练习设计下面一个完整的程序。1、题目要求设计“工资信息管理系统”要求:该系统能够实现工资信息管理。系统包括录入,浏览,查询,统计等功能。录入功能要求:能够添加新的工资信息到文件;浏览功能要求:能够按照工资卡号,姓名分类浏览,提供分屏显示;有排序功能,排序后按照工资卡号升序或实发工资降序输出;查询功能要求:能够按照工资卡号,姓名查询;统计功能要求:能够按照月份累计统计某职工在某时间段发工资总金额职工数据如下:姓名银行卡号月份应发工资水费电费税金实发工资wanglei0550710165000.0025.0035.00360.004580.00wanglei0550710175100.0020.0040.00370.004670.002、分析:根据题目要求,应当把职工工资信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现职工工资浏览,查询,统计等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。3、总体设计:根据题目要求,可以将系统分为六个模块:1)职工工资信息浏览模块;2)添加工工资信息模块;3)统计职工工资总合模块;4)按名字查询职工工资信息模块5)按卡号查询职工工资信息模块96)功能选择工资信息管理系统职工添加统计按名按卡功能工资职工职工字查号查选择信息资信工资询职询职浏览息模总合工工工工模块块模块资信资信息息4、详细设计:#include<iostream.h>#include<stdio.h>#include<stdlib.h>#include<string.h〉//头函数名/*********职员工资信息结构体*********//***包括职工的姓名、银行卡好、工作月份、应发工资、实发工资、水费、电费、税***/structstaff//职员工资信息结构体{charName[10];charCardNumber[10];intMonth;floatSPWages;floatAPWages;floatWater;floatElectrical;floatTax;};FILE*fp;//定义文件指针二二二全局变量structstafftemp;voidprintf_face()//输出函数{printf("\n姓名银行卡号月份应发工资水费电费税实发工资\n");printf("%s%s%d%.2f%.2f%.2f%.2f%.2f\n",temp.Name,temp.CardNumber,temp.Month,temp.SPWages,temp.Water,temp.Electrical,temp.Tax,temp.APWages);/**********浏览职工工资信息==模块*********/voidPrintInformation()//浏览职工工资信息{structstafftemp;if((fp=fopen("wages","rb"))==NULL){printf("cannotopenthefile!");exit(0);while(fread(&temp,sizeof(structstaff),1,fp)==1)printf_face();fclose(fp);}fclose(fp);}添加到职工信息中►<请输入要添加的工资信息:\n);/输出//姓名银行卡号月份应发工资水费电费\n结束束;1」printf("\nprintf("\nscanf("%s%s%d%f%f%f",temp.Name,temp.CardNumber,&temp.Month,&temp.SPWages,&temp.Water,&temp.Electrical);if(temp.SPWages<=800)temp.Tax=0;

if((temp.SPWages>800.0)&&(temp.SPWages<1400.0))temp.Tax=(temp.SPWages-800)*0.05;if(temp.SPWages>1400){temp.Tax=(temp.SPWages-1400)*0.1;}temp.APWages二temp.SPWages-temp.Water-temp.Electrical-temp.Tatemp.APWages二temp.SPWages-temp.Water-temp.Electrical-temp.Ta开始chartempname[10];floatsum=0;Yintmonthstart=0,monthover=0;printf("\n输入姓名起始月份终止月份\n:");sum+二temp.APWagescanf("%s%d%d",tempname,&monthstart,&monthover);if((fp二fopen("wages","rb"))二二NULL)J{printf("cannotopenthefile!")exit(0);结束

while(fread(&temp,sizeof(structstaff),1,fp)==1)if(strcmp(temp.Name,tempname)==O)/******判断是否是该职工******/{if(temp.Month>=monthstart&&temp.Month<=monthover){sum+=temp.APWages;}}}开始printf("%d月到%d月的工资总和%f",monthstart,monthover,sum);fclose(fp);开始}/*********按名字查询某职工工资信息==模块********/voidNameSearch()//按名字查询某职工工资信息{chartempname[10];structstafftemp;printf("\n输入姓名:");scanf("%s",tempname);if((fp=fopen("wages","rb"))==NULL)

printf("cannotopenthefile!");exit(0);}while(fread(&temp,sizeof(structstaff),l,fp)==l)/***读文件中资料**/l开始J{if(strcmp(temp.Name,tempname)==0)N判断是否和要查相符printf_face();N判断是否和要查相符}}fclose(fp);}五、/********按卡号查询某职工工资信息==模块*******/voidCardNumberSearch()//按卡号查询某职工工资信息chartempCardNumber[10];structstafftemp;printf("\n输入卡号:");scanf("%s",tempCardNumber);if((fp=fopen("wages","rb"))==NULL)

printf("cannotopenthefile!");exit(0);}while(fread(&temp,sizeof(structstaff),1,fp)==1)/***读文件中资料**/{if(strcmp(temp.CardNumber,tempCardNumber)==0)/**判断是否是该卡号**/{printf_face();}}fclose(fp);六、/**********职工工资信息查询==intSearch()intn;while(1)按卡号查询按姓名查询六、/**********职工工资信息查询==intSearch()intn;while(1)按卡号查询按姓名查询printf("\n1.按照卡号查询:\n");printf("\n2.按照姓名查询:\n");printf("\n0.返回上级目录:\n");scanf("%d",&n);switch(n){case1:CardNumberSearch();break;case2:NameSearch();break;case0:return0;break;}七、a•voidShowMenu(){intn;while(1){printf("1.添加工资信息:\n");printf("2.浏览工资信息:\n");printf("3.统计工资信息:\n");printf("4.查询工资信息:\n");

printf("0.退出系统printf("0.退出系统:");switch(n){case1:Increase();break;case2:PrintInformation();break;case3:Statistics();break;case4:Search();break;case0:exit(0);break;}}}/***************主函数*************/voidmain(){ShowMenu();}运行结果可以达到要求的目的。运行结果:N判断m是否是0到N判断m是否是0到4?根据n值调用各

功能模块函数浏览工资信息:统计工资信息:

查询工资信息:0.退出系统:1请输入要==添加的工资信息:姓名银行卡号月份应发工资水费电费wanglei05507101650002535添加工资信息:浏览工资信息:统计工资信息:查询工资信息:0.退出系统:1请输入要==添加的工资信息:姓名银行卡号月份应发工资水费电费wanglei05507101751002040添加工资信息:浏览工资信息:统计工资信息:查询工资信息:0.退出系统:2姓名银行卡号月份应发工资水费电费税实发工资wanglei0550710165000.0025.0035.00360.004580.00姓名银行卡号月份应发工资水费电费税实发工资姓名银行卡号月份应发工资水费电费税实发工资wangleiwanglei0550710175100.0020.0040.00370.004670.00添加工资信息:浏览工资信息:统计工资信息:查询工资信息:0.退出系统:3输入姓名起始月份终止月份:wanglei676月到7月的工资总和9250.0000001.添加工资信息:浏览工资信息:统计工资信息:查询工资信息:0.退出系统:4按照卡号查询:按照姓名查询:0.返回上级目录:1输入卡号:05507101姓名银行卡号月份应发工资水费电费税实发工资wanglei0550710165000.0025.0035.00360.004580.00姓名银行卡号月份应发工资水费电费税实发工资按照卡号查询:按照姓名查询:0.返回上级目录:2输入姓名:wanglei水费电费税实发工资25.0035.00360.004580.00水费电费税实发工资20.0040.00370.004670.00姓名银行卡号月份应发工资20.0040.00370.004670.00wanglei0550710165000.00姓名银行卡号月份应发工资wanglei0550710175100.00按照卡号查询:按照姓名查询:0.返回上级目录:0添加工资信息:浏览工资信息:统计工资信息:查询工资信息:0.退出系统:0Pressanykeytoc

温馨提示

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

评论

0/150

提交评论