计算机基础C++程序设计Word格式.docx
《计算机基础C++程序设计Word格式.docx》由会员分享,可在线阅读,更多相关《计算机基础C++程序设计Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
2、使用flashfxp软件登录ftp服务器:
在自己班级目录下创建一个文件夹,文件夹取名:
个人学号末两位数+姓名。
例如:
01张三。
C++实验一
一、认识VisualC++6.0开发环境
1、项目Project如何创建,C++源文件如何添加。
2、源程序的编辑,编译Compile,连接Build,运行Execute。
=============================================================================
①、运行VisualC++6.0:
②、新建一个项目:
菜单[File]-[New],
在对话框中的Projects类型选择"
Win32ConsoleApplication"
;
Location选择到刚才建立好的自己的工作目录;
ProjectName处输入项目名称,要求使用lab?
_?
的形式,如实验一的第1个项目,则使用lab1_1。
点击“OK”,选择"
AnEmptyProject."
,点击"
Finish"
,OK。
项目创建完毕。
③、新建C++源文件:
菜单[File]-[New],
在对话框中的Files类型选择"
C++SourceFile"
AddtoProject要打勾,选择好项目名称;
File处输入文件名,文件名可随意定,不需要文件扩展名(自动取.cpp)。
点击“OK”,文件创建完毕,光标已经进入到新创建的C++源文件中。
④、编辑源文件:
把源程序内容输入到文件中,完成后保存.
⑤、编译Compile、连接Build、运行Execute:
确保当前正处在编辑C++源文件的状态,
点击"
Compile"
编译,如有错误,继续编辑;
编译无错误后,点击"
Build"
生成可执行文件;
生成文件后,点击"
ExecuteProgram"
运行程序,查看运行结果。
使用工具条:
或使用菜单:
⑥、完成后关闭工作区Workspace:
[File]-[CloseWorkspace]。
======================================================================================
二、创建项目lab1_1,完成第1个作业。
要求编写程序输出如下图形:
程序完成后,
(1)把每个项目目录下的Debug目录删除
(2)把项目的目录用FTP工具软件(如:
flashfxp)上传到ftp:
//172.21.66.183。
(不要使用IE浏览器上传!
!
)
上传一定要存放在本班目录下的个人目录下。
C++实验二
一、创建项目lab2_1,完成下面任务。
改进《学生用书》的实验二的程序lab2_3.cpp,使其能多计算一种图形:
三角形。
1、对三角形,根据输入的3个边长a,b,c,首先要判断是否能够构成三角形,判断条件是任意两边长之和大于第3边长。
2、数学上三角形的面积计算公式为:
,其中s为周长的一半。
为了表示开方,编程时需要用到系统提供的数学函数sqrt:
sqrt(x)即表示x的开方。
3、为了使用系统提供的数学函数,需要包含头文件<
cmath>
,即在源文件的前面加上一行#include<
就可以使用数学函数了,如sqrt函数。
二、创建项目lab2_2,用循环语句编程实现。
由用户输入两个整数a和b,计算出,a~b之间的所有偶数之和,把结果输出到屏幕。
如何判别一个整数x是否偶数?
三、完成后,检查是否能正常运行,且结果无误,再上传作业:
(1)关闭工作区(CloseWorkspace)
(2)把项目目录下的Debug目录删除
(3)把整个项目的目录用flashfxp上传到ftp:
上传一定要存放在本班目录下的个人目录。
四、(选做)lab2_3,观察下面的图形规律,用循环语句编程实现输出。
C++实验三
一、学习visualc++调试程序的方法
二、调试程序。
创建lab3,把下面的输出结果有错误的程序调试成功。
错误的程序:
chengji.cpp
要求:
要检查是否能正常运行,且结果无误。
完成后,
(1)关闭工作区(CloseWorkspace)
C++实验四
一、lab4_1。
编写函数,完成《学生用书》P35的实验任务之1。
该函数可用于把华氏温度F转换为摄氏温度C,转换公式:
C=(F-32)×
5/9。
注意思考:
函数接收什么参数?
返回什么值?
在main函数中,
由用户输入一个华氏温度,
调用温度转换函数,得到摄氏温度,
把结果输出到屏幕。
二、lab4_2。
编写递归函数。
求解下面问题:
有一只猴子第1天摘下许多个桃子,马上吃了一半,觉得不过瘾,又多吃了1个;
第2天早上又将剩下的桃子吃掉一半,又多吃了1个。
此后,每天早上都吃了昨天剩下的一半多1个。
到第10天想再吃时,见只剩下1个桃子了。
问题:
它第1天共摘了多少桃子?
应用递归算法,考虑:
昨天和今天桃子数量的关系。
C++实验五
一、lab5。
设计一个电视机TV类。
电视机有几个属性(状态):
开/关机状态,当前频道Channel,当前音量Volume;
有几个功能:
开/关机,频道加,频道减,音量升,音量降。
(参考电视机上的面板按钮)
注意要编写构造函数,使得刚出厂的电视机有合适的属性。
创建一个电视机对象,操纵它(如改频道,改音量);
建议:
使用循环结合switch结构,显示选择菜单,由用户选择具体操作,循环多次直至选择结束程序。
(参考三角形那道作业)
C++实验六
一、lab6_1。
练习系统函数的使用。
用户输入x的值,计算ex并输出。
(系统函数exp)
用户输入x和y的值,计算xy并输出。
(使用系统函数pow)
用户输入x的值,求|x|并输出。
(使用系统函数fabs)
用户输入x的值,向下取整并输出。
(使用系统函数floor)
所谓向下取整:
4.9---取整--->
4,
-1.1---取整--->
-2
C++没有四舍五入的函数,如果需要四舍五入,如何做?
请思考。
二、lab6_2。
编写求最大公约数(GreatestCommonDivisor)的函数gcd。
该函数接收两个整数为参数,返回这两个整数的最大公约数。
数学概念算法思路:
如有两个整数a和b,让x从两者中较小的数开始,逐步递减,如果在某一步a和b均能整除x,则x为【最大】公约数。
辗转相乘法思路(可用递归):
设:
a>
b,r是a整除b的余数。
如果r为0,则最大公约数为b;
否则最大公约数为:
b和r的最大公约数。
由用户输入两个整数,调用gcd函数计算最大公约数,结算结果输出到屏幕。
三、lab6_3。
设计正方形类Square。
属性:
边长edge;
功能/行为:
计算周长perimeter;
计算面积area
构造函数:
根据给出的边长值构造正方形,如果没有给出参数值,默认构造边长为1的正方形。
用无参构造和有参构造两种方法,构造两个正方形,
分别输出这两个正方形的周长和面积。
C++实验七
一、lab7。
多文件结构。
用多文件结构的形式完成程序。
新建项目后,利用“类视图”,用【向导】新建一个类,士兵Soldier类。
用【向导】为士兵类新建属性,包括有2个:
1,状态(状态有4种:
行走中,休息中,战斗中,已死亡)。
2,体力。
体力最小值0,最大值100,体力为0意味着士兵已死亡。
用【向导】为士兵类新建行为,包括有:
1.行走。
每行走一次,体力下降2。
2.休息。
每休息一次,体力增加10。
3.战斗。
每战斗一次,体力下降10。
正在休息中时不能战斗。
在main函数
创建士兵类的对象,操纵他。
(用循环,swithch实现,参考之前的TV类)
C++实验八
一、lab8_1。
指针。
编写一个函数,用于把两个值交换。
要求函数使用指针作为参数。
如:
void
swap(int*pa,int*pa);
定义两个数a和b,调用swap函数,把a和b的值交换后,输出a和b的值。
二、lab8_2。
一维数组。
定义一个一维数组,用于存放班级各人的成绩。
依次输入各人的成绩。
输出当前数组各元素的值。
统计出最高分、最低分和平均分后输出。
二、lab8_3。
二维数组。
定义一个二维数组,用于存放一个m行n列的矩阵。
依次输入矩阵各元素的值。
输出当前矩阵。
把矩阵转置后,输出当前矩阵。
C++实验九
一、lab9_1。
函数参数是一维数组。
编写一个input函数,实现有n个元素的一维数组(向量)的数据输入。
voidinput(double*a,intn);
编写一个print函数,实现有n个元素的一维数组(向量)的数据输出。
voidprint(double*a,intn);
编写一个multiply函数,实现两个有n个元素的一维数组(向量)的相乘,返回值为相乘的结果。
doublemultiply(double*a,double*b,intn);
向量相乘的结果计算公式为:
编写main函数:
创建两个同样大小的一维数组(向量);
分2次调用input函数输入数组的元素。
分2次调用print函数输出数组的元素。
调用multiply函数计算这两个向量相乘的结果并输出。
二、lab9_2。
函数参数是二维数组。
在文件作用域定义一个常量N。
如:
constintN=3;
编写一个input函数,可实现N*N方阵的数据输入。
voidinput(double(*A)[N]);
编写一个print函数,可实现N*N方阵的数据输出。
voidprint(double(*A)[N]);
编写一个multiply函数,可实现两个N*N方阵A和B的相乘,相乘结果放在第3个方阵C。
voidmultiply(double(*A)[N],double(*B)[N],double(*C)[N]);
注:
矩阵相乘的计算公式为:
创建3个N*N的方阵;
分2次调用input函数输入方阵A和B的元素。
分2次调用print函数输出方阵A和B的元素。
调用multiply函数计算方阵A和B的乘积。
调用print函数输出方阵C的元素。
C++实验十
一、lab10_1
用字符数组表示字符串。
编写函数myStrcat,实现与系统函数strcat函数的相同功能,即:
把两个字符串连接起来。
char*myStrcat(char*dest,char*src);
创建两个字符数组dest和src,输入两个字符串,存放在这两个字符数组中;
调用之前建立的函数把两个字符dest和src连接,连接后的结果存放在dest中;
输出连接后的字符串dest。
二、lab10_2
string类的使用。
创建两个string类的对象a,b。
输入这两个字符串。
利用string类的成员函数得到这两个字符串的长度,并输出。
把字符串b连接在字符串a之后。
输出连接后的字符串a。
三、lab10_3
动态内存空间。
编写函数average接受一个一维数组为参数,计算该数组数据的平均值后返回。
doubleaverage(double*a,intn);
编写main函数,
输入数组元素个数n;
申请动态空间,创建一维数组;
调用函数input,完成数组A的数据输入;
(此函数以前已完成)
调用函数print,完成数组A的数据输出;
调用函数average,计算数组数据的平均值,并输出。
C++实验十一
一、lab11_1
类的继承。
1、编写实现People类。
需要编写:
构造函数、拷贝构造函数、析构函数、operator=运算符重载函数。
classPeople
{
public:
People(char*n);
//构造函数
People(constPeople&
x);
//拷贝构造函数
virtual~People();
//虚析构函数
People&
operator=(constPeople&
//operator=运算符重载函数,此函数可暂时不做
voidShowInfo();
//输出People对象信息的成员函数
private:
char*name;
};
2、编写Student类,公有继承People类,
在People类的基础上,
新增属性:
学号number、成绩score;
同名覆盖成员函数:
voidShowInfo();
在main()函数中,
创建Student类的对象,显示该对象的信息。
二、lab11_2
文件流。
程序功能:
把用户输入的语句内容存储到一个文件中。
先提示用户输入用于存储的文件的文件名。
然后,用户从键盘不断输入语句(可带空格的字符串)。
把每个语句用文本方式输出到之前指定的文件;
输出要求:
每句话前加编号(即行号);
每句结束要换行。
如果用户输入的字符串内容为“88”即表示结束输入。
在我的电脑里面打开刚建立的文件,检查是否成功输入。