《C语言实验报告(课程设计).docx》由会员分享,可在线阅读,更多相关《C语言实验报告(课程设计).docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验报告实验名称模块化程序设计实验项目编写若干个函数,并在主程序中进行集成调用一、试验目的本实验为学生提供了一个既动手又动脑,上机实践的机会。学生通过分析和解决该 实验中的问题和需求,将课本上的理论知识和实际有机地结合起来,锻炼学生分析、解 决较复杂问题的能力,提高学生编写综合系统程序的能力。二、实验内容1.主菜单编写程序,使之能够显示以下主菜单: kLa q、1、,卜.、?、?、1、.J、,卜.:、,、.J、r7* r7* rrw 、主菜单:(完成人:)1 .字母数字转换2 .奖金发放3 .打印月历4 .打印素数5 .整数排序6 .退出*1* *1* *1*1*i*,、.、卜卜卜、,】、.
2、.、 卜卜; .、1 卜卜 Jw 1 卜卜.卜力 .、.、卜卜、1 ,. ,、1 ,卜卜在主菜单程序中,根据输入的数字16来选择相应的选项,在执行完每一个选项之后, 返回主菜单(退出除外)。每一个菜单要完成的任务由下面的27依次给出。2 .字母数字转换编写一个函数,能够将字母电话号码转换成数字号码(假设输入的字母都是大写字母, 输入的电话号码以#结束):例如:输入电话号码:CALL ATT,则输出:2255288 c输入电话号码:1-800-COL-LECT,则输出:1-800-265-5328。提示:电话上的字母、数字对照表如下:2=ABC, 3=DEF, 4=GHI, 5=JKL, 6=M
3、NO, 7二PQRS, 8=TUV, 9=WXYZ。如果原始的电话号码中出现了非字母字符,则这部分字符保 持不变。在主程序中输入需要转换的电话号码,调用此函数,返回得到转换后的结果,再打印输 出此结果。3 .奖金发放企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于 10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成 7.5%; 20万到40万之间时,高于20万元的部分,可提成5%;超过40万元的部分按3% 提成,编写一个函数,当月利润作为参数,返回应发放奖金的总数。if (ch二二T,| | ch二二,U,| | ch= V) c
4、h=,8,;if (ch二二,W | | ch二二,X | | ch二二Y ch二二Z,) ch二,9,;elsech=ch;printf(%c, ch);printf(n);printf (请输入菜单项n);return 0;int f2()int a;long float sum;printf (请输入利润:n);scanf(%d, &a);if(a100000&a200000&a400000)sum=200000*0. l+(a-200000)*0. 05;elsesum=400000*0. l+(a-400000)*0. 03;printf (奖金是:5. lfn, sum);prin
5、tf (,z请输入菜单项n);return 0;)int f3 ()int a, b, c, j, k, n;printf (请输入打印月的天数:);scanf(%d, &a);printf(请输入这个月开始的一天属于星期几:(星期日,日星期二.):);scanf(%d, &b);n= 0;for(j=l;jb;j+)(printf (t);n+;)for(k=l;ka;k+)printf(dt,k);n+;if (n%7=0)printf(n);)printf(n);printf (z,请输入菜单项n);return 0;int judge (int n) (int i=0;for (i=2
6、;in;i+) (if (n%i=0) (return 0;)return 1;printf (n);printf (z,请输入菜单项n);)int f4() (int a=0;int b=0;printf (输入一个整数(如果是素数,返回结果1,否则返回0):); scanf(%d, &a);b=judge(a);printf(dn,b);printf (n);printf (z,请输入菜单项n);return 0;)int mysort(int x, int n)(int i, j, t;for(i=0;in;i+) for(j=0;jn-i-l;j+)t=xj;xj=xj+l;xj+l=
7、t;return xj;)int f5 ()int x1000;int i, n, j, m, t;printf (请输入数据的个数:);scanf &n);printf (原始排序:);for(i=0;in;i+)( scanf(%d, &xi);)mysort(x, n);for (i=0;in-l;i+)( printf(%d, xi);)printf(dn”, xn-l);printf(n);printf (,z请输入菜单项n);return 0;)int main ()int a;printf (*n);printf (主菜单:(完成人:)n);printf (L字母数字转换n);p
8、rintf (2.奖金发放n);printf (3.打印月历n);printf (,z4.打印素数n);printf (5.整数排序n);printf (6.退出n);printf (*n);printf (请输入菜单项n);while(scanf(d,&a)!=E0F&a!=6)switch(a)(case 1:f 1 () ;break;case 2:f2() ;break;case 3:f3() ; break;case 4:f4() ;break;case 5:f5() ;break; default:ma.in();)return 0;提示:请利用数轴来分界,定位。建议把奖金定义为实
9、型。在主程序中输入当月利润,调用此函数,返回得到应发放的奖金,再打印输出此结果。4 .打印月历编写一个函数,打印一个月的月历。函数的参数是要打印月份的天数以及本月第一天是 星期几。在主程序中输入要打印月份的天数以及本月第一天是星期几,然后调用此函数打印输出 月历。5 .打印素数编写一个函数,判断一个数是不是素数,如果是素数,返回结果1,否则返回0。在主程序中输入一个整数,调用此函数,根据函数返回结果打印输出该输入的数是不是 素数。6 .整数排序编写一个函数,实现对n个整数进行排序。函数的参数是整数的个数及用于存放这n 个整数的数组,排序后的结果仍然存放在该数组中。在主程序中输入n个整数,调用此
10、函数,然后再打印输出函数返回的排序后的结果数组。7 .退出输入菜单项的第6项,退出整个程序的运行。三、程序中所有自己定义的函数之间的调用关系图四、程序运行结果屏幕截图(注意,每个功能一个截图)1、主菜单截图”而工;期X2M 修舛人鹰和!主菜嬖:(完成人:L字母数子转换2 .奖金发放K打印月历4 .打印发数员整数排序6 .退出*# 卜一请检入菜单项1责愉入电话号码.以蟠结束 1-800-COL-LECTS 1-800-265-5328匚请输入菜单项6press any key to continue3、“奖金发放”功能截图4、“打印月历”功能截图请输入菜单项&人个整数(如果是素数.返回结果1.否
11、则返回0) :3一WI输入菜单项一一ress anv kev to continue完7放历数字:(数发月索推单母金印印数出填字奖打打整退13 C:USERS86159VDESKTOPDebu主渠单:(完成人:1字母数字转换奖金发放K打印月历4.打卬去长KiHm91 .退出 一*率*P请输入菜单项一谛辘入数据的个如5原始排序:1 6 8 3 4 13468k请输入菜隼项PPress any key to continue五、实验总结(调试程序的心得体会、发现的问题以及是如何解决的,学习本课程的收获以及建议等,不少于300字)c语言实验报告和现代计算机技术的实际应用相结合,是我们在本阶段学完理论
12、课程之 后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界 面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论 知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使 我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发 创造能力、培养沟通能力。调试程序的时候我有过山穷水尽的困惑,对着密密麻麻的代码看 了一遍又一遍,始终找不出error,查阅各种资料,一遍一遍地修改,最后豁然开朗。一个 多礼拜的挣扎,绞尽脑汁终于带着麻木的手指和大脑脱出那堆 泥潭。现在的心情是如鱼 得水,干涩的眼睛
13、前方是万里睛空。终于,所有的努力即将化成了一份属于自己的实验报告, 心里也在默默的感慨着:“有志者,事竟成,破釜沉舟,百二秦关终归楚。苦心人,天不负, 卧薪尝胆,三千越甲可吞吴。学习程序设计要有死磕到底的恒心、常人所不能及的毅力, 学习程序设计就是盖房子,要有牢靠的地基,我们才能建起高楼大厦。六、程序清单#include#include int fl ()(char ch;printf(请输入电话号码,以#键结束);while (ch=getchar ()!=#)if (ch=,A| | ch Bch=,C,) ch=,2;if (ch=,D| | ch=,E,ch=,F) ch=3;if (ch=,GI | ch=, H,ch=,r ) ch=,4,;if (ch=二J| | ch K,ch=,L?) ch=5;if (ch=二MI | ch= Nch二二O) ch=6;if (ch=二P1 1 ch=,Qch二二Rch二二S) ch=7
限制150内