c语言实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
学院:计算机学院·软件学院
课程名称:高级语言程序设计
专业班级:11科技2班
学生姓名:学号:
指导教师:李革
完成时间:2011 年12 月25
目录
1.菜单选择程序课程设计
2.学生信息管理系统课程设计
题目1:菜单选择程序课程设计
一、课程设计内容与要求
1.主菜单
编写程序能够显示以下的主菜单:
****************************************
主菜单:
1.字母数字转换
2.奖金发放
3.打印月历
4.打印水仙花
5.查找最大最小数
6.退出
****************************************
在主菜单程序中,根据输入的数字1~6来选择相应的选项,在执行完每一个选项之后,返回主菜单(退出除外)。每一个菜单要完成的任务由下面的2~7依次给出。编写的源程序以zhsy1.cpp保存。
2.字母数字转换
编写一个函数,能够将字母电话号码转换成数字号码(假设输入的字母都是大写字母,输入的电话号码以#结束):
例如:输入电话号码:CALLATT,则输出:2255288。
输入电话号码:1-800-COL-LECT,则输出:1-800-265-5328。
提示:电话上的字母、数字对照表如下:2=ABC,3=DEF,4=GHI,5=JKL,6=MNO,7=PRS,8=TUV,9=WXY。如果原始的电话号码中出现了非字母字符,则这部分字符保持不变。
3.奖金发放
企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;超过40万元的部分按3%提成,编写一个函数从键盘输入当月利润,输出应发放奖金的总数?
4.打印月历
编写一个函数,打印一个月的月历。要求给出要打印月份的天数以及本月第一天是星期几。
5.打印水仙花数
三位水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)。编写一个函数,打印出所有的三位的水仙花数。
6.查找最大最小数
编写函数,从键盘上输入N个整数,找出其中最大的和最小的数。要求输入N的值,以及这N个数。
7.退出
输入菜单项的第6项,退出整个程序的运行。
二、需求分析
1. 程序的功能:
制作一个主菜单,并可以执行字母转换,奖金发放,打印月历,打印水仙花,查找最大最小数的功能。
2.输入输出的要求
1)3中输出长整型的利润,保留2位小数
2)4中打印月历靠左边打印
3)5中打印水仙花为4个字符
三、详细设计
函数的调用关系图
四、调试分析
调试中遇到的问题及对问题的解决方法
1)对程序题目分析不够透彻,通过自己查找问题得到了解决;
2)在自己想了很久都没有想出程序的情况下请教了老师并得到了解决;
3)与同学一起讨论后使程序更加完全,更加符合要求。
五、使用说明及测试结果
显示1函数为以下的主菜单:
****************************************
主菜单:
1.字母数字转换
2.奖金发放
3.打印月历
4.打印水仙花
5.查找最大最小数
6.退出
****************************************
调用2函数运行结果参考示例如下图所示:
调用“字母数字转换”函数的运行结果调用3函数运行结果参考示例如下图所示:
调用“奖金发放”函数的运行结果
调用4函数运行结果参考示例如下图所示:
调用“打印月历”函数的运行结果调用5函数运行结果参考示如下图所示:
调用“打印水仙花”函数的运行结果
调用6函数运行结果参考示例如下图所示:
调用“查找最大最小数”函数的运行结果整个程序所有的函数连续调用的程序运行结果下图所示:
六:源程序
实验一
#include
int f1()
{
char ch;
printf("请输入电话号码,以#键结束");
while((ch=getchar())!='#')
{
if(ch=='A'||ch=='B'||ch=='C') ch='2';
if(ch=='D'||ch=='E'||ch=='F') ch='3';
if(ch=='G'||ch=='H'||ch=='I') ch='4';
if(ch=='J'||ch=='K'||ch=='L') ch='5';
if(ch=='M'||ch=='N'||ch=='O') ch='6';
if(ch=='P'||ch=='Q'||ch=='S'||ch=='R') ch='7';
if(ch=='T'||ch=='U'||ch=='V') ch='8';
if(ch=='W'||ch=='X'||ch=='Y'||ch=='Z') ch='9';
else
ch=ch;
printf("%c",ch);
}
printf("\n");
printf("------请输入菜单项------\n");
return 0;
}
int f2()
{
int a;
long float sum;
printf("请输入利润:\n");
scanf("%d",&a);
if(a<=100000)
sum=a*0.1;
else
if(a>100000&&a<200000)
sum=100000*0.1+(a-100000)*0.075;
else
if(a>200000&&a<400000)
sum=200000*0.1+(a-200000)*0.05;
else
sum=400000*0.1+(a-400000)*0.03;
printf("奖金是:%5.2f\n",sum);
printf("------请输入菜单项------\n");
return 0;