C++第一单元实验一第二题-菜单选择程序
C语言第1次实验答案

1 求出它是几位数; 2 分别打印出每一位数字; 3 逆顺序打印出各位数字,例如原来为 321,应输出 123。 #include<stdio.h> main() {int n,a,b,c; scanf("%d",&n); a=n/100;b=n/10%10;c=n%10; if(a>0) printf(" 是三位数\n"); else if(b>0) printf("是两位数\n"); else printf("是一位数\n"); printf("三位数字分别为:%d%d%d\n",a,b,c); printf("逆序输出为:%d\n",c*100+b*10+a); }
printf(“ ”);
printf(“*”);
/*显示中间层每层起点星号*/
for(j=1;j<= 2*i-1
;j++)
printf(“ ”);
printf(“*\n”);
/*显示中间层每层终点星号*/
}
for(j=1;j<= k-i-1
;j++)
printf(“ ”);
printf(“*”);
/*显示底边起始星号*/
第 4 步:在光标闪烁的程序编辑窗口输入上面 C 程序(注意:/* */之间的内容为程序 注释部分,不执行),程序输入完毕单击“文件” “保存”,或单击工具栏上的保存按钮, 也可以用<Ctrl+S>快捷键来保存文件。
第 5 步: 选择菜单“编译” “编译”命令,或单击工具栏上的“编译”图标,也可 以按<Ctrl+F7>键,开始编译。观察调试信息窗口输出编译的信息,如果有错,则修改后再 编译,直至编译信息为:0 error(s)表示编译成功。
C语言上机试题及答案

实验一Visual C++6.0的使用及顺序结构程序设计一、实验目的1、掌握启动和退出VC6 的方法。
2、熟悉 VC6 开发环境。
3、初步掌握简单程序的上机操作基本步骤,熟悉 C 单文件程序的输入、编译、链接和运行过程。
4、初步掌握程序的编辑修改和调试。
5、熟练使用赋值运算、算术运算等表达式。
6、熟练使用标准输入、输出函数及各种数据类型的格式说明符。
二、实验内容1、下面C语言程序,其功能是显示字符串“欢迎同学们来到华北水院计算中心!”。
请同学们按照下面的实验指导学习VisualC++6.0的使用。
1 .启动 VisualC++6 .0 开发环境(1)单击开“始”按钮,选择程“序”——〉“Microsoft Visual Studio6.0菜单项,单击“MicrosoftVisualC++6.0”,屏幕出现标题为“当时的提示”的窗口。
(2)单击“结束”按钮,关闭窗口,进入VC6.0 开发环境的主窗口。
2 .使用 Visual C++6.0 对一个 C 程序进行编辑、编译、连接和运行。
⑴分析Visual C++6.0 中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。
⑵步骤①编辑图 1-1 New 对话框编辑是将 C 源程序输入计算机的过程。
在Visual C++6.0 主界面下,点击File 菜单,选择Ne w 菜单项,即可出现New 对话框,如图1-1 所示。
在弹出窗口中的Files 标签页下,选择C++ Sour ce File。
在选项卡右面的File 编辑框里输入文件名如“Exa.c”,在 Location 编辑框里输入文件路径,2如 : \test”。
点击 OK 按钮。
将出现编辑窗口 ,如图 1-2 所示。
在图 1-2 所示的右端编辑窗口里输 入以下 C 源程序并保存文件。
图 1-2 编辑窗口②编译编译是使用系统提供的编译器将文本文件 Exa.c 生成机器语言的过程 ,结果为 Exa.obj ,由于没有 得到系统分配的绝对地址,还不能直接运行,如图 1-3 所示。
C语言上机实验1-18

实验一C程序的运行环境及简单程序编写一、实验目的1.了解tc2.0编译系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容1.编写一个计算球体体积的程序,要求用户自行录入球体的半径。
参考公式V=4/3πr3.。
2.编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款。
运行结果:Ener a dollar amount:93$20 bills:4$10 bills:1$5 bills:0$1 bills:3实验二顺序结构程序设计一、实验目的1.熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。
2.掌握格式输入/输出函数的用法。
3.学会简单顺序程序的设计。
4.养成良好的程序设计习惯。
二、实验内容1.编写一个程序,对用户录入的产品信息进行格式化。
Enter item number:583Enter unit price:13.5Enter purchase date(mm/dd/yyyy):3/24/2010Item Unit PurchasePrice date583 $ 13.50 3/24/20102.编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。
Enter a two-digit number:28The reversal is :82实验三选择结构程序设计一、实验目的1.熟练使用if、switch编写程序。
二、实验内容1.编写一个程序,确定一个数的位数。
Enter a number:374The number 374 has 3 digits假设输入的数最多不超过4位。
提示:利用if语句进行数的判定。
例如,如果数在0到9之间,那么位数为1;如果数在10到99之间,那么位数为2。
c语言实验选择结构程序设计

