VIsual C++2008学习日志
更新时间:2024-01-12 09:50:01 阅读量: 教育文库 文档下载
Visual C++2008程序设计及串口通信开发
第一部分 利用Win32应用程序学习C++程序设计基础(第一学期)
内容:安排3次讲座(第一次:第1章~第4章,第二次:第5章~第8章,第三次:第9章~第12章)
第1章开始使用Visual c++2008.ppt
第2章变量和表达式.ppt
第3章流程控制结构.ppt
第4章数组和字符串.ppt 第5章函数.ppt 第6章指针与引用.ppt
第7章程序文件和预处理指令.ppt 第8章自定义数据类型.ppt 第9章类.ppt
第10章继承与多态性.ppt 第11章标准模板库.ppt 第12章异常处理.ppt
第二部分Widows应用程序开发(第一学期)
内容:安排2次讲座(第四次:第13章~第18章,第五次:第19章~第22章) 第13章创建Windows应用程序.ppt
第14章使用MFC创建WINDOWS程序.ppt 第15章消息和命令.ppt 第16章 菜单.ppt
第17章在窗口中绘图.ppt 第18章对话框和控件.ppt 第19章 文件和串行化.ppt
第20章 动态链接库与钩子.ppt 第21章使用ODBC数据源.ppt 第22章数据库和ADO.net.ppt
中间串讲计算机网络配置实用技术讲座
第三部分综合应用开发(串口通信技术研究)(第二学期)
内容:安排3次讲座(第六次:第23章~第25章,第七次:第26章~第28章,第八次:第29章~第31章)
第23章 串口通信概述
第24章 利用MSComm控件编程
第25章WindowsAPI编程 第26章云台控制系统 第27章对Modem的控制 第28章TAPI编程 第29章串口编程调试
第30章VC单片机通信
第31章综合实例—自动报警系统
第一次讲座
内容:
第1章开始使用Visual c++2008
对应课件如上图中“第一部分编程基础(控制台)”文件夹中“第1章开始使用Visual c++2008.ppt”文件
课后自学:“C++学习2”文件夹中“C++语言与面向对象的程序设计.ppt”
第2章变量和表达式.ppt
对应课件如上图中“第一部分编程基础(控制台)”文件夹中“第2章变量和表达式.ppt”
文件。
课后自学:“C++学习1”文件夹中“第二章输入输出与流程控制.ppt”文件;“C++
学习2”文件夹中“第二章 C++简单程序设计.ppt”文件
课后练习题:“各章练习题”文件夹中“C++基础知识习题.doc”及“流类库和输入
输出习题.doc”中部分内容。
第3章流程控制结构
对应课件如上图中“第一部分编程基础(控制台)”文件夹中“第3章流程控制结构.ppt”文件。
课后自学:“C++学习1”文件夹中“第二章输入输出与流程控制.ppt”文件;“c++
学习2”文件夹中“第十一章 流类库与输入输出.ppt”的前半部分。
课后练习题:“各章练习题”文件夹中“基本控制结构程序设计习题.doc”
第4章数组和字符串
对应课件如上图中“第一部分编程基础(控制台)”文件夹中“第4章数组和字符串.ppt”
文件。
课后自学:“C++学习1”文件夹中“第三部分数组.ppt”文件;“c++学习2”文件
夹中“第三部分数组.ppt”的前30张幻灯片。 课后练习题:“各章练习题”文件夹中“数组与指针习题.doc”前半部分。
第 1 章 程序设计与C++概述
熟悉Visual C++2008编程环境:编写控制台应用程序;编制MFC(微软基本
类,即Windows编程)应用程序。
图1-1 Visual Studio 2008开发环境
Visual C++2008是一个全面集成的开发环境,用于编写、调试代码,把代码编译为程序集进行发布。
0.hello c++ 程序设计与调试运行 首先“新建项目”,单击“文件”菜单选择“新建”,再单击“项目”菜单项,进入图1-2所示,设定好项目保存的路径、新建好文件名按“确定”进入图1-3所示。
图1-2 新建项目
图1-3(直接单击下一步,进入图1-4)
图1-4 (选中空项目后,按完成进入图1-5)
到此,项目新建时产生了一些解决方案的文件:hello.sln文件,记录着解决方案中关于项目的信息;hello.suo文件,记录着应用于该解决方案的用户选项;hello.ncb文件,记录着与解决方案的Intellisense有关的数据,Intellisense是在编辑器窗口中输入代码时提供自动完成和提供功能的工具。
图1-5 (hello项目名上右击鼠标,选择“添加”->“新建项”,出现图1-6)
图1-6(名称输入框中输入源程序文件名hello.cpp,按“添加”,进入图1-7)
图1-7编辑器窗口中进行代码的录入
接着,完成图1-7中代码录入后进入编译并调试程序阶段。
要编译程序,可按F7键或选择“调试”菜单再选“启动调试”命令,或者单击工具栏的“启动调试”按钮
。如果没有出现错误,“输出”窗口中会显示程序被成功构建的信息,如图1-8所示。如果程序
存在错误,编译器会进行提示,报告出错,如图1-9所示。双击错误信息,即可在编辑器中快速定位到错误的代码行。改正错误后,就可以重新构建程序。在构建过程中,Visual C++2008只重新编译那些自最后一次编译或构建程序以来被修改的源文件。这意味着如果项目中有多个源文件,而我们仅仅修改了其中的一个文件,那么只有该文件需要重新编译。
编译的结果是输出可执行的目标代码。对于Windows环境,可执行代码的名称和源文件的名称相同,但是扩展名是*.exe。使用我的电脑打开解决方案文件夹(如图1-10),会发现有一个名为“Debug”的文件夹,里面保存了程序的编译输出结果:hello.exe,程序的可执行文件,仅当编译和连接步骤都成功之后才能生成该文件;hello.ilk,编译器根据程序源文件生成这些包含机器代码的目标文件,它们与库文件一起被连接器使用,最后生成*.exe文件;hello.pdb,该文件包含在调试模式中执行程序时要使用的调试信息。
图1-8编译成功
图1-9 编译出错
图1-10Debug文件夹
最后,执行程序:Ctrl+F5。
Hello.cpp源码:
/* this is hello c++ program */ #include
{ cout<<\ return 0; }
1.输入两个数将大数输出 #include
using namespace std;
void main() {
int a,b,c; //定义三个整型变量
cin>>a>>b; //输入两个整数
c = max(a,b); //调用函数max(a,b)求a和b的较大值赋值给变量c cout<<\//输出信息 }
int max(int x,int y) //定义函数max(),x和y是其形式参数 {
int z; //定义变量c
z = (x>y?x:y); //()里是一个条件表达式,如果x>y为真就将x的赋给z,否则是y return z; //将存放x和y的较大值的变量z的结果返回给函数名max。 }
2.输入圆的半径求圆的面积 #include
using namespace std;
void main() {
float r; //定义浮点型变量r,用于存放圆的半径 cout<<\输入圆的半径:\
cin>>r; //从键盘上输入圆的半径送给变量r
cout<<\半径为\的圆的面积=\'\\n'; //输出运算结果 }
3.定义求圆面积的函数,然后通过调用它完成求输入半径的面积。 #include
//定义求半径为r的圆面积的函数area
{ return 3.14159f * r * r; } void main() {
float r; //定义浮点型变量r,用于存放圆的半径 cout<<\输入圆的半径:\ //显示提示信息,提示用户输入数据
cin>>r; //从键盘上输入圆的半径送给变量r
//输出运算结果
cout<<\半径为\的圆的面积=\'\\n'; }
4.利用类实现圆面积的求解。 #include
class Circle {
private: float r; public:
Circle(float a) { r = a; }
//定义一个计算圆的面积的类Circle
//定义成员数据变量r,用于存放圆的半径
//定义构造函数,用于创建和初始化对象
~Circle( ){} //定义析构函数,用于清理和撤销对象 void SetRadius(float a) { r = a; } //定义成员函数,用于设置圆的半径r float GetRadius(){ return r; } //定义成员函数,用于获取圆的半径r
float Area(){ return 3.14159f * r * r; }//定义成员函数Area,用于计算圆的面积 };
void main() {
float r; cout<<\输入圆的半径:\
//定义浮点型变量r,用于存放圆的半径 //显示提示信息,方便用户输入数据
cin>>r; //从键盘上输入圆的半径送给变量r Circle c(r); //定义Circle类的对象c
cout<<\半径为\的圆的面积=\'\\n';//输出运算结
果
}
第2章 C++程序设计基础
1.常量使用,求圆的面积和周长 #include
const float PI = 3.1416 //定义浮点型常量PI,其值是3.1416,在程序中PI就代表3.1416
void main() {
float r,c,s; //定义三个浮点型变量r,c,s cin>>r; //通过键盘对变量r输入值 c=2*PI*r; //求圆的周长赋值给变量c s=PI*r*r; //求圆的面积赋值给变量s
cout<<\//输出结果 }
2.整型和字符型的互用。 #include
char c1,c2; //定义两个字符型变量c1和c2 int d1,d2; //定义两个整型变量d1,d2
cout<<\请输入两个字符:\\n\ //输入前的提示信息
cin>>c1>>c2; //输入两个字符给变量c1,c2 d1=int(c1); //将c1强制转换为整型值赋给d1 d2=int(c2); //将c2强制转换为整型值赋给d2 cout<<\输出整数对应的字符:\\n\ cout< 3.输出不同类型数。 #include cout<<\输出一个大数:\\t\cout<<\输出一个分数:\\t\\t\cout<<\输出一个特大数:\\t\ cout< 第3章 程序流程控制 1.输入两个数,进行比较,将较大值输出 #include using namespace std; void main() { int num1,num2,max; cout<<\ cin>>num1>>num2; max=num1; if(max } 2.输入两个数,进行比较,将较大值输出(少定义了max变量) #include using namespace std; void main() { int num1,num2; cout<<\cin>>num1>>num2; if(num1>num2) cout<<\else cout<<\ } 3.输入成绩score,根据其值给出不同的评语。 #include using namespace std; void main() { float score; cout< cin>>score; if(score>=85) cout<<\else if(score>=75) cout<<\else if(score>=60) cout<<\else cout<<\ } 4.输入1~7中某数给出对应的星期几的英文单词。 #include using namespace std; void main() { int num; cin>>num; switch(num) { case 1:cout<<\case 2:cout<<\case 3:cout<<\case 4:cout<<\case 5:cout<<\; case 6:cout<<\; case 7:cout<<\default:cout<<\ } } 5.求1+2+3+?+100的和。 #include using namespace std; void main() { int sum=0,i; i=1; while(i<=100) } 6.运行以下程序的输出结果如下图所示。 { sum=sum+i; i++; } cout<<\ #include using namespace std; void main() { int m,n; for(m=1;m<=9;m++) { } } 7.输入一个整数判断其是否是素数。 #include using namespace std; for(n=1;n<=9;n++) cout< void main() { int m,n; cout<<\cin>>m; for(n=2;n<=m/2;n++) if(m%n==0) break; if(n>m/2) cout< cout< } 8.将3~100中得所有素数输出。 #include using namespace std; void main() { int m,n; cout<<\for(m=3;m<100;m+=2) { for(n=2;n<=m/2;n++) if(m%n==0) break; if(n cout< } } 9.输入3个数后,再按自小到大输出 #include using namespace std; void main() { int x,y,z,t; cout<<\:\ cin>>x>>y>>z; if (x>y) {t=x;x=y;y=t;} if(x>z) {t=z;z=x;x=t;} if(y>z) {t=y;y=z;z=t;} } 10.输入某年某月某日,判断其是该年的第几天。 #include using namespace std; //交换z,y的值 //交换x,y的值 //交换x,z的值 cout< void main() { int day,month,year,sum,leap; cout<<\cin>>year>>month>>day; switch(month) { case 1:sum=0;break; } sum=sum+day; //再加上某天的天数 //判断是不是闰年 //先计算某月以前月份的总天数 case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default: cout<<\ if(year@0==0||(year%4==0&&year0!=0)) leap=1; else leap=0; if(leap==1&&month>2) //如果是闰年且月份大于2,总天数应该加一天 sum++; cout<<\} 11.求两个数的最大公约数。 #include using namespace std; void main() { int a,b,m,n,t,r; cout<<\cin>>m>>n; if(m {t=m;m=n;n=t;} a=m; b=n; //将m,n中大值赋给m //利用辗除法,直到b为0为止 while(b!=0) { r=a%b; a=b; b=r; } cout<<\} 12.运行以下程序的输出结果如下图所示。 #include using namespace std; void main() { int i,j,k; for(i=1;i<=4;i++) { for(j=1;j<=2*i-1;j++) cout<<\for(k=1;k<=6-2*i;k++) cout<<\ cout< } for(i=1;i<=3;i++) { for(j=1;j<=7-2*i;j++) cout<<\ for(k=1;k<=2*i;k++) cout<<\ cout< } } 第4章 数组 1.输入7个数,实现自小到大的输出 #include #include using namespace std; void main() { int i,a[7]; cout<<\ for(i=0;i<=6;i++) cin>>a[i]; for(i=0;i<=6;i++) cout< using namespace std; void main() { int x[10],i,j; j=0; //计数器初值赋0 cout<<\ for(i=0;i<=9;i++) cin>>x[i]; for(i=0;i<=9;i++) if(x[i]>0) j++; cout<<\ } 3.输入10个数自小到大输出 #include using namespace std; //顺序的输入数组x的10个元素 //逐个的比较数组的各个元素和0的大小 void main() { int a[11]; int i,n,t; //i表示数组下标,n表示遍历次数,t用来交换数据 cout<<\ for(i=1;i<11;i++) cin>>a[i]; cout< for(n=1;n<=9;n++) for(i=1;i<=10-n;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} cout<<\ for(i=1;i<11;i++) cout< cout< 4.运行以下程序的运行结果如下图所示。 #include using namespace std; void main() { int a[2][3]={{1,5,9},{2,6,8}}; int b[3][2],i,j; cout<<\//输出原来数组的数据 for(i=0;i<2;i++) { for(j=0;j<3;j++) { cout< b[j][i]=a[i][j]; //将两个数组元素相互交换 } cout< cout<<\//输出交换后的数据元素 for(i=0;i<3;i++) { for(j=0;j<2;j++) cout< } } 5.输入6个学生的鸽子三门成绩,将每个人的平均成绩输出,结果运行如下图。 #include using namespace std; void main() { float score[6][3],sv[6],x; int i,j; cout<<\'s score:\ for(i=0;i<6;i++) for(j=0;j<3;j++) { cin>>x; score[i][j]=x; } //输入每个学生的每门课成绩 for(i=0;i<6;i++) { sv[i]=0; for(j=0;j<3;j++) sv[i]=sv[i]+score[i][j]; sv[i]=sv[i]/3; } for(i=0;i<6;i++) //输出每个学生的平均成绩 //求每个学生的总成绩 //求每个学生的平均成绩 cout<<\ } 7. 输入一个字符串将其倒序输出。 #include using namespace std; void main() { char str[20]; int i,j; cout<<\ cin.get(str,20); j=strlen(str); for(i=j-1;i>=0;i--) cout.put(str[i]); } 8.输入两个字符串,将其连接起来,运行结果如下图所示。 #include using namespace std; void main() { char str1[20],str2[20],str3[50]; cin.getline(str1,20); cin.getline(str2,20); if (strcmp(str1,str2)<0) { strcpy(str3,str1); strcat(str3,str2); } else { strcpy(str3,str2); strcat(str3,str1); } cout< 9.输入一个3X3矩阵,将其对角线上的数求和,运行结果如下图。 #include using namespace std; void main() { float a[3][3],sum=0,x; int i,j; cout<<\ for(i=0;i<3;i++) for(j=0;j<3;j++) { cin>>x; a[i][j]=x; } for(i=0;i<3;i++) sum=sum+a[i][i]+a[i][2-i]; cout<<\} 10.以下程序运行结果如下图所示。 #include using namespace std; void main() { char str[60]; int i,j; cin.get(str,60); i=0; j=strlen(str)-1; while(str[i]==' ') i++; //寻找前面第一个不是空格的字符 while(str[j]==' ') j--; //寻找后面第一个不是空格的字符 while(i if(i } 11.输入10个数,并按自小到大进行排序,运行结果如下图所示 #include using namespace std; void main() { int i,j,a[10],t,k; cout<<\ for(i=0;i<10;i++) //输入10个要排序的数据 cin>>a[i]; for(i=0;i<9;i++) //排序总共进行了9趟 { k=i; //初始化最小数的下标 for(j=i+1;j<10;j++) //从当前数的后面寻找最小数的下标 if(a[j] { t=a[i];a[i]=a[k];a[k]=t;} //第i个数和最小数交换 } } for(i=0;i<10;i++) //输入排序后的10个数 cout<
正在阅读:
VIsual C++2008学习日志01-12
激烈的乒乓球比赛作文600字06-18
图论在高校排课问题中的应用12-06
浙江省高级人民法院行政审判庭关于审理婚姻登记行政案件具体适用法律若干问题的指导意见(试行)01-20
四年级语文第六单元讨论后教案06-19
机械原理自测题库07-12
宣贯教材 河南省水利定额04-14
新型气化炉耐火材料有关问题的探讨12-16
看完了这个简短的故事,你会有什么感触?11-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- VIsual
- 学习
- 日志
- 2008