华中科技大学c++第5次上机作业
华中科技大学-C语言程序设计_上机2019
华中科技大学信息学院平台课—C语言程序设计
8
第五次上机
• 程序编写 ➢ 输入 n 个整数( n<10),排序后输出。排序的原则由函数 的一个参数决定,参数值为 1,按递减顺序排序,否则按递 增顺序排序。 ➢ 课后习题15
➢ 插入排序
• 课后习题 • 上机指导书
华中科技大学信息学院平台课—C语言程序设计
7
第四次上机
• 1. 已知五位数a2b3c能被23整除,编程求此五位数。 • 2. 编写函数GetMaxMin,求3个整形数据的最大值和最小值,
main函数完成输入3个整数值,调用所编函数计算最大值和最小 值,在main函数中输出最大和最小值。 • 3. 掌握程序调试方法,包括断点、单步、观察变量。(验证第四 章一(1-3))
➢ 输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9
。取2位小数。
• 课后习题
➢ 五、程序3
➢ 表达式的值
• 上机指导书
华中科技大学信息学院平台课—C语言程序设计
6
第三次上机
• 程序编写 ➢ 第3章 二 4、6、8、12、14
• 课后习题ቤተ መጻሕፍቲ ባይዱ
• 上机指导书
华中科技大学信息学院平台课—C语言程序设计
华中科技大学信息学院平台课—C语言程序设计
3
上机要求
• 教学方式上机需要实验报告(上机前准备好
),给出测试内容(包括定义程序目标、设
计程序),写出代码
• 上机调试,记录出现问题,给出解释
• 用不同颜色笔修改上机报告中的程序
• 交上机报告
华中科技大学信息学院平台课—C语言程序设计
4
第一次上机
华中科技大学c++第4次上机作业
华中科技大学c++第4次上机作业华中科技大学c++第4次上机作业科技大学《计算机基础与程序设计(C++)》实验报告实验名称:第四次上机实验实验学时:4姓名:学号:班级:电气实验日期:xx、4、13 教师批阅签字:一、实验目的l 掌握一维数组的定义、输入、输出和基本操作。
l 掌握二维数组的定义、输入、输出和基本操作。
l 掌握字符串的存储和访问。
l 使用数组处理解决实际问题的能力。
l 动态数组的访问二、实验内容1、阅读程序1)#include #includeusing namespace std;int main(){ int n=5; int i,a[n];for(i=0;i<n;i++)< p="">{ cin>>a[i]; cout<<="" p="" }return="">改正其中的错误,并解释错误原因。
错误:1、i后面的逗号为中文。
2、数组长度不能用变量表示。
修改后的程序:#include#includeusing namespace std;intmain(){ int n=5; int i,a[5]; for(i=0;i<n;i++)< p="">{ cin>>a[i]; cout<<="" p="" }return="">#includeusing namespace std;intmain(){ int i,a[5]={0,1,2,3,4}; for(i=0;i<=5;i++) cout<<="">确,如不确请修改正确,并解释原因。
错误:1、定义变量时的逗号为中文。
2、i最大值为4。
正确的程序:#include#includeusing namespace std;intmain(){ int i,a[5]={0,1,2,3,4}; for(i=0;i<=4;i++) cout<using namespace std;int main( ){charrstr[10 ]="abcdefgh",dstr[10];int i; for(i=0;rstr[i]!='\0'; i++)//循环条件可以写成 rstr[i]!=0; 或 rstrdstr[i]=rstr[i]; cout<<"输出字符串dstr:"<<dstr<<="" p="">否正确,如不正确请修改正确,并解释原因。
大学C 上机实验题目(版)
20XX年复习资料大学复习资料专业:班级:科目老师:日期:实验前言(建议认真阅读)一、上机实验的目的上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节理解C++语言的基本结构和程序设计方法。
通过亲手编程掌握C++语言编程的方法。
二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了五个实验。
学生在课内机时先完成指导书中标有“*”号的程序,理解所学的知识,在此基础上再编写其他应用程序。
指导书中的五个个实验如下:1. 函数与编译处理2. 指针与引用3. 类和对象4. 继承和派生类5. 多态性三、实验提交(特别提醒)1. 实验题目以附件形式提交,每个附件限一个源程序,附件以实验编号-题号-自己学号.cpp命名;如学号为20XXXX20XXXX20XXXX34的同学提交实验1的第5题,则附件命名方式为:1-5-20XXXX20XXXX20XXXX34.cpp,错误提交的将视为未提交。
2. 提交时间定为该次实验课的一周内,过期不再接收。
四、评分和作弊处理1. 要求提交实验题总数为6题(带“*”号),占期末总评成绩的20XX%;2. 存在抄袭和被抄袭的作业,无论抄袭与被抄袭者,本门课程平时成绩以零分记。
存在两次及两次以上抄袭和被抄袭者,本门课程以不及格记。
五、实验课要求(重点强调)1. 严禁QQ、MSN等即时软件工具聊天;2. 严紧接听手机、发送短信;3. 严紧玩游戏。
实验1 函数与编译处理一、实验目的1. 掌握函数声明、定义和使用的方法;2. 掌握形参与实参之间的对应关系;3. 掌握函数调用时,形参、实参之间的“值传递”和“引用传递”的区别;4. 掌握函数递归调用的方法;5. 掌握全局变量、局部变量、静态变量的使用方法;6. 掌握文件包含的使用方法。
二、实验内容1. 定义两个函数swap1和swap2,目的是实现两个整数的次序交换,其中swap1的参数是传递值参数,swap2的参数是引用参数,在程序中分别调用这两个函数,其输出结果如下所示:初始值:x=1,y=2调用swap1后的结果:x=1 y=2调用swap2后的结果:x=2 y=12. 编写一个函数,用来计算从键盘上输入的整数的阶乘。
华中科技大学标准C语言程序设计上机试题、答案及报告格式
《标准C语言程序设计》上机报告实验七指针及函数结构体初步程序设计专业:班级:学号:姓名:完成日期:1一、实验目的1.进一步理解指针的概念,掌握指针变量间接地址访问的本质;2.掌握利用指向数组的指针变量表示一维数组元素及元素地址的方法;3.掌握利用指向二维数组的行指针变量表示二维数组元素及其地址的方法;4.掌握字符串的指针和指向字符串的指针变量;5.掌握指针数组和二级指针;6.熟悉通过动态内存分配实现动态数组,并体会指针在其中的作用。
7.理解函数定义、原型和调用,掌握函数参数的传递(传值、传指针和传引用)二、实验内容及要求(鼓励一题多解)1.深入理解《上机实践训练教程》2.6实验六案例示范和有关概念文字描述中的知识点,给出你的理解。
定义指针时一定要给指针分配好应有的类型和内存空间,防止出现野指针,造成程序不能运行甚至系统崩溃。
数组名不能作为左值,它实际上是一个常量指针,不能通过str=“comrade”给字符数组str赋值。
2.输入每个学生的姓名和线性代数、通信原理和C语言课程成绩,统计每人的平均值,并按平均值降序排列,输出排列后的名次、姓名、课程名(成绩)和平均值。
(注:平均值相同者按姓名的字母表顺序排列)(要求用结构体数据类型实现)#include <stdio.h>#include <math.h>#include <stdlib.h>#define N 3struct student{int rank;char name[20];double score[3];double aver;};void input(struct student *p,int n);void sort(struct student *p,int n);double average (struct student *p,int n);void output(struct student *p,int n,double aver);void main(){struct student stu[N];double aver;input(stu,N);sort(stu,N);aver=average(stu,N);output(stu,N,aver);}void input(struct student *p,int n){int i,j;double a;char str[20];for(i=0;i<n;i++,p++){printf("请输入考生姓名:\n");gets(p->name);printf("请依次输入学生线性代数、通信原理、c语言分数:\n");for(a=0,j=0;j<3;j++){gets(str);p->score[j]=atof(str);a+=p->score[j];}p->aver=a/3;}return;}void sort(struct student *p,int n){struct student temp;int i,j;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(p[j].aver<p[j+1].aver){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}}}double average(struct student *p,int n){int i;double temp;for(i=0,temp=0;i<n;i++)temp=temp+p[i].aver;return temp/n;}void output(struct student *p,int n,double aver){int i;printf("姓名线性代数通信原理c语言平均分\n");printf("-----------------------------------------\n");for(i=0;i<n;i++){printf("%-10s%8.2lf%8.2lf%8.2lf%8.2lf\n",p[i].name,p[i].score[0],p[i].score[1],p[i].score[2],p[i].aver);}}运行结果:3.利用指向指针的指针方法对N个整数排序并输出。
c语言上机实验题及参考答案
5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
大连理工c语言第五次上机作业参考答案
第五次上机作业:(请用指针实现)1.数据移位有n(n<=10)个整数,使前面各数顺序向后移m(m<=n)个位置,最后m 个数变成最前面的m个数,如图所示。
编写函数shift(a,n,m)实现上述功能,在主函数中输入n个整数和输出调整后的n个数。
SAMPLE OUTPUTnInput n(n<=10):10Input 10 integers:Output the original:Output the shifted:#include <>#define N 10void shift(int a[ ],int n,int m);void main( ){ int i,n,m;int a[N];printf("Input n(n<=10):");scanf("%d",&n);printf("Input %d integers:\n",n);for(i=0;i<n;i++)scanf("%d",a+i);printf("Output the original:\n");for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");printf("Input m(m<=%d):",n);scanf("%d",&m);shift(a,n,m);printf("Output the shifted:\n");for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");}void shift(int a[ ],int n,int m){ int i,j,t;for(i=0;i<m;i++){ t=a[n-1];for(j=n-2;j>=0;j--)a[j+1]=a[j];a[0]=t;}}2.字符串排序在主函数中输入10个不等长的字符串放入二维字符数组中,编写函数sort()利用指针数组对其排序,在主函数中输出排好序的字符串。
C语言上机实验
实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。
2.熟悉编译环境。
3.初步熟悉C语言程序的语法规定。
4.了解简单函数的使用方法。
实验内容:1.编程且上机运行:求3个整数的和。
2.编程且上机运行:求2个数的和、差、积和商。
3.编程且上机运行:输入3个数,求最大值。
4.编程且上机运行:输入圆的半径,求圆的面积和周长。
5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。
实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。
实验过程:实验结果:参见各种类型的存储实现描述。
2.实验目的:了解混合类型计算中类型的转换规则。
实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。
注意unsigned int和int数据运算时类型转换的方向。
实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。
C语言上机作业试题5套含答案
第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
C语言实验指导书(第2版)-华中科技大学
C语言程序设计实验指导书(第二版)编著曹计昌卢萍李开张茂元华中科技大学计算机学院2008年3月目录编写说明 (4)实验1 Turbo C 2.0集成开发环境及简单程序调试 (5)一、实验目的 (5)二、实验任务 (5)三.操作指导(结合第1题) (7)实验2 表达式和标准输入与输出 (17)一、实验目的 (17)二、实验题目及要求 (17)1、源程序改错题 (17)2、源程序修改替换题 (18)3、编程设计题 (18)实验3 流程控制实验 (19)一、实验目的 (19)二、实验题目及要求 (19)1.源程序改错题 (19)2.源程序修改替换题 (19)3.编程设计题 (19)4. 选做题 (20)实验4 函数与程序结构实验 (21)一、实验目的 (21)二、实验题目及要求 (21)1.源程序改错题 (21)2.源程序修改替换题 (21)3.跟踪调试题 (22)4.编程设计题 (22)5.选做题 (23)实验5 编译预处理实验 (24)一、实验目的 (24)二、实验题目及要求 (24)1.源程序改错题 (24)2.源程序修改替换题 (24)3.跟踪调试题 (25)4.编程设计题 (26)实验6 标准库及用户自定义库实验 (27)一、实验目的 (27)二、实验题目及要求 (27)1.编程设计题 (27)2.选做题 (28)实验7 数组实验 (29)一、实验目的 (29)二、实验题目及要求 (29)1.源程序改错题 (29)2.源程序完善、修改、替换题 (29)3.跟踪调试题 (30)4.编程设计题 (31)5.选做题 (31)实验8 指针实验 (32)一、实验目的 (32)二、实验题目及要求 (32)1.源程序改错题 (32)2.源程序完善、修改、替换题 (32)3.跟踪调试题 (33)4.编程设计题 (34)5.选做题 (34)实验9 结构与联合实验 (35)一、实验目的 (35)二、实验题目及要求 (35)1.表达式求值的程序验证题 (35)2.源程序修改替换题 (35)3.编程设计题 (37)4.选做题 (37)实验10 文件实验 (38)一、实验目的 (38)二、实验题目及要求 (38)1.文件类型的程序验证题 (38)2.源程序修改替换题 (39)3.编程设计题 (39)编写说明本实验指导书是根据2008年出版发行的《C语言程序设计》教材编写。
华中科技大学C++课程,第一章
\t :制表符,自动跳过若干字符位置
\n或endl:基本含意一样,表示回车换行,并清空缓冲区
执行以下语句序列:
̶
̶ ̶ ̶
int x=5, y=6;
cout<<'O'<<' \t '<<'K'<<' \n '; cout<<x<<y<<endl; cout<<'O'<<'K'<<endl ;
屏幕上将输出:
O
56 Ok
K
• cout输出数据时,数据之间是无间隔的
• 如果想让数据间有间隔,必须输出间隔符
2013-3-5 网络与计算中心基础教研室 25
使用setw()设置数据间隔
用C++提供的函数setw() 指定输出数据项的宽度
例如: #include <iomanip> int i=2, j=3; float x=2.6, y=1.8; cout<< setw(6) << i << setw(10) << j << endl; cout<< setw(10) << i*j << endl; cout<< setw(8) << x << setw(8) << y << endl;
第一章 C++基础知识
C++程序设计
参考教材
华中科技大学C语言实验与课程设计上机实验报告汇总(1~8全部)
华中科技大学C语言实验与课程设计实验报告计算机科学与技术学院指导老师:目录1 表达式和标准输入输出实验 (3)2 流程控制实验 (11)3 函数程序与结构实验 (20)4 编译预处理实验 (28)5 数组实验 (35)6 指针实验 (42)7 结构与联合实验 (52)8 文件实验 (61)华中科技大学C语言实验与课程设计实验报告CS1408赵晓雁1 表达式和标准输入与输出实验1.1 实验目的(1) 熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。
(2)掌握scanf 和printf 函数的用法。
(3)掌握简单C程序(顺序结构程序)的编写方法。
1.2 实验内容及结果1.2.1.源程序改错下面给出了一个简单C语言程序例程,用来完成以下工作:(1)输入华氏温度f,将它转换成摄氏温度C后输出;(2)输入圆的半径值r,计算并输出圆的面积s;(3)输入短整数k、p,将k的高字节作为结果的低字节,p的高字节作为结果的高字节,拼成一个新的整数,然后输出;在这个例子程序中存在若干语法和逻辑错误。
要求参照2.1.3和2.1.4的步骤对下面程序进行调试修改,使之能够正确完成指定任务。
程序代码:#include<stdio.h>#define PI 3.14159;voidmain( void ){int f ;short p, k ;double c , r , s ;/* for task 1 */printf(“Input Fahrenheit:” ) ;scanf(“%d”, f ) ;c = 5/9*(f-32) ;printf( “ \n %d (F) = %.2f (C)\n\n ”, f, c ) ;/* for task 2 */printf("input the radius r:");scanf("%f", &r);s = PI * r * r;printf("\nThe acreage is %.2f\n\n",&s);/* for task 3 */printf("input hex int k, p :");scanf("%x %x", &k, &p );3处的语句,使之实现两数对调的操作。
华中科技大学C++上机实验答案(全)
实验一/*要求从键盘输入三个不等的整数后按ENTER键,在屏幕上由大到小的输出。
*/ #include<iostream>using namespace std;int main(){int a,b,c,max,min;cout<<"请输入三个不同的整数:"<<endl;cin>>a>>b>>c;if(a>b){max=a;min=b;}else{max=b;min=a;}if(c>max)cout<<c<<'\t'<<max<<'\t'<<min<<endl;else if(c<min)cout<<max<<'\t'<<min<<'\t'<<c<<endl;else cout<<max<<'\t'<<c<<'\t'<<min<<endl;return 0;}实验二//输入两个数,将它们交换后输出。
#include<iostream>using namespace std;int main(){int a,b,temp;cout<<"输入a,b:";cin>>a>>b;cout<<"a="<<a<<'\t'<<"b="<<b<<endl;temp=a;a=b;b=temp;cout<<"a="<<a<<'\t'<<"b="<<b<<endl;return 0;}//求一个三角形的面积(例题程序)#include<iostream>#include<cmath>using namespace std;int main(){float a,b,c,s,area;cout<<"a,b,c=";cin>>a>>b>>c;s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<"area="<<area<<endl;return 0;}//求一个三角形的面积(修改后的程序)#include<iostream>#include<cmath>using namespace std;int main(){int a,b,c,s,area;cout<<"a,b,c=";cin>>a>>b>>c;if(a<b+c&&b<a+c&&c<a+b){s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<"area="<<area<<endl;}else cout<<"不能够成三角形"<<endl;return 0;}/*用sizeof运算符计算C++中char,short,int,long,float,double等基本数据类型所占的字节数,并按以下格式输出:sizeof(char)=1 bytesizeof(short)=2 bytessizeof(int)=4 bytes……..*/#include<iostream>using namespace std;int main(){cout<<"sizeof(char)="<<sizeof(char)<<"byte"<<endl;cout<<"sizeof(short)="<<sizeof(short)<<"byte"<<endl;cout<<"sizeof(int)="<<sizeof(int)<<"byte"<<endl;cout<<"sizeof(long)="<<sizeof(long)<<"byte"<<endl;cout<<"sizeof(float)="<<sizeof(float)<<"byte"<<endl;cout<<"sizeof(double)="<<sizeof(double)<<"byte"<<endl;return 0;}//修改后的程序#include<iostream>using namespace std;int main(){cout<<"char"<<'\t'<<sizeof(char)<<"byte"<<endl;cout<<"short"<<'\t'<<sizeof(short)<<"byte"<<endl;cout<<"int"<<'\t'<<sizeof(int)<<"byte"<<endl;cout<<"long"<<'\t'<<sizeof(long)<<"byte"<<endl;cout<<"float"<<'\t'<<sizeof(float)<<"byte"<<endl;cout<<"double"<<'\t'<<sizeof(double)<<"byte"<<endl;return 0;}//用数组列表输出#include<iostream>using namespace std;int main(){char datatype[]="char\tshort\tint\tlong\tfloat\tdouble";cout<<datatype<<endl;cout<<sizeof(char)<<'\t'<<sizeof(short)<<'\t'<<sizeof(int)<<'\t'<<sizeof(long)<<'\t'<<siz eof(float)<<'\t'<<sizeof(double)<<endl;return 0;}/*编写满足下列要求的程序:根据输入的球半径,分别计算球的表面积、体积和质量(假设球的密度为7.8kg/dm3),并输出计算结果。
C++上机作业(五)
C++上机作业(五)
——分支循环综合练习
【任务一】:输出100~999之间的所有素数。
要求:综合使用分支、循环结构语句实现。
【任务二】:学校有近千名学生,在操场上排队,5人一行余2人,7人一行余3人,3人一行余1人,编写一个程序求该校的学生人数。
要求:使用分支、循环结构语句实现。
【任务三】:已知xyz+yzz=532,其中x、y、z均为一位数,编写一个程序求出x、y、z分别代表什么数字。
要求:使用分支、循环结构语句实现。
【任务四】:编写一个程序求出200~300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。
要求:使用分支、循环结构语句实现。
【任务五】:小明今年12岁,他母亲比他大20岁。
编写一个程序计算出他母亲的年龄在几年后是他年龄的2倍,那时他们两人的年龄各多少?
要求:使用分支、循环结构语句实现。
华中科技大学计算机学院C 实验报告 实验五
课程实验报告课程名称:面向对象程序设计实验名称:面向对象的整型队列编程院系:计算机科学与技术专业班级:CS1209班学号:姓名:指导教师:李春花2015年01月22日一、需求分析1.题目要求整型队列是一种先进后出的存储结构,对其进行的操作通常包括判断队列是否为空、向队列顶添加一个整型元素、出队列等。
整型队列类型及其操作函数采用面向对象的C++语言定义,请将完成上述操作的所有函数采用C++编程,然后写一个main函数对队列的所有操作函数进行测试。
注意,请用实验三的SATCK组合形成新的类QUEQUE。
请说明如果删掉virtual有什么不同。
class QUEUE{STACK s1,s2;public:QUEUE(int m);//初始化队列:每个栈最多m个元素QUEUE(const QUEUE&s);//用队列s拷贝初始化队列virtual operator int()const;//返回队列的实际元素个数virtual QUEUE&operator<<(int e);//将e入队列,并返回队列virtual QUEUE&operator>>(int&e);//出队列到e,并返回队列virtual QUEUE&operator=(const QUEUE&s);//赋s给队列,并返回被赋值的队列virtual void print()const;//打印队列virtual~QUEUE();//销毁队列};2.需求分析采用面向对象的C++语言定义,构建整型队列并对其进行的操作通常包括判断队列是否为空、向队列顶添加一个整型元素、出队列等,再写一个main函数对队列的所有操作函数进行测试。
二、系统设计用两个栈实现队列,先判栈S2是否为空,如果为空,对S1进行入栈操作,如果不是空,栈S2数据元素倒入到S1,然后对S1进行入栈操作。
出队列时。
C--上机作业答案讲解
第一章作业答案.1。
编写程序,将华氏温度转化为摄氏温度:公式:C=(5/9)*(F—32)程序代码:#include〈iostream>using namespace std;void main(){float F,C;cout〈<”Please input F:”;cin〉>F;C=5*(F-32)/9。
0;cout<<”C="<〈C<〈endl;}运行结果:2。
编写程序,输入圆柱体的半径r和高h,计算圆柱体的体积.程序代码:#include〈iostream〉using namespace std;#define PI 3。
14159void main(){float r,h,v;cout<<”Please input r h:”;cin〉>r>〉h;v=PI*r*r*h;cout〈<”v="〈<v〈<endl;}运行结果:3.输入三角形的三条边a,b,c,利用海伦公式计算三角形的面积area。
若则area=程序代码:#include〈iostream〉#include〈math。
h〉using namespace std;void main(){float a,b,c,p,area;cout〈〈"Please input a b c:";cin>〉a〉>b>>c;if((a+b〉c)&&(b+c>a)&&(a+c〉b)){p=(a+b+c)/2.0;area=sqrt(p*(p—a)*(p—b)*(p-c));cout<<"area=”〈<area<〈endl;}else cout〈<"input error!"〈<endl;运行结果:4。
输入a,b,c的值,求一元二次方程:的解。
第五次作业华中科技大学c++程序设计上机作业
1.定义了一个手机类,请完成该类成员函数的定义。
#include <iostream>using namespace std;classiphone{double card;//11位本机号码int password;//4位锁定密码int status;//手机状态,0:正常,1:自动锁定public:iphone (double num);//构造函数/* 创建的对象本机号码card为形式参数num,4位锁定密码password为0,手机状态status为正常*/intsetpassword(int code);//设置4位锁定密码password/* 若形式参数code的位数全部相同,设定失败,函数结束,返回值-1。
否则设置4位锁定密码password的值为code,手机为自动锁定状态,函数返回0*/int unlock(int code);//手机解锁/* 手机为正常状态,函数结束,返回值0。
手机为自动锁定状态,则当code等于锁定密码password时,手机回到正常状态,函数返回0;否则解锁失败,函数返回值-1 */intgetstatus(){ return status;}};/**********Program**********/iphone::iphone(double num){card=num;password=0;status=0;}intiphone::setpassword(int code){inti=0,a=0,b=0,c=0,d=0;a=code/1000;b=(code/100)%10;c=(code/10)%10;d=code%10;if(a==b&&b==c&&c==d)return -1;elsepassword=code;return 0;}intiphone::unlock(int code){if(password==code)return 0;elsereturn -1;}/********** End **********/int main(){double mc=134********;iphone p1(mc);int code=0;while (p1.setpassword(code)){cout<<"锁定密码无效,手机p1状态为"<<p1.getstatus()<<",请重新输入锁定密码:";cin>>code;}cout<<"手机p1状态为"<<p1.getstatus()<<",手机被锁定!!!!"<<endl;cout<<"如果要通话,请输入4位手机锁定密码:";cin>>code;if (p1.unlock(code)) cout<<"密码输入错误!!!"<<endl;else cout<<"开始通话........"<<endl;return 0;}//2.(new)定义了游戏NPC类。
第五次上机练习-空间数据可视化表达
空间数据可视化表达可视化,也称作科学计算可视化,它将符号或数据转换为直观的几何图形,便于研究人员观察其模拟和计算过程。
包括以下三个方面:1)地图数据的可视化表达:是地图数据的屏幕显示。
可以根据数字地图数据分类、分级特点,选择相应的视觉变量(如形状、尺寸、颜色等),制作全要素或分要素表示的可阅读的地图,如屏幕地图、纸质地图或印刷胶片等。
2)地理信息的可视化表示:是利用各种数学模型,把各类统计数据、试验数据、观察数据、地理调查资料等进行分级处理,然后选择适当的视觉变量以专题地图的形式表示出来,如分级统计图、分区统计图、直方图等。
3)空间分析结果的可视化表示:地理信息系统的一个很重要的功能是空间分析,分析的结果往往以专题地图的形式来描述。
一数据符号化数据符号化是将已处理好的地图数据恢复成连续图形,并附之以不同符号表示的过程。
符号化的原则是按实际形状确定地图符号的基本形状,以符号的颜色或者形状区分事物的性质。
一般,符号化方法分为以下几类:单一符号、分类符号、分级符号、分级色彩、比率符号、组合符号、统计符号、色彩阴影等。
由于单一符号设置是ArcMap符号系统中加载新数据层所默认的表示方式,设置非常简单,下面介绍几种其他常用的符号设置方法。
1.1分类符号设置打开数据usastates,以states_name为例。
1.2分级符号设置(1) 分级色彩设置打开数据usastates,以2003年的人口密度为例。
(2) 分级符号设置打开数据usastates,以2003年的人口为例。
1.3统计符号设置打开数据usastates,以不同人种数量为例。
1.4组合符号设置打开数据usastates和usa census cities,城市分类与人口数量一体为例。
1.5栅格影像地图设置打开数据RS image二专题地图编制2.1 版面设计☆地图模板操作打开file/New,比较不同的模板。
☆图面尺寸设置单击View下的Layout View命令,进入版面视图。
文献检索 第五次上机作业 毕业论文
《公共突发事件的网络传播研究》第五次上机作业假设毕业论文题目:《公共突发事件的网络传播研究》,查找资料,写出文献综述(2000-3000字),并附上参考文献。
提交作业要求:将文献综述以附件(word文档)形式发送至fzxylib@,截止日期2013年12月30日。
质量要求:独立完成,彼此相似度超过40%者,成绩不合格。
前言:互联网(Intemet)自20世纪90年代中期商业化运作后,在全球得到迅速发展和空前普及。
美国eTForcasts公司的研究报告显示,2000年到2005年全球互联网用户复合增长率为19%。
预计2005年底全球互联网用户数量将达到10亿,正像报刊、广播、电视传媒一样,互联网已成为今天重要的传媒形态,并成为人类生活不可或缺的一部分。
突发事件有代表性的定义是欧洲人权法院对“公共紧急状态”(PublicEmergency)的解释, 即“一种特别的、迫在眉睫的危机或危险局势, 影响全体公民, 并对整个社会的正常生活构成威胁。
”近年来人们对突发事件的关注程度不断上升, 中美撞机事件、美国轰炸我国驻南斯拉夫大使馆、非典型肺炎、禽流感等重大突发事件在网络媒体的传播下, 快速进入了人们视野。
一方面,网络媒体弥补了传统媒体在播报突发事件中的诸多不足,促进了公众的广泛参与并形成了不可忽视的舆论导向。
但另一方面,上述事件通过网络传播并在网络舆论作用下所产生的失真、畸变将造成迅速而广泛的社会负面影响并有可能引发一系列危害严重的衍生事件,必须采取有效的应急防范措施。
本文通过对突发事件网络传播过程和特点以及社会心理影响的研究,提出有针对性的应急管理措施和心理干预手段。
研究内容对分析网民个体及群体行为,控制整个事件发展的导向,安抚民众情绪(如因网络传播夸大扭曲事实真相而导致社会民众的兴奋,恐慌,愤怒等情绪),建立突发事件的预警及控制机制,都有积极的指导作用。
主题(正文主要包括论据和论证两个部分,通过提出问题、分析问题和解决问题,比较不同学者对同一问题的看法及其理论依据,进一步阐明问题的来龙去脉和作者自己的见解):一、突发事件的网络传播特点:2007年11月1日发布生效的《中华人民共和国突发事件应对法》中对突发公共事件作了如下定义:本法所称突发事件,是指突然发生,造成或者可能造成严重社会危害,需要采取应急处置措施予以应对的自然灾害、事故灾难、公共卫生事件和社会安全事件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华中科技大学《计算机基础与程序设计(C++)》实验报告实验名称:第五次上机实验实验学时:4姓名:学号:班级:电气实验日期:2017/4/27 教师批阅签字:一、实验目的●掌握字符型数组、字符型指针和数值型数组的异同。
●掌握自定义函数的定义,声明和调用。
●掌握函数参数的值传递和地址传递的区别。
●掌握递归算法的意义。
●明确变量的作用域和生存期的意义。
二、实验内容1.阅读程序1)#include <iostream>#include<cmath>using namespace std;int main(){ int a=10, *p=&a;char ch=’a’, *q=&ch;char str[ ]=”abcd”,*qq=str;cout<<*p<<endl;cout<<*q<<endl;cout<<*qq<<endl;cout<<p<<endl;cout<<q<<endl;cout<<qq<<endl;return 0;}运行上述的程序,并解释每个输出结果。
解释:1.指针变量*p指向a的地址,所以直接输出a的值。
2.指针变量*q指向ch的地址,所以输出ch的值。
3.指针变量*qq指向数组str的首地址,故只输出首个数据4.因为a的类型为int,所以输出了a的地址5.有一个元素的字符数组,没有\0,所以直接输出时不能停止,只能输出乱码,而字符串可以直接输出是因为它会自动添加\0,输出时遇到\0停止,所以可以正常输出;6.用字符数组给指针初始化,所以qq相当于str,而字符数组可以整体输出2)#include <iostream>#include<cmath>using namespace std;int main(){ int age ;char name[11];cin>>age;cin.getline(name,11);cout<<age<<endl;cout<<name<<endl;return 0; }运行上述的程序,其结果是否正确,如不确请修改正确,并解释原因。
错误:1.cin>>age后面的分号为中文2.cin.getline会将输入的回车作为其结束的标志,故直接跳过了输入字符数组这一步骤。
只需要用cin.get吸收这个回车即可。
修改后的程序:#include <iostream>#include<cmath>using namespace std;int main(){ int age ;char name[11];cin>>age;cin.get();cin.getline(name,11);cout<<age<<endl;cout<<name<<endl;return 0; }3)#include <iostream>#include <cstring>using namespace std;int main( ){char rstr[10 ]="abcdefgh", dstr[10];char * p=rstr, *q=dstr;strcpy(dstr,rstr);cout<<"输出字符串rstr:"<<rstr<<endl;cout<<"输出字符串dstr:"<<dstr<<endl;cout<<"输出字符串p:"<<p<<endl;cout<<"输出字符串q:"<<q<<endl;return 0;}阅读上述程序并运行,分析其结果。
若将上述程序修改如下,重新运行,结果如何?请解释原因。
int main( ){char *rstr="abcdefgh", *dstr;strcpy(dstr,rstr);cout<<"输出字符串rstr:"<<rstr<<endl;cout<<"输出字符串dstr:"<<dstr<<endl;return 0;}上述程序的功能是将字符串rstr复制到目标串dstr中,运行该程序结果是否正确,如不正确请修改正确,并解释原因。
原程序的结果:Srtcpy将rstr中的数据复制到了dstr中,所以会输出abcdefgh,输出p和q相当于间接输出,也可以输出abcdefgh。
第二个程序:此程序无法运行,原因是指针*rstr和*dstr未指向安全的位置。
更改会使程序无法运行。
修改:#include <iostream>#include <cstring>using namespace std;int main( ){char a[10]="abcdefgh",b[10];char *rstr=a, *dstr=b;strcpy(dstr,rstr);cout<<"输出字符串rstr:"<<rstr<<endl;cout<<"输出字符串dstr:"<<dstr<<endl;return 0;}解释:将指针指向安全的位置即可。
2.编程题1)编写两个函数,分别求两个整数的最大公约数和最小公倍数,在主函数中调用这两个函数,计算两个数的最大公约数和最小公倍数并输出结果。
要求:1)程序原代码。
(直接粘贴在此)#include <iostream>using namespace std;int gys (int,int);int gbs (int,int);int main( ){int a,b;cout<<"请输入两个正整数"<<endl;cin>>a>>b;cout<<"最大公约数为"<<gys(a,b)<<endl;cout<<"最小公倍数为"<<gbs(a,b)<<endl;return 0;}int gys (int a,int b){int i,n,m;if (a>=b)n=a;elsen=b;for(i=2;i<=n;i++){if(a%i==0&&b%i==0)m=i;}return m;}int gbs (int a,int b){int i,n,m,s;if (a>=b)n=a;elsen=b;for(i=2;i<=n;i++){if(a%i==0&&b%i==0)m=i;}s=a*b/m;return s;}2)解决本题的算法思路描述编写计算最小公倍数的函数编写计算最大公约数的函数在主函数中使用这两个函数得出结果3)调试过程的记载(包括出现的错误,以及修改)函数声明方式错误4)归纳本题应用的知识点或算法计算最大公约数和最小公倍数的方法函数的声明与使用2)编写程序随机生成50个100-200之间的随机整数,找出其中的素数。
要求判断素数的功能利用函数实现,在main函数中调用该函数输出所有的素数。
要求:1)程序原代码。
(直接粘贴在此)#include <iostream>#include <cstdlib>#include <ctime>using namespace std;int ss (int);int main( ){int a[50],i,t=0,j;srand(time(0));a[0]=(rand()%100+100);for(i=1;i<50;i++){t=0;a[i]=(rand()%100+100);for(j=0;j<i;j++)if(a[i]==a[j])t=1;if(t==1)i--;}cout<<"生成的50个随机数为:"<<endl; for(i=0;i<50;i++){cout<<a[i]<<" ";if ((i+1)%5==0)cout<<endl;}cout<<"其中的素数为:"<<endl;for(i=0,j=0;i<50;i++){if(ss(a[i])){cout<<a[i]<<" ";j++;if(j%5==0)cout<<endl;}}cout<<endl;return 0;}int ss (int b){int a=1,n;for (n=2;n<b;n++){if (b%n==0){a=0;break;}}return a;}2)解决本题的算法思路描述编写一个求素数的函数主函数中定义一个含50个元素的数组当该变量的值位于100到200之间时,将该变量的值赋给数组中的元素,并与前面所有值进行比较,若重复,则重新赋值。
不断循环,直到数组中的每个数都被赋值输出数组中的各个数,依次用求素数的函数判断该数组中的元素是否为素数,是则输出。
3)调试过程的记载(包括出现的错误,以及修改)编写求素数的函数时,i从0开始,导致循环无法实现。
4)归纳本题应用的知识点或算法For循环,break语句的使用函数的调用生成随机数函数的使用if语句及数组3)编写一个函数实现将一个十六进制整数转换为一个十进制整数。
例如,输入”A2”转换为162。
提示:循环对读入的每个字符转换成对应的十进制数字,比如’1’的值为1,’A‘为10,’F’为15,将转换后得到的数字进行计算处理。
函数的原型可以声明为:int funChange(char s[]); //函数的功能是将s数组存放的字符串转换为十进制数值返回,参数应采用数组名传递方式,即形参数组与实参数组共用同一地址空间。