一、实验目的
- 熟悉 c++程序开发环境,体验使用 devc++、code::blocks、vs2017 编写、运行一个简单 c++程序的步骤和方法。
- 掌握 C++中数据输入和输出的基本方法
- 掌握分支结构和循环结构的语句
二、实验准备
实验前,请围绕以下内容结合教材、网络检索学习指定内容。
- 开发环境使用
- devc++中编写、运行 c++程序的步骤
- code::blocks 中编写、运行 c++程序的步骤
- vs2017 中编写、运行 c++程序的步骤
- 简单的 C++程序结构阅读、学习教材「2.1.3 C++程序实例」
- C++中数据输入和输出的基本方法阅读、学习教材2.3节,学习C++中I/O流、预定义的插入符<<和提取符>>的基本用法。
- if语句、switch语句、while语句、do…while语句的用法
结合例2-4和例2-6,理解示例背后简单算法以及涉及的switch语句、break语句、 do...while语句。
三、实验内容
- 验证性实验
- devc++、code::blocks、vs2017 软件下载与安装参见课程公邮→文件中心下的「软件下载网址.pdf」
- 在 C++程序开发环境中(devc++, code::blocks, vs2017)中编写、运行教材示例 2-1。了解简单的 C++程序结构及其编写、运行方法。
- 运行教材示例 2-4,理解其中涉及的 switch 语句和 break 语句的用法。
- 运行教材示例 2-6,理解其中涉及的算术表达式及循环语句的用法。
- 编程练习
- 参考教材示例 2-4,编程实现:输入 1~7 的整数,如果输入的是 1~5,则输出“workday. Let’s work hard”;如果输入的是 6~7,则输出“weekend. Let’s have a rest.”
- 教材示例 2-6,输入一个整数,将各位数字反转后输出。(例如,输入 365,输出 563。示例 2-6 的实现中,5-6-3 是分三次逐个输出的,这里要求编程实现的程序是把 563 作为一个数整体输出。)
四、 实验结论
- 编程练习(1)源代码及运行结果截图
- Code:
#include<bits/stdc++.h>
#define workday() cout<<"Workday. Let's work hard."<<endl;
#define weekend() cout<<"Weekend. Let's have a rest."<<endl;
using namespace std;
int main()
{
int day;
cin>>day;
switch (day)
{
case 1:workday();break;
case 2:workday();break;
case 3:workday();break;
case 4:workday();break;
case 5:workday();break;
case 6:weekend();break;
case 7:weekend();break;
default:puts("Wrong Number!
");break;
}
return 0;
}
+ Screenshot:
- 编程练习(2)源代码及运行结果截图
- Code1:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int num,ans=0;
cin>>num;
do{
ans=ans*10+num%10;
num/=10;
}while(num);
cout<<ans;
return 0;
}
+ Screenshot:
五、 实验总结与体会
-
基于C语言的学习,使用C++语言完成实验时便要注意头文件、宏命令、IO的用法不同,在这里推荐一个万能头文件
#include<bits/stdc++.h>
,它包含了几乎所有常用的头文件,方便使用。 -
为了还原PDF排版效果,在撰写博文时遇到的问题是对于Markdown语言的使用:原生语法不支持下划线、居中、无法定义二级有序列表、代码缩进无法表示……经过搜索,这些问题都得到了解决,方法如下:
<span style="100%;text-align:center;display:block;">居中的内容</span>
<span style="text-decoration: underline;">加下划线内容</span>
- 在+号前使用Tab
- 代码段中手动空格
通过对这些问题的解决以及博文的撰写,对markdown语法有了一定的了解。
-
编程实验2中的采用的方法对于大数据上处理有所不足,可用字符串+标准库函数解决,时间效率也更高,附代码:
- Code:
#include<bits/stdc++.h>
using namespace std;
string work_stl(string num)
{
while (num[num.length()-1]=='0')
num=num.substr(0,num.length()-1);
return num==""?"0":num;
}
int main()
{
string num;
cin>>num;
num=work_stl(num);
reverse(num.begin(),num.end());
cout<<num;
return 0;
}
+ Screenshot: