C语言程序设计报告

上传人:仙*** 文档编号:29364001 上传时间:2021-10-07 格式:DOC 页数:23 大小:428KB
收藏 版权申诉 举报 下载
C语言程序设计报告_第1页
第1页 / 共23页
C语言程序设计报告_第2页
第2页 / 共23页
C语言程序设计报告_第3页
第3页 / 共23页
资源描述:

《C语言程序设计报告》由会员分享,可在线阅读,更多相关《C语言程序设计报告(23页珍藏版)》请在装配图网上搜索。

1、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) 保存教师信息:提示:将教师信息保存

2、到文件中B、教师数据处理:(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2) 教师实发工资、应发工资、合计扣款计算。提示:计算规则如题目。(3) 教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4) 教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。(5) 教师综合信息输出每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活

3、补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资 = 应发工资 合计扣款。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

4、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

5、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_

6、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(教师号姓名性别单位住址电话基

7、本津贴补贴话费水电房租所得税卫生公积金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.name,&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.j

8、intie+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

9、(教师号 姓名 性别 单位 住址 电话 实际n); for(i=0; iTEACHER_MAX; i+) printf(%-3d %-10s %-3s %-10s %-10s %-11s %-4dn,tei.num,tei.name,tei.sex,tei.danwei,tei.zhuzhi,tei.dianhua,tei.shiji); 这是一个浏览教师信息的函数,通过计数器“i”,输出教师的信息。void CheckInformation(void)/检查教师信息函数 int i; int num; printf(请输入要检查的教师号:nnum=); scanf(%d,&num); for

10、(i=0; iTEACHER_MAX; i+) if(tei.num = num) printf(姓名: %-10sn性别: %-3sn,tei.name,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

11、(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.name,tei+1.name,10); CopyString(tei.sex,tei+1.sex,10); CopyString(tei.danwei,tei+1.danwei,10); CopyString(tei.zhuzhi,tei+

12、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.we

13、isheng; tei.gongjijin = tei+1.gongjijin; tei.koukuan = tei+1.koukuan; tei.shiji = tei+1.shiji; tei.num =0; CopyString(tei.name, ,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.yi

14、ngfa = 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

15、; 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.name,&temp.sex,&temp.danwei,&temp.zhuzhi,&temp.dianhua,&temp.jiben,&temp.jintie,&temp.butie,&temp.yingfa,&temp.huafei,&temp.shuidian,&temp.fangzu

16、,&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.n

17、um; CopyString(tei.name,temp.name,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

18、; 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(dat

19、a.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.name,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

20、); 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:删除教师

21、信息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

22、5: ModifyInformation(); break; case 6: KeepInformation(); break; default: break; 这是主函数,函数执行从这里开始。该函数首先输出菜单。然后,通过item的值确定要调用的函数。4调试与测试按照提示,进行调试,纠正各种输入错误,语法错误。开始在 “CheckInformation”函数中有“else printf(“输入错误,请重新输入”);”但是运行时,发现此句多余。当输入多个教师信息时,检查第一个以外的教师信息时,都会输出“输入错误,请重新输入”。把此句删除之后,程序运行正常。结果是:证明调试完成,结果正确。5测试

23、结果点击运行程序,结果如图所示:首先输入1,让主函数调用InputInformation函数结果如图所示:由于该函数中选择了#define TEACHER_MAX 3,也就是教师人数应该为3,输入三个人进行程序测试,结果如图所示:输入2,浏览教师信息,结果如图所示:输入3,查询教师信息,并任意选择要查询的教师号如001,结果如图所示:输入4,删除教师信息,并输入要删除的教师号如001,结果如图所示:输入5,修改教师信息,运行结果如图所示:可以按要求输入修改后的教师信息。输入6,保存教师信息,结果如图所示:屏幕没有任何显示信息,但是,教师信息已经被保存在记事本。打开记事本,结果如图所示:证明教师

24、信息已经被保存在了记事本。输入0,返回,结果如图显示:按任意键后,就返回程序。以上所示各图证明了程序的正确性。6用户手册用户可根据提示进行操作,只需修改“#define TEACHER_MAX 3”中的数字,就可以任意改动要输入的教师的人数。按系统提示,输入教师的基本信息后,可以自动计算出教师应发工资、合计扣款和实发工资等信息。进入操作页面后,根据提示,输入“1”并按回车键,则可以按提示信息按顺序输入教师的信息,以回车键为每个教师信息输入的结束标志。如果要浏览教师信息,则输入“2”并按回车,可对所有教师的信息进行浏览。如果要核查某个教师的信息,则输入“3”,并按回车键,屏幕上则显示让输入要核查

25、的教师号,输入该教师的号,就可以核查该教师的信息。如果要删除教师信息,就按提示输入“4”,并按回车键然后,按提示输入要删除的教师号,则该教师的信息就被删除了。要保存教师信息,就输入“6”并按回车键,教师信息就被保存在记事本了。如果要结束本次操作,就按“0”并按回车键,然后屏幕显示“press any key to continue”,则按任意键,就会结束此次操作。7实验感言:通过这次实验,我巩固了C语言知识,并且获得了一些调试经验,为我今后的学习有很大的帮助。虽然有好多的东西不懂,但是,经过自己的努力,解决了好多的困难,也从中学到了不少东西,也获得了很多的经验。所以,这是一个很不错的课程,一个对大家都有益的课程。我对C语言课程也更加熟悉了,相关知识点也巩固了。23

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!