广州大学c++程序设计实验报告(代码基于大一初学者来设计)
实验A: 简单的C++程序设计、数据类型、运算符与表达式
一、实验目的及要求
1. 了解在集成开发环境下程序的编辑、编译、连接、运行与调试;
2. 掌握C语言的基本数据类型、算术运算符、赋值运算符和逗号运算符及表达式;
3. 输入并编译C++程序。
二、实验设备与平台
1. 实验设备:计算机;
2. 平台:Windows 2000操作系统,Visual C++ 6.0或Microsoft Visual Studio 2005/2008/2010/2012/2013/2015/2017/2019。
三、实验内容
编写程序,解下列问题,然后把编写的程序代码和运行结果截图复制到题目后面的空白处。
1、输入一摄氏温度,编程输出华氏温度。已知;华氏温度转换为摄氏温度的计
算公式如下: C=5/9*(F-32),其中,F 表示华氏温度,C表示摄氏温度
#include<iostream>
using namespace std;
int main()
{
double F, C;
cout << "Please input C:\n";
cin >> C;
F = (9 * C / 5) + 32; 0;
cout << "C=" << C << endl;
cout << "F=" << F << endl;
system("pause");
return 0;
}
2、输入一个大于1000的int型数,将它的低4位(右四位)都置为1;
#include<iostream>
using namespace std;
int main()
{
int a, b;
cout << "Please input a=" << endl;
cin >> a;
if (a > 1000)
b = (a / 10000) * 10000 + 1111;
if (a < 1000)
b = a;
cout << "b="<<b << endl;
system("pause");
return 0;
}
实验B 顺序结构和选择结构设计程序设计
一、实验目的及要求:
- 学会正确使用逻辑运算符和逻辑表达式;
- 熟练掌握if语句和switch语句;
- 掌握在程序设计中灵活使用顺序结构和选择结构。
二、实验设备与平台
1. 实验设备:计算机;
2. 平台:Windows 2000操作系统,Visual C++ 6.0或Microsoft Visual Studio 2005/2008/2010/2012/2013/2015/2017/2019。
三、实验内容及步骤:
编写程序,解下列问题,然后把编写的程序代码和运行结果截图复制到题目后面的空白处。
1、有一个函数
用cin函数输入x的值(分别为x<=0,1<=x<=10,x>=10),输出y的值 。
#include<iostream>
using namespace std;
int main()
{
double x, Y;
cout << "x=";
cin >> x;
if (x <= 0) {
Y = x;
}
else if (1 <= x < 10) {
Y = 5 * x - 10;
}
else {
(x >= 10) Y = 10 * x - 20;
}
cout << "Y=" << Y << endl;
}
2、给出一个不多于5位的正整数,要求:
(1) 求出它是几位数;
(2)分别输出每一位数;
(3)按逆序输出各位数字,例如原数为5631,应输出为1365。
#include<iostream>
using namespace std;
int main() {
int x, a, b, c, d, e;
// 提示用户输入
cout << "请输入一个不多于五位的正整数:" << endl;
cin >> x;
// 检查输入是否有效
if (x <= 0 || x > 99999) {
cout << "输入的数字不合法!" << endl;
return 1;
}
// 获取每一位数字
e = x % 10; // 个位
d = x % 100 / 10; // 十位
c = x % 1000 / 100; // 百位
b = x % 10000 / 1000; // 千位
a = x / 10000; // 万位
// 判断并输出是几位数,并输出每一位数字
if (x >= 10000) {
cout << "这是一个五位数." << endl;
cout << a << " " << b << " " << c << " " << d << " " << e << endl;
cout << "逆序: " << e << d << c << b << a << endl;
}
else if (x >= 1000) {
cout << "这是一个四位数." << endl;
cout << b << " " << c << " " << d << " " << e << endl;
cout << "逆序: " << e << d << c << b << endl;
}
else if (x >= 100) {
cout << "这是一个三位数."<< endl;
cout << c << " " << d << " " << e << endl;
cout << "逆序: " << e << d << c << endl;
}
else if (x >= 10) {
cout << "这是一个二位数." << endl;
cout << d << " " << e << endl;
cout << "逆序: " << e << d << endl;
}
else {
cout << "这是一个一位数." << e << endl;
cout << "逆序: " << e << endl;
}
// 暂停,等待用户按键退出
system("pause");
return 0;
}
实验C 循环结构程序设计
一、实验目的及要求
1.掌握while、for、do…while 循环结构的使用方法以及循环条件的使用;
2.能够使用三种循环结构设计程序、分析程序并解决实际问题;
3.掌握三种循环结构的差异和不同,能灵活地实现三种结构间的转换;
4.正确编写具有循环结构的C语言程序。
二、实验设备与平台
1. 实验设备:计算机;
2. 平台:Windows 2000操作系统,Visual C++ 6.0或Microsoft Visual Studio 2005/2008/2010/2012/2013/2015/2017/2019。
三、实验内容及步骤
编写程序,解下列问题,然后把编写的程序代码和运行结果截图复制到题目后面的空白处。
1、求 = 1+2+···+100 之和。
方法一:用while语句编程。
#include<iostream>
using namespace std;
int main()
{
int n, s;
s = 0;
n = 1;
while (n <= 100)
{
s += n;
n++;
}
cout <<"1到100的和为:"<< s << endl;
}
方法二:用do-while语句,求1到100的和。
#include<iostream>
using namespace std;
int main()
{
int n, s;
s = 0;
n = 1;
do
{
s += n;
n++;
} while (n <= 100);
cout <<"1到100的和为:"<< s << endl;
}
方法三:用for语句编程。
#include<iostream>
using namespace std;
int main()
{
int n, s;
s = 0;
for (n=1;n<=100;n++)
s += n;
cout <<"1到100的和为:"<< s << endl;
}
2、先由计算机“想”一个1~2000之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。
#include<iostream>
using namespace std;
#include<ctime> //time系统时间头文件
int main() {
//添加随机数种子 作用是利用当前系统时间生成随机数,防止每次随机数都一样
srand((unsigned int)time(NULL));
int num = rand() % 2000 + 1;
cout << "请玩家进行猜数:(1-2000)" << endl;
int a;
for (int t = 1; t < 10; t++)
{
cin >> a;
if (a == num)
{
cout << "玩家胜利! 游戏结束" << endl;
cout << "猜了次数为:" << t << endl;
break;
}
else if (a > num) {
cout << "提示:数字过大,请重新输入" << endl;
}
else{
cout << "提示:数字过小,请重新输入" << endl;
}
if (t == 9) {
cout << "次数已满,游戏失败" << endl;
}
}
system("pause");
return 0;
}
实验D 函数
一、实验目的及要求
主要叙述本节对应要掌握的主要概念和要解决的主要问题。
1.掌握函数的定义方法,及函数调用的形式;
2.掌握函数实参与形参的对应关系,“值传递”与“地址传递”的方式与区别;
3.掌握函数的应用方法,熟悉函数的嵌套调用和递归调用的设计方法;
4.了解全局变量、局部变量、动态变量及静态变量的概念和使用方法;
5.综合应用顺序结构、选择结构和循环结构的设计方法设计函数程序。
二、实验设备与平台
1. 实验设备:计算机;
2. 平台:平台:Windows 2000操作系统,Visual C++ 6.0或Microsoft Visual Studio 2005/2008/2010/2012/2013/2015/2017/2019。
三、实验内容及步骤
编写程序,解下列问题,然后把编写的程序代码和运行结果截图复制到题目后面的空白处。
1、求三角形的面积。已知三角形的三边a、b、c,则三角形的面积为
(1)三角形的三边的边长由cin输入,需要判断这三边是否构成一个三角形。若是,则计算其面积并输出,否则输出“错误:不能构成三角形!”。
(2)程序中要包含两个函数,一个函数判断是否构成三角形,另一个函数计算三角形的面积。
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c, s, area;
cout << "请输入三角形的边长: a, b, c: ";
cin >> a >> b >> c;
if ((a + b) <= c || (b + c) <= a || (c + a) <= b)
cout << "错误:不能构成三角形!" << endl;
else {
s = (a + b + c) / 2;
area = sqrt(s*(s - a)*(s - b)*(s - c));
cout << "三角形面积=" << area << endl;
}
system("pause");
return 0;
}
2、编程求下式值,其中ni用函数来实现,且设参数n的默认值为2:
#include <iostream>
#include<cmath>
using namespace std;
int chengji(int n = 2)
{
int a1 = 1, a2 = 1, a3 = 1, a4 = 1, a5 = 1, a6 = 1, a7 = 1, a8 = 1, a9 = 1, a10 = 1;
for (int i = 1; i < 2; i++)
a1 *= n;
for (int i = 1; i < 3; i++)
a2 *= n;
for (int i = 1; i < 4; i++)
a3 *= n;
for (int i = 1; i < 5; i++)
a4 *= n;
for (int i = 1; i < 6; i++)
a5 *= n;
for (int i = 1; i < 7; i++)
a6 *= n;
for (int i = 1; i < 8; i++)
a7 *= n;
for (int i = 1; i < 9; i++)
a8 *= n;
for (int i = 1; i < 10; i++)
a9 *= n;
for (int i = 1; i < 11; i++)
a10 *= n;
return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10;
}
int main()
{
int n;
cout << "Please input your n: ";
cin >> n;
cout << "您得到的结果为 " << chengji(n) << endl;
}
3、用递归法编写函数:将一个整数n转换成由指定字符分割的字符串。如输入整数和字符分别为:1234和A,应输出字符串:“1A2A3A4”。其中n的位数不确定,可以是任意位数的整数。
#include <string>
#include<iostream>
using namespace std;
// 递归函数,将一个整数n转换成由指定字符c分割的字符串
string intToString(int n, char c) {
// 如果n为0,返回空字符串
if (n == 0) {
return "";
}
// 递归情况:先将n-1转换为字符串,然后在后面添加n的最后一个数字和字符c
else {
return intToString(n / 10, c) + to_string(n % 10) + c;
}
}
int main() {
int n;
char c;
cout << "请输入整数n:";
cin >> n;
cout << "请输入字符c:";
cin >> c;
string result = intToString(n, c);
cout << result << endl;
return 0;
}
4、编写程序,计算下面公式并输出结果。
(1)编写一个函数计算n!
(2)编写主函数,由键盘输入n和m,调用(1)中的函数完成计算。
(3)输入n和m要给出提示,并检查n和m的合理性,不合理的输入应输出错误信息,并不再进行计算。
(4)运行程序,输出计算
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int Fabricate(int m, int n);
int multi(int m, int n);
int main(void)
{
int m, n;
printf("输入m(按q退出):");
while (scanf ("%d", &m))
{
printf("输入n:");
scanf ("%d", &n);
if (n != 0 && m != 0)//判断m,n是否为0
{
if (m > n) //自动将大数设置为m,小数设置为n
printf("%d\n", Fabricate(m, n));
else
printf("%d\n", Fabricate(n, m));
printf("输入m:(按q退出)");
}
else
printf("错误!重新输入,输入m:");
}
}
int Fabricate(int m, int n)
{
int a = 1, b = 1, c;
int i = m, j = n;
for (int i = m; i > 0; i--) //求m的阶乘
a *= i;
for (int j = 0; j > 0; j--) //求n的阶乘
b *= j;
c = multi(m, n);
return (a / b)* c;
}
int multi(int m, int n)
{
int sum = 1;
int k = m - n;
while (k > 0)
sum *= k--;
return sum;
}
订阅专栏和关注博主,可查看后续更多实验报告,(〃'▽'〃),大家一起加油叭