c课程设计Word文件下载.docx
《c课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《c课程设计Word文件下载.docx(36页珍藏版)》请在冰豆网上搜索。
![c课程设计Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/26/db6b7df8-a0b4-4e65-8a3e-c81d92c0b75c/db6b7df8-a0b4-4e65-8a3e-c81d92c0b75c1.gif)
}//缺省构造函数
Tpoint(Ta,Tb,Tc)
{x=a;
y=b;
z=c;
}//带参数的构造函数
Tpoint(Tpoint&
a);
Tgetx(){returnx;
}//返回坐标点的x值
Tgety(){returny;
}//返回坐标点的y值
Tgetz(){returnz;
}//返回坐标点的z值
TTpointmove(Tmx,Tmy,Tmz)
{x+=mx;
y+=my;
z+=mz;
//移动位置(修改坐标值)
}
voidinput()
{cout<
<
"
请分别输入点的坐标x,y,z的值:
endl;
cin>
>
x>
y>
z;
//输入球面上一点的坐标值
voidoutput()
{
cout<
("
x<
"
y<
z<
)"
Tpoint<
T>
operator=(Tpoint<
&
p1);
};
Tpoint<
:
(Tpoint<
p1)
x=p1.getx();
y=p1.getx();
z=p1.getz();
//取坐标值
}
operator=(Tpoint<
p2)
x=p2.getx();
y=p2.getx();
z=p2.getz();
return*this;
classTball
m;
doubleradius;
Tball<
()
{radius=0;
zx,Tzy)
{m=zx;
radius=zy;
Tvolume()
{return(4.0/3)*PI*radius*radius*radius;
Tarea()
{return4*PI*radius*radius;
voidsetradius()
{
请输入球的半径:
radius;
voidsetTpoint()
请输入球的圆心坐标"
m.input();
球的圆心坐标为"
;
m.output();
球的半径为"
radius<
voidTballmove(Tmx,Tmy,Tmz)
{m.Tpointmove(mx,my,mz);
voidmain()
Tball<
double>
x1;
x1.setradius();
x1.setTpoint();
cout<
球的表面积为"
x1.area()<
球的体积为"
x1.volume()<
x1.output();
system("
pause"
);
【实验过程】
【实验体会】
先熟悉老师给的定义点坐标的平面类,然后利用模板类定义球面点坐标类,定义PI的值,根据类实现函数的重载等操作。
在定义了球类后,设置一个点作为球的球心,并初始化球心坐标。
然后,根据要求,分别设计球体面积和体积的算法公式。
虽然这是一个比较简单的程序设计,但刚开始时,我基本上是无从下手,再看了模板类后,我照着编了一个,然后经过不断的调试,我终于完成了第一个程序,自豪感油然而生。
3通讯簿管理(顺序表的应用)
【问题描述】通讯簿是一个线性表,可以存储一定数量的联系人记录,提供查找、插入、删除和修改等操作。
通讯簿的特点是以查找为主要操作,要求快速查找到指定对象的位置,故宜采用具有随机访问功能的顺序表。
【数据结构】使用顺序表SeqList建立通讯簿。
作为表项的联系人记录,至少应包括以下属性:
{序号,姓名,与本人关系,电话号码}
其中序号具有唯一性。
序号和姓名可作为查找的主要关键字。
与本人关系可枚举为“亲人”、“朋友”和“同事”,主要作用是为联系人分组,并作为次要关键字。
将上述联系人记录定义为一个结构(struct),在主程序中建立模板类顺序表SeqList的对象时用该结构实例化表结点的类型。
【主要功能】程序应为用户提供操作选择界面,必要的操作包括:
查找某人电话号码,添加新记录,修改记录,删除记录,打印亲人清单、朋友清单或同事清单以及退出等。
另外,为初始化方便,原始数据可存储在磁盘文件中。
string.h>
stdlib.h>
staticintn=1;
enumRelation{Friends,Familiers,Colleague};
template<
structPerson
{charNum[10];
//编号
charPhoNum[12];
//电话号码
charName[20];
//姓名
intm;
//关系
Person(int&
ite){m=ite;
Person(int&
p1,charName[],charP[],charitem[])
{for(inti=0;
i<
20;
i++){Name[i]=Name[i];
for(intj=0;
j<
11;
j++){PhoNum[j]=P[j];
for(intk=0;
k<
10;
k++){Num[k]=item[k];
m=p1;
}};
classSeqList
{protected:
Person<
*data;
SeqList<
(T&
x){data=newPerson<
(x);
boolInput();
voidOutput();
voidInsert();
voidSearch();
voidShow_All();
voidDelete();
voidCorrect();
voidShow_Select();
voidShow_Friends();
voidShow_Familiers();
voidShow_Colleague();
boolSeqList<
Input()
{staticintl;
请输入您要添加的人的编号:
"
cin>
data[l].Num;
请输入您要添加的人的姓名:
data[l].Name;
请输入您要添加的人的电话:
data[l].PhoNum;
cout<
请输入您要添加人与您的关系
(1)亲人
(2)同事(3)朋友"
data[l].m;
l++;
n++;
returntrue;
voidSeqList<
Insert()
{this->
Input();
信息已保存好!
Search()
{charpr[20];
请输入您要查找的姓名或序号:
pr;
boolflag=1;
for(intli=0;
li<
n-1;
li++)
{if(IfEqual(pr,data[li].Name)||IfEqual(pr,data[li].Num))
姓名:
data[li].Name<
\t\t"
序号:
data[li].Num<
\t"
电话:
data[li].PhoNum[k]!
='
\0'
k++)
data[li].PhoNum[k];
'
\t'
Switch(data[li].m);
flag=0;
}}
if(flag)cout<
没有您需要的信息!
请查证后再试!
Show_All()
{cout<
所有人的信息如下:
for(intlm=0;
lm<
lm++)
data[lm].Num<
data[lm].Name<
data[lm].PhoNum[k]!
data[lm].PhoNum[k];
Switch(data[lm].m);
Show_Select()
{cout<
请选择要显示联系人与您的关系
(1)亲人,
(2)同事,(3)朋友.我的:
cin>
m;
switch(m)
case1:
{Show_Familiers();
break;
}
case2:
{Show_Colleague();
case3:
{Show_Friends();
case4:
{Search();
default:
关系设置错误!
请重新设置!
}}
Show_Friends()
所有朋友的信息如下:
{if(data[lm].m==3)