高级语言程序设计实验报告实验2 选择结构程序设计一、实验目的1、熟悉VC6.0编程环境。
2、进一步熟悉用VC6.0调试C语言源程序的过程。
3、熟练使用关系表达式和逻辑表达式作为if语句的条件判断。
4、熟练掌握if语句和switch语句的使用方法。
二、实验内容及步骤1、身高预测每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。
小孩成人后身高与其父母身高和自身性别密切相关。
设faHeight为其父身高,moHeight为其母身高,身高预测公式为:男性成人时身高 = (faHeight + moHeight) * 0.54(cm)女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。
编程从键盘输入小孩的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M 表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示喜爱,输入字符N表示不喜爱),利用给定公式和身高预测方法对小孩的身高进行预测。
程序代码:#include<stdio.h>main(){char sex,sports,diet;float faHeight,moHeight,fh,mh;printf("输入父亲身高:");scanf("%f",&faHeight);printf("输入母亲身高:");scanf("%f",&moHeight);getchar();printf("输入小孩性别:");scanf("%c",&sex);getchar();printf("是否喜爱体育锻炼:");scanf("%c",&sports);getchar();printf("是否有良好的饮食习惯:");scanf("%c",&diet);fh=(faHeight * 0.923 + moHeight) / 2;mh=(faHeight + moHeight) * 0.54;if(sex=='F'){ if(sports=='Y') fh=fh*1.02;if(diet=='Y') fh=fh*1.015;printf("小孩身高为:%.2f",fh);}else{ if(sports=='Y') mh=mh*1.02;if(diet=='Y') mh=mh*1.015;printf("小孩身高为:%.2f",mh);}}设计多组测试数据对程序进行测试,并观察运行结果。
《C程序设计》选择结构程序设计实验报告

《C程序设计》选择结构程序设计实验报告2、完成改错后的程序#include <stdio.h>#include <ctype.h>char fun(char c){ if (c>='A' && c<='Z')/**********found**********/c=c+32;if (c>='a' && c<='u')/**********found**********/c=c+5;else if(c>='v' && c<='z')c=c-21;return c;}main ( ){ char cl, c2;printf("Enter a letter(A-Z):");cl=getchar( );if (isupper(cl)){ c2=fun(cl);printf("\n\nThe letter %c change to %c\n",cl,c2);}elseprintf("\nEnter (A-Z) !\n");}运行结果:(截图)3、解题思路:源程序:1.#include<stdio.h>#include<math.h>void main(){float s;int m,year;printf("please input money and year:");scanf("%d%d",&m,&year);switch(year){case 1:s=m*pow((1+0.03),year);break;case 2:s=m*pow((1+0.033),year);break;case 3:case 4:s=m*pow((1+0.038),year);break;case 5:s=m*pow((1+0.042),year);break;default:s=m*pow((1+0.042),year);break;}printf("s=%f\n",s);}2.#include<stdio.h>#include<math.h>void main(){float s;int m,year;printf("please input money and year:");scanf("%d,%d",&m,&year);if(year==1)s=m*pow((1+0.03),year);if(year==1)s=m*pow((1+0.03),year);if(year==2)s=m*pow((1+0.033),year);if(year>=3&&year<=4)s=m*pow((1+0.038),year);if(year>=5)s=m*pow((1+0.042),year);printf("s=%f\n",s);}运行结果:(截图)4、解题思路:源程序:#include<stdio.h>main(){int i,yue,year,day;printf("please input nian and yue :");scanf("%d,%d",&year,&yue);switch(yue){case 1:printf("有31天");break;case 2:if(year%4==0&&year%100!=0||year%400==0)printf("有29天");else printf("有28天");break;case 3:printf("有31天");break;case 4:printf("有30天");break;case 5:printf("有31天");break;case 6:printf("有30天");break;case 7:printf("有31天");break;case 8:printf("有31天");break;case 9:printf("有30天");break; case 10:printf("有31天");break; case 11:printf("有30天");break; case 12:printf("有31天");break; }}运行结果:(截图)。
C语言_实验二、选择结构程序设计

