C语言程序设计报告.doc_第1页
C语言程序设计报告.doc_第2页
C语言程序设计报告.doc_第3页
C语言程序设计报告.doc_第4页
C语言程序设计报告.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

c语言程序设计报告-教师工资管理系统 目录c语言程序设计报告教师工资管理系统21需求分析22总体设计41主函数ns盒图42 inputinformation函数流程图43 viewinformation函数流程图54 checkinformation函数流程图53详细设计64调试与测试165测试结果166用户手册217实验感言:22 c语言程序设计报告教师工资管理系统1需求分析a、教师信息处理(1) 输入教师信息(2) 插入(修改)教师信息:(3) 删除教师信息:(4) 浏览教师信息:(5) 查询教师信息:(6) 导入教师信息:提示:从文件导入教师信息(7) 保存教师信息:提示:将教师信息保存到文件中b、教师数据处理:(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2) 教师实发工资、应发工资、合计扣款计算。提示:计算规则如题目。(3) 教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4) 教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。(5) 教师综合信息输出每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资 = 应发工资 合计扣款。2总体设计1主函数ns盒图输入item item=0? 否是 item=1? 否 是 item=2? 是 否 调 调 item=3? 用 用 是 否返 input view -infor -infor 调 item=4? -mation mation 用 是 否 函 函 check 调 item=5? 数 数 -infor 用 是 否 -mation delete 函 -infor 调 item=6? 数 -mation 用 是 否 函 modify 调回 数 -infor 用 输 -mation keep 入 函 -infor 有 数 -mation 误 函数2 inputinformation函数流程图开始输入教师数n;输入i=0in?输入教师信息i=i+1结束yin?2函数的n值;i=0开始3 viewinformation函数流程图输出教师信息i=i+1结束y4 checkinformation函数流程图开始输入要检查的教师号num;i=0i=num?y输出教师信息i=i+1结束3详细设计#include #define teacher_max 3 struct teacher int num;/教师号 char name10;/教师姓名 char sex10;/性别 char danwei10;/单位名称 char zhuzhi10;/家庭住址 char dianhua20;/联系电话 int jiben;/基本工资 int jintie;/津贴 int butie;/生活补贴 int yingfa;/应发工资 int huafei;/电话费 int shuidian;/水电费 int fangzu;/房租 int suodeshui;/所得税 int weisheng;/卫生费 int gongjijin;/公积金 int koukuan;/合计扣款 int shiji;/实发工资 teteacher_max;首先定义了一个宏定义“#define teacher_max 3”后面的数字3可以改动,以方便改动要输入的教师的总人数。然后,运用了一个结构体 “ struct teacher”,从而确保教师的各种信息都是同一的整体。然后,运用了一个数组“teteacher_max”void copystring(char *dst,char *src,int length)/自定义字符串复制函数 int i; for(i=0; ilength; i+) dsti = srci; 这是自定义的一个字符串复制函数。void inputinformation(void) int i; printf(请输入教师的信息:n); printf(教师号姓名性别单位住址电话基本津贴补贴话费水电房租所得税卫生公积金n); for(i=0; iteacher_max; i+) scanf(%d %s %s %s %s %s %d %d %d %d %d %d %d %d %d,&tei.num,&,&tei.sex,&tei.danwei,&tei.zhuzhi,&tei.dianhua,&tei.jiben,&tei.jintie,&tei.butie,&tei.shuidian,&tei.fangzu,&tei.suodeshui,&tei.weisheng,&tei.gongjijin); tei.yingfa = tei.jiben+tei.jintie+tei.butie; tei.koukuan = tei.huafei+tei.shuidian+tei.fangzu+tei.suodeshui+tei.weisheng+tei.gongjijin; tei.shiji = tei.yingfa-tei.koukuan; 这是一个输入函数,通过计数器“i”逐个输入教师信息。然后,通过“tei.yingfa = tei.jiben+tei.jintie+tei.butie”这样类型的式子,计算出教师应发的工资,合计扣款和实际发的工资。void viewinformation(void)/浏览教师信息函数 int i; printf(教师号 姓名 性别 单位 住址 电话 实际n); for(i=0; iteacher_max; i+) printf(%-3d %-10s %-3s %-10s %-10s %-11s %-4dn,tei.num,,tei.sex,tei.danwei,tei.zhuzhi,tei.dianhua,tei.shiji); 这是一个浏览教师信息的函数,通过计数器“i”,输出教师的信息。void checkinformation(void)/检查教师信息函数 int i; int num; printf(请输入要检查的教师号:nnum=); scanf(%d,&num); for(i=0; iteacher_max; i+) if(tei.num = num) printf(姓名: %-10sn性别: %-3sn,,tei.sex); printf(电话: %-11sn单位: %-10sn,tei.dianhua,tei.danwei); printf(住址: %-10sn实际工资: %dn,tei.zhuzhi,tei.shiji); break; 该函数能够核查个别教师的信息。输入要核查的教师号num,然后,“i”从0自增,当“i=num”时,输入信息,否则继续循环直到不满足“iteacher_max”。void deleteinformation(void)/删除信息函数 int i; int num; printf(请输入要删除的教师号:nnum=); scanf(%d,&num); for(i=0; iteacher_max; i+) if(tei.num = num) for(; iteacher_max-1; i+) tei.num = tei+1.num; copystring(,tei+1.name,10); copystring(tei.sex,tei+1.sex,10); copystring(tei.danwei,tei+1.danwei,10); copystring(tei.zhuzhi,tei+1.zhuzhi,10); copystring(tei.dianhua,tei+1.dianhua,10); tei.jiben = tei+1.jiben; tei.jintie = tei+1.jintie; tei.butie = tei+1.butie; tei.yingfa = tei+1.yingfa; tei.huafei = tei+1.huafei; tei.shuidian = tei+1.shuidian; tei.fangzu = tei+1.fangzu; tei.suodeshui = tei+1.suodeshui; tei.weisheng= tei+1.weisheng; tei.gongjijin = tei+1.gongjijin; tei.koukuan = tei+1.koukuan; tei.shiji = tei+1.shiji; tei.num =0; copystring(, ,10); copystring(tei.sex, ,10); copystring(tei.danwei, ,10); copystring(tei.zhuzhi, ,10); copystring(tei.dianhua, ,10); tei.jiben = 0; tei.jintie = 0; tei.butie = 0; tei.yingfa = 0; tei.huafei = 0; tei.huafei = 0; tei.shuidian = 0; tei.fangzu = 0; tei.suodeshui = 0; tei.weisheng = 0; tei.gongjijin = 0; tei.koukuan = 0; tei.shiji = 0; break; 该函数用来删除教师信息。输入要删除的教师号,然后,把后一个教师的信息移动到储存该教师信息的地方,同样,后面的都往前移动。最后一个教师的所有信息也前移,而他的原来储存信息的地方归零。void modifyinformation(void)/修改函数 int i; struct teacher temp; printf(请输入教师的信息:n); printf(教师号姓名性别单位住址电话基本津贴补贴话费水电房租所得税卫生费公积金n); scanf(%d %s %s %s %s %s %d %d %d %d %d %d %d %d %d,&temp.num,&,&temp.sex,&temp.danwei,&temp.zhuzhi,&temp.dianhua,&temp.jiben,&temp.jintie,&temp.butie,&temp.yingfa,&temp.huafei,&temp.shuidian,&temp.fangzu,&temp.suodeshui,&temp.weisheng,&temp.gongjijin); temp.yingfa = temp.jiben+temp.jintie+temp.butie;temp.koukuan = temp.huafei+temp.shuidian+temp.fangzu+temp.suodeshui+temp.weisheng+temp.gongjijin;temp.shiji = temp.yingfa-temp.koukuan; for(i=0; iteacher_max; i+) if(tei.num = temp.num) tei.num = temp.num; copystring(,,10);/使用字符串复制函数 copystring(tei.sex,temp.sex,10); copystring(tei.danwei,temp.danwei,10); copystring(tei.zhuzhi,temp.zhuzhi,10); copystring(tei.dianhua,tei+1.dianhua,10); tei.jiben = temp.jiben; tei.jintie = temp.jintie; tei.butie = temp.butie; tei.yingfa = temp.yingfa; tei.huafei = temp.huafei; tei.shuidian = temp.shuidian; tei.fangzu = temp.fangzu; tei.suodeshui = temp.suodeshui; tei.weisheng = temp.weisheng; tei.gongjijin = temp.gongjijin; tei.koukuan = temp.koukuan; tei.shiji = temp.shiji; break; void keepinformation(void)/保存教师信息file *f; int i; if(f=fopen(data.txt,w)=null) printf(nt no!nn); for(i=0;iteacher_max;i+) fprintf(f,%d %s %s %s %s %s %d %d %d %d %d %d %d %d %d,tei.num,,tei.sex,tei.danwei,tei.zhuzhi,tei.dianhua,tei.jiben,tei.jintie,tei.butie,tei.huafei,tei.shuidian,tei.fangzu,tei.suodeshui,tei.weisheng,tei.gongjijin); printf(n); fclose(f); printf(nn);该函数的作用是把教师信息保存到记事本里。首先打开文件夹,然后,通过i的自增,逐个保存教师信息。最后,关闭文件。void main()/主函数int item; printf(nnnnn);printf(t主菜单n);printf(nnn);printf( 欢迎进入教师工资管理系统n);printf(nnn);printf(tn);printf(nnn); while(1) printf(n);printf(n菜单n); printf( 1:输入教师信息n); printf( 2:浏览教师信息n); printf( 3:查询教师信息n); printf( 4:删除教师信息n); printf( 5:修改教师信息n); printf( 6:保存教师信息n);printf( 0:返回n); printf(n); printf(请输入要选择项目的编号:); scanf(%d,&item); if(item = 0) break; printf(n); switch(item) case 1: inputinformation(); break; case 2: viewinformation(); break; case 3: checkinformation(); break; case 4: deleteinformation(); break; case 5: modifyinformation(); break; case 6: keepinformation(); break; default: break; 这是主函数,函数执行从这里开始。该函数首先输出菜单。然后,通过item的值确定要调用的函数。4调试与测试按照提示,进行调试,纠正各种输入错误,语法错误。开始在 “checkinformation”函数中有“else printf(“输入错误,请重新输入”);”但是运行时,发现此句多余。当输入多个教师信息时,检查第一个以外的教师信息时,都会输出“输入错误,请重新输入”。把此句删除之后,程序运行正常。结果是:证明调试完成,结果正确。5测试结果点击运行程序,结果如图所示:首先输入1,让主函数调用inputinformation函数结果如图所示:由于该函数中选择了#define teacher_max 3,也就是教师人数应该为3,输入三个人进行程序测试,结果如图所示:输入2,浏览教师信息,结果如图所示:输入3,查询教师信息,并任意选择要查询的教师号如001,结果如图所示:输入4,删除教师信息,并输入要

温馨提示

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

最新文档

评论

0/150

提交评论