面向对象C++实验报告

合集下载

面向对象的实验报告

面向对象的实验报告

一、实验目的1. 理解面向对象编程的基本概念,如类、对象、继承、封装、多态等。

2. 掌握面向对象编程的基本语法和常用操作。

3. 通过实验加深对面向对象编程的理解和应用。

二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C#三、实验内容1. 定义一个简单的类,并创建对象实例。

2. 在类中定义属性和方法,并演示其使用。

3. 使用继承实现类的扩展。

4. 使用封装保护类的内部数据。

5. 使用多态演示不同对象间的动态类型转换。

四、实验步骤1. 定义一个名为“Person”的类,包含以下属性和方法:- 属性:姓名(Name)、年龄(Age)、性别(Gender)- 方法:打印个人信息(PrintInfo)2. 创建“Person”类的对象实例,并演示属性和方法的使用。

3. 定义一个名为“Student”的类,继承自“Person”类,并添加以下属性和方法: - 属性:学号(StudentID)- 方法:打印学生信息(PrintStudentInfo)4. 创建“Student”类的对象实例,并演示属性和方法的使用。

5. 定义一个名为“Employee”的类,继承自“Person”类,并添加以下属性和方法:- 属性:工号(EmployeeID)、职位(Position)- 方法:打印员工信息(PrintEmployeeInfo)6. 创建“Employee”类的对象实例,并演示属性和方法的使用。

7. 定义一个名为“Manager”的类,继承自“Employee”类,并添加以下属性和方法:- 属性:部门(Department)- 方法:打印经理信息(PrintManagerInfo)8. 创建“Manager”类的对象实例,并演示属性和方法的使用。

9. 使用多态演示不同对象间的动态类型转换。

五、实验结果与分析1. 创建“Person”类和对象实例,并演示属性和方法的使用。

面向对象编程实验报告

面向对象编程实验报告

面向对象编程实验报告一、实验目的本次实验旨在通过面向对象编程的方式,设计并实现一个简单的学生信息管理系统,加深对面向对象编程原理和概念的理解,并掌握面向对象编程的应用技巧。

二、实验内容1. 设计学生类(Student):包括学生的基本信息(学号、姓名、性别、年龄等)以及相关操作(添加信息、修改信息、删除信息等)。

2. 设计班级类(Class):包括班级的基本信息(班级编号、班级名称等)以及与学生类的关联关系(一个班级包含多个学生)。

3. 设计主程序类(Main):用于对学生信息进行管理和操作,包括添加学生、删除学生、修改学生信息、查询学生信息等功能。

4. 编写测试用例:对设计的学生信息管理系统进行测试,保证系统能够正常运行并实现预期功能。

三、实验步骤1. 设计学生类(Student):首先确定学生类的属性和方法,定义学生类的成员变量(学号、姓名、性别、年龄)以及成员方法(添加学生信息、修改学生信息、查询学生信息等)。

2. 设计班级类(Class):确定班级类的属性和方法,包括班级编号、班级名称以及一个包含学生信息的集合,设计班级类与学生类的关联关系。

3. 编写主程序类(Main):在主程序类中实现学生信息的管理功能,通过用户输入选择对学生信息的操作,调用学生类和班级类中的方法实现相应功能。

4. 编写测试用例:设计多个测试用例,分别测试添加学生、删除学生、修改学生信息等功能,确保系统能够正确运行并实现预期功能。

四、实验结果分析经过测试,学生信息管理系统能够正常运行并实现预期功能。

用户可以通过主程序类对学生信息进行添加、删除、修改和查询操作,操作界面友好,操作流程清晰,便于用户操作和管理学生信息。

五、实验总结通过本次实验,我深入理解了面向对象编程的原理和概念,掌握了面向对象编程的应用技巧,提升了对Java编程语言的熟练程度。

面向对象编程具有代码复用、维护方便和高扩展性等优点,是一种高效的编程思想。

在今后的学习和工作中,我将继续深入研究面向对象编程,不断提升自己的编程能力。

中南大学数学院大三年级面向对象实验报告

中南大学数学院大三年级面向对象实验报告

中南大学数学院大三年级面向对象实验报告C++面向对象程序设计实验报告姓名:班级:学号:实验一,画线在visual C++6.0里面文件->新建->工程里面的MFC Appwizard [EXE]除了第二步选单文档,基本上都是默认的。

