《C语言程序设计报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告.docx(18页珍藏版)》请在三一办公上搜索。
1、C语言程序设计报告C语言程序设计报告-教师工资管理系统 目录 C语言程序设计报告教师工资管理系统 . 2 1需求分析 . 2 2总体设计 . 3 1主函数NS盒图. 3 2 InputInformation函数流程图 . 4 3 ViewInformation函数流程图. 5 4 CheckInformation函数流程图 . 6 3详细设计 . 6 4调试与测试 . 19 5测试结果 . 19 6用户手册 . 25 7实验感言: . 26 1 C语言程序设计报告-教师工资管理系统 C语言程序设计报告教师工资管理系统 1需求分析 A、教师信息处理 (1) 输入教师信息 (2) 插入教师信息:
2、(3) 删除教师信息: (4) 浏览教师信息: (5) 查询教师信息: (6) 导入教师信息: 提示:从文件导入教师信息 (7) 保存教师信息: 提示:将教师信息保存到文件中 B、教师数据处理: (1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。 (2) 教师实发工资、应发工资、合计扣款计算。 2 C语言程序设计报告-教师工资管理系统 提示:计算规则如题目。 (3) 教师数据管理 提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件 (4) 教师数据查询: 提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。 (
3、5) 教师综合信息输出 每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资 = 应发工资 合计扣款。 2总体设计 1主函数NS盒图 3 C语言程序设计报告-教师工资管理系统 输入item item=0? 否 是 item=1? 否 是 item=2? 是 否 调 调 item=3? 用 用 是 否 返 input view -infor -infor 调 item=4? -
4、mation mation 用 是 否 函 函 check 调 item=5? 数 数 -infor 用 是 否 -mation delete 函 -infor 调 item=6? 数 -mation 用 是 否 函 modify 调 回 数 -infor 用 输 -mation keep 入 函 -infor 有 数 -mation 误 函数 2 InputInformation函数流程图 4 C语言程序设计报告-教师工资管理系统 开始 输入教师数n; 输入i=0 i=i+1 in? Y 输入教师信息 结束 3 ViewInformation函数流程图开始 2函数的n值; i=0 i=i+1
5、 in? Y 输出教师信息 结束 5 C语言程序设计报告-教师工资管理系统 4 CheckInformation函数流程图开始 输入要检查的教师号num;i=0 i=i+1 i=num? Y 输出教师信息 结束 3详细设计 #include #define TEACHER_MAX 3 struct teacher int num;/教师号 char name10;/教师姓名 char sex10;/性别 char danwei10;/单位名称 6 C语言程序设计报告-教师工资管理系统 char zhuzhi10;/家庭住址 char dianhua20;/联系电话 int jiben;/基本工
6、资 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”,从而确保教师
7、的各种信息都是同一的整体。然后,运用了一个数组“teTEACHER_MAX” void CopyString(char *dst,char *src,int length)/自定义字符串复制函数 int i; 7 C语言程序设计报告-教师工资管理系统 for(i=0; ilength; i+) dsti = srci; 这是自定义的一个字符串复制函数。 void InputInformation(void) int i; printf(请输入教师的信息:n); printf(教师号姓名性别单位住址电话基本津贴补贴话费水电房租所得税卫生公积金n); for(i=0; iTEACHER_MAX;
8、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.jintie+tei.butie; tei.koukuan = tei.huafei+tei.
9、shuidian+tei.fangzu+tei.suodeshui+tei.weisheng+tei.gon8 C语言程序设计报告-教师工资管理系统 gjijin; tei.shiji = tei.yingfa-tei.koukuan; 这是一个输入函数,通过计数器“i”逐个输入教师信息。然后,通过“tei.yingfa = tei.jiben+tei.jintie+tei.butie”这样类型的式子,计算出教师应发的工资,合计扣款和实际发的工资。 void ViewInformation(void)/浏览教师信息函数 int i; printf(教师号 姓名 性别 单位 住址 电话 实际n)
10、; 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; 9 C语言程序设计报告-教师工资管理系统 int num; printf(请输入要检查的教师号:nnum=); scanf(%d,&num); for(i
11、=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(
12、void)/删除信息函数 int i; int num; printf(请输入要删除的教师号:nnum=); scanf(%d,&num); 10 C语言程序设计报告-教师工资管理系统 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); CopyS
13、tring(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; t
14、ei.weisheng= tei+1.weisheng; tei.gongjijin = tei+1.gongjijin; 11 C语言程序设计报告-教师工资管理系统 tei.koukuan = tei+1.koukuan; tei.shiji = tei+1.shiji; tei.num =0; CopyString(tei.name, ,10); CopyString(tei.sex, CopyString(tei.danwei, CopyString(tei.zhuzhi, CopyString(tei.dianhua, tei.jiben = 0; tei.jintie = 0; te
15、i.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; ,10); ,10); ,10); ,10); 12 C语言程序设计报告-教师工资管理系统 break; 该函数用来删除教师信息。输入要删除的教师号,然后,把后一个教师的信息移动到储存该教师信息的地方,同样,后面的都往前移动。最后一个
16、教师的所有信息也前移,而他的原来储存信息的地方归零。 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.name,&temp.sex,&temp.danwei,&temp.zhuzhi,&temp.dianhua,&temp.jiben,&temp.jintie
17、,&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+te13 C语言程序设计报告-教师工资管理系统 mp.gongjijin; temp.shiji = te
18、mp.yingfa-temp.koukuan; for(i=0; iTEACHER_MAX; i+) if(tei.num = temp.num) tei.num = temp.num; 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.jibe
19、n = 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; 14 C语言程序设计报告-教师工资管理系统 tei.koukua
20、n = 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.name,tei.sex,tei.danwei,tei.zhuzhi,tei.dianhua,tei.jiben,tei.j
21、intie,tei.butie,tei.huafei,tei.shuidian,tei.fangzu,tei.suodeshui,tei.weisheng,tei.gongjijin); printf(n); 15 C语言程序设计报告-教师工资管理系统 fclose(f); printf(nn); 该函数的作用是把教师信息保存到记事本里。首先打开文件夹,然后,通过i的自增,逐个保存教师信息。最后,关闭文件。 void main/主函数 int item; printf(nnnnn); printf(t主菜单n); printf(nnn); printf( 欢迎进入教师工资管理系统n); pri
22、ntf(nnn); printf(tn); printf(nnn); while(1) printf(n); printf(n菜单n); 16 C语言程序设计报告-教师工资管理系统 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; pri
23、ntf(n); switch(item) case 1: InputInformation; break; case 2: ViewInformation; 17 C语言程序设计报告-教师工资管理系统 break; case 3: CheckInformation; break; case 4: DeleteInformation; break; case 5: ModifyInformation; break; case 6: KeepInformation; break; default: break; 这是主函数,函数执行从这里开始。该函数首先输出菜单。然后,通过item的值确定要调用的
24、函数。 18 C语言程序设计报告-教师工资管理系统 4调试与测试 按照提示,进行调试,纠正各种输入错误,语法错误。开始在 “CheckInformation”函数中有“else printf(“输入错误,请重新输入”);”但是运行时,发现此句多余。当输入多个教师信息时,检查第一个以外的教师信息时,都会输出“输入错误,请重新输入”。把此句删除之后,程序运行正常。结果是:证明调试完成,结果正确。 5测试结果 点击运行程序,结果如图所示: 19 C语言程序设计报告-教师工资管理系统 首先输入1,让主函数调用InputInformation函数结果如图所示: 20 C语言程序设计报告-教师工资管理系统
25、 由于该函数中选择了#define TEACHER_MAX 3,也就是教师人数应该为3,输入三个人进行程序测试,结果如图所示:21 C语言程序设计报告-教师工资管理系统 输入2,浏览教师信息,结果如图所示: 输入3,查询教师信息,并任意选择要查询的教师号如001,结果如图所示:22 C语言程序设计报告-教师工资管理系统 输入4,删除教师信息,并输入要删除的教师号如001,结果如图所示:输入5,修改教师信息,运行结果如图所示:23 C语言程序设计报告-教师工资管理系统 可以按要求输入修改后的教师信息。 输入6,保存教师信息,结果如图所示:屏幕没有任何显示信息,但是,教师信息已经被保存在记事本。打
26、开记事本,结24 C语言程序设计报告-教师工资管理系统 果如图所示: 证明教师信息已经被保存在了记事本。 输入0,返回,结果如图显示:按任意键后,就返回程序。 以上所示各图证明了程序的正确性。 6用户手册 用户可根据提示进行操作,只需修改“#define TEACHER_MAX 3”中的数字,就可以任意改动要输入的教师的人数。按系统提示,输入教师的基本信息后,可以自动计算出教师应发工资、合计扣款和实发工资等信息。进入操作页面后,根据提示,输入“1”并按回车键,则可以按提示信息按顺序输入教师的信息,以回25 C语言程序设计报告-教师工资管理系统 车键为每个教师信息输入的结束标志。如果要浏览教师信
27、息,则输入“2”并按回车,可对所有教师的信息进行浏览。如果要核查某个教师的信息,则输入“3”,并按回车键,屏幕上则显示让输入要核查的教师号,输入该教师的号,就可以核查该教师的信息。如果要删除教师信息,就按提示输入“4”,并按回车键然后,按提示输入要删除的教师号,则该教师的信息就被删除了。要保存教师信息,就输入“6”并按回车键,教师信息就被保存在记事本了。如果要结束本次操作,就按“0”并按回车键,然后屏幕显示“press any key to continue”,则按任意键,就会结束此次操作。 7实验感言: 通过这次实验,我巩固了C语言知识,并且获得了一些调试经验,为我今后的学习有很大的帮助。虽然有好多的东西不懂,但是,经过自己的努力,解决了好多的困难,也从中学到了不少东西,也获得了很多的经验。所以,这是一个很不错的课程,一个对大家都有益的课程。我对C语言课程也更加熟悉了,相关知识点也巩固了。 26
链接地址:https://www.31ppt.com/p-3155373.html