面向对象程序设计实验任务和指导(1)

合集下载

《面向对象程序设计》课程设计任务及指导书

《面向对象程序设计》课程设计任务及指导书

《面向对象程序设计》课程设计任务与指导书绍兴文理学院计算机系《面向对象程序设计》课程设计指导书设计任务与目的《面向对象程序设计》是一门实践性较强的软件基础课程,在理论课的基础上,通过《面向对象程序设计》的课程设计,使学生学会在.net平台开发环境下编写综合型、设计型的程序;巩固学生的的基础知识;培养学生采用面向对象的方法设计并调试较大型程序的动手能力,并更好地理解和消化课本所学的知识,为今后的实际应用打下良好的基础,课程设计侧重培养一下几方面的能力:(1)培养对问题中分析以及归纳和抽象到数据结构的能力;⑵培养选择和应用数据存储结构的能力;⑶培养数据组织的能力和抽象数据类型设计的能力;⑷培养算法设计、程序设计和调试的能力;⑸培养综合知识、方法、技能的应用能力;⑹培养编制较综合性程序的能力。

设计内容与基本要求课程设计的题目应以综合性的题目为主,选择与实际应用结合较紧密的较综合性的题目,难度应大于课程实验的题目。

本次设计的主要内容是(1)开发一个简单的教务管理系统,基本功能如下:通过提供控制台的图形界面,允许用户以3种不同的身份登陆教务系统,分别进行相关的操作:(1)系统管理员:管理现有课程、学期课程、教师及学生信息等(2)教师:管理本人的学期课程,查询选修所任课程的学生列表,并给学生打分等(3)学生:查询学期课程情况,选课/退课,查询已修课程成绩等要求学生用面向对象的思想对系统进行分析,设计所需类并实现,调试通过,基本数据信息均存放在文件中。

(2)使用Windows Form开发简单的游戏,实现基本的连连看功能(也可以是类似的别的小游戏),要求采用面向对象思想,实现算法逻辑与界面分离.时间及指导教师安排备注:(1)指导教师:戴振中(2)上机地点:理工楼303(理论课地点另定)(3)周二(2-9周)下午1:30~4:30考核课程设计的成绩分为:优秀、良好、中等、及格,不及格五个等级,不及格者不得取得相应学分。

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

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

《面向对象程序设计》课程设计实验报告指导教师小组成员:专业班级: 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 进行计算。

请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。

面向对象程序设计(Java)实验指导书

面向对象程序设计(Java)实验指导书
实验指导书
10 信息管理与信息系统 专业
雷金娥编 2012 年 9 月
目录
实验一 Java Application 程序的编辑、编译和运行 ..................................... 2 实验二 Java 程序设计基础.................................................................................. 4 实验三 类的封装 ................................................................................................... 5 实验四 类的继承 ..................................................................................................... 6 实验五 类的多态 ..................................................................................................... 8 实验六 接口与实现接口的类 ............................................................................. 12 实验七 图形用户界面设计 ................................................................................. 14 实验八 线程设计 ................................................................................................. 16 实验九 输入/输出流与文件操作......................................................................... 18 实验十 数据库应用设计 ..................................................................................... 20

面向对象程序设计实验报告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个正整数中的最大数。

《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点

《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点

面向对象程序设计实验指导书(适用:电子信息11级)彭召意陶立新编写计算机与通信学院2014.9目录实验一 C++基础的应用 (1)实验二类和对象的应用 (3)实验三类的构造函数、析构函数的应用 (4)实验四友员和运算符重载 (5)实验五类的继承与派生 (6)实验六类的多态性与虚函数 (7)附录:各实验的程序代码 (8)实验一 C++基础的应用(实验课时:2 实验性质:设计)实验名称: C++基础的应用实验目的: (1)进一步学习VC++6.0开发环境及程序调试方法。

(2)练习C++函数的定义及使用;(3)练习C++数组的定义及使用;(4)练习C++指针的定义及使用;(5)练习C++结构体的定义及使用;(6)练习多文件的程序的编译和运行方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.0。

