C++实验指导书.doc_第1页
C++实验指导书.doc_第2页
C++实验指导书.doc_第3页
C++实验指导书.doc_第4页
C++实验指导书.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

燕山大学经济管理学院C+程序设计实验指导书经济管理学院电子商务系2012年11月实 验 说 明C+语言是一种完全面向对象的计算机程序设计语言,继承了C语言的灵活性和高性能,引入了面向对象的编程思想。该课程作为电子商务专业的一门专业课,主要介绍C+程序设计语言的基本知识,为学生进一步学习C+高级编程打下牢固的程序设计语言基础。实验课是C+程序设计教程的重要实践环节。通过实验,使学生加深理解、验证、巩固课堂教学内容,加深对C+程序设计的过程、方法的理解,发挥学生的想象力和创新能力。本实验课程共开设4个实验项目。实验方式与基本要求:学生须在实验前预习相应实验内容,熟悉实验的基本原理、方法及要求、制定好上机步骤,弄清实验目的;实验每次均为2学时,学生须按时到场;要求学生掌握程序设计的各种基本方法与步骤,并在实验中得到提高。 考核及报告:实验时将各种问题与结果记录下来,实验内容可通过截图等方式存入U盘,并在课后完成实验报告内容;任课教师对每次记录都要进行检查、分析、登记; 课程总成绩应为理论考核、实验成绩的综合;其中实验课程成绩占20%,理论课成绩占50%,平时成绩占30%。实验一 熟悉C+程序开发环境及基本语句一、实验目的1. 了解和熟悉C+程序开发环境。2. 熟悉C+程序设计中的基本语言。3. 掌握条件语句的使用。4. 掌握循环语言的使用。5. 能够根据具体问题编写相应程序。二、实验内容与要求1. 熟悉C+开发环境,建立C+源文件,利用C+的控制台编写C+程序。2. 建立自己的工作目录,例如D:user。以后的C+程序和过程文件均放置在此目录下。输入一个源程序,学习编辑、编译、运行程序的方法。例如/例2.1 文件f0201.cpp如下:/=/ f0201.cpp/ 变量定义/=#includeusing namespace std;/-int main() double radius; / 定义语句 coutradius; double result = radius*radius*3.14*4; / 定义语句 coutThe result is resultn;/=(应该把int改为void)首先编译该程序,若出现错误或警告,调试程序后再编译,若没有错误,可运行该程序。本程序利用了C+中的输入与输出指令,作用是根据输入的球体半径求出该球体的表面积。3. 熟悉循环语句,输出顺序英文字母三角形,即例2-3。#includeusing namespace std;void main()for(int i=1;i=0;j-)cout ;for(char ch=A;ch=A+2*(i-1);ch+)coutch;coutn;4. 熟悉条件语句,判断一个数是否是素数。#includeusing namespace std;void main()int a;couta;for(int i=2;ia;i+)if(a%i=0)couta不是素数endl;break;else couta是素数endl;break;5. 利用C+编写程序输出下列图形* * * * * * *#includeusing namespace std;void main()for(int i=1;i=0;j-)cout ;for(int k=1;k=2*i-1;k+)cout*;coutendl;for(int m=1;m=3;m+)for(int n=1;n=7-2*m;n+)cout*;coutendl;实验二 函数控制一、实验目的1了解函数参数传递的方法。2了解函数指针的概念及使用。3掌握递归函数的使用。4熟练函数重载的方法。5能自己编写函数语句,实现特定功能。二、实验内容与要求1分析下列程序并给出结果。#include#includeusing namespace std;/-void print(vector& a) for(int i=0; ia.size(); +i) coutai ; coutendl;/-vector add(vector& a, vector& b) for(int i=0; ia.size(); +i) ai += bi; / ? return a;/-int main() int aa=3,2,1,2,3,2,1, bb=6,3,1,1,4,2,3; vector a(aa,aa+7), b(bb,bb+7); vector c = add(a, b); print(a); print(b); print(c);2利用递归函数实现n!,并输出结果。#includeusing namespace std;int fun(int n) if(n=1) return 1; else return n*fun(n-1); void main()int m;coutm;cout这个数的阶层为:fun(m)endl;3编写一个函数,根据输入的两个整数a和b,输出它们的平方和。#includeusing namespace std;int f(int a,int b) return a*a+b*b;void main()int m,n;coutm;coutn;f(m,n);cout两个数的平方和为f(m,n)endl;4编写程序,根据输入的三个整数a、b、c,输出它们中的最大值。#includeusing namespace std;void main()int a,b,c;couta;coutb;coutc;coutb?a:b)c)?(ab?a:b):c)endl;5编写一个函数,将输入的两个整数交换后输出。#includeusing namespace std;void f(int *a,int *b) int temp; temp=*a; *a=*b; *b=temp;void main() int m,n; coutm; coutn; f(&m,&n); cout交换后m= mendl;cout交换后n=nendl; 实验三 类与继承一、实验目的1了解C+的程序结构。2掌握全局数据和静态数据的使用。3掌握类的定义。4了解成员函数的定义。二、实验内容与要求1运行下列程序,输入多个字符,并保存输出结果。#includeusing namespace std;inline bool isnumber(char); / 内联声明void main() for(char c; cinc & c!=n; ) if(isnumber(c) coutyou entered a digit.n; else cout=0 & ch=9 ? 1 : 0;(应该把Int 改为void)2分析下列程序并给出结果。#includeusing namespace std;void func();int n=1;void main() int a=0, b=-6; couta=a, b=b, n=nendl; func(); couta=a, b=b, n=nendl; func();void func() static int a=3; int b=4; a+=2, b+=5; n+=8; couta=a, b=b, n=nendl;3分析下列程序,并输出结果。#include#includeusing namespace std;class Date int year, month, day;public: void set(int y,int m,int d); / 赋值操作 bool isLeapYear(); / 判断闰年 void print(); / 输出日期;/-void Date:set(int y,int m,int d) year=y; month=m; day=d;/-bool Date:isLeapYear() return (year%4=0 & year%100!=0)|(year%400=0);/-void Date:print() coutsetfill(0); coutsetw(4)year-setw(2)month-setw(2)dayn; coutsetfill( );/-void main() Date d1; d1.set(2008,8,8); if(d1.isLeapYear()d1.print(); Date d2; d2.set(2006,10,6); if(d2.isLeapYear() d2.print();4针对二维坐标系上的实数矢量Point类,设计矢量类的减法和乘法操作。(可参考例子f0805)#includeusing namespace std;class Point;Point operator-(const Point& a, const Point& b);class Point int x, y;public: void set(int a, int b) x=a, y=b; void print()const cout(x, y)n; friend Point operator-(const Point& a, const Point& b);friend float operator*(const Point& a, const Point& b);Point operator-(const Point& a, const Point& b) Point s; s.set(a.x-b.x, a.y-b.y); return s;float operator*(const Point& a, const Point& b) float t; t=(a.x)*(b.x)+(a.y)*(b.y); return t;void main() Point a, b; a.set(5,2); b.set(7,5); (a-b).print(); operator-(a,b).print(); coutfun(a,b)endl;couta*bendl;实验四 基于对象编程一、实验目的1掌握友元的使用。2掌握构造函数的使用。3掌握析构函数的使用。4熟悉基于对象编程的思想。二、实验内容与要求1分析下列程序并给出结果。/构造函数重载#include#includeusing namespace std;class Date;ostream& operator(ostream& o, const Date& d);class Date int year, month, day;public: Date(int y=2000, int m=1, int d=1); / 设置默认参数 Date(const string& s); / 重载 bool isLeapYear()const; friend ostream& operator(ostream& o, const Date& d);Date:Date(const string& s) year = atoi(s.substr(0,4).c_str(); month = atoi(s.substr(5,2).c_str(); day = atoi(s.substr(8,2).c_str();Date:Date(int y, int m, int d) year=y,month=m,day=d; bool Date:isLeapYear()const return (year % 4=0 & year % 100 )| year % 400=0;ostream& operator(ostream& o, const Date& d) osetfill(0)setw(4)d.year-setw(2)d.month-; return osetw(2)d.daynsetfill( );int main() Date c(2005-12-28); Date d(2003,12,6); Date e(2002); / 默认两个参数 Date f(2002,12); / 默认一个参数 Date g; / 默认三个参数 coutcdefg;2根据实数矢量Point类,利用友元函数计算两个点之间的距离。#include#includeusing namespace std;class Point;Point operator-(const Point& a, const Point& b);class Point int x, y;public: void set(int a, int b) x=a, y=b; void print()const cout(x, y)n; friend float fun(const Point& a, const Point& b); ;float fun(const Point& a, const Point& b) float t; t=sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y); return t;void main() Point a, b; a.set(0,2); b.set(0,5); cout两个点之间的距离:fun(a,b)endl;3针对时间Clock类,使用构造函数Clock()初始化对象,使用析构函数Clock()释放对象,并将结果用函数ShowTime输出。#includeusing namespace std

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论