版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东工商学院信电学院高级语言程序设计课程设计报告第PAGE二十三页共二十三页自动化111高级语言程序设计课程设计报告ExperimentDesigningreporter课程名称:高级语言程序设计英文名称:CProgramExperimentDesigning专业:自动化111学号:11057127、11057116、11057101姓名:王泽、孟凡壮、常明杰指导教师:杨福刚日期:2011年6月18日至2011年6月21日山东工商学院信电学院一:课程设计内容程序功能介绍现在,各大公司雨后春笋般屹立在中国大地上,各个公司都有自己的工资管理系统,今天我们自己创造了一个全新的工资管理系统,具体如下:工资信息存放在文件中,提供文件的输入、输出等操作;要实现浏览功能,提供显示、排序操作;而查询功能要求实现查找操作;另外还应该提供键盘式选择菜单以实现功能选择。设计思路整个系统可以分为信息输入、信息添加、信息浏览、信息排序、信息查询和信息统计模块。(1)主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。(2)输入模块按照工资卡号、姓名、月份、应发工资、水费、电费的顺序输入信息,税金和实发工资根据输入的信息进行计算得到,这些信息被录入到文件中。(3)添加模块增加新的职工工资信息,从键盘输入并逐条写到原来的输入文件中,采用追加而不是覆盖的方式。(4)浏览模块通过菜单选择按照工资卡号还是姓名浏览。如果按照卡号浏览,则显示的记录按照卡号升序输出;按照姓名浏览则按照字典序输出(调用排序模块的排序功能)。(5)排序模块排序模块提供菜单选择,实现按照工资卡号升序、实发工资降序以及姓名字典序排序。排序方法可以选择冒泡排序、插入排序、选择排序等。(6)查询模块实现按照工资卡号和姓名的查询,采用基本的查找方法即可。(7)统计模块输入起止月份,按照职工卡号和月份查询记录,把起止月份之间的实发工资金额累加。二.工资管理系统程序详细程序:经过小组成员的认真研究我们做出如下程序#include<stdio.h>#include<stdlib.h>#include<math.h>//#include<alloc.h>#defineN150voidenter();search();voidadd();voidbrowse();voidstat();voidorder();voidnum_order();voidT_wage_order();voidmenu();voidstat();voidreadfiles();voidbrowse();voidmenu(){ intn,w;system("cls"); do { puts("\t\t*********************MENU*********************\n\n"); puts("\t\t\t\t1.Enternewdata"); puts("\t\t\t\t2.Additiondata"); puts("\t\t\t\t3.Browseall"); puts("\t\t\t\t4.Searchdata"); puts("\t\t\t\t5.Orderdata"); puts("\t\t\t\t6.Statbymonth"); puts("\t\t\t\t7.Exit"); puts("\n\n\t\t**********************************************\n"); printf("choiceyournumber(1-7):[]\b\b"); scanf("%d",&n); if(n<1||n>7){w=1;getchar();}elsew=0; } while(w==1); switch(n) { case1:enter();break; case2:add();break; case3:browse();break; case4:search();break; case5:order();break; case6:stat();break; case7:exit(0); } }voidsave();intload();voidinput();voidprintf_face();voidprintf_one();voidprintf_back();intT_wage();/************************主函数*************************/main(){main();}structinfowage{charnum[15];charname[20];intmonth;intS_wage;intwater_rate;intelectric_charge;inttax;intT_wage;}IM[N];voidenter(){inti,n;printf("\nEnterdatanow\n\n");for(i=0;i<n;i++){printf("\nInput%dthinfo.\n",i+1);input(i);}if(i!=0)save(n);printf_back();}voidadd(){inti,k,n,m,l;FILE*fp;n=load();printf("HowmanyIMloyeesareyouwanttoadd(0-%d)?:",N-1-n);scanf("%d",&m);k=n+m;for(i=n;i<k;i++);{printf("\nIuput%dthinfo.\n",i-n+1);input(i);}if((fp=fopen("infowage.txt","ab"))==NULL){printf("Cannotopenfile\n");}for(i=0;i<n;i++)if(fwrite(&IM[i],sizeof(structinfowage),l,fp)!=l)printf("filewriteerror\n");fclose(fp);pintf_back();}voidbrowse(){inti,k,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%5==0)){printf("\n\nPassanykeytocontinue...");getch();puts("\n\n");}printf_one(i);}printf("\tThereare%dinfo.\n",n);printf("\nPassanykeytoback...");getch();menu();}search(){intk=0;intw1,w2;do{printf("\n\nWhichwaydoyouchoose?\n\t.Byname2.Bynum[]\b\b");scanf("%d",&w1);if(w1=1)name_search();elsenum_search();if(k!=-1) {printf("\n\nSuccessful.^-^.");printf("\n\nWhatdoyouwanttodo?\n\t1.Searchanother2.Back[]\b\b");scanf("%d",&w2); }}while(w2==1);menu();}name_search(){inti,n,k,w=1;structinfowagee;n=load();do{k=-1;printf("\n\nEnternamethatyouwanttosearch!Name:");scanf("%s",);printf-face();for(i=0;i<n;i++)if(strcmp(,IM[i].name)==0) { k=i;printf-one(k);break; }if(k==-1) {printf("\n\nNoexist!"); }}while(k==-1&&w==1);}num_search(){inti,n,k,w=1;structinfowages;n=load();do{k=-1;printf("\n\nEnternumthatyouwanttosearch!No.:");scanf("%s",s.num);printf-face();for(i=0;i<n;i++)if(strcmp(s.num,IM[i].name)==0) { k=i;printf-one(k);break; }if(k==-1) {printf("\n\nNoexist!"); }}while(k==-1&&w==1);}voidorder(){intk=0;intw1,w2;do{printf("\n\nWhichwaydoyouchoose?\n\t1.Bynum2.ByT_wage[]\b\b");scanf("%d",&w1);if(w1==1)num_order();elseT_wage_order();if(k!=-1){printf("\n\nSuccessful.^_^.");printf("\n\nWhatdoyouwanttodo?\n\t1.orderanother2.Back[]\b\b");scanf("%d",&w2);}}while(w2==1);menu();}voidnum_order()/*卡号排序*/{inti,j,k,n;structinfowages;n=load();for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(IM[j].num>IM[k].num)k=j;s=IM[i];IM[i]=IM[k];IM[k]=s;printf("%11s%-17s%6d%6d%6d%6d%6d%6d",IM[i].num,IM[i].name,IM[i].month,IM[i].water_rate,IM[i].electric_charge,IM[i].tax,IM[i].T_wage);printf("%11s%-17s%6d%6d%6d%6d%6d%6d",IM[k].num,IM[k].name,IM[k].month,IM[k].water_rate,IM[k].electric_charge,IM[k].tax,IM[k].T_wage);}save();puts("\n\n");}voidT_wage_order(){inti,j,k,n;structinfowages;n=load();for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(IM[j].T_wage<IM[k].T_wage)k=j;s=IM[i];IM[i]=IM[k];IM[k]=s;printf("%11s%-17s%6d%6d%6d%6d%6d%6d",IM[i].num,IM[i].name,IM[i].month,IM[i].S_wage,IM[i].water_rate,IM[i].electric_charge,IM[i].tax,IM[i].T_wage);save();puts("\n\n");}voidstat(){readfiles();allwage();}voidreadfiles(){intn;n=load();printf_face(n);intallwage(){inti,j,month;intallwage=0;structinfowages[100];FILE*fp;charfilename[30];printf("PleaseinputT_wageinformationfilename:");scanf("%s",filename);if((fp=fopen("filename","rb"))!=NULL){printf("Fileopenerror.\n");exit(0);}i=0;while(!(feof(fp))){fscanf(fp,"%d%s%d%d",&IM[i].num,IM[i].name,&IM[i].month,&IM[i].T_wage);i++;}printf("Pleaseinputmonthsearched:");scanf("%d",&month);printf("Theresultsearchingasfollows:\n");printf("NumNameMonthT_wage:\n");for(j=0;j<i;j++)if(IM[j].month==month){printf("%5d%10s%3d%10d\n",IM[j].num,IM[j].name,IM[j].month,IM[j].T_wage);allwage+=IM[j].T_wage;}fclose(fp);getchar();getchar();menu();}}voidsave(intn){FILE*fp;inti,l;if((fp=fopen("S_wage.txt","wb"))==NULL){printf("\nCannotopenfile\n");return;}for(i=0;i<n;i++)if(fwrite(&IM[i],sizeof(structinfowage),l,fp)!=l)printf("filewriteerror\n");fclose(fp);}intload(){FILE*fp;inti,l;if((fp=fopen("S_wage","rb"))==NULL){printf("\nCannotopenfile\n");returnNULL;}for(i=0;!feof(fp);i++)fread(&IM[i],sizeof(structinfowage),l,fp);fclose(fp);return(i-l);}voidnum_input(inti){intj,wl;do{wl=0;printf("NO.:");scanf("%s",IM[i].num);for(j=0;IM[i].num[j]!='\0';j++)if(IM[i].num[j]<'\0'||IM[i].num[j]>'\9'){puts("Inputerror!Onlybemadeupof(0-9).Pleasereinput!\n");wl=1;break; }}while(wl==1);}voidname_input(inti){intj,w1;do{w1=0;printf("Name:");scanf("%s",IM[i].name);for(j=0;'a'<=IM[i].name[j]<='z';j++){if(j==0){IM[i].name[j]-=32;w1=1;break;}if(j!=0&&IM[i].name[j]!='\0'){IM[i].name[j+1]-=32;w1=1;break;}}}while(w1==1);}voidtax(inti){intm;m=IM[i].S_wage;if(m<=800)IM[i].tax=0;elseif(800<m<=1400)IM[i].tax=(m-800)*5/100;elseIM[i].tax=(m-1400)*10/100;}intT_wage(inti){IM[i].T_wage=IM[i].S_wage-IM[i].water_rate-IM[i].electric_charge-IM[i].tax;returnIM[i].T_wage;}voidinput(inti){num_input(i);printf("Name:");printf("Mon:");printf("S_wage:");printf("Water_rate");printf("electric_charge");tax(i);T_wage(i);}voidprintf_one(i){printf("%11s%-17s%6d%12.2f%9.2f%9.2f%9.2f%9.2f",IM[i].num,IM[i].name,IM[i].month,IM[i].S_wage,IM[i].water_rate,IM[i].electric_charge,IM[i].tax,IM[i].T_wage);}voidprintf_back(){intk,w;printf("\n\n\tSuccessful.^_^\n\n");printf("Whatdoyouwanttodo?\n\n\t1.Browse\t2.Back:[]\b\b");scanf("%d",&w);if(w==1)browse();elsemenu();}三.课程设计总结我们课程设计在老师规定的四天中完成,现在回想四个下午的奋斗得到了这样的成绩感觉很是有成就感,我由畏惧程序到自己慢慢琢磨,再到完整做出感受到了很多收获与进步。刚刚接到任务,感觉我们组所抽到得题目要求很少,想当然的认为了题目很简单,但是静下心来看看,自己还是无处下手,学了半年的C语言课程竟然找不到合适的解决方案,三人商议无果,最终选择了百度大侠,看到一堆堆的程序我们仔细筛选,终于选择了一个感觉很适合自己的进行改编。俗话说:“三个臭皮匠,顶个诸葛亮。”但是在C语言中我们真的没有感到我们三个能比上诸葛亮,只是不断的翻书,不断地百度。当开始的时候我们把程序全部打到软件中感觉大功告成之时,运行后才发现有接近一百错误,直接让我们三个崩溃,没办法只有硬着头皮进行修改、测试、运行,看着错误的不断减少,我们的信心也逐渐加强,最终我们战胜了苦难,将程序完整做出!在设计这个程序时,我们刚开始是根据老师给我们提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了,计算是个关键和难点,我们也查了相应的资料,但是它上面用得是坐标来做的,所以为了方便设计程序,我们也改为坐标来做的,这样计算问题解决了。接下去就是按键问题,我们的资料是用鼠标做的,所以关于按键这个函数就只能我们自己设计,还好手头有类似的资料,经过自己的反复尝试以及与与同学的讨论,这也不难,最好还是被我们搞定了。最后就是闪烁,这个设计的方法很死板,都一个类型,就是算坐标比较烦琐,要确定好它的位置,但是这些只要你自己愿意去尝试,问题都可以迎刃而解的。从这一个多星期的设计过程中,我看到了大家的拼搏与努力,也让我知道团队精神得难能可贵,尽管一年下来大家不怎么有多大接触,但是彼此之间的友谊已经在我们心里扎根生底,在遇到问题时,我们会共同进退,每个人都很慷慨不会因为是通过自己艰辛劳动设计出来的东西而不准他人剽窃了。通过本次的程序设计,我们感受到书本知识与实践的差距是相当大的,本来就不够扎实的书本知识用到实践真的是九牛一毛。同时我感觉我们的程序设计时间的安排正是恰到好处,以实践考察知识,以错误督促我们复习知识。同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说函数的循环调用的使用,结构体,数组,指针,链表……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。二十一世纪的我们,需要更多的运用计算机,无疑C语言是考察我们的很重要一点,我们不光要学到知识,更重要的是我们要提高自己的动手实践能力,使我们的知识真正得到利用。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。总之,经过这么长时间的努力我们收获很多,受益匪浅,是我们大学生活中不可多得的财富。
四个人感受:小组成员(王泽)经过四个下午的奋斗,我和同组同学一同完成了本次课程设计。在这个过程中我感到有苦也有甜,我总结了以下几点感悟:一开始的时候自己感觉平时打字挺快,便自告奋勇的承但了多数敲打任务。面对数百行的程序我直接傻了眼,开始便吃到了苦头,但是我还是硬着头皮把它打完,后来发现自己的指法在这几天中得到了很大的锻炼,真是一份耕耘,一份收获!2、“书到用时方恨少”,通过半年的C语言学习在最后的课程设计中得到了巨大的考验,课本知识的不足,使我不得不一遍一遍的翻课本找知识点,浪费了很多时间,同时我也感受到知识与实践的差距。3、面对大程序不再像原来一样害怕,这几天我们也攻克了一个这样庞大的程序。我感到再大的程序也是由简单的程序拼凑而成,无非用到了一些方法例如嵌套、选调等结合。我相信以后再次见到大程序我也有信心将它理顺清晰。4、自信心的提高。大学是个自学的为重的阶段,通过这四天的设计,我也是在不断的自学,学习书本上没有的函数,查找原来没有见过的英文错误,这个过程也见证着自己的自学能力的提高,肯定了自己的能力,也让自己更有信心。5、提高了对C语言的兴趣,看着自己修改过的程序得到运行,自己由衷的高兴,同时又感觉自己可以做一些自己喜欢的东西,比如一些小游戏和小系统什么的。程序设计虽然已经过去,他的影响还一直存在着,我一定会记得这次设计的宝贵经验。小组成员(孟凡壮)为期四天的c语言课程设计很快就结束了,时间虽然很短,却感觉学到了好多的东西。当我们的程序试运行的时候,系统提示有将近二百个错误,我当时就崩溃了,还好有同伴的协作我们最终把程序调试完成了,心里是无比的幸福:所以,做什么事情在心理上首先要克服恐惧心理。对于c语言本身来说,通过这次试验我深刻地认识到学习c语言的重要性,不仅要深刻地了解课本知识,更重要的是进行上机操作,学会实际运用;所以以后要重视实验,只有理论和实践相结合才能对知识掌握的更好。还有就是在编程序的时候,必须要把输入输出结构弄好,熟悉怎样实现函数的调用,怎样用循环结构实现各项信息的输入与输出。怎样利用指针进行信息的传送以及怎样用全局变量对数据完成传送过程。定义变量时,什么情况下应该定义为全局变量,什么时候应该定义为局部变量。最好把整个程序模块化,把每一个模块编译出来然后运行,最后利用函数调用组合成一个完整的程序,这样方便检查错误并且让程序更清晰,每一步的目标更明确。总的来说,对于这次的程序设计,着实让我大开了眼界,第一次看到了如此大的程序,真正体会到了c语言博大精深,以后一定会好好学习c语言。小组成员(常明杰)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建体育职业技术学院《麻醉解剖学》2025-2026学年期末试卷
- 三明医学科技职业学院《律师实务》2025-2026学年期末试卷
- 闽北职业技术学院《马克思主义市场经济学》2025-2026学年期末试卷
- 江西应用科技学院《新闻传播伦理与法规教程》2025-2026学年期末试卷
- 2026年吉林市龙潭区社区工作者招聘考试参考试题及答案解析
- 2026年伊春市上甘岭区社区工作者招聘笔试参考试题及答案解析
- 2026年吕梁地区社区工作者招聘考试参考试题及答案解析
- 2026年佳木斯市永红区社区工作者招聘笔试参考试题及答案解析
- 2026年许昌市魏都区社区工作者招聘笔试模拟试题及答案解析
- 2026年平顶山市卫东区社区工作者招聘笔试参考试题及答案解析
- 2026年广电工程技术笔试题(得分题)带答案详解(达标题)
- 2026年北京市海淀区高三一模生物试卷(含答案)
- 小学财务管理工作制度
- 2026年成考《中医学》试题及答案
- 2026年高考历史十校联考全真模拟试卷及答案(共七套)
- 事业单位内部监督制度
- 限额以下小型工程常见安全隐患指导手册(2026版)
- 汽轮机润滑油系统课件
- 神州数码招聘测评题答案
- 2025年详版征信报告个人信用报告样板模板新版可编辑
- 智慧城市与数字化转型:全域赋能城市高质量发展
评论
0/150
提交评论