实验内容: (1)熟悉Visual C++6.0编译系统的常用功能,特别是debug调试功能;(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。

要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和int max( int a, int b,int c)。

(3)编程2:编写一个程序c2.cpp,求:a!+ b! + c!的值。

要求:使用递归函数。

主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;(5)编程4:建立一个动态链表并进行输出和删除管理。

链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。

程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。

C++面向对象程序设计实验指导

C++面向对象程序设计实验指导

C++面向对象程序设计实验指导书(第三版)(适用于理工科)学号:姓名:班级:指导老师:计算机系2019年7月实验1 C++程序的运行环境和运行C++程序的方法一、实验目的和要求1.熟悉VS2015的集成开发环境;2.学会使用VS2015编辑、编译、连接和运行C++程序;3.通过运行简单的C++程序,初步了解C++源程序的结构和特点;4.学会使用简单的输入输出操作。

二、实验内容1.编辑、编译、连接和运行以下的C++程序#include<iostream>using namespace std;int main(){cout<<"Hello!\n";cout<<"This is a program."<<endl;return 0;}2.编译下列程序,改正所出现的错误信息,并写出输出结果。

(1)#include<iostream>using namespace std;int main(){cin>>a;int b=3*a;cout<<"b=<<b<<\n";return 0;}(2)int main(){cout<<"Hello!\n";cout<<"Welcome to C++!";}(3)#include<iostream>using namespace std;int main(){int x,y;x=5;y=6;int z=x*y;cout<<"x*y="<<z<<endl;return 0;}3.请填空完成以下程序,并上机调试正确,写出运行结果。

#include<iostream>using namespace std;int add(int a,int b);int main(){int x,y,sum;cout<<"Enter two numbers:”<<’\n’;//在下划线处填上语句,完成用cin读入x和y__________________________________________sum=add(x,y);cout<<”The sum is:”<<sum<<’\n’;return 0;}int add(int a,int b){//在下划线处填上语句,完成计算a与b的和并返回之_________________________}实验2 C++简单程序设计练习一、实验目的和要求1.进一步熟悉VS2015的集成开发环境。

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

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

《面向对象程序设计实验》实验一、Java实验环境的建立(2学时)1、目的要求(1)掌握Java编程环境的搭建过程;(2)掌握Jcreator pro软件的使用方法;(3)能使用Java doc文档。

2、实验内容(1)下载并安装JDK1.6,配置JDK环境变量;(2)下载Javadoc压缩包并解压在JDK安装路径下;(3)下载Jcreator pro 4.0并安装和配置使用环境;(4)使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。

①Java application程序代码如下:public class HelloJava{public static void main(String args[]){ System.out.println("Hello Java!"); }}②Java applet程序代码如下:import java.awt.*;public class Hello extends java.applet.Applet{public void paint(Graphics g){ g.drawString("Hello!",30,30); }}3、仪器与材料:计算机实验二、Java语言程序设计训练(2学时)1、目的要求(1)输入、输出操作实现原理和方法;(2)掌握程序流程控制的实现方法;(3)掌握数组的定义和操作方法。

2、实验内容(1)计算Result=1!+2!+3!+...+10!。

public class Test3 {public static void main(String[] args) {int sum = 0, fact, n, i;for (n = 1; n <= 10; n++) {fact = 1;for (i = 1; i <= n; i++)fact *= i;sum += fact;}System.out.println("sum=" + sum);}}(2)计算1---50之间所有素数的和。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文档发表日期:2012-04-14最近修改日期:2014-09-01《面向对象程序设计》实验任务及指导目录一、实验1:熟悉实验环境二、实验2:数据抽象三、实验3:继承与多态性三、实验4:重载和I/O流及面向对象程序设计一、实验1:熟悉实验环境【实验目的】●熟悉Visual C++6.0开发环境。

●掌握多文件结构程序项目的建立过程。

●初步掌握面向对象程序的多文件结构项目的开发运行步骤。

【实验内容】1、学习多文件结构程序项目的建立过程,观看、体会演示。

2、下面的程序在编译时会出错,请修改程序,使之能正确运行。

#include<iostream>//#include "iostream " 或#include "iostream.h"//#include"文件名":使用<>表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找;使用双引号””则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。

一般使用双引号””. .h是引用C语言库.using namespace std;class MyClass{public:MyClass() { x=0;y=0; }MyClass(int a = 0, b = 0);Print();private:int x, y;};MyClass::MyClass(int a = 0, int b =0){x = a;y = b;}void MyClass::Print(){cout << "x = " << x << endl;cout << "y = " << y << endl;}int main(){MyClass obj1,obj2(5,8);obj1.x =1;obj1.y =3;obj1.Print();obj2.Print();return 0;}3、将任务2得到的正确程序分成3个文件。

文件MyClass.h包括类的定义,文件MyClass.cpp包括类成员函数的实现,文件App.cpp包括类的使用。

调试、运行该程序,使之获得正确结果。

4.已知两个矩形的长和宽,用面向对象的概念编程求它们的面积和周长。

假设矩形1 的长和宽分别为20 和50;矩形 2 的长和宽分别为 3.6 和 4.5。

(先定义矩形类再实例化两个对象)5. 将教材7.1.3例题改造成面向对象的C++程序。

使用单链表来存储集合元素。

定义node类和Set类。

【实验指导】1、头文件中通常包含常量、类型、函数原型的定义。

类是用户定义的类型,故将类的定义放在头文件中。

函数的定义即函数的实现应放在实现文件.cpp文件中。

这样的安排体现了信息隐藏和模块化。

将类成员函数的实现和类的使用放在不同的cpp文件中,可将类的实现与类的使用分离,体现了对接口编程的思想。

2、文件MyClass.h中的结构#include<iostream>using namespace std;// MyClass的定义文件MyClass.cpp中的结构#include “MyClass.h”// MyClass成员函数的定义文件App.cpp中的结构#include “MyClass.h”// main函数的定义3、避免头文件内容被重复引入。

头文件内容被重复引入会导致标识符重复定义的错误。

用预编译条件指令来限制头文件内容的引入。

例如:#ifndef MYCLASS#define MYCLASS// MyClass.h头文件的内容#endif说明:#ifndef <标识> //如果没有定义<标识>#define <标识> //定义<标识>............#endif<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。

标识的命名规则一般是头文件名全大写,前后加下划线,这样如果有两个地方都包含这个头文件,就不会出现两次包含的情况。

因为在第二次包含时<标识已经有定义了,所以就不再include了.二、实验2:数据抽象【实验目的】●掌握类的定义和使用以及类对象的声明和使用方法,理解具有不同访问属性的成员的访问方式。

●掌握构造函数和析构函数的作用和编写方法。

●了解并掌握静态成员、常成员的使用。

【实验内容】1、下面程序中定义了一个整型动态数组,编写了3个构造函数。

#include<iostream>using namespace std;class IntArray {public:IntArray(int sz); // 数组初始化为sz个元素,初值全为0IntArray( int *array, int sz ) ; // 用静态数组array的前sz个元素初始化新数组IntArray( const IntArray &rhs ) ; // 拷贝构造函数void printAll();private:int *ia;int size;};IntArray::IntArray( int sz ) {size = sz; // 设置数据成员ia = new int[ size ];for ( int ix=0; ix < size; ++ix )ia[ix] = 0; // 初始化数组元素}IntArray:: IntArray( int *array, int sz ) {size = sz; // 设置数据成员ia = new int[ size ];for ( int ix=0; ix < size; ++ix )ia[ix ] = array[ ix ]; // 拷贝数据成员}IntArray:: IntArray( const IntArray &rhs ){size = rhs.size;ia = new int[ size ];for (int ix = 0; ix < size; ix++ )ia[ ix ] = rhs.ia[ ix ];}void IntArray::printAll(){for ( int ix=0; ix < size; ++ix )cout<<ia[ix]<<" ";cout<<endl;}int main(){int a[10]={1,2,3,4,5,6,7,8,9,10};IntArray arr1(10), arr2(a,5),arr3(arr2);arr1.printAll();arr2.printAll();arr3.printAll();return 0;}(1)为IntArray加上析构函数并编译运行程序,体会类的构造函数和析构函数的作用。

(2)程序中,类IntArray的三个构造函数都是以相似的方式来实现的。

一般来说,当两个或多个函数重复相同的代码时,可将这部分代码抽取出来,形成独立的函数,以便共享。

以后如果需要改变这些实现,则只需改变一次,而且这种实现的共享本质更容易为大家所理解。

怎样把构造函数中的代码抽取出来形成独立的共享函数呢?请给出一种可能的实现。

按你给出的实现方法修改程序并重新编译运行。

2、设有一个点myPoint类的定义如下:class myPoint {public:myPoint(double x0=0.0,double y0=0.0):x(x0),y(y0) {}myPoint(myPoint &np):x(np.x),y(np.y) {}double GetX() { return x;}double GetY() {return y;}void SetX(double x0) {x=x0;}void SetY(double y0) {x=y0;}void SetPoint(double x0,double y0) {x=x0;y=y0;}void SetPoint(myPoint &np) { x=np.x; y=np.y;}double GetLength(myPoint p) {return sqrt((x-p.x)*(x-p.x) +(y-p.y)*(y-p.y));}void Printit() { cout<<" ("<<x<<","<<y<<") ";}private:double x ,y;};试定义一个三角形Triangle类,在Triangle类中以点myPoint类的3个对象p1、p2、p3作为数据成员,表示三角形的三个顶点。

Triangle类具有计算三角形的周长和面积的功能。

请编写程序上机调试并运行。

3. 编写栈类stack,要求栈类可以进行入栈和出栈操作,还可以查看栈顶元素的值。

栈类中的每个节点为一个类node对象。

Node类含有两个成员:int data,node *prev。

【实验指导】1、(1)可参考教材第192页关于“浅复制”和“深复制”的示例来实现析构函数的定义。

(2)在类中将构造函数的代码抽取出来形成独立的函数,然后在构造函数中调用执行,注意函数参数的设置和定义。

2、由于在Triangle类中需要定义myPoint类的对象,因此需要在Triangle类的构造方法的成员初始化列表中实现对成员对象的初始化。

三、实验3:继承与多态性【实验目的】●掌握继承的概念,能够定义和使用类的继承关系。

●了解在派生类中如何使用基类的成员以及基类成员在派生类中的访问控制特性。

●理解虚基类在解决二义性问题中的作用。

●理解静态多态性和动态动态性的含义。

掌握使用虚函数和继承实现动态多态性的方法。

【实验内容】1、有如下的程序:#include <iostream>using namespace std;class Base{public :Base(int p1, int p2) { data1 = p1; data2 = p2; }int Inc1( ) { return ++data1; }int Inc2( ) { return ++data2; }void Display(){ cout<<"data1 = "<< data1 << " data2 = " << data2 << endl; }protected:int data1, data2;};class D1 : public Base {public :D1(int p1, int p2, int p3) : Base(p1, p2) { data3 = p3; }int Inc1( ) { return Base::Inc1( ); }int Inc3( ) { return ++data3; }void Display( ){cout<<"data1 = "<< data1 << " data2 = " << data2 << " data3 = " << data3 <<endl;cout<<"Base::Display() ----";Base::Display( );}protected:int data3;};class D2 : public Base {public :D2(int p1, int p2, int p4) : Base(p1, p2) { data4 = p4; }int Inc1(){Base::Inc1( ); Base::Inc2( );return Base::Inc1( );}int Inc4( ) { return ++data4; }void Display( ){cout<<"data1 = "<< data1 << " data2 = " << data2 << " data4 = " << data4 <<endl;cout<<"Base::Display() ----";Base::Display( );}protected:int data4;};class D12 : public D1, public D2 {public :D12(int p11,int p12,int p13,int p21,int p22,int p23,int p): D1(p11, p12, p13), D2(p21, p22, p23) { data5 = p; }int Inc1( ){ D1::Inc1(); D2::Inc1( );return D1::Inc1( );}int Inc5( ) { return ++data5; }void Display( ){cout<<"data1 = "<< data1 << " data2 = " << data2 <<endl; // ①cout <<" data3 = " << data3 <<"data4 = "<< data4 << " data5 = " << data5 <<endl;cout << "D1::Display( )----";D1::Display( );cout << "D2::Display( )----";D2::Display( );}private:int data5;};int main(){D12 d(1, 2, 3, 4, 5, 6, 7);d. Display( );cout << endl;d.Inc1();d.Inc2(); // ②d.Inc3();d.Inc4();d.Inc5();d.D12::Inc1();d.Display();return 0;}(1)这个程序在编译时会出现错误,请根据出错提示信息找出出错的原因。

相关文档
最新文档