建一个文件进行一下操作int m;CPoint p1,p2;在构造函数里面初使化m CZuoBiaoView::CZuoBiaoView(){// TODO: add construction code herem=0;}在资源文件Menu中的IDR_MAINFRAME中添加消息句柄OnLButtonDown,OnLButtonUp,OnMouseMove .再回到ZuoBiaoView.cpp中编译一下程序void CZuoBiaoView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultCClientDC dc(this);m=1;p1=point;CView::OnLButtonDown(nFlags, point);}void CZuoBiaoView::OnLButtonUp(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultp2=point;CClientDC dc(this);OnPrepareDC(&dc);dc.MoveTo(p1);dc.LineTo(p2);m=0;CView::OnLButtonUp(nFlags, point);}void CZuoBiaoView::OnMouseMove(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultstatic int n=0;switch(++n){case 1:p2=point;break;case 2:p1=p2;p2=point;n=0;break;}CClientDC dc(this);OnPrepareDC(&dc);if(m==1){dc.MoveTo(p1);dc.LineTo(p2);}CView::OnMouseMove(nFlags, point);}实验二,创建菜单用MFC创建菜单按钮具体的制作过程:首先,生成一个MFC AppWizard EXE 工程生成一个以CButton为基类的新类,名为CMenuButton,然后用ClassWizard 为其添加两个成员函数:DrawItem()和PreSubclassWidnow();手工为CMenuButton类添加BOOL类型m_bDrawFocusRect成员变量,用于决定是否在按钮上画焦点矩形,添加SetDrawFocusRect()函数用于设置这个标志,默认为画焦点矩形;添加两个枚举类型的变量m_ArrowType和m_PopupPos,用于决定所画的箭头的类型和菜单弹出的位置。

面向对象实验报告

面向对象实验报告

面向对象实验报告面向对象实验报告引言:面向对象编程是一种软件开发方法,它将现实世界中的事物抽象成对象,通过定义对象的属性和行为来描述其特征和功能。

本实验旨在通过实际操作,深入理解面向对象编程的概念和原则。

一、实验背景面向对象编程是计算机科学领域的重要概念之一,它具有封装、继承和多态等特性,可以提高代码的可重用性和可维护性。

在本实验中,我们将通过编写一个简单的学生管理系统来探索面向对象编程的实际应用。

二、实验目的1. 理解面向对象编程的基本概念和原则;2. 掌握类的定义、对象的创建和方法的调用;3. 熟悉封装、继承和多态的使用;4. 实践面向对象编程的思维方式和方法论。

三、实验过程1. 类的定义在学生管理系统中,我们首先需要定义一个学生类,包含学生的基本信息,如学号、姓名、年龄等。

通过封装这些属性和定义相应的方法,我们可以实现对学生对象的创建和操作。

2. 对象的创建在主程序中,我们可以通过实例化学生类来创建学生对象。

通过调用构造函数,为学生对象赋予具体的属性值。

例如,创建一个名为Tom的学生对象,可以使用以下代码:Student tom = new Student("001", "Tom", 18);3. 方法的调用定义了学生类后,我们可以为其添加一些方法,如获取学生信息、修改学生信息等。

通过调用这些方法,可以实现对学生对象的操作和管理。

例如,获取Tom的年龄可以使用以下代码:int age = tom.getAge();4. 继承的应用在学生管理系统中,我们可以将学生类作为基类,派生出一些特定类型的学生类,如研究生、本科生等。

通过继承,子类可以继承基类的属性和方法,并可以添加自己特有的属性和方法。

这样,我们可以更好地组织和管理不同类型的学生对象。

5. 多态的实现通过使用多态,我们可以在不同的上下文中使用同一个方法名,实现不同的功能。

例如,在学生管理系统中,我们可以定义一个统一的显示信息方法,然后在不同的学生类中重写该方法,以实现不同类型学生的信息展示。

面向对象程序设计C++实验报告-代码心得部分汇总word版

面向对象程序设计C++实验报告-代码心得部分汇总word版
}Sum={0,0,0};/*全局,可省略初值0 */
/*记录chi,eng,math最高分*/
struct
{
int max_chi;/*最高分数*/
int max_eng;
int max_math;
char name_chi[10];/*最高分者的姓名*/
char name_eng[10];
char name_math[10];
TopGuy.max_eng,_eng);
printf("数学平均%5.2f分,最高分%d分:%s\n", \
((float)Sum.math/(float)count), \
TopGuy.max_math,_math);
}
getche();
}
实验
#include <string.h>
printf("语文平均%5.2f分,最高分%d分:%s\n", \
((float)Sum.chi/(float)count), \
TopGuy.max_chi,_chi);
printf("英文平均%5.2f分,最高分%d分:%s\n", \
((float)Sum.eng/(float)count), \
Sum.eng += student[count].eng_sco;
Sum.math += student[count].math_sco;
if(student[count].chi_sco > TopGuy.mahi = student[count].chi_sco;
}TopGuy;
void main(void)
{
struct Scale student[50];/*定义结构数组*/

面向对象程序设计实验报告1

面向对象程序设计实验报告1
看看这些字符的10进制ascii码哦ascii码一样同一种字符字符怎么参加了数学运算哦是字符对应的ascii码整数2006年级20061719号姓名同组姓名实验日期2010看看这个字符是什么
实验一
实验名称:实验一Visual C++环境
实验目的:
⒈熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。
y=fun(x);
if(y==0)
cout<<"they input num is sushu"<<endl;
else
cout<<"they input num is not sushu"<iostream.h>
#include<math.h>
float fun(float a,float b,float c,float d)
return 0;
3. #include<iostream.h>
void main()
{inta,b,c,d,e;
double score;
a=b=c=d=0;
cin>>score;
while(score>=0)
{
if(score>=90)
a++;
else
if(score>=80)
b++;
else
if(score>=70)
do{
*p=*(--p);
}while( p>s+n);
(*p)=c;
}
return s;
}
int main()

C++面向对象程序设计》实验报告

C++面向对象程序设计》实验报告

《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++基础实验二C++语言进阶实验三面向对象高级特性实验成绩细化表实验一面向对象开发环境基础一、实验目的(1)了解C++的开发环境,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个C++程序。

(3)通过运行简单的C++程序,初步了解C++源程序的基本组成。

.(4)掌握C++中基本数据类型。

(5)掌握C++中各种运算符的作用、优先级和结合性,能熟练运用各种表达式。

(6)掌握不同数据类型的输入输出。

(7)掌握简单的语法错误的查找和改正方法。

二、实验设备PC机,操作系统Windows 8,开发环境Visual Studio 2010三、实验原理配套教材实验一、实验二四、实验源程序//2-35#include <iostream>#include <iomanip>using namespace std;int main(){int x,y,ans;for(x=1;x<10;x++){for(y=1;y<10;y++){ans=x*y;cout<<x<<"*"<<y<<"="<<setw(2)<<ans<<"";}cout<<endl;}system("pause");return 0;}五、自评良好实验二C++语言进阶一、实验目的(1)熟练掌握if语句、switch语句、for语句、while及do-while语句(2)掌握转移控制语句(3)理解编译预处理(4)掌握函数的定义和调用(5)掌握数组的定义和使用(6)掌握结构和枚举类型的定义方法和使用(7)掌握指针的使用方法及应用(8)掌握指针与数组(9)掌握指针传递和引用传递二、实验设备PC机,操作系统Windows 8,开发环境Visual Studio 2010三、实验原理配套教材实验三、实验五、实验六四、实验源程序//3-2#include<iostream>#include<stdlib.h>using namespace std;int Max1(int a,int b){if(a>b)return(a);elsereturn(b);}int Max1(int a, int b,int c){if(a>b){if(a>c)return(a);}else{if(b>c)return(b);elsereturn(c);}}double Max1(double x,double y){if(x>y)return(x);elsereturn(y);}double Max1(double x,double y,double z) {if(x>y){if(x>z)return(x);}else{if(y>z)return(y);elsereturn(z);}}int main(){int a,b,c;double x,y,z;cout<<"请输入两个整数:";cin>>a>>b;cout<<"最大值为:"<<Max1(a,b)<<endl; cout<<"请输入三个整数:";cin>>a>>b>>c;cout<<"最大值为:"<<Max1(a,b,c)<<endl; cout<<"请输入两个双精度数:";cin>>x>>y;cout<<"最大值为:"<<Max1(x,y)<<endl; cout<<"请输入三个双精度数:";cin>>x>>y>>z;cout<<"最大值为:"<<Max1(x,y,z)<<endl;system("pause");return 0;}//5-14#include<iostream>usingnamespace std;class Boat;class Car{private:int weight;public:Car(int j){ weight=j;}friendint getTotalWeight(Car &aCar,Boat &aBoat);};class Boat{private:int weight;public:Boat(int j){ weight=j;}friendint getTotalWeight(Car &aCar,Boat &aBoat);};int getTotalWeight(Car &aCar,Boat &aBoat){ return aCar.weight+aBoat.weight;}int main(){Car c(10);Boat b(7);cout<<"The total weight is : "<<getTotalWeight(c,b)<<endl; system("pause");return 0;}//6-6#include<iostream>#include<string>usingnamespace std;class Employee{private:char name[30];char stree[30];char city[30];char zip[6];public:Employee();void change_name();void display();};Employee::Employee(){strcpy(name,"lianmeng");strcpy(stree,"piamganjie3hao");strcpy(city,"shanghai");strcpy(zip,"900000");}void Employee::change_name(){cout<<"Enter a name:";cin>>name;}void Employee::display(){cout<<"\n"<<name<<"\t"<<stree<<"\t"<<city<<"\t"<<zip<<"\t"; }int main(){int i;Employee *p=new Employee[5];for(i=0;i<5;i++){p[i].display();}for(i=0;i<5;i++){cout<<"\nnumber"<<i+1<<" : "<<endl;p[i].change_name();}for(i=0;i<5;i++){ p[i].display(); }delete p;system("pause");return 0;}五、自评良好实验三面向对象高级特性一、实验目的(1)掌握类与对象的定义(2)掌握对象成员的访问、构造函数和析构函数(3)理解基类和派生类(4)掌握单一继承和多重继承的定义和使用方法(5)掌握运算符重载程序的编写(6)掌握虚函数的编写和使用(7)掌握流类库与输入/输出;异常处理二、实验设备PC机,操作系统Windows 8,开发环境Visual Studio 2010 三、实验原理配套教材实验四、七、八、十一四、实验源程序//4-8#include<iostream>usingnamespace std;class Dog{public:Dog(int nage=0,int nweight=0){age=nage;weight=nweight;}Dog(Dog &d);inlinevoid showstatus();void setstatus();private:int age,weight;};Dog::Dog(Dog &d){age=d.age;weight=d.weight;}inlinevoid Dog::showstatus(){cout<<"His status is:"<<endl<<"age:"<<age<<"\tweight:"<<weight<<"kg"<<endl; }void Dog::setstatus(){int na,nw;cout<<"Please set age and weight:";cin>>na>>nw;age=na;weight=nw;}int main(){Dog Zangming(19,60);cout<<"Here is a dong Zangming!!"<<endl;Zangming.showstatus();cout<<"Please reset his status!"<<endl;Zangming.setstatus();cout<<"\n\nNow:"<<endl;Zangming.showstatus();system("pause");}//7-6#include<iostream>usingnamespace std;class Mammal{public:Mammal(int a,int w):age(a),weight(w){cout<<"Mammal Constructor called..."<<endl;}~Mammal(){cout<<"Mammal Destructor called..."<<endl;}private:int age;int weight;};class Dog:public Mammal{public:Dog(int a,int w):Mammal(a,w){cout<<"Dog Constructor called..."<<endl;}~Dog(){cout<<"Dog Destructor called..."<<endl;}};int main(){{cout<<"Constructing a Mammal..."<<endl;Mammal mammal(8,12);cout<<endl<<"Constructing a Dog..."<<endl;Dog dog(3,9);cout<<endl<<"Destructing......"<<endl;}system("pause");return 0;}//8-5#include<iostream>usingnamespace std;class Mammal{public:Mammal(){cout<<"Mammal Constructor..."<<endl;} ~Mammal(){cout<<"Mammal Destructor..."<<endl;} virtualvoid speak()=0;};class Dog:public Mammal{public:Dog(){cout<<"Dog Constructor..."<<endl;}~Dog(){cout<<"Dog Destructor..."<<endl;}virtualvoid speak();};void Dog::speak(){cout<<"Dog's sound...."<<endl;}int main(){Dog *pdog=new Dog;pdog->speak();delete pdog;system("pause");return 0;}//11-5#include<fstream>#include<iostream>usingnamespace std;int main(){ofstream file1("test.txt",ios::app);file1<<"已成功添加字符!";file1.close();char ch;ifstream file2("test.txt");while(file2.get(ch))cout<<ch;file2.close();system("pause");return 0;}五、自评良好实验成绩细化表。

面向对象程序设计实验一及实验报告样式

面向对象程序设计实验一及实验报告样式

《面向对象程序设计》实验一实验报告1 实验目的:(1)了解在VC++、C-free中如何编辑、编译、连接和运行一个C++程序;(2)掌握声明类的方法,类和类的成员的概念以及定义对象的方法(3)了解多文件的C++程序结构2 实验任务(1)输入两个整数,将它们按由大到小的顺序输出。

要求使用变量的引用;(2)编写一个程序,将两个字符串连接起来,结果取代第一个字符串;(3)声明Animal 类,数据成员有age,成员函数有SetAge()等。

首先把数据成员声明为公有的,在main()函数中访问,再把它改为私有的,指出在main()函数中访问会出现怎样的情况,如何避免?该程序需要在同一个文件中分别给出类的声明、类的实现、类的演示每部分的代码。

(4)声明日期类,数据成员有year、month、day,成员函数有输出日期、加一天等。

练习使用多文件结构来组织程序。

3 程序清单实验一:#include"iostream"using namespace std;int main(){int i,j;cout<<"input two number"<<endl;cin>>i>>j;swap(i,j);cout<<i<<","<<j<<endl;return 0;}void swap(int &a,int &b){int temp;temp=a;a=b;b=temp;}实验二:#include"iostream"#include"string"using namespace std;int main(){string string1,string2;cout<<"please input two string:";cin>>string1>>string2;string1=string1+string2;cout<<string1<<endl;return 0;}实验三:4 运行结果图1.1 任务一运行结果图2.1任务二运行结果5 总结或感悟(对运行结果所作的分析以及本次调试程序所取得的经验。

c#实验报告(完整版)

c#实验报告(完整版)

c#实验报告(完整版)一、实验目的通过本次实验,我们将掌握C#编程语言的基本语法和面向对象编程思想,熟悉C#开发环境的使用,并能够编写简单的C#程序。

二、实验内容1. 环境搭建:安装Visual Studio开发环境,并配置C#开发环境。

2. C#入门:学习C#的基本语法和常用关键字,了解数据类型、变量和运算符等基本概念。

3. C#面向对象编程:学习C#的面向对象编程思想,包括类、对象、封装、继承和多态等概念。

4. C#程序设计:通过编写实例程序,加深对C#的理解,并掌握C#程序的编写和调试方法。

三、实验步骤和结果1. 环境搭建:下载并安装Visual Studio开发环境,根据提示进行基本配置,创建一个新的C#项目。

2. C#入门:在新建项目中,创建一个C#源代码文件,编写一个简单的程序,输出"Hello, World!"。

通过运行该程序,验证编程环境和语法是否正确。

3. C#面向对象编程:定义一个名为"Person"的类,包含姓名、年龄和性别等属性,以及计算年龄的方法。

在主程序中创建一个"Person"对象,并设置对象的属性值,调用计算年龄的方法并将结果输出。

4. C#程序设计:根据实际需求,设计并实现一个简单的学生成绩管理系统。

定义一个名为"Student"的类,包含学生姓名和考试成绩等属性,以及计算平均分的方法。

通过用户输入学生姓名和考试成绩,创建多个"Student"对象,并调用计算平均分的方法,将结果输出。

五、实验总结本次实验我们通过搭建C#开发环境,学习了C#的基本语法和面向对象编程的思想。

通过编写实例程序,我们深入理解了C#程序设计的过程,掌握了C#的基本用法和调试方法。

通过本次实验,我们不仅熟悉了C#编程语言和开发环境的使用,还掌握了面向对象编程的基本思想和方法。

这对我们今后进行软件开发和编程工作将有很大的帮助。

实验二 面向对象编程实验报告

实验二 面向对象编程实验报告

实验二面向对象编程实验报告一、实验目的本次实验旨在深入理解和掌握面向对象编程的基本概念和方法,通过实际编程操作,提高运用面向对象思想解决问题的能力,熟悉面向对象编程的开发流程和技巧,培养良好的编程习惯和代码规范。

二、实验环境本次实验使用的编程环境为具体编程环境名称及版本,操作系统为操作系统名称及版本。

三、实验内容(一)问题描述设计一个简单的学生管理系统,能够实现对学生信息(包括姓名、学号、年龄、成绩等)的录入、查询、修改和删除操作。

(二)类的设计1、设计一个`Student` 类,用于表示学生对象。

该类包含以下属性:`name`(姓名)、`student_id`(学号)、`age`(年龄)、`score`(成绩)。

2、为`Student` 类添加构造函数,用于初始化学生对象的属性。

3、为`Student` 类添加`get` 和`set` 方法,用于获取和设置学生对象的属性值。

(三)功能实现1、录入功能:实现用户输入学生信息,并创建`Student` 对象进行存储。

2、查询功能:根据学号或姓名查询学生信息,并输出查询结果。

3、修改功能:根据学号或姓名找到对应的学生对象,修改其属性值。

4、删除功能:根据学号或姓名删除对应的学生对象。

四、实验步骤(一)类的实现```javapublic class Student {private String name;private String studentId;private int age;private double score;public Student(String name, String studentId, int age, double score) {thisname = name;thisstudentId = studentId;thisage = age;thisscore = score;}public String getName(){return name;}public void setName(String name) {thisname = name;}public String getStudentId(){return studentId;}public void setStudentId(String studentId) {thisstudentId = studentId;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}public double getScore(){return score;}public void setScore(double score) {thisscore = score;}}```(二)主函数实现```javaimport javautilArrayList;import javautilScanner;public class StudentManagementSystem {private ArrayList<Student> students;public StudentManagementSystem(){students = new ArrayList<>();}public static void main(String args) {StudentManagementSystem system = new StudentManagementSystem();Scanner scanner = new Scanner(Systemin);while (true) {Systemoutprintln("1、录入学生信息");Systemoutprintln("2、查询学生信息");Systemoutprintln("3、修改学生信息");Systemoutprintln("4、删除学生信息");Systemoutprintln("5、退出系统");int choice = scannernextInt();switch (choice) {case 1:systemaddStudent(scanner);break;case 2:systemqueryStudent(scanner);break;case 3:systemmodifyStudent(scanner);break;case 4:systemdeleteStudent(scanner);break;case 5:Systemoutprintln("感谢使用,再见!");Systemexit(0);default:Systemoutprintln("输入有误,请重新输入!");}}}//录入学生信息public void addStudent(Scanner scanner) {Systemoutprintln("请输入学生姓名:");String name = scannernext();Systemoutprintln("请输入学生学号:");String studentId = scannernext();Systemoutprintln("请输入学生年龄:");int age = scannernextInt();Systemoutprintln("请输入学生成绩:");double score = scannernextDouble();Student student = new Student(name, studentId, age, score);studentsadd(student);Systemoutprintln("学生信息录入成功!");}//查询学生信息public void queryStudent(Scanner scanner) {Systemoutprintln("请输入查询方式(1、按学号查询 2、按姓名查询):");int queryType = scannernextInt();if (queryType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){Systemoutprintln("姓名:"+ studentgetName());Systemoutprintln("学号:"+ studentgetStudentId());Systemoutprintln("年龄:"+ studentgetAge());Systemoutprintln("成绩:"+ studentgetScore());return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (queryType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){Systemoutprintln("姓名:"+ studentgetName());Systemoutprintln("学号:"+ studentgetStudentId());Systemoutprintln("年龄:"+ studentgetAge());Systemoutprintln("成绩:"+ studentgetScore());return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}//修改学生信息public void modifyStudent(Scanner scanner) {Systemoutprintln("请输入修改方式(1、按学号修改 2、按姓名修改):");int modifyType = scannernextInt();if (modifyType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){Systemoutprintln("请输入新姓名:");String newName = scannernext();Systemoutprintln("请输入新年龄:");int newAge = scannernextInt();Systemoutprintln("请输入新成绩:");double newScore = scannernextDouble();studentsetName(newName);studentsetAge(newAge);studentsetScore(newScore);Systemoutprintln("学生信息修改成功!");return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (modifyType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){Systemoutprintln("请输入新学号:");String newStudentId = scannernext();Systemoutprintln("请输入新年龄:");int newAge = scannernextInt();Systemoutprintln("请输入新成绩:");double newScore = scannernextDouble();studentsetStudentId(newStudentId);studentsetAge(newAge);studentsetScore(newScore);Systemoutprintln("学生信息修改成功!");return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}//删除学生信息public void deleteStudent(Scanner scanner) {Systemoutprintln("请输入删除方式(1、按学号删除 2、按姓名删除):");int deleteType = scannernextInt();if (deleteType == 1) {Systemoutprintln("请输入学号:");String studentId = scannernext();for (Student student : students) {if (studentgetStudentId()equals(studentId)){studentsremove(student);Systemoutprintln("学生信息删除成功!");return;}}Systemoutprintln("未找到该学号对应的学生信息!");} else if (deleteType == 2) {Systemoutprintln("请输入姓名:");String name = scannernext();for (Student student : students) {if (studentgetName()equals(name)){studentsremove(student);Systemoutprintln("学生信息删除成功!");return;}}Systemoutprintln("未找到该姓名对应的学生信息!");} else {Systemoutprintln("输入有误,请重新输入!");}}}```五、实验结果通过对程序的运行和测试,能够成功实现学生信息的录入、查询、修改和删除功能。

面向对象程序设计实验报告

面向对象程序设计实验报告

面向对象程序设计实验报告实验报告(1)2015.6【实验作者】学号:姓名:班级:教学站:【实验名称】实验一:熟悉C++程序的风格和C++程序的上机全过程【实验目的】1.熟悉C++程序的风格,熟悉实验环境。

2.练习C++程序的输入、修改、编译、连接与运行的全过程。

3.本实验有4个程序【实验内容】1. 习题2.2下面是一个C程序,改写它,使它采用C++风格的I/O语句。

(1)该程序做什么工作?输入两个整数,求两个整数的大于1 的最小公约数[(另外请教下毛老师:如果最小公约数与最小数相等时,我觉得也有可能这个数是两个数的大于1 的最小公约数)即7与14的公约数为1,7按题意的话,要大于1,那么7也是这两个数的最小公约数,但程序不认为它们具有公约数]。

(2)该程序中那几个数是由键盘输入的?那几个数是输出的?那几个数是临时变量?a与b 由键盘输入;d 是输出的;a,b,d,min 都是临时变量。

(3)用C++风格的I/O语句是什么?#include <iostream.h> cout<<与cin>>(4)写出该程序的算法(用流程图表示)框图1:(5)该程序你有否上机编译、连接、运行通过。

有上机编译连接并运行通过,但有些疑问!2. 习题 2.20分析下面程序的输出结果:(1)该程序做什么工作?利用引用函数改变一个变量的值。

(2)该程序有几个函数?其中f函数是什么函数?其功能是什么?一个函数,F函数是一个引用返回值的函数,并且该函数参数也为一个引用,函数功能是送入一个对变量引用,将变量+10后送回。

成为对返回值的引用。

(3)写出该程序的算法(用流程图表示)框图2:(4)该程序你有否上机编译、连接、运行通过。

该程序有上机编译并连接运行通过。

3. 习题2.23 建立一个被称为sroot( )的函数,返回其参数的二次根。

重载sroot( )三次,让它分别返回整数、长整数与双精度数的二次根(为了实际计算二次根,可以使用标准库函数sqrt( ))。

《面向对象程序设计_C++》实验报告

《面向对象程序设计_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-x3/3+x5/5-x7/7+…求π=?(1)源代码和说明:#includeusing 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="<return 0;}2)运⾏结果:1实验⼆ C++简单程序设计实验(验证性实验4学时)1.⽬的要求:会编写简单的C++程序;复习基本数据类型变量和常量的应⽤;复习运算符与表达式的应⽤;复习结构化程序设计基本控制结构的应⽤;复习⾃定义数据类型的应⽤;练习使⽤简单的输⼊输出;观察头⽂件的作⽤;学会使⽤VC6.0开发环境中的debug调试功能;熟练程序设计中的技巧;2.实验内容:1)给定⼀个字符变量输出其⼆进制形式。

例如char a=’a’;其⼆进制为00100001。

1)源代码和说明#includeusing namespace std;int main(){char ch;int j,k[8]={0};cout<<"请输⼊⼀个字符:"<cin>>ch;for(j=0;j<=7;j++){if(ch){if(ch%2==0)k[j]=0;elsek[j]=1;ch=(ch-(ch%2))/2;}}for(j=7;j>=0;j--){cout<}cout<}2)运⾏结果:2)给定⼀个字符变量输出其⼆进制反转形式。

[面向对象系统分析和设计综合实验报告范文4]面向对象程序设计实验报告范文

[面向对象系统分析和设计综合实验报告范文4]面向对象程序设计实验报告范文

[面向对象系统分析和设计综合实验报告范文4]面向对象程序设计实验报告范文实验名称:实验4设计模型实验2学期:2022-2022学年第二学期一、实验目的1.熟练使用面向对象设计原则对系统进行重构;2.熟练使用面向对象编程语言(JAVA或C++)实现几种常见的设计模式,包括单例模式、策略模式、装饰模式和适配器模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。

二、实验要求1.选择合适的面向对象设计原则对系统进行重构,正确无误地绘制重构之后的类图;2.结合实例,正确无误地绘制单例模式、策略模式、装饰模式和适配器模式的结构图;3.实现单例模式、策略模式、装饰模式和适配器模式,代码运行正确无误。

三、实验内容1.现实生活中,居民身份证号码具有唯一性,同一个人不允许有多个身份证号码,第一次申请身份证时将号码分配给居民,如果之后因为遗失等原因补办时,还是使用原来的身份证号码,不会产生新号码,现使用单例模式模拟该场景。

类图实现代码:publicclaIdClient{publictaticvoidmain(String[]arg){IdentityCardNo.getIntance();IdentityCardNo.getIntance();}}packageRefactoring1;publicclaIdentityCardNo{ privatetaticIdentityCardNointance;privateStringno;privateIdentityCardNo(){}publictaticIdentityCardNogetIntance(){if(intance==null){Sytem.out.println("第一次办理身份证,分配新号码"); intance=newIdentityCardNo();intance.etNo("No6000654321");Sytem.out.println("身份证号码为:"+intance.getNo()); }ele{Sytem.out.println("重复办理身份证,获取旧号码!");}returnintance;}publicStringgetNo(){returnno;}publicvoidetNo(Stringno){thi.no=no;}}2.每一麻将局都有两个骰子,因此骰子就应当是双例类。

面向对象程序C++设计实验报告

面向对象程序C++设计实验报告

面向对象程序C++设计实验报告计算机与信息工程系C++面向对象程序设计实验报告专业:计算机班级:学号:姓名:指导老师:刘文涛实验1:Visual C++6.0开发环境应用入门一、实验目的1、了解Visual C++6.0的特点。

2、熟悉Visual C++6.0的开发环境。

3、学习用Visual C++6.0编写标准的C++控制台程序。

二、实验任务使用Visual C++来建立一个非图形化的标准C++程序,编译、运行三、实验步骤#include <iostream.h>struct time{int year;int month;int day;int hour;int minue;int second;};void main(){time a;cout<<"please input year:";cin>>a.year;cout<<"please input month:";cin>>a.month;cout<<"please input day:";cin>>a.day;cout<<"please input hour:";cin>>a.hour;cout<<"please input minue:";cin>>a.minue;cout<<"please input second:";cin>>a.second;cout<<a.year<<"年"<<a.month<<"月"<<a.day<<"日"<<a.hour<<"时"<<a.minue<<"分"<<a.second<<"秒";}四:个人小结这是第一次开始学习C++,以前也没有接触过类似的东西。

面向对象程序设计C++实验报告

面向对象程序设计C++实验报告

电子科技大学信息与软件工程学院标准实验报告(实验)课程名称:面向对象程序设计C++电子科技大学教务处制表学生姓名:赵天豪学号:2014220902010 指导教师:李巧勤实验地点:信软学院实验室实验时间:15/12/21一、实验室名称:信软学院软件实验室二、实验项目名称:基于MFC的C++桌面应用开发三、实验学时:16学时四、实验原理:本次实验基于MFC开发C++桌面应用程序,实现可视化操作。

五、实验目的:充分运用所学的C++的数据封装、继承与派生、多态等全部核心内容,补充完整一个基于MFC的应用,使学生能够基本掌握OOA、OOD方法;熟练掌握OOP方法;初步了解基于Windows平台的桌面图形化应用的开发过程,掌握编程工具的使用;初步掌握建模工具的使用;基本掌握阅读、调试程序的能力。

六、实验内容:一位小学教师Ken希望完成这样的任务:针对于小学生正在学习四边形(quadrangle)的特性,编写一个小软件,能够随机在屏幕上显示矩形(rectangle)、正方形(square)、平行四边形(parallelogram)、梯形(trapezoid)和菱形(diamond)五种形体之一,同时显示该形体的特性和关键数据(随机产生),学生复习形体的特性,然后根据给出的关键数据计算形体的面积,软件判断其结果的正确性。

在学习过程中,软件记录产生的每一个形体,在学生选择不再继续后,将其学习的过程重放一遍,用以重温,加深印象。

根据上述描述,需要完成:1)必做内容根据Ken老师的要求,需要至少编写六个类:●Rect //注意:类名不要使用Rectangle●Square●Parallelogram●Trapezoid●Diamond●List(注:这六个类必须以上述名字命名)其中,前五个类用于描述五种形体。

