-
程序设计与实验第一次实验报告
-
一.
实验目的
1.掌握c++程序设计流程和VC集成开发环境使用。
2.掌握c++程序的基本要素。
3.掌握标准输入(iostream库中的对象cout)的简单使用。
4.初步了解程序错误信息及其调试方法。
二.实验原理
1.cout 用于在计算机屏幕上显示信息,是C++中iostream 类的对象
2.C++的输出是用“流”(stream)的方式实现的,使用cout和流运算符,就必须使用预处理命令把头文件stream包含到本文件中,即<iostream>库,该库定义的名字都在命名空间 std 中,所以 cout 全称是 std::cout 。
3.cout 控制台输出(console output)。
4.cout语句的一般格式为:cout<<表达式1<<表达式2<<……<<表达式n;
5.在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。在执行cout语句时,先把插入的数据顺序存放在输出缓冲区中,直到输出缓冲区满或遇到cout语句中的endl(或'\n',ends,flush)为止,此时将缓冲区中已有的数据一起输出,并清空缓冲区。输出流中的数据在系统默认的设备(一般为显示器)输出。
三.实验内容
实验一:VC6使用与程序调试
将原代码输入DEV C++中运行
#include<iostream.h>
int main()
{
cout<<“您好!中山大学欢迎您,愿您喜欢 C++程序设计。”<<endl;
cout<<2020;
cout<<\n;
cout<<20。1;
cout<<endl;
system(“pause”)
return 0;
}
根据下方解决方案进行错因分析:
1. iostream.h里面定义的所有类以及对象都是在全局空间里,所以可以直接用cout 。但在iostream里面,它所定义的东西都在名字空间std里面,所以必须加上 using namespace std;才能使用cout。iostream是C++的头文件,iostream.h是C的头文件。标准的C++头文件没有.h扩展名,将以前的C的头文件转化为C++的头文件后,有时加上c的前缀表示来自于c。
将上述错因改正后运行:
错因分析:
2.在第七行代码中出现一串字符串,其两端需要用英文输入法的双引号括起,而原代码中用的是中文的双引号。同理,第十一行代码的\n也需要用英文双引号括起。错误行含有全角字符,全角的空格的编码是'0xa1'。全角和半角的区别主要在于除汉字以外的其它字符,比如标点符号、英文字母、阿拉伯数字等,全角字符和半角字符所占用的位置的大小不同。在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为“半角”,相对地把一个汉字所占的位置称为“全角”。标点符号、英文字母、阿拉伯数字等这些字符不同于汉字,在半角状态它们被作为英文字符处理,而在全角状态作为中文字符处理。
错因分析:
3.第十三行代码中20。1中的句号应该用英文输入法输入,写为20.1
错因分析:
4.每一段完整的语句后必须用加上;,第十七行代码中语句后未加分号,且pause两端的双引号应该用英文双引号。
成功运行结果:
实验二:购物小票程序设计
实验代码
#include<iostream>
using namespace std;
int main(){
cout<<" 贵港市华隆荷花店购物商场 "<<endl;
cout<<"票号01206097 机号2917 工号0013"<<endl;
cout<<"交易时间2022-5-31 21:41:37"<<endl;
cout<<"================================================"<<endl;
cout<<"商品名称 单价 数量 总计"<<endl;
cout<<"海天酱油500ml 8.98 1 8.95"<<endl;
cout<<"康师傅红烧牛肉面 5.00 2 10.00"<<endl;
cout<<"可口可乐300ml 2.50 4 10.00"<<endl;
cout<<"卫生湿巾 3.00 1 3.00"<<endl;
cout<<"----------------------------------"<<endl;
cout<<"金额:31.95¥ 折扣:0"<<endl;
cout<<"----------------------------------"<<endl;
cout<<"支付方式:微信 找零:0.00"<<endl;
cout<<"此单为唯一购物凭证发票当日索取"<<endl;
}
运行结果:
实验二中出现的错误及错因分析:
1.忘记在中文字符串两边加上双引号
2.在输入中文字符串后经常忘记将输入法调回英文导致语句最后的分号用的是中文输入法输入导致程序出错
实验三:打印图案
实验代码:
#include<iostream>
using namespace std;
int main() {
cout<<"* * * * * ******** ********** * * ********** * * ** \n";
cout<<"* * * * * * * * * * * * * ** \n";
cout<<"* * * * * * * * * * * * * ** \n";
cout<<"* * * * * * ******** ********** * ********** * * ** \n";
cout<<"* * * * * * * * * * * * ** \n";
cout<<"* * * * * * * * * * * * \n";
cout<<"* ***** * * ******** ********** * ********** ***** ** \n" ;
return 0;
}
运行结果:
实验四:输出计算机组成框图
实验代码:
#include<iostream>
using namespace std;
int main()
{
cout<<" |---运算器"<<endl;
cout<<" ---CPU--|---寄存器"<<endl;
cout<<" | |---控制器"<<endl;
cout<<" ---主机---|"<<endl;
cout<<" | | |--随机存储器(RAM)"<<endl;
cout<<" | ---内存-|--只读存储器(ROM)"<<endl;
cout<<" | |--高速缓存存储器"<<endl;
cout<<" ---硬件|"<<endl;
cout<<" | | |---输入设备:键盘、鼠标、扫描仪"<<endl;
cout<<" 计 | | |---输出设备:显示器、打印机"<<endl;
cout<<" 算 | ---外部设备-|---外存:硬盘、光盘、内存"<<endl;
cout<<" 机------| |---网络设备:网卡、调制解调器等"<<endl;
cout<<" 系 |"<<endl;
cout<<" 统 |"<<endl;
cout<<" | |---操作系统:Windows、Unix、Linux"<<endl;
cout<<" | |---系统软件-|---语言处理程序:C、Java、VB等"<<endl;
cout<<" ---软件---| |---实用程序:诊断程序、排错程序等"<<endl;
cout<<" |"<<endl;
cout<<" |---应用软件---办公软件包、数据库管理系统"<<endl;
return 0;
}
运行结果:
实现实验四程序时的错因分析:
Tab和空格的混合使用:误以为tab等于四个空格
调整之前代码如下
上图中虽然看上去整齐,但是运行结果却出现问题
由图中看出,运行结果并不像运行前代码一样整齐,在反复运行之后我察觉到可能tab和四个空格在运行界面所占空间不同,在运行结果界面中tab所占位置明显大于四个空格,为此我用另一串代码进行实验
#include<iostream>
using namespace std;
int main()
{
cout<<"1 2"<<" 1和2之间隔了一个tab"<<endl;
cout<<"1 2"<<" 1和2之间隔了四个空格"<<endl;
cout<<"1 2"<<" 1和2之间隔了七个间隔"<<endl;
return 0;
}
其中第五行代码中1和2之间隔了一个tab,第六行1和2之间隔了四个空格,第七行1和2之间隔了7个空格,运行之前,第五第六行中的1和2看上去对齐,运行之后:
由图中可知,也许在我的电脑中一个tab在运行界面占用的是七个空格
在CSDN上搜索得到:
在查阅相关资料后我将程序进行修改,得到最终满足条件的实验结果
四.实验心得
在本次实验中,我了解了c++的报错内容和一些修改方法,学会了调试程序找错,同时通过在实验中发现问题并查阅资料了解了tab在运行界面占用长度不同于四个空格,具体各个实验心得已在单个实验后进行总结,此处不多做赘述。