张凯强程序设计实践报告Word格式.docx
《张凯强程序设计实践报告Word格式.docx》由会员分享,可在线阅读,更多相关《张凯强程序设计实践报告Word格式.docx(10页珍藏版)》请在冰点文库上搜索。
w'
)?
c1+3:
c1-23;
c2=(c2>
c2<
c2+3:
c2-23;
c3=(c3>
c3<
c3+3:
c3-23;
cout<
<
endl;
}
3-5编一模拟袖珍计算器的完整程序,运行结果参见图2,31。
要求:
输入两个操
作数和一个操作符,根据操作符决定所做的运算。
#include"
voidmain()
doublex,y,z;
chara;
"
请输入操作数1运算符op操作数2"
endl;
cin>
>
x>
a>
y;
switch(a)
case'
+'
:
z=x+y;
break;
-'
z=x-y;
*'
z=x*y;
/'
z=x/y;
x<
a<
y<
'
z<
4-8求Sn二a+aa+aaa+aaaa+・+aa…aaa(n个a),其中a是一个由随机函数产生的1~9(包括1和9)中的一个正整数,n是一个由随机函数产生的5~10(包括5和10)中的一个数。
#include"
stdlib.h"
time.h"
voidmain()
inta,n,i;
longsn=0,temp=0;
srand((unsigned)time(NULL));
a=1+rand()%9;
n=5+rand()%6;
a="
cout<
n="
n<
sn="
for(i=1;
i<
n;
i++)
temp=temp*10+a;
sn=sn+temp;
temp<
+"
sn=sn+temp;
="
sn<
}
5-2随机产生20个学生的计算机课程的成绩(0~100),按照从大到小的顺序排序,分别显示排序前和排序后的结果
#include"
voidmain()
inta[10],i,j,k,t;
srand(time(0));
for(i=0;
10;
a[i]=rand()%101;
排序前"
for(i=0;
a[i]<
"
{k=i;
for(j=0;
j<
j++)if(a[k]>
a[j]){k=j;
t=a[i],a[i]=a[k];
a[k]=t;
\n排序后"
6-6编写函数max其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该函数,将字符串s中从最大字符开始的子串中的小写字母转换成大写字母,然后输出新字符串s。
例如,假设s的内容为“qwertyou”贝卩从最大字符'
开始的子串为“you”处理后的s为“qwertYOU”
函数形式为:
char*max(chars[]);
stdio.h"
string.h"
char*max(chars[])
char*m=s,*p=s;
while(*p!
\0'
)
if(*p>
*m)
m=p;
p++;
returnm;
chars[1000],*p;
gets(s);
p=max(s);
*p<
z'
*p=*p-32;
p++;
puts(s);
7-6编写程序,建立一个带有头结点的单项链表。
链表结点中的数据为从键盘输入的一个字符串,但要求将该字符串按由小到大的顺序组织到链表中的。
#include<
iostream.h>
stdio.h>
stdlib.h>
string.h>
structnode
{chardata;
structnode*next;
};
inti,j,k,n;
chars[100],t;
structnode*head,*tail,*newnode,*p;
head=newnode;
tail=head;
n=strlen(s);
n-1;
{k=i;
for(j=i;
j++)
if(s[k]>
s[j])
{t=s[k];
s[k]=s[j];
s[j]=t;
newnode=newnode;
newnode->
data=s[i];
tail->
next=newnode;
tail=newnode;
next=NULL;
p=head->
next;
while(p!
=NULL)
{cout<
p->
data;
p=p->
8-
ASCII码输出
China,在调用
2编写程序,将题1建立的文本文件中的每一个字符及其所对应的到屏幕上。
例如文件的内容是“IloveChina”,则输出:
I(73)(32)l(108)o(111)v(118)e(101)C(67)h(104)i(105)n(110)a(97)注意:
空格也是有效字符。
这里我在当前工程文件下建立一个abc.txt文本文件并写入Ilove程序时输入文件名为abc.txt则可以完成程序的功能。
#include”stdio.h”
#include”stdlib.h”
char[100];
charch;
FILE*fp;
printf("
输入完整文件名:
);
scanf("
%s"
);
if((fp=fopen(,"
r"
))==NULL)
文件打开失败"
exit
(1);
while((ch=fgetc(fp))!
=EOF)
%c(%d)"
ch,(int)ch);
fclose(fp);
\n"
9-5设计一个航班类Plane,具有机型,班次,额定载客数和实际载客数等数据成员,还具有输入、输出数据成员的功能以及求载客效率的功能。
其中,载客效率实际载客数/额定载客数。
老师您可以输入A380CZ3260500300,分别为机型,班次,额定载客数,实际载客数
#include"
classplane
private:
chara[30];
//机型
charb[30];
//班次
intc;
//
额定载客数
intd;
实际载客数
public:
voidinput()
{cin>
>
b>
c>
d;
voidoutput()
{coutvvavv'
'
vvbvv'
c<
d<
doublep()
{return(1.0*d/c);
};
planes;
s.input();
s.output();
cout«
s.p()<
10-4设计一个圆类Circle类。
其内包含两个虚函数area()和length(),利用抽象
类的方法求一个圆内接正方形和圆外切正方形的面积和方程。
假设圆的半径为r,则圆内接正方形的边长为2r,圆外切正方形的边长为2r。
math.h"
classCircle//定义类
doubleR;
Circle(doubler)
{R=r;
voidprint()
圆的半径为:
R<
virtualdoublelength()//定义虚函数length,计算内接正方形周长
return((sqrt
(2)*R)*4);
virtualdoublearea()//定义虚函数area,计算内接正方形面积
return((sqrt
(2)*R)*(sqrt
(2)*R));
virtualdoublelength1()//计算外切正方形周长
return(2*R*4);
virtualdoublearea1()//计算外切正方形面积
return((2*R)*(2*R));
doubler;
输入半径:
r;
Circle*p;
//抽象类
Circlea(r);
p=&
a;
print();
圆的内接正方形周长为:
length()<
圆的内接正方形面积为:
area()<
圆的外切正方形周长为:
length1()<
圆的外切正方形面积为:
area1()<
总结
本次程序设计环节遇到很多问题,比如指针函数,链表等问题,同时在设计的
环节还存在很多小的细节方面的不足,比如循环结构用于比较数组或字符串的大
小,随机数的产生等等。
很多使用的系统自带的函数都必须加有此类函数说明的头文件,否则会不予识别调用。
数组和结构的作用很大,能使得不同类型的数据全部打包在一起进行操作,大大减少了编程的工作量,使程序变得简单方便。
类是对成员信息的抽象,其面向对象,实现数据抽象和封装,能很好的保护程序数据的安全,同时也能方便维护。
在实验编程时,碰到的最大问题是对这些抽象的语言指令不能很好的掌握运用,很多概念问题模糊,编程时要通过不断的尝试和调试来解决问题,说明,对语言的掌握不是很好,所以还需要进一步加强对c\c++语言的认识,只有
打下坚实的基础,才能更好的去完成编程任务从而达到更复杂问题的解决。