五种形体不用顶点坐标的表示形式,而只是简单地用它们的特征值表示。

例如:矩形、平行四边形用长和高表示;正方形用边长表示;梯形用两条平行边长和高表示;菱形用两条对象线长表示。

面向对象程序设计实验报告

面向对象程序设计实验报告

面向对象程序设计实验报告实验一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)函数返回值为整型。

面向对象程序设计实验报告

面向对象程序设计实验报告
using System;
namespace _1
{
class Program
{
static void Main(string[] args)
{
int[][] jagArray=new int[2][]{new int[5],new int[3]};
for (int i = 0; i < jagArray.GetLength(0); i++)
(2)在代码编辑窗口内的Main()方法中添加如下代码:
using System;
namess HelloWorld
{
public static void Main()
{
Console.WriteLine("Hello world!");
}
}
}
(1)选择“调试” “启动调试”命令,或按【F5】键,或单击工具栏上的 按钮,运行程序,查看运行结果。
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j <= i;j++ )
Console.WriteLine("{0}\t", a[i, j]);
Console.WriteLine();
}
Console.Read();
}
}
}
(10)分析程序,写出程序的运行结果,并上机进行验证。
Console.Write("{0,-3}",jagArray[k][m]);
Console.WriteLine();
}
Console.Read();
}
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象程序设计-C++上机实验报告第一次:熟悉Visual C++开发环境及上机过程实验实验时间: 2015 年3月 11 日实验室: S311实验题目:使用Visual C++ 6.0集成环境来编辑、编译并运行程序1:#include <iostream>using namespace std;class TAdd{public:TAdd(int a,int b){x=a;y=b;cout<<"constructor."<<endl;cout<<x<<","<<y<<endl;}~TAdd(){ cout<<"destructor."<<endl;cout<<x<<","<<y<<endl;}int add(){return x+y; }private:int x,y;};int main(){TAdd p1(3,4);cout<<"x+y="<<p1.add()<<endl;TAdd p2(30,40);cout<<"x+y="<<p2.add()<<endl;return 0;}实验目的:1、了解和使用该相应的软件;2、熟悉VC环境的基本命令和功能键;3、熟悉常用的功能菜单命令;4、会编译、链接、运行程序;5、调试程序时若出现报错,能改正相应的错误;6、学习使用VC++环境的帮助;7、学习完整的C++程序开发过程;8、理解简单的C++程序结构。

