面向对象程序设计(C++)课程实验报告
- 格式:docx
- 大小:41.00 KB
- 文档页数:4
《面向对象程序设计》课程设计实验报告指导教师小组成员:专业班级: 2010级计算机科学与技术专业开设时间:2011-2012(一)目录1.任务1 (2)1.1 任务介绍 (2)1.2 小组成员任务分配 (2)1.3.1设计思想及主要流程图 (2)1.3.1主要程序清单 (2)1.3.1 运行结果及分析 (4)1.3.2设计思想及主要流程图 (2)1.3.2主要程序清单 (2)1.3.2 运行结果及分析 (4)1.3.3设计思想及主要流程图 (2)1.3.3主要程序清单 (2)1.3.3 运行结果及分析 (4)2.任务2 (2)2.1 任务介绍 (2)2.2 小组成员任务分配 (2)2.3设计思想及主要流程图 (2)2.3主要程序清单 (2)2.3 运行结果及分析 (4)3收获、体会和建议 (4)任务1.按照要求设计类 1.根据输出设计类设计类就是根据数据封装的要求,抽象出适合的类。
有如下测试程序和测试程序的输出结果,要求设计类Welcome 。
void main() { Welcome we; Welcome you(we); you.Display();you.Set(“Thank you.”);cout<<you.Get()<<endl; you.talk(); you.Display();}测试程序的输出结果如右: 设计类Welcome 的原则 1)在头文件Cpp1.h 中声明类 2)在Cpp1.cpp 中实现类3)使用内联函数定义Display()函数2.使用类改写程序编写一个求方程02=++c bx ax 的根的程序,用三个函数分别求当ac b 42+大于零、等于零和小于零时方程的根。
要求从主函数输入a 、b 、c 的值并输出结果。
使用面向过程的解法一般是把变量设为double 型,适用库函数cmath 进行计算。
请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。
《C++面向对象程序设计》实验内容实验1 C++程序设计初步1.实验目的(1)了解在C++编译系统(Visual C++6.0)上如何编辑、编译、连接和运行一个C++程序。
(2)通过运行简单的C++程序, 初步了解C++源程序的结构和特点。
(3)掌握简单C++程序的编写和调试方法。
(4)掌握重载函数的定义方法。
(5)能正确使用引用型变量。
2.实验内容和步骤(1)在Visual C++环境下编译和运行C++程序①先进入Visual C++6.0环境。
②在自己指定的子目录中建立一个名为test.cpp的新文件。
③从键盘输入以下程序int main(){int a,b;c=a+b;cout>> “a+b=”>>a+b;}选择Build→Compile test.cpp命令, 对此源程序进行编译。
观察和分析编译信息。
⑤根据编译信息指出的错误, 修改程序。
再进行编译, 如果还有错, 再重复此过程, 直到编译不出错为止。
⑥选择Build→Build test.exe命令, 对程序进行连接, 如果不出错, 就会生成可执行程序test.exe。
⑦选择Build→Execute test.exe命令, 执行可执行程序test.exe。
观察屏幕的变化。
在输出窗口应显示程序运行结果。
⑧分析结果是否正确, 如果不正确或认为输出格式不理想, 可以修改程序, 然后重新执行以上④和⑧步骤。
改过后的程序:#include<iostream>using namespace std;int add(int x,int y){int z;z=x+y;return(z);}int main(){int a,b,c;cin>>a>>b;c=add(a,b);cout<<"a+b="<<c<<endl;return 0;}实验2 C++对C的扩充(2)编一个程序, 用来求2个或3个正整数中的最大数。
本科实验报告课程名称:C++面向对象程序设计实验地点:专业班级:学号:学生姓名:指导教师:2016年 5 月3 日Complex::Complex(int real, int image) { real = 20;image = 40; }Complex::Complex(Complex &c){ real = c.real;image = c.image; }int main(){ Complex c1;Complex c2(0, 0);Complex c3(c1);cout <<"c1=";c1.Display();cout <<"c2=";c2.Display();cout <<"c3=";c3.Display();return 0; }二.#include"stdafx.h"#include<iostream>using namespace std;class score{int No,Math,Phi,Data,ave;char Name[8];public:void Write(score &b){ cout<<"请输入学号:"<<endl;cin>>b.No;cout<<"请输入姓名:"<<endl;cin>>;cout<<"请输入数学成绩:"<<endl;cin>>b.Math;cout<<"请输入物理成绩:"<<endl;cin>>b.Phi;cout<<"请输入数据结构成绩:"<<endl; cin>>b.Data; }int Average(score &a){ a.ave=(a.Data+a.Math+a.Phi)/3;return a.ave; }void Display(){ cout<<No<<'\t'<<Name<<'\t'<<Math<<'\t'<<Phi<<'\t'<<Data<<'\t'<<ave<<endl; }};int main (){ score s[3];int i;for(i=0;i<3;i++){ s[i].Write(s[i]);s[i].Average(s[i]); }cout<<"学号\t"<<"姓名\t"<<"数学\t"<<"物理\t"<<"结构\t"<<"平均\t"<<endl;for(i=0;i<3;i++)s[i].Display();}三. #include"stdafx.h"#include"iostream"using namespace std;class Rectangle{public:Rectangle(double l, double t, double r, double b) :left(l), top(t), right(r), bottom(b) {}三. #include"stdafx.h"#include"iostream"using namespace std;class Person {public:char Name[8];char Sex;int Birthday;};class Student :public Person{public:int Class;int No;char Professnation[50];int English;int Math;void Display(char Name[8], char Sex, int Birthday, int Class, int No, char Professnation[50], int English, int Math){cout <<"学生姓名为"<<Name<< endl;cout <<"学生性别为"<<Sex<< endl;cout <<"出生年月"<<Birthday<< endl;cout <<"班级为"<<Class<< endl;cout <<"学号为"<<No<< endl;cout <<"专业为"<<Professnation<< endl;cout <<"英语成绩"<<English<< endl;cout <<"数学成绩"<<Math<< endl;};};class Employee :public Person{public:。
《面向对象程序设计》实习报告班级:学号:姓名:指导教师:实习时间:一.实习目的1. 学习怎样启动和退出VB,熟悉VB的工作环境2.掌握基本控件的重要属性、事件;3.熟练掌握在窗体上建立上述控件的操作方法;4.熟练掌握事件过程代码的编写;5.掌握建立基于图形界面的应用程序的过程6. 学习用属性窗口设置对象属性及用代码设置对象属性的方法。
7. 学习如何用对象(窗体和控件)建立界面及在代码编辑器中输入程序代码的基本操作。
8 .基本掌握用VB开发应用程序的一般步骤。
二.程序设计实验1 基本算法练习1.编写程序求“自己学号后3位到500”以内的所有素数及自然数对。
2.编写程序“计算最大公约数和最小公倍数”实验:计算3个数的最大公约数和最小公倍数,并以最小公倍数作为总金额,计算人民币各种票额的张数3.编写程序“歌德巴赫猜想及守形数”4.编写程序“百钱百鸡问题”实验:编写程序解决百钱买百鸡问题:公鸡5元/只,母鸡3元/只,小鸡一元买3只,用100元买100只鸡,问有哪些购买方案?实验2 常用统计练习1.成绩统计实验:利用文本框作为数据的输入和输出,产生数学、语文、英语、计算机等4门课程的成绩2.字符统计实验:随机产生200个“32到自己学号后3位”且小于128的随机数,将其转换成相应字符,形成一段统计字符。
统计字符中各个字母、各数字、空格、其它字符的个数。
实验3 常用排序方法1. 选择法排序实验:随机产生10个“学号后3位到500之间”的数,用选择法进行递增序。
2.冒泡法排序实验: 随机产生10个“50到学号后3位之间”的数,然后用冒泡法按递增的顺序进行排序。
3.二维数组排序实验:随机产生“10到学号后3位之间”的数,形成一个4*5 的二维数组,按升序排列。
4.从有序数组中删除一个元素实验要求:随机产生“1到学号后3位之间”的10个数,然后产生1-10间的随机数,确定删除元素,最后得出删除后的结果实验4 加密解密与数制转换1.数据加密与解密根据产生的后移位数,将输入的字符进行加密和解密。
面向对象程序设计(C++)实验报告姓名:刘九州学院:数学与计算机学院班级:10级计算机大类三班学号:100511314实验5 单继承一、实验目的1.掌握派生的类别与方式;2.了解派生类中如何使用基类的成员、基类成员在派生类中的访问控制;3. 掌握继承中构造函数和析构函数的调用过程。
二、实验内容及步骤1.给出一个Document类,从Document派生出Book类,增加PageCount变量。
在主函数中进行测试,创建Book类对象并进行初始化,输出书名和页数。
2.设计一个单基继承的类层次程序,利用Person类派生出Student类,增加属性xh(学号),Person类中至少有姓名、年龄等数据成员,成员函数中构造函数对其初始化,析构函数释放相应存储单元,输出函数输出其数据成员的值,其它成员函数根据需要添加,在主函数中进行测试。
3.设计一个人员类person和一个日期类date,由人员类派生出学生类student和教师类professor,学生类和教师类的数据成员birthday为日期类。
在主函数中进行测试。
三、实验源程序和运行结果实验(一)源程序:#include<iostream>#include<string>using namespace std;class Document{public:Document(){};~Document();Document(char*name);char *Name;void PrintNameOf();};Document::Document(char*name){Name=new char[strlen(name+1)];strcpy(Name,name);}Document::~Document(){delete []Name;}void Document::PrintNameOf(){cout<<Name<<endl;}class Book:public Document{public:int PageCount;Book(char *a,int b):Document(a){PageCount=b;}};void main(){char BookName[20];int n;cout<<"请输入书名:"<<endl;cin>>BookName;cout<<"请输入书的页数:"<<endl;cin>>n;Book b(BookName,n);cout<<"书名为:"<<<<endl;cout<<"页数为:"<<b.PageCount<<endl;}运行结果:实验(二)源程序:#include<iostream>#include<string>using namespace std;class person{public:person(){name="张三";age=0;}person(string c,int a){name=c;age=a;}~person(){}void setname(string c){name=c;}string getname(){return name;}void setage(int a){age=a;}int getage(){return age;}private:string name;int age;};class student:public person{public:student(){xh=0;}student(int d){xh=d;}student(string c,int a,int d):person(c,a){xh=d;}~student(){}void setxh(int d){xh=d;}int getxh(){return xh;}private:int xh;};void main(){string c;cout<<"请输入学生的姓名:\n";cin>>c;cout<<"请输入学生的年龄:\n";int a;cin>>a;cout<<"请输入学生的学号:\n";int d;cin>>d;student n(c,a,d);cout<<"请输入学生的姓名为:"<<n.getname()<<endl;cout<<"请输入学生的年龄为:"<<n.getage()<<endl;cout<<"请输入学生的学号为:"<<n.getxh()<<endl; }运行结果:实验(三)源程序:#include<iostream>using namespace std;class person{public:person(){name="张三";age=0;}person(string c,int a){name=c;age=a;}~person(){}void setname(string c){name=c;}string getname(){return name;}void setage(int a){age=a;}int getage(){return age;}private:string name;int age;};class date{public:date(){year=2011;month=12;day=17;}~date(){}date(int y,int m,int d){year=y;month=m;day=d;}int getyear(){return year;}int getmonth(){return month;}int getday(){return day;}private:int year;int month;int day;};class student:public person{public:student(){// birthday.date();}student(int y,int m,int d):birthday(y,m,d){}~student(){}void getbirthday(){cout<<"学生的生日为:\n";cout<<birthday.getyear()<<"年"<<birthday.getmonth()<<"月"<<birthday.getday()<<"日"<<endl;}private:date birthday;};class teacher:public person{public:teacher(){// birthday.date();}teacher(int y,int m,int d):birthday(y,m,d){//birthday.date(y,m,d);}~teacher(){}void getbirthday(){cout<<"老师的生日为:\n";cout<<birthday.getyear()<<"年"<<birthday.getmonth()<<"月"<<birthday.getday()<<"日"<<endl;}private:date birthday;};void main(){cout<<"请输入学生的生日:"<<endl;int y,m,d;cin>>y>>m>>d;student s(y,m,d);cout<<"请输入老师的生日:"<<endl;cin>>y>>m>>d;teacher t(y,m,d);s.getbirthday();t.getbirthday();}运行结果:实验6 多继承一、实验目的1.掌握多基继承的使用,访问方法;2.理解类层次中访问规则;3.掌握虚基类的定义及使用。
面向对象c 实验报告实验报告:面向对象C程序设计一、实验目的本次实验旨在通过设计一个面向对象的C程序,来加深对面向对象程序设计的理解,并实践C语言中面向对象的编程思想。
二、实验过程1. 设计类和对象:在C语言中,没有类的概念,但可以通过以下方式模拟类和对象。
- 定义一个结构体来表示一个类,结构体中包含该类的成员变量和成员函数指针。
- 定义一些函数来模拟类的成员函数,函数的第一个参数是结构体类型的指针,该指针指向当前对象。
2. 创建对象:定义一个结构体变量,该变量称为对象,通过调用构造函数来初始化对象的成员变量,将对象传递给成员函数。
3. 调用成员函数:使用对象调用该对象的成员函数,通过函数指针实现多态性。
4. 析构对象:在不再使用对象时,调用析构函数来释放对象占用的资源,避免内存泄漏。
5. 运行程序:编译并运行C程序,观察程序的输出结果。
三、实验结果在C语言中实现面向对象的程序设计,可以提供一种思路和方式来实现面向对象的编程思想。
通过将相关的数据和函数封装在一个表示类的数据结构中,并通过该数据结构的函数指针来调用成员函数,可以模拟出面向对象的效果。
四、实验总结通过本次实验,我对于C语言中如何实现面向对象编程有了进一步的理解。
尽管C语言本身没有类的概念,但通过结构体和函数指针的方式,我们可以模拟出类和对象的概念,并实现封装、继承和多态等面向对象的特性。
C语言中面向对象的编程思想可以使程序更加模块化、灵活和易于维护。
通过将相关的数据和函数封装在一个结构体中,我们可以将代码组织得更加清晰,降低代码的耦合度,提高代码的重用性。
此外,通过函数指针的方式来调用成员函数,可以实现多态性,使得代码更加灵活和可扩展。
当然,C语言中实现面向对象编程也存在一些限制和不足。
相比于面向对象编程语言,如C++和Java,C语言中的面向对象编程需要手动管理对象的生命周期,容易出现内存泄漏的问题。
此外,C语言中没有提供访问控制的特性,不同成员函数之间的访问权限不能进行限制。
C++实验报告实验一 Visual C++6.0开发环境应用入门(验证性实验2学时)1.目的要求:了解Visual C++6.0的特点,熟悉了解Visual C++6.0的开发环境,学习使用Visual C++6.0编写标准的C++控制台应用程序。
2.实验内容:使用Visual C++来建立一个非图形化的标准C++程序,编译、运行教材中的例3-3,用公式法求解PI的数值,并尝试利用其他方法求解并获得相同的结果。
π=16arctan(1/5)-4arctan(1/239)arctan(x)=x-x³/3+x5/5-x7/7+…求π=?(1)源代码和说明:#include<iostream>using namespace std;double arctan(double x){double sqr=x*x;double e=x;double r=0;int i;while(e/i>1e-15){double f=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=2;}return r;}int main(){double a=16.0*arctan(1/5.0);double b=4.0*arctan(1/239.0);cout<<"PI="<<a-b<<endl;return 0;}2)运行结果:1实验二 C++简单程序设计实验(验证性实验4学时)1.目的要求:会编写简单的C++程序;复习基本数据类型变量和常量的应用;复习运算符与表达式的应用;复习结构化程序设计基本控制结构的应用;复习自定义数据类型的应用;练习使用简单的输入输出;观察头文件的作用;学会使用VC6.0开发环境中的debug调试功能;熟练程序设计中的技巧;2.实验内容:1)给定一个字符变量输出其二进制形式。
例如char a=’a’;其二进制为00100001。
江门职业技术学院《面向对象程序设计》课程实训报告班别_____________学号_____________姓名_____________江门职业技术学院电子与信息技术系编实训一Windows窗体基本控件的应用【实训目的】1.熟悉C#的编译环境。
2.掌握编写Windwos项目程序的一般步骤3.掌握Windows窗体基本控件的使用方法。
4. 掌握使用C#集成开发环境编译调试程序。
【实训内容】◆练习1、时钟实例◆练习2、加法练习器实例◆练习3、项目选择器实例◆练习4、倒计时器实例◆练习5、英文字母练习器实例【实训报告】实训二数据库的创建和管理【实训目的】掌握:1、SQL Server2000数据库的创建方法2、由已经生面的数据库产生SQL Server脚本的方法3、查看、修改数据库属性的方法4、数据库删除的方法。
【实训内容】1、用企业管理器创建XXXXXX数据库2、用T—SQL语句创建XXXXXX数据库3、查看、修改XXXXXX数据库属性4、XXXXXX数据库删除【实训报告】实训三数据表的创建与管理【实训目的】掌握:1、表的创建方法2、修改表的结构3、能够向已经创建的表中添加、删除及修改数据【实训内容】分别使用T_SQL命令、企业管理器向前面所建XXXXXX数据库做:1、创建关系模式中的表2、管理表3、对表添加、修改和删除数据【实训报告】实训四(1)数据查询【实训目的】1、理解查询的概念和方法2、掌握查询分析器的使用方法3、掌握SELECT语句的应用、多表查询、复杂查询的方法【实训内容】分别使用T_SQL命令、企业管理器向前面所建数据库做(至少对每个实体表一个查询):1、单表查询2、多表查询3、进行嵌套查询4、另用新表存储以上其中一个查询结果5、查询统计汇总【实训报告】实训四(2)视图的创建与使用【实训目的】掌握创建视图、测试、更改视图的方法【实训内容】分别使用T_SQL命令、企业管理器向前面所建数据库创建、管理视图(至少8个)【实训报告】实训五设计数据完整性【实训目的】掌握:1、掌握约束的概念及实施方法2、掌握规则的概念及实施的方法3、掌握默认值的概念及实施的方法【实训内容】分别使用T_SQL命令向前面所建数据库做:1、建立表与表之间的联系,建立必要的外键与主键、外键、唯一、非空、检查、缺省约束。
面向对象程序设计课程-实验报告一、实验目的本实验旨在深入理解和掌握面向对象程序设计的基本概念和思想,通过具体编程实践,提高解决实际问题的能力。
二、实验内容设计一个简单的面向对象程序,实现学生信息管理功能,包括学生信息的输入、显示、修改和删除。
三、实验步骤与代码实现1.定义学生类Student,包含属性:姓名name、年龄age、性别gender,以及方法:输入信息inputInfo、显示信息displayInfo、修改信息 modifyInfo、删除信息 deleteInfo。
class Student:def__init__(self, name, age, gender): = nameself.age = ageself.gender = genderdef inputInfo(self):print("请输入学生信息:") = input("姓名:")self.age = input("年龄:")self.gender = input("性别:")def displayInfo(self):print("学生信息:")print("姓名:" + )print("年龄:" + str(self.age))print("性别:" + self.gender)def modifyInfo(self):print("请输入要修改的学生信息:") = input("姓名:")self.age = input("年龄:")self.gender = input("性别:")print("修改后的学生信息:")print("姓名:" + )print("年龄:" + str(self.age))print("性别:" + self.gender)def deleteInfo(self):print("请输入要删除的学生信息:") = input("姓名:")print("删除后的学生信息:")print("姓名:" + )2.创建学生对象,调用方法进行信息的输入、显示、修改和删除。
面向对象程序设计实验报告【实验报告】面向对象程序设计一、引言面向对象程序设计是一种以对象为基础的软件开发方法,它将现实世界中的事物抽象成对象,并通过对象之间的交互来实现程序的功能。
本次实验旨在通过实践,加深对面向对象程序设计的理解,并掌握面向对象程序设计的基本原理和技巧。
二、实验目的1. 熟悉面向对象程序设计的基本概念和术语;2. 掌握面向对象程序设计的基本原理和技巧;3. 能够运用面向对象程序设计的思想解决实际问题。
三、实验内容1. 设计一个简单的图书管理系统;2. 实现图书的增删改查功能;3. 设计并实现图书管理系统的类结构;4. 编写测试代码,验证图书管理系统的功能。
四、实验步骤1. 设计图书管理系统的类结构:a. 创建一个Book类,包含图书的属性(书名、作者、出版社等)和方法(借阅、归还等);b. 创建一个Library类,用于管理图书馆的图书,包含添加图书、删除图书、查找图书等方法;c. 创建一个User类,用于表示图书馆的用户,包含借书、还书等方法;d. 创建一个Main类,作为程序的入口,用于测试图书管理系统的功能。
2. 实现图书的增删改查功能:a. 在Book类中实现图书的增删改查方法;b. 在Library类中调用Book类的方法,实现图书的增删改查功能。
3. 设计并实现图书管理系统的类结构:a. 根据实验要求,设计图书管理系统的类结构,包括Book、Library和User 类;b. 在每个类中定义相应的属性和方法,实现图书管理系统的功能。
4. 编写测试代码,验证图书管理系统的功能:a. 在Main类中创建图书馆和用户对象;b. 调用相应的方法,测试图书管理系统的功能;c. 检查输出结果,确保图书管理系统的功能正常运行。
五、实验结果与分析经过实验,成功设计并实现了一个简单的图书管理系统。
该系统具备图书的增删改查功能,用户可以通过借书和还书操作实现对图书的借阅和归还。
经过多次测试,系统运行稳定,功能正常。
面向对象程序设计》C实验报告《面向对象程序设计》实验报告学院:专业:班级学号:姓名:学期:教师:实验一 C++基础练习院(系):课程名称:面向对象程序设计教师签名:实验目的和要求1.掌握C++程序的基本格式与规范,学会编写简单的C++程序。
2.理解C++程序结构的特点。
3.熟悉C++程序基本的输入和输出操作。
4.掌握C++数据类型常量和变量以及修饰符的使用方法。
5.掌握函数定义、函数调用和函数说明的方法。
6.熟悉作用域运算符的功能和基本使用方法。
7.掌握C++内存的动态分配与释放方法。
8.理解引用的概念,掌握引用的使用方法。
实验内容和步骤1. 调试如下的代码并回答问题。
#include <iostream.h>void main(){//First c++ programchar name[10];cout<<"please input your name:";cin>>name;cout<<"welcome "<<name<<endl;}(1)C++的注释和C有何不同?答:C语言的注释有一种,用/*……….*/作为注释分界符号C++除保留了这种注释方式之外,还提供了一种更有效的注释方式,该注释以“//”开始,到行尾结束。
(2)C++的输入和输出所使用的函数及其相应头文件与C有何不同?答:在C中进行输入输出操作时,常使用函数scanf和printf。
C++除了可以照常使用这两个函数进行输入输出外,还增加了标准输入流对象cin和标准输出流对象cout来进行输入和输出。
Iostream是C++系统定义的一个头文件,在这个文件中声明了程序所需要的输入和输出操作的有关信息。
在C语言中头文件中用“.h”作为后缀,如stdio.h、math.h等。
2. 单步调试如下的代码并回答问题。
#include <iostream.h>inline int f(int x){ return 2*x*x+4*x+5; }inline double f(double x){ return 2*x*x+4*x+5; }void main(){ int x=5;double y=5.2;cout<<f(x)<<endl;cout<<f(y)<<endl;}(1)inline的含义和作用是什么?答:含义:在函数说明前冠以关键字“inline”,该函数就被声明为内联函数,每当程序中出现对该函数的调用时C++编译器使用函数体中的代码插入到调用该函数的语句处,同时用实参取代形参。
面向对象程序设计实验报告面向对象程序设计实验报告一、引言面向对象程序设计(Object-Oriented Programming,简称OOP)是一种广泛应用于软件开发的编程范式。
本实验旨在通过实践,加深对面向对象程序设计的理解,并掌握其基本概念和技巧。
二、实验目的1. 理解面向对象程序设计的基本概念和思想;2. 掌握类、对象、继承、封装、多态等面向对象的核心概念;3. 运用面向对象的思想设计和实现一个简单的程序。
三、实验过程1. 设计类和对象在本次实验中,我们选择实现一个简单的学生管理系统。
首先,我们需要设计一个学生类(Student),包括学生的姓名、年龄、学号等属性,并定义相关的方法,如获取学生信息、修改学生信息等。
然后,我们创建多个学生对象,模拟学生管理系统中的多个学生。
2. 继承和多态为了进一步理解继承和多态的概念,我们可以设计一个教师类(Teacher),继承自学生类。
教师类除了继承学生类的属性和方法外,还可以定义自己特有的属性和方法。
通过创建教师对象,我们可以看到继承和多态的效果。
3. 封装和访问控制在面向对象程序设计中,封装是一个重要的概念。
我们可以将学生类的属性设置为私有(private),并通过公有(public)的方法来访问和修改属性。
这样做的好处是可以保护属性的安全性,同时提供统一的接口供外部使用。
四、实验结果通过实验,我们成功地实现了一个简单的学生管理系统。
我们可以创建学生对象,并通过调用相关方法来获取和修改学生的信息。
同时,我们还实现了教师类,通过继承和多态的特性,我们可以灵活地使用学生和教师对象。
五、实验总结通过本次实验,我们深入了解了面向对象程序设计的基本概念和思想。
通过设计和实现一个简单的程序,我们掌握了类、对象、继承、封装、多态等核心概念,并学会了如何运用这些概念来设计和实现面向对象的程序。
面向对象程序设计具有很多优点,如代码的可重用性、可维护性、可扩展性等。
通过合理地设计类和对象,我们可以更好地组织和管理代码,提高开发效率和代码质量。
面向对象程序设计实验报告实验一C++基础1.1实验目的1.了解并熟悉开发环境,学会调试程序;2.熟悉C++中简单的标准输入输出函数的使用方法;3.理解const修饰符的作用并学会应用;4.理解内联函数的优缺点并学会其使用场合;5.理解并学会函数重载;6.理解并熟练掌握使用new和delete来分配内存;7.理解并熟练掌握引用的使用方法。
1.2实验内容1.2.1程序阅读1.理解下面的程序并运行,然后回答问题。
#include<iostream.h>int max_def(int x,int y){return(x>y?x:y);}int max_def(int x,int y,int z){int temp=0;return(temp=(x>y?x:y))>z?temp:z;}double max_def(double x,double y){return(x>y?x:y);}int main(){int x1=0;int x2=0;double d1=0.0;double d2=0.0;x1=max_def(5,6);x2=max_def(2,3,4);d1=max_def(2.1,5.6);d2=max_def(12.3,3.4,7.8);-------------------------------------------------------①cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;cout<<"d1="<<d1<<endl;cout<<"d2="<<d2<<endl;--------------------------------------------------------②return 1;}问题一:上述程序的输出结果是什么?答:输出结果为问题二:①处调用的是哪个函数?答:①处调用的是double max_def(double x,double y)函数问题三:②处的输出结果为什么是d2=12,而不是d2=12.3?答:因为调用的int max_def(int x,int y,int z)函数返回值为整型。
实验一 Visual C++环境实验名称:实验一Visual C++环境实验目的:⒈熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。
⒉了解几种运算符的使用规则。
⒊掌握变量命名规则,学会变量的定义和使用。
实验原理:利用VC++编辑环境的便利来编写程序。
实验设备:电脑,VISUAL C++6.0实验内容:⒈通过一个最简单的程序熟悉用VC++来调试Dos程序的步骤:⑴使用Visual C++6.0对一个C++程序进行编辑、编译、连接和运行。
#include <iostream.h>void main(){cout<<”I am a student”<<endl;}实验代码:#include <iostream.h>void main(){cout<<"I am a student"<<endl;cout<<"THIS IS A 。
"<<endl;}实验结果:I am a student实验心得:THIS IS A 。
通过实验,我熟悉了VC++编辑环境,以及C++运算符及变量的特点。
整个实验过程为:1.开始、Microsoft visual sduio 6.0、Microsoft visual C++ 6.0打开创天中文VC++。
2.文件、新建、C++ source file输入程序、保存为meng.cpp。
3.编译、程序没有错误,(如有按要求修改)。
4.编译菜单下的执行meng.exe。
5.屏幕中弹出结果窗口。
实验二结构化程序设计实验名称:实验二结构化程序设计实验目的:⒈熟悉和理解C++语言中的类型简单数据(整型、实型、字符型)、运算、表达式;⒉掌握常见格式控制字符对输出结果的控制作用;⒊能利用学习的数据类型,编制简单的C++程序;⒋初步学习调试方法。
实验原理:利用对条件、循环语句、数组的掌握进行编程。
课程实验报告课程名称:面向对象程序设计院系:专业班级:学号:姓名:指导教师:目录实验一.面向过程的整型栈编程 (1)1.需求分析 (1)1.1题目要求 (1)1.2需求分析 (2)2.系统设计 (2)2.1概要设计 (2)2.2详细设计 (3)4.软件测试 (5)5.特点与不足 (6)5.1技术特点 (6)5.2不足和改进的建议 (6)6.过程和体会 (6)6.1遇到的主要问题和解决方法 (6)6.2课程设计的体会 (7)7.源码和说明 (7)7.1文件清单及其功能说明 (7)7.2用户使用说明书 (7)7.3源代码 (7)实验二.面向对象的整型栈编程 (17)1.1题目要求 (17)1.2需求分析 (18)2.系统设计 (18)2.1概要设计 (18)2.2详细设计 (18)3.软件开发 (20)4.软件测试 (20)5.特点与不足 (20)5.1技术特点 (20)5.2不足和改进的建议 (21)6.过程和体会 (21)6.1遇到的主要问题和解决方法 (21)6.2课程设计的体会 (21)7.源码和说明 (21)7.1文件清单及其功能说明 (21)7.2用户使用说明书 (21)7.3源代码 (21)实验三.基于算符重载的整型栈编程 (27)1.需求分析 (27)1.2需求分析 (28)2.系统设计 (28)2.1概要设计 (28)2.2详细设计 (28)3.软件开发 (29)4.软件测试 (29)5.特点与不足 (29)5.1技术特点 (29)5.2不足和改进的建议 (29)6.过程和体会 (30)6.1遇到的主要问题和解决方法 (30)6.2课程设计的体会 (30)7.源码和说明 (30)7.1文件清单及其功能说明 (30)7.2用户使用说明书 (30)7.3源代码 (30)实验四. 面向对象的整型队列编程 (35)1.需求分析 (35)1.1题目要求 (35)2.系统设计 (36)3.软件开发 (36)4.软件测试 (36)5.特点与不足 (37)5.1技术特点 (37)5.2不足和改进的建议 (37)6.过程和体会 (37)6.1遇到的主要问题和解决方法 (37)6.2课程设计的体会 (37)7.源码和说明 (37)7.1文件清单及其功能说明 (37)7.2用户使用说明书 (38)7.3源代码 (38)实验五. 基于组合的整型队列编程 (43)1.需求分析 (43)1.1题目要求 (43)1.2需求分析 (44)2.系统设计 (44)4.软件测试 (44)5.特点与不足 (45)5.1技术特点 (45)5.2不足和改进的建议 (45)6.过程和体会 (45)6.1遇到的主要问题和解决方法 (45)6.2课程设计的体会 (45)7.源码和说明 (45)7.1文件清单及其功能说明 (45)7.2用户使用说明书 (45)7.3源代码 (46)实验六. 基于继承的整型队列编程 (52)1.需求分析 (52)1.1题目要求 (52)1.2需求分析 (53)2.系统设计 (53)3.软件开发 (53)4.软件测试 (53)5.1技术特点 (54)5.2不足和改进的建议 (54)6.过程和体会 (54)6.1遇到的主要问题和解决方法 (54)6.2课程设计的体会 (54)7.源码和说明 (55)7.1文件清单及其功能说明 (55)7.2用户使用说明书 (55)7.3源代码 (55)实验一.面向过程的整型栈编程1.需求分析1.1题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。
河南财经政法大学
(计算机与信息工程)实验报告
实验项目名称类与成员函数课程名称面向对象程序设计(C++) 成绩评定实验类型:验证型□综合型□设计型□实验日期指导教师
学生姓名学号专业班级
一、实验项目训练方案
二、实验总结与评价
实验总结(包括实验数据分析、实验结果、实验过程中出现的问题及解决方法等):1.针对二维坐标系上的点,定义一个点类,实现简单的数据输入输出。
#include<iostream.h>
class Point
{
private:
int x,y;
public:
void setpoint(int,int);
void putpoint(int *a,int *b)
{*a=x;*b=y;}
void print(void)
{
cout<<"输出为:"<<"x="<<x<<" "<<"y="<<y<<endl;
}
};
void Point::setpoint(int a,int b)
{ cin>>a>>b;
x=a;y=b;}
void main()
{
Point s1;
int a,b;
s1.setpoint(100,300);
s1.putpoint(&a,&b);
cout<<"输入为:"<<"x="<<a<<" "<<"y="<<b<<endl;
s1.print();
}
s1.getstudent();
s1.putstudent();
return 0;
}
(如留存空白不足,可附A4纸)
对实验的自我评价:
对于结构体和指针的知识还不够熟练,因此在学习类的时候有很大困难,需要及时回顾。
指导教师评语:
实验成绩评定:指导教师(签名):日期:年月日。