还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验报告实验名称________________模块化程序设计实验项目编写若干个函数,并在主程序中进行集成调用
一、试验目的本实验为学生提供了一个既动手又动脑,上机实践的机会学生通过分析和解决该实验中的问题和需求,将课本上的理论知识和实际有机地结合起来,锻炼学生分析、解决较复杂问题的能力,提高学生编写综合系统程序的能力
二、实验内容主菜单
1.编写程序,使之能够显示以下主菜单KLAq、•
1、,卜.]、?、•[、■[、?、、•
1、.J、,卜.、、•,、.J、■[、r7*r7*rrw•[、J、r7^r7*rr*ri*ri**T主菜单(完成人)字母数字转换
1..奖金发放
2.打印月历
3.打印素数4整数排序
5.退出
6.*1**1**1**1**i*,,、•.、♦卜•卜•卜・[、,】、•.••.、♦[••卜•卜・[•・;••.、・1••卜•卜•[•Jw・1••[••卜•卜.卜力••.、•.、♦卜•卜•[、・[、―1•,.•,■、♦1•,卜•卜在主菜单程序中,根据输入的数字来选择相应的选项,在执行完每一个选项之后,返1〜6回主菜单(退出除外)每一个菜单要完成的任务由下面的依次给出2〜7字母数字转换
2.编写一个函数,能够将字母电话号码转换成数字号码(假设输入的字母都是大写字母,输入的电话号码以#结束)例如输入电话号码则输出CALL ATT,2255288c输入电话号码则输出1-800-COL-LECT,1-800-265-5328提示电话上的字母、数字对照表如下二2=ABC,3=DEF,4=GHI,5=JKL,6=MNO,7PQRS,如果原始的电话号码中出现了非字母字符,则这部分字符保持不变8=TUV,9=WXYZ在主程序中输入需要转换的电话号码,调用此函数,返回得到转换后的结果,再打印输出此结果奖金发放
3.企业发放的奖金根据利润提成利润低于或等于万元时,奖金可提利润高于万1010%;10元,低于万元时,低于万元的部分按提成,高于万元的部分,可提成201010%
107.5%;20万到万之间时,高于万元的部分,可提成超过万元的部分按提成,编写一个40205%;403%函数,当月利润作为参数,返回应发放奖金的总数if ch二二T,||ch二二,U,||ch==V ch=,8,;二二,二二,二二二二二,if chW||ch X||ch Y\\ch Z,ch9,;elsech=ch;printf〃%c〃,ch;}printf〃\n〃;printf〃请输入菜单项--------------------\n〃;return0;}int f2{int a;long floatsum;〃请输入利润:printf\n〃;scanf〃%d〃,a;ifa=100000sum=a*
0.1;elseifa100000a200000sum=100000*
0.1+a-100000*
0.075;elseifa200000a400000sum=200000*
0.l+a-200000*
0.05;elsesum=400000*
0.l+a-400000*
0.03;〃奖金是:printf%
5.lf\n〃,sum;printf,z请输入菜单项--------------------\n〃;return0;int f3{int a,b,c,j,k,n;〃请输入打印月的天数:〃;printfscanf〃%d〃,a;〃请输入这个月开始的一天属于星期几『星期日,日星期二.....:〃;printfscanf〃%d〃,b;n=0;forj=l;jb;j++printf〃\t〃;n++;fork=l;ka;k++〃,printf〃%d\t k;n++;if n%7==0printf〃\n〃;printf〃\n〃;printfz,请输入菜单项---------------------\n〃;return0;}int judgeint nint i=0;〈for i=2;i n;i++if n%i==0return0;}return1;printf〃\n〃;printfz,请输入菜单项---------------------\n〃;int f4int a=0;int b=0;〃输入一个整数如果是素数,返回结果否则返回printf1,0:〃;scanf〃%d〃,a;b=judgea;〃,printf〃%d\n b;printf〃\n〃;printfz,请输入菜单项---------------------\n〃;return0;int mysortint x[],int nint i,j,t;fori=0;in;i++{forj=0;jn-i-l;j++t=x[j];x[j]=x[j+l];x[j+l]=t;return x[j];int f5{intx
[1000];inti,n,j,m,t;〃请输入数据的个数〃;printfscanf n;〃原始排序〃;printffori=0;in;i++scanf〃%d〃,x[i];mysortx,n;for i=0;in-l;i++printf〃%d〃,x[i];printf〃%d\n”,x[n-l];printf〃\n〃;printf,z请输入菜单项--------------------\n〃;return0;int mainint a;printf〃**************************\n〃;〃主菜单完成人printf\n〃;字母数字转换〃;printf〃L\n奖金发放printf
2.\n〃;打印月历printf〃
3.\n〃;printf,z
4.打印素数\n〃;整数排序printf〃
5.\n〃;退出printf〃
6.\n〃;printf〃**************************\n〃;printf〃请输入菜单项--------------------\n〃;〃,whilescanf〃%d a!=E0Fa!=6switchacase1:f1;break;case2:f2;break;case3:f3;break;case4:f4;break;case5:f5;break;default:ma.in;return0;提示请利用数轴来分界,定位建议把奖金定义为实型在主程序中输入当月利润,调用此函数,返回得到应发放的奖金,再打印输出此结果打印月历
4.编写一个函数,打印一个月的月历函数的参数是要打印月份的天数以及本月第一天是星期几在主程序中输入要打印月份的天数以及本月第一天是星期几,然后调用此函数打印输出月历打印素数
5.编写一个函数,判断一个数是不是素数,如果是素数,返回结果否则返回1,0在主程序中输入一个整数,调用此函数,根据函数返回结果打印输出该输入的数是不是素数整数排序
6.编写一个函数,实现对个整数进行排序函数的参数是整数的个数及用于存放这个整数nn的数组,排序后的结果仍然存放在该数组中在主程序中输入个整数,调用此函数,然后再打印输出函数返回的排序后的结果数组n退出
7.输入菜单项的第项,退出整个程序的运行6
三、程序中所有自己定义的函数之间的调用关系图
四、程序运行结果屏幕截图(注意,每个功能一个截图)、主菜单截图1”而工;期X2M修舛人鹰和!主菜嬖:(完成人:L字母数子转换
2.奖金发放K打印月历
4.打印发数员整数排序
6.退出*******************###^^#卜一请检入菜单项1责愉入电话号码.以蟠结束1-800-COL-LECTS1-800-265-5328匚------请输入菜单项----------6press anykey tocontinue、“奖金发放”功能截图
3、“打印月历”功能截图4完放历数字数发月索推单母金印印数出填字奖打打整退——请输入菜单项-----------人•个整数(如果是素数.返回结果
1.否则返回0)3■一~~WI输入菜单项一一ress anvkev tocontinue7:13•C:\USERS\86159VDESKTOP\Debu主渠单(完成人:1字母数字转换奖金发放K打印月历
4.打卬去长KiHm
91.退出——一******************率*******P——请输入菜单项-----------一谛辘入数据的个如5原始排序1683413468k——请输入菜隼项-----------PPress anykey tocontinue
五、实验总结调试程序的心得体会、发现的问题以及是如何解决的,学习本课程的收获以及建议等,不少于字300语言实验报告和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对c自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力使我们体会到自身知识和能力能在实际中的应用和发挥不但可以激发创新意识,还可以开发创造能力、培养沟通能力调试程序的时候我有过山穷水尽的困惑,对着密密麻麻的代码看了一遍又一遍,始终找不出查阅各种资料,一遍一遍地修改,最后豁然开朗一个多礼拜的挣扎,绞尽脑error,汁终于带着麻木的手指和大脑脱出那堆‘泥潭现在的心情是如鱼得水,干涩的眼睛前方是万里睛空终于,所有的努力即将化成了一份属于自己的实验报告,心里也在默默的感慨着“有志者,事竟成,破釜沉舟,百二秦关终归楚苦心人,天不负,卧薪尝胆,三千越甲可吞吴〃学习程序设计要有死磕到底的恒心、常人所不能及的毅力,学习程序设计就是盖房子,要有牢靠的地基,我们才能建起高楼大厦
六、程序清单#includestdio.h#includestdlib.h intfl charch;〃请输入电话号码,以#键结束〃;printfwhile ch=getchar!=#if ch==,A||ch—B ch==,C,ch=,2;if ch==,D||ch==,E,ch==,F ch=3’;if ch==,G I|ch==,H,ch==,rch=,4,;=二if chJ||ch—K,ch==,L ch=5’;=二二二if chM I|ch=N chO ch=6’;=二二二二二if chP11ch=,Q chR chS ch=7。