实验要求:1.复习教材有关内容。

2.掌握VC控制台应用程序的开发、调试步骤。

3.完成实验报告。

实验主要步骤:1、创建新工程(1)单击菜单“文件/新建”,显示“新建:”对话框。

(2)在此对话框的列表栏中,选择“Win32 Console A pplication”(Win32控制台应用程序”)。

在“工程”栏中输入一个工程名。

在位置文本框中选择工程所在的路径,单击“确定”按钮。

(3)在弹出的“Win32 Consol Application-Step 1 of 1” 对话框中选择An empty project单选项。

然后单击“Finish”按钮。

(4)在“新建工程信息”对话框中单击“确认”按钮,完成工程创建过程。

2、创建C++源程序文件(1)编辑C++源程序:编辑C++源程序时,选择“文件”菜单项,在弹出的子菜单中选择新建(热键为Ctrl+N)。

(2)选择“文件”选项卡,在此属性页中选择“C++ Source File”,单击“确定”。

(3)在“C++源程序编辑”窗口下编辑C++源程序。

在编辑窗口键入相应的C++源程序。

3.编译连接和运行源程序(1)选择菜单项“编译”,出现“编译”的下拉菜单,在该下拉式菜单中选择“编译eg1-1.cpp”菜单项,这时系统开始对当前的源程序进行编译,在编译过程中,编译器会将错误信息显示在屏幕下方的“编译”窗口中。