实验二 选择结构程序设计一、实验目的1. 掌握关系表达式和逻辑表达式的使用。
2. 熟悉选择结构程序设计。
3. 熟练使用if 语句进行程序设计。
4. 使用switch 语句实现多分支选择结构。
二、实验内容(1 计算a+|b| 2 判断一个整数是否可以被3和5整除)1.[目的]掌握判断一个字符型数据是否数字字符的方法,以及数字字符转换为相应整数的方法。
[题目内容]从键盘输入一个字符型数据,若输入一个数字字符('0'-'9'),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。
[输入]一个字符型数据[输出]整数或出错信息[提示] 根据字符型数据的ASCII 码值是否在‘0’字符与‘9’字符之间进行判断。
使用if …else …语句和复合语句。
2.[目的]掌握条件表达式的使用[题目内容] 编写一个程序,其功能为:从键盘输入三个数x 、y 、z ,判断x+y=z 是否成立,若成立输出‚x+y=z ‛的信息,否则输出‚x+y!=z ‛的信息。
[输入] 三个数x 、y 、z[输出] ‚x+y=z ‛或‚x+y!=z ‛[提示] 条件判断表达式x+y==z3.[目的]掌握求最大值最小值的方法。
[题目内容] 编写一个程序,其功能为:输入三个整数,输出最大数和最小数。
[输入] 三个整数[输出] 最大值和最小值[提示] 设置最大值变量max 和最小值变量min ;首先比较a,b 的大小,并把大数存入max , 小数存入min ;然后最大值变量max 和最小值变量min 再与c 比较,若c 大于max ,则max 取值c ,否则保持不变;如果c 小于min ,则min 取值c ,否则保持不变。
最后输出max 和min 的值。
使用if …else …语句、if 语句以及复合语句。
4.[目的]运用已学知识解决实际问题。
[题目内容]如下两个线性方程组的两个未知数为x1和x2:ax 1+bx 2=mcx 1+dx 2=n该方程的唯一解为(ad-cb 不等于零时):cb ad bn md x --=1 bcad mc na x --=2 请编写一个程序,读取a 、b 、c 、d 的值,计算x1和x2的值。
c语言课程设计菜单设计程序

c语言课程设计菜单设计程序一、教学目标本章节的教学目标是使学生掌握C语言菜单设计程序的基本方法,理解菜单设计程序的结构和原理,能够独立编写简单的菜单设计程序。
知识目标:使学生掌握C语言的基本语法,了解函数的定义和调用,掌握菜单设计的基本方法。
技能目标:使学生能够独立编写简单的菜单设计程序,能够根据实际需要设计复杂的菜单系统。
情感态度价值观目标:培养学生对计算机编程的兴趣和热情,使学生能够认识到计算机编程在实际生活中的应用和价值。
二、教学内容本章节的教学内容主要包括C语言的基本语法,函数的定义和调用,菜单设计的基本方法。
1.C语言的基本语法:数据类型、变量、运算符、表达式、控制语句等。
2.函数的定义和调用:函数的定义、函数的调用、函数的返回值等。
3.菜单设计的基本方法:菜单的定义、菜单的显示、菜单的选择等。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
1.讲授法:通过讲解C语言的基本语法、函数的定义和调用、菜单设计的基本方法,使学生掌握相关知识。
2.案例分析法:通过分析实际案例,使学生理解菜单设计程序的结构和原理,掌握菜单设计的方法。
3.实验法:通过编写和运行菜单设计程序,使学生独立掌握菜单设计的方法和技巧。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:C语言编程入门教程。
2.参考书:C语言编程实例教程。
3.多媒体资料:C语言编程视频教程。
4.实验设备:计算机、编程软件。
五、教学评估本章节的教学评估主要包括平时表现、作业和考试三个部分,以全面、客观、公正地评估学生的学习成果。
1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估学生的学习态度和理解程度。
2.作业:布置与菜单设计程序相关的编程作业,评估学生的编程能力和对知识的理解运用。
3.考试:进行期中和期末考试,测试学生对C语言和菜单设计程序的掌握程度。
六、教学安排本章节的教学安排如下:1.教学进度:按照教材的章节顺序,逐步讲解C语言的基本语法、函数的定义和调用、菜单设计的基本方法。
程序设计基础—C程序实验.doc

