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 using namespace std; int main()

{ 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 using namespace std; float area(float r)

//定义求半径为r的圆面积的函数area

{ return 3.14159f * r * r; } void main() {

float r; //定义浮点型变量r,用于存放圆的半径 cout<<\输入圆的半径:\ //显示提示信息,提示用户输入数据

cin>>r; //从键盘上输入圆的半径送给变量r

//输出运算结果

cout<<\半径为\的圆的面积=\'\\n'; }

4.利用类实现圆面积的求解。 #include using namespace std;

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 using namespace std;

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 using namespace std; void main() {

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 using namespace std; void main() { }

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 //使用控制符setw,要包含头文件iomanip

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<2.输入10个数找出小于0的数是第几个。 #include

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 #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 #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 #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<

本文来源:https://www.bwwdw.com/article/c2lo.html

Top