错误信息包括错误所在大致位置和错误的性质。

用户可根据这些错误信息进行修改。

(2)编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下拉菜单中的“构件eg1-1.exe”选项。

“编译”窗口出现如图1-8所示的信息说明编译连接成功,并生成以源文件名为名字的可执行文件(eg1-1.exe)。

(3)执行可执行文件的方法是选择“编译”菜单项中“执行eg1-1.exe”选项。

这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗口中。

4.关闭工作区、打开工作区单击菜单“文件/关闭工作区”,关闭工作区。

单击菜单“文件/打开工作区”,在弹出的对话框中选定“H:\C++实验\实验一\实验一.dsw”,单击“打开”按钮,则可打开工作区,对已建立的工程文件进行修改。

实验结果:心得体会:这个实验要求不高,只是希望我们能够初步了解C++的运行和开发环境。

在实验的时候,我电脑的VisualC++6.0被卸载了,我又去网上下载安装了,在上机调试的过程中慢慢对C++有了一定的了解。

第二次:类的定义和对象的使用实验实验时间:2015年 3 月25 日实验室:S311实验题目:1.定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。

同时编写主函数使用这个类,实现对学生数据的赋值和输出。

要求:(1)使用成员函数实现输入、输出;(2)使用构造函数和析构函数,构造函数中实现对数据的输入、析构函数中实现输出;(3)编写主函数,定义对象,完成相应功能。

