Vc++实践.docx
- 文档编号:11399352
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:38
- 大小:460.70KB
Vc++实践.docx
《Vc++实践.docx》由会员分享,可在线阅读,更多相关《Vc++实践.docx(38页珍藏版)》请在冰豆网上搜索。
Vc++实践
电子工程专业《C++程序设计》
课程实验指导书
撰写人:
惠为君审定人:
王吉林
第一部分绪论3
第二部分基本实验指导9
实验一C++语言概述——C++简单程序设计9
实验二C++基本数据类型与表达式12
实验三选择结构——销售利润提成15
实验四循环结构——数值计算18
实验五数组——学生成绩排序21
实验六指针——学生成绩统计24
实验七函数——加密算法27
实验八结构体——通讯录30
第一部分绪论
本指导书是根据《C++程序设计》课程实验教学大纲编写的,适用于全日制本科电子工程专业。
一、本课程实验的作用与任务
《C++程序设计》是为电子信息工程专业(本科)学生开设的一门基础课程,通过本课程的学习,使学生掌握C++语言程序设计的基本概念,熟悉高级语言程序设计基本原理和常用的方法。
本实验课程是涵盖了《C++程序设计》的主要内容,对学生巩固有关理论知识,培养编程能力,具有重要作用。
二、本课程实验的基础知识
首先打开VC6.0界面,一般用得较多的是Win32控制台应用程序(源程序,扩展名.cpp),
步骤是:
(先工程—后文件—编译—连接---运行)
1,建立一个工程,“文件”——“新建”,出现下面界面:
选择“Win32ConsoleApplication”(控制台应用程序,左边倒数第三个),命名工程名称,选择保存位置,
点击“确定”,进入下一步,看到如下提示界面:
建立一个空工程,对应其他需要的可以建立别的工程;点击“完成”,之后:
显示创建的工程的信息。
2,再在有一个的工程的条件下,我们再建立一个源文件;
“文件”——“新建”(快捷键Ctri+N),出现:
建立源文件,选择“C++Source”,一般都是建立这种文件的(适用在当文件中适用)如果要建立头文件的话,选择“C/C++HeaderFile”,(适用在多文件工程中使用)命名,文件名称,点击“确定”,之后:
进入编辑区,在主界面编写代码:
如下编写完之后呢:
可以按编译按钮
调试程序,看看有没有错误,有的话改正,没有的话就可以再按连接按钮
检查连接(多文件工程时常用,检查文件间是否正常连接),最后,点运行按钮
,就可以运行了。
如果是有代码如:
cpp文件,或.h文件,想添加都VC6.0里来测试的话,可以这样做:
首先,要理解一下文件扩展名为:
cpp和.h
文件扩张名是.h,代表的是头文件,一般是书写一些函数原型,以及一些在整个程序中常用到的结构体,频繁使用的函数说明,定义等等;
文件扩张名为,cpp的,是C++中的源文件,也是最常用到的文件,每建立一个工程都要至少一个源文件(至少要有一个函数入口——主函数main()),包含了核心代码;
建立与运行说明:
(以VC6.0编译器为例,其他编译器类似)
首先,打开VC6.0编译环境;
在菜单栏——文件(的下拉菜单中选择“新建”),在弹出的选择窗口中,选择
Win32ConsoleApplication(控制台应用程序),在填写工程名称,选择一个程序保存路径,
点击“完成”,查看工程信息。
在点击“确定”,就建立一个简单的工程了。
再点击左边的工程信息右下角的“FileView”选项;
可以看到新建的工程,再双击新建的工程名可以查看工程的信息。
在双击工程文件,在这里是777.files,可以看到该工程的包含的文件
:
其中,SourceFiles为包含所有工程的源文件
HeaderFiles为包含所有工程的头文件
在源文件选项“SourceFiles”,右键单击中的“添加目录到工程”,添加你要打开的扩展名为.cpp的源文件。
在头文件选项“HeaderFiles”,右键单击中的“添加目录到工程”,添加你要打开的扩展名为.h的头文件。
添加完你所有的头文件和源文件之后,检查一下是否添加完毕,之后就可以编译了。
其中第一个按钮
为编译按钮,可以找出工程的错误信息,有错误修改,没错误就可以跳到连接,编译右边的按钮
,即第三个按钮(多文件工程一定要连接,查看文件是否准确相连接)
当编译,连接都没有错误时,可以按运行按钮
,即可以运行了。
三、本课程实验教学项目及其教学要求
序
号
实验项目名称
学
时
教学目标、要求
1
C++简单程序设计
掌握VC控制台程序的开发步骤,学会简单程序的编写。
2
C++基本数据类型与表达式
熟悉和理解C++语言中的类型简单数据(整型、实型、字符型)、运算、表达式
3
选择结构——销售利润提成
进一步掌握选择结构中if条件语句的用法
4
循环结构——数值计算
理解并掌握程序的循环结构(for语句、while语句、do-while语句)程序设计
5
数组——学生成绩排序
熟练掌握应用一维数组的程序设计方法
6
指针——学生成绩统计
学会使用指针变量访问数组元素
7
函数——加密算法
掌握函数的定义、申明、实现和调用。
8
结构体——通讯录
结构体的定义和使用
合 计
第二部分基本实验指导
实验一C++语言概述——C++简单程序设计
一、实验目的
1.了解和使用VC++6.0的开发集成环境。
2.在VC++的集成开发环境,学习运行一个C++程序的步骤。
3.通过运行简单的程序,初步了解的C++的结构和特点。
4.掌握基本的出错调试。
二、实验内容和要求
编辑、编译、连接和运行一个程序输出“Hello,C++!
”。
三、实验任务分解
四、实验步骤
1.新建一个win32ConsoleApplication的工程:
打开VC++开发软件,从[文件]菜单中点击[新建]菜单项,出现如图
(1)所示对话框,在右上角的工程下输入该工程的名称hello,并设置该工程所保存的路径,最后点击确定。
图
(1)
2.当确定后会出现要你选择工程类型的对话框,如图
(2)所示:
请选择一个空的工程,即第一个选项。
图
(2)
3.单击确定后,工程建立完毕,接下来建立程序源文件,请再单击[文件]菜单下的[新建]出现原先出现的对话框,请选择“文件”选项卡中的c++sourcefile选项,并取名hello,如图(3)。
图(3)
4.确定后,就进入了源代码的编辑窗口,如图(4)所示:
图(4)
5.编辑好开始设置的源代码:
cout<<"Hello,C++!
.\n";
进入了编译和调试阶段,请按如图(5)所示的第二个按钮,这个称作为构件,它的功能是先进行编译,同时如果编译成功的话自动建立EXE可执行文件,同时将可执行文件和编译和连接过程中的中间代码一起放置在debug文件夹中。
图(5)
6.执行可执行文件,单击编译条上的第四个按钮,即惊叹号,对编译成功的程序进行执行。
7.写出实验报告。
五、实验思考题
1.说明源文件、目标文件与可执行文件的区别。
2.调试C程序需要有几个步骤,每个步骤生成的文件的扩展名是什么?
实验二C++基本数据类型与表达式
一、实验目的
1.熟悉和理解C++语言中的类型简单数据(整型、实型、字符型)、运算、表达式
2.了解基本数据类型的字节宽度和范围表示
3.能利用学习的数据类型,编制简单的C++程序
4. 学习调试方法
二、实验内容与要求
本实验主要培养、训练学生对C++基本数据类型char,short,int,long,float,double的数据的长度与表达式的理解。
通过定义上述5种类型的变量,使用sizeof运算符求出其所占内存的大小并输出。
三、实验任务分解
四.实验步骤
1.建立工程
(1)新建一个win32ConsoleApplication的工程:
打开VC++开发软件,从[文件]菜单中点击[新建]菜单项,出现如图所示:
在右上角的工程下输入该工程的名称,如c2a,并设置该工程所保存的路径。
最后点击确定。
(2)当确定后会出现要你选择工程类型的对话框,如图所示:
请选择一个空的工程,即第一个选项。
(3)当单击确定后,工程建立完毕,接下来建立程序源文件,请再单击[文件]菜单下的[新建]出现原先出现的对话框,请选择“文件”选项卡中的c++sourcefile选项,并取名,如c2a
(4)当确定后,就进入了源代码的编辑窗口,如图所示:
2.编写主函数
(1)加入头文件:
iostream.h。
(2)定义变量:
i、j
(3)给变量赋值
j=5000;
i=j;
(4)输出结果
cout<<"theshortintis:
"<
cout<<"theshortunsignedintis:
"< cout<<"i的长度是: "< cout<<"j的长度是: "< 3.实现输出大写字母表 (1)打开编辑器(同上) (2)加入头文件: iostream.h (3)编写主函数 voidmain() { charletter; for(letter='A';letter<='Z';letter++) cout< } 五、思考题 1.编写一个将华氏温度转换为摄氏温度的程序,转换公式为C=(5/9)(F-32),要求输出华氏温度和摄氏温度的对应值。 2.编写一个计算圆的周长和面积的程序。 实验三选择结构——销售利润提成 一、实验目的 1.进一步掌握选择结构中if条件语句的用法 2.了解if…else…if阶梯结构的实际应用 二、实验内容及要求 编程计算销售公司销售利润个人奖金提成。 具体提成规则如下: (1)利润<=10万元,奖金提成10% (2)10万<利润<=20万元,低于10万部分按10%提成 高于10万部分按7.5%提成 (3)20万<利润<=40万元,低于20万部分按前 (2)提成 高于20万部分按5%提成 (4)40万<利润<=60万元,低于40万部分按前(3)提成 高于40万部分按3%提成 (5)利润>60万元,低于60万部分按前(4)提成 高于60万部分按1.5%提成 三、实验任务分解 四、实验步骤 1.建立工程 (1)新建一个win32ConsoleApplication的工程: 打开VC++开发软件,从[文件]菜单中点击[新建]菜单项,出现如图所示: 在右上角的工程下输入该工程的名称,如c3,并设置该工程所保存的路径。 最后点击确定。 (2)当确定后会出现要你选择工程类型的对话框,如图所示: 请选择一个空的工程,即第一个选项。 (3)当单击确定后,工程建立完毕,接下来建立程序源文件,请再单击[文件]菜单下的[新建]出现原先出现的对话框,请选择“文件”选项卡中的c++sourcefile选项,并取名,如c3 (4)当确定后,就进入了源代码的编辑窗口,如图所示: 2.确定并定义所需的数据变量,特别注意合理选择数据类型。 3.计算四个区间关键点奖金变量的值。 此题的关键在于正确写出每一区间的奖金计算公式,例如利润在10万元至20万元时,奖金应由两部分组成: (1)利润为10万元部分应得的奖金: 10万*0.1 (2)10万元以上部分应得奖金: (profit-10万)*0.075 同样,其它区间的奖金也由两部分组成。 程序中需先把10万、20万、40万、60万四个关键点奖金计算出来,保存到对应变量中,比如: bon1,bon2,bon4,bon6,然后再加上各区间附加部分的奖金即可。 4.构造if…elseif…阶梯条件语句,借助关键点奖金变量值计算利润区间的奖金。 (1)算法: if(利润不大于10万) 按10%提成奖金; elseif(利润不大于20万) 计算利润在10万至20万元区间的奖金(由两部分组成); (2)程序代码: if(profit<=100000)bonus=profit*0.1; //利润profit在10万元以内按10%提成的奖金bonus elseif(profit<=200000)bonus=bon1+(profit-100000)*0.075; //销售利润profit在10万至20万元时的奖金bonus (3)特别说明: 把销售利润在10万至20万元时的elseif条件部分(profit<=200000)写成(profit>100000&&profit<=200000) 虽可正确运行,但存在两个问题: 程序执行效率降低 没有正确理解elseif子句的含义,此时再判断利润profit>10万是多余的。 5.输出奖金提成。 6.先检查一遍程序,然后编译纠错。 7.链接运行,分别输入五组数据分析验证结果。 五组数据: 输入10000 输入100000 输入234000 输入450000 输入700000 8.输出程序清单和结果,并保存好自己的工程文件。 五、思考题 1.把销售利润在10万至20万元时的elseif条件部分(profit<=200000)写成(profit>100000&&profit<=200000) 编译运行。 输入234000,结果正确吗? 但这样做存在什么不足? 2.如何改用switch开关语句实现,它们之间又有什么差别? 3.在学习循环控制结构后,如何改进该程序实现反复输入计算销售利润的奖金提成,而不是现在只能输入计算一次? 实验四循环结构——数值计算 一、实验目的 1.理解并掌握程序的顺序结构程序设计 2.理解并掌握程序的循环结构(for语句、while语句、do-while语句)程序设计 3. 掌握循环语句的嵌套形式 4. 学习过程化程序设计方法 5. 进一步学习掌握查找与修改编译错误的方法 二.实验内容与要求 本实验主要培养、训练学生对C++程序的循环结构的理解。 输入一个数,通过编写循环语句的程序,计算从0到该数的所有数的阶乘,如输入4,结果应为0! 、1! 、2! 、3! 、4! 。 输入一批数字,从中找到最大的数。 三、实验任务分解 四、实验步骤 1.建立工程 (1)新建一个win32ConsoleApplication的工程: 打开VC++开发软件,从[文件]菜单中点击[新建]菜单项,出现如图所示: 在右上角的工程下输入该工程的名称,如c4a,并设置该工程所保存的路径。 最后点击确定。 (2)当确定后会出现要你选择工程类型的对话框,如图所示: 请选择一个空的工程,即第一个选项。 (3)当单击确定后,工程建立完毕,接下来建立程序源文件,请再单击[文件]菜单下的[新建]出现原先出现的对话框,请选择“文件”选项卡中的c++sourcefile选项,并取名,如c4a (4)当确定后,就进入了源代码的编辑窗口,如图所示: 2.使用for 循环输出不超过输入数字的所有数的阶乘 (1)加入头文件: iostream.h。 (2)编写主函数,程序如下: longlimits; cout<<"Enterapositiveinteger: "; cin>>limits; cout<<"Factorialnumbersof"<<0<<"is"<<1< cout<<"Factorialnumbersof"<<1<<"is"<<1< longfac=1,i=0; for(i=2;fac<=limits;i++) { fac*=i; cout<<"Factorialnumbersof"< } 3.查找序列中最大元素 (1)加入头文件: iostream.h。 (2)编写主函数,程序如下: intnum,max; cout<<”Enterpositiveintegers(0: end): ”;cin>>num; for(max=num;num>0;) { if(num>max)max=num;cin>>num; } cout<<”Themaxvalueis: ”< 五、实验思考题 1、分别计算整数1至10的平方并输出 2、编写程序,依次计算并输出当半径为5,4,3,2,1时的圆面积。 3、编写程序,求1-3+5-7+…-99+101的值。 实验五数组——学生成绩排序 一、实验目的 1.熟练掌握应用一维数组的程序设计方法 2.初步掌握在程序中二维数组的构建方法 3.理解并掌握指针与地址、指针运算,了解指针数组的概念 4.实际理解指针与数组的关系并灵活应用到程序设计中 二、实验内容 本实验主要培养、训练学生对数组的实现方法,掌握数组的定义、初始化,通过无序地输入一批数字,结束后,按从小到大(或大到小)输出,了解排序算法。 三、实验任务分解 四、实验步骤 1.建立工程 (1)新建一个win32ConsoleApplication的工程: 打开VC++开发软件,从[文件]菜单中点击[新建]菜单项,出现如图所示: 在右上角的工程下输入该工程的名称,如c5,并设置该工程所保存的路径。 最后点击确定。 (2)当确定后会出现要你选择工程类型的对话框,如图所示: 请选择一个空的工程,即第一个选项。 (3)当单击确定后,工程建立完毕,接下来建立程序源文件,请再单击[文件]菜单下的[新建]出现原先出现的对话框,请选择“文件”选项卡中的c++sourcefile选项,并取名,如c5 (4)当确定后,就进入了源代码的编辑窗口,如图所示: 2.编写主函数 (1)加入头文件 #include"iostream.h" #include"stdio.h" (2)定义用于保存输入数据的整型数组 inta[100]; (3)定义用于排序的整型变量 intn,i,j,m; (4)循环输入整数,直到回车,数字间用空格分开。 do{scanf("%d",&a[i]);i++,n++;} while(getchar(a[i])! ='\n'&&i<100); 其中getchar(a[1])! =’\n’表示输入的不是回车键。 (5)对数组进行排序 for(i=0;i { for(j=i+1;j if(a[j]>a[i]){m=a[i];a[i]=a[j];a[j]=m;} } (6)输出数组内容,每5个数字换行。 for(i=0;i {printf("%5d",a[i]); if((i+1)%5==0)printf("\n"); } 五、思考题 1.为什么说数组需要“先定义,后使用? ” 2.用筛选法求100以内的所有素数。 实验六指针——学生成绩统计 一、实验目的: 1.熟练掌握指针、地址、指针类型、空指针等有关概念; 2.熟练掌握指针的间接访问、指针的加减运算和指针表达式; 3.学会使用指针变量访问数组元素; 4.学会建立动态数组的方法。 二、实验内容与要求 1.内容: 编写一个程序,该程序提示用户输入学生的姓名及考试分数(假定每个班级学生人数最多为30人),并完成下列功能: (1)输出班级平均分。 (2)输出考试成绩低于班级平均分的学生姓名及其分数。 (3)输出最高分及最高分学生的姓名。 2.要求: (1)总学生人数由用户动态输入; (2)学生姓名使用静态二维字符数组charname[30][20]存储,学生分数使用动态整数数组intscore[n]存储。 (3)通过数组下标使上述两个数组在逻辑上关联起来。 例如,若使用二维字符数组第i行name[i]存储第i个学生的姓名,则使用整数数组的第i个元素score[i]存储第i个学生的分数。 (4)先用数组名+下标的方式访问数组元素,完成全部要求的功能。 经过测试无错误之后,修改程序,改用数组指针方式访问保存学生分数的数组元素score[i],并完成同样的功能。 最后,再次修改程序,使用动态数组存储学生分数score[i],并完成全部要求的功能。 (5)写出完整的程序,经过测试确定正确无误之后,给出测试数据并完成实验报告。 三、实验任务分解 四、实验步骤: 1.建立工程 (1)新建一个win32ConsoleApplication的工程: 打开VC++开发软件,从[文件]菜单中点击[新建]菜单项,出现如图所示: 在右上角的工程下输入该工程的名称,如c2a,并设置该工程所保存的路径。 最后点击确定。 (2)当确定后会出现要你选择工程类型的对话框,如图所示: 请选择一个空的工程,即第一个选项。 (3)当单击确定后,工程建立完毕,接下来建立程序源文件,请再单击[文件]菜单下的[新建]出现原先出现的对话框,请选择“文件”选项卡中的c++sourcefile选项,并取名,如c2a (4)当确定后,就进入了源代码的编辑窗口,如图所示: (5)建立C++程序的基本框架,输入程序代码以从键盘接受一个整数,此整数即为总学生人数。 2.在函数中main()使用一个简单的循环语句完成学生姓名和该学生的成绩的输入,例如,要输入第i个学生的姓名和分数,可使用语句cin>>name[i];同时输入该学生分数cin>>score[i]; (1)定义姓名数组name[30][20]和分数数组score[n]; (2)使用cin流输入第一个学生的姓名和成绩,并存入相应数组的0号单元中。 (3)若 (2)成功,则将 (2)所使用的代码嵌入一个循环体中,以实现输入多个学生的姓名和成绩。 (4)编译运行程序,改正全部编译及运行时错误。 3.完成上述数据的输入后,应输出全部学生姓名及其分数,以确保第1步的有关操作是有效的。 (1)使用cout流输出某一个学生的姓名和成绩,注意添加必要的空格字符以便于阅读。 (2)若 (1)成功,则将 (1)所使用的代码嵌入一个循环体中,以实现输出全部学生的姓名和成绩,注意更新循环控制变量。 (3)编译运行程序,改正全部编译及运行时错误。 4.求平均分,这一步比较简单,只要将全部成绩累加起来,再除以学生人数就可以了。 (1)定义两个变量sun和aver分别保存全班成绩的累加和与班级平均分。 (2)使用一个循环将班级所有人的成绩累加起来; (3)将累加和除以班级总人数即得班级平均分,将此平均分保存到相应的变量中并输出就可以了。 (4)编译运行程序,改正全部编译及运行时错误。 5.要输出低于平均分的学生姓名及其分数,只要将每一名学生的分数score[i]与步骤3中所求得的平均分进行比较,若低于平均分,则输出该分数score[i]及对应数组中的学生姓名name[i]即可。 (1)使用if语句将第一个学生的成绩sco
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Vc+ 实践 Vc