《程序设计基础—实验》说明:实验1和实验2均为电子实验报告,后面8个实验是纸制实验报告.实验1计算机基本操作实验目的⑴熟悉计算机,能够正确进行开、关机操作。
⑵熟悉键盘,掌握键盘上所有字符的输入,掌握正确的指法,能够进行中、英文切换.⑶理解操作系统概念,掌握的基本操作,能够利用“控制面板”进行一些参数的设置。
⑷知道“回收站”的功能,学会有关文件、文件夹的基本操作。
⑸学会在计算机上搜索或查找相关的文件或文件夹,掌握通配符的使用.实验内容⑴熟悉上机实验的计算机,熟悉键盘,学会中、英文输入方式的转换。
⑵学会用正确的指法进行输入,知道键盘上所有字符的输入.⑶利用“控制面板”修改系统时间、桌面背景、鼠标属性。
⑷在桌面上新建一个文件夹,该文件夹以学生自己的名字+班级+学号的后3位命名。
⑸用文本方式或文档,写一段字数不少于300字的自我介绍,以1命名并保存到上述文件夹中。
⑹将上述文件夹复制到上。
实验2 常用软件的基本操作实验目的⑴了解功能,掌握的基本操作,包括页眉/页脚的设置、分栏、页面设置、添加底纹等。
⑵学会文件的保存与打开、打印预览、段落的间隔、首字符位置改变等,能够在中插入图片、表格、艺术字、特殊符号等。
⑶了解的功能,掌握的基本操作,包括单元格属性的设置、数字的几种填充形式、单元格的合并与恢复、边框的设置等。
⑷掌握的基本公式的使用,能够用公式进行基本计算。
掌握中的图形制作方法,能够根据表格做出图形. 实验内容⑴将上自己文件夹中的1文件复制到桌面上,然后做如下处理:①将标题“自我介绍”居中;②将文章中第二段的内容进行分栏,要求中间有分割线;③插入一个4行4列的表格,内容为学号、姓名、某门课的成绩;④任意插入一张图片;⑤在文章中的任意位置加底纹。
将做好的文档以2命名并保存.⑵用建立如下表格:①利用公式计算学生的总分、平均分;②将表中所有的数据选择居中;③利用该表格中的姓名和计算机的成绩做簇状图形。
将做好的表以2命名并保存.将本次实验的两个文件上传到上自己的文件夹中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【设计题目】设计菜单选择趣味程序【设计要求】菜单是应用程序的界面,本题的任务是设计一个比较实用的菜单,通过菜单选择不同的功能。
设计分为两步:首先设计一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。
菜单内容程序运行后,界面给出3个菜单项的内容和输入提示。
1.解一元二次方程2.出圈游戏3.退出程序选择l-3:使用数字1-3来选择菜单项,执行相应的菜单项功能,其他输入则不起作用。
【总体设计】一、菜单驱动程序输入1-3之间的任意一个数字,即可进入相应选择项。
从程序测试结果可知,当选择相应选择项时,其输出信息分别为:解一元二次方程、出圈游戏和退出程序。
1.主程序的设计假设使用文件select.cpp,内容如下:/**********************************select.cpp主程序文件*********************************/#include"cpp2.h"void main(){handle_menu(); //调用菜单处理函数}2.实现循环和功能选择的设计-菜单处理函数/**********************************菜单处理函数*********************************/void handle_menu(void){for(; ;){switch(menu_select())//调用菜单选择函数{case 1:FindIt();//求解一元二次方程break;case 2:game();//出圈游戏break;case 3:cout<<"\t再见!\n";return;}}}这里使用for循环实现重复选择,假设输入选择用变量用cn存储,它作为menu_select()函数的返回值提供给switch语句。
3.得到cn的合理值的设计-菜单选择函数应该设计一个函数用来输出提示信息和处理输入,这个函数应该返回一个数值cn,以便供给switch语句使用。
/**********************************菜单选择函数**********************************/int menu_select(){char s[2];int cn;cout<<"\t1.解一元二次方程\n";cout<<"\t2.出圈游戏\n";cout<<"\t3.退出程序\n";cout<<"\t选择1-3:";for(; ;){gets(s);cn=atoi(s); // 是为了使输入的字符串转变为数字if(cn<1||cn>3)printf("\n\t输入错误,重选1-3:");elsebreak;}return cn;}二、求解一元二次方程1.设计要求这里要求编制一个求方程aX2+bx+c=0的根的程序。
一般将系数设成float型,可以把求根变量设成double型,使用库函数sqrt()求平方根,sqrt()在头文件math.h中定义。
假设:d=b*b-4*a-c可以根据d>0、=0或<0来决定求解方法。
if(d>0){//有两个不相等的实数解}else if(d==0){//有两个相等的实数解}else{//有两个不相等的虚数解}2.设计方法(1)设计一个FindRoot 类表示这个方程。
(2)在头文件cpp2.h 中声明类,在FindRoot.cpp 文件中定义成员函数。
(3)使用函数Findlt()作为菜单项。
3.类FindRoot 的设计为了方便,除了将方程系数设计为属性之外,还将方程的根x1和x2,以及用来作为判定条件的d(d=b*b-4*a*c)均设计成类的属性。
如图1是其类图,图2是对象obj 的对象图。
其中,成员函数Find()是用来求方程的根,Display()则用来输出结果。
由此可见,它们都需要用到属性d 。
可在构造函数中求出d 的值,其他成员函数直接使用这个属性,不必再去计算。
图1 类图 图2obj 对象图①.设计构造函数FindRoot::FindRoot(float x,float y,float z){a=x;b=y;c=z;d=b*b-4*a*c;}② 设计求根成员函数Find()void FindRoot::Find(){if ( d>0){x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a);return;}else if(d==0){x1=x2=(-b)/(2*a);return;}else{x1=(-b)/(2*a);x2=sqrt(-d)/(2*a);}}③设计输出结果的成员函数Display()void FindRoot::Display(){if(d>0){cout<<"x1="<<x1<<"\nx2="<<x2<<endl;return;}else if(d==0){cout<<"xl=x2="<<x1<<endl;return;}else{cout<<"Xl="<<x1<<"+"<<x2<<"i"<<endl;cout<<"X2="<<x1<<"-"<<x2<<"i"<<endl;}}4.设计菜单函数FindIt()为了循环求解,使用for循环语句。
退出时,希望只接收一个字符。
最简单的是输入一个0作为a的值。
/*************************************************菜单项函数***************************************************/void FindIt(){float a,b,c;cout<<"这是一个求方程ax2+bx+c=0的根的程序。
"<<endl;cout<<"把变量设为double型,使用库函数math进行计算."<<endl;for(; ;){cout<<"输入方程系数a:";cin>>a;if(a==0) //a为0,结束运行,因为“回车”被atoi()函数作为“0”值赋给cn {getchar();//为消除回车的影响return;}cout<<"输入方程系数b:";cin>>b;cout<<"输入方程系数c:";cin>>c;FindRoot obj(a,b,c);obj.Find();obj.Display();}}三、设计出圈游戏1.设计要求这里假设有人数为n个人的一个小组,他们按顺时针方向围坐一圈。
一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。
报数m的人出列,然后从他原来所在的、顺时针方向的下一个人开始重新从1报数,报到m时停止报数并出列。
如此下去,直至所有人全部出列为止。
要求按他们出列的顺序输出他们的名字。
2.设计方法求解出圈顺序的方法很多,这里我采用的是利用类和数组来求解出圈顺序,仅供大家参考。
(1)设计一个SeqList类。
(2)在头文件cpp2.h中声明类,并使用默认的内联函数方式定义它们。
(3)使用类的数组来求解。
(4)用Joseph()函数求解出圈,使用函数game()作为菜单项。
(5)在文件gamel.cpp中实现Joseph()和game()函数。
3.设计类这里要求使用名字,而在名字的字符串中,可能存在空格。
可以为该类设计两个属性,一个是字符串,用来存储名字。
另一个是整数,用来表示报数的位置。
若使用类的数组,则可以通过数组的下标,将位置和名字对应起来。
在声明的类中,同时定义的成员函数就是默认的内联函数。
另外,考虑到使用类的数组,所以不为它定义构造函数,而是用系统提供的默认无参数构造函数。
/**************************************************声明SeqList类 **使用内联函数定义类 *****************************************************/class SeqList{int num;char name[10];public:int GetNum(){return num;}void DispName(){cout<<name;}void SetNum(int a){num=a;}void SetName(char b[[]]{strcpy(name,b);}};按照要求,不需要为类设计求解出圈的成员函数。
4.求解出圈的函数Joseph()使用类的数组,其实就是利用顺序存储结构来求解。
在数组初始化后,调用函数Joseph() 寻找出列人员。
假设建立类的数组c,这时只能为数组c假设一个长度,实际的有效长度只有在给定人数之后才能知道。
它的算法思想如下:void Joseph(SeqList c[],int length) //使用数组作为参数,同时需要将人数传给它。
{BEGIN初始化人数Length参加游戏的人的名字计数器初值k从1开始循环length次j计数器清零j循环(j<间隔次数m)计数i如果i数到尾部,则返回第一个位置,即重置i等于0如果该位置上的人仍然在圈中,则j计数加1endj //结束循环j如果是最后一个,结束循环,作特殊处理不是最后一个,输出出圈人的信息标识该人员已出圈,开始新一轮循环endk最后一个结束循环,输出它的信息。
END}判断是利用数据成员的值,已经出圈的将其标志为0。
下次数到他时,作为无效数据处理。
输出使用数据成员name。
5.菜单项函数game()位置编号num应该从1开始,但C++的数组是从O开始,所以num的值比其所在数组的下标的值多1,这样做是为了直观。