2.定义日期类Date。

要求:(1)可以设置日期;(2)日期加一天操作;(3)输出函数,输出格式为“XXXX年XX月XX日”;(4)编写主函数,定义对象,完成相应功能。

实验目的:1、掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装;2、类对象的定义;3、理解类的成员的访问控制的含义,共有、私有和保护成员的区别;4、掌握构造函数和析构函数的含义与作用、定义和实现,能够根据要求正确定义和重载构造函数。

能够根据给定的要求定义类并实现类的成员函数。

实验要求:1、根据实验要求写出相应的程序、调试程序;2、给出程序结果;3、真正理解实验内容,学到相应的知识。

实验主要步骤:1.#include <iostream>#include <string>using namespace std;class student{public:student(){}student(char *id,char *name,int age){strcpy(stuId,id);strcpy(stuName,name);stuAge = age;}void display(){cout<<"学号:"<<stuId<<"姓名:"<<stuName<<"年龄:"<<stuAge<<endl;}private:char stuId[10];char stuName[20];int stuAge;};int main(){student st("001","刘阳",15);st.display();return 0;}2. # include <iostream># include <iomanip>using namespace std;class Date{private:int year,month,day;public:void set(int y,int m,int d);bool isLeapYear(){ return (year%4==0&&year%100!=0)||(year%400==0);} friend Date & operator++(Date & a);void print();};void Date::set(int y,int m,int d){if(!(m<1||m>12)){ month=m;if(m==12||m==10||m==8||m==7||m==5||m==3||m==1) {if(!(d<1||d>31)) day=d;}else{ if(!(d<1||d>30))day=d;else exit(1);}}elseexit(1);year=y;}void Date::print(){ cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;} Date & operator++(Date & a){bool mend=0,yend=0;switch(a.month){case 12: yend=a.day==31;break;case 10: case 8: case 3: case 1: mend=a.day==31;break;case 2: mend=a.day==28+a.isLeapYear();break;case 4: case 6: case 9: case 11: mend=a.day==30;break;}yend?(a.day=1,a.month=1,a.year++):(mend?a.day=1,a.month++:a.day++); return a;}int main(){Date d1;d1.set(2013,4,20);d1.print();++d1;d1.print();}实验结果:实验截图1:实验截图2:心得体会:对实验的程序代码不是很懂,就翻阅了书籍和查找了百度,实验过程中,发现自己对C++的知识不是特别敏感,后来找来课本开始温习一遍,真发现学习是一个要瞻前顾后,循序渐进的过程。

还有很多知识需要自己去认真学习,通过实验也加深了对知识的了解和实际的运用,我相信以后的实验过程一定会事半功倍的。

第三次:多文件结构及静态成员和对象数组的使用实验实验时间: 2015年4月 1 日实验室: S311实验题目:1、编写一个函数,求从n个不同的数中取r个数的所有选择的种数。

要求:(1)将main()函数放在一个.cpp文件中;(2)将fn(int n) ,Cnr(int n, int r)放在另一个.cpp文件中;(3)将函数原型说明放在一个头文件中;(4)建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。

实验目的:1、掌握自定义头文件的方法;2、学会建立和调试多文件程序;3、了解静态成员的使用;4、掌握对象数组的使用。

实验要求:1、学会自定义头文件的方法。

2、调试程序并修改相应错误的地方。

3、给出相应结果。

实验主要步骤:一、编写一个函数,求从n个不同的数中取r个数的所有选择的种数。

要求:(1)将main()函数放在一个.cpp文件中;(2)将fn(int n) ,Cnr(int n, int r)放在另一个.cpp文件中;(3)将函数原型说明放在一个头文件中;(4)建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。

相关文档
最新文档