大三《面向对象技术》上机作业

合集下载

[整理版]java面向对象上机

[整理版]java面向对象上机

1、已知长方形的长和宽,计算面积(并验证是不是正方形);2、编写程序输入5学生的姓名和年龄并打印出来,同时求出平均年龄。

3、编写学生成绩单程序,可以从键盘读取下列各项,1、学生姓名2、学科编号3、学生成绩(假设有4门课),此程序应显示考试分数,由于计算和显示5个学科的总分和平均分;1、编写一个程序,使用带参数的构造函数和一个方法显示两个整数的值。

创建两个对象,分别传递值集(10,20)和(30,40)。

重载+操作符,将这两个对象的两个x值和两个y值相加,形成一个新对象(x,y)2、编写一个方法重载的程序,定义两个同名的重载方法,一个方法只接受整数参数a,整数参数b;另一个方法接受小数参数a,整数参数b,并且都返回a的b次幂。

3、编写一个程序,用于模拟银行账户的基本操作,如为初始余额赋值,存取现金操作以及使用任意方式修改余额后都可以随时查看账户余额。

请用重载的带参数的构造函数4、以一教研室的环境为例,这里包括学生、教授还有职员。

对这些人员分别划分类层次,定义并实现相应的类。

学生:姓名、年龄、身份证号码、学号、年级、所属的导师(即就是由哪个导师带课题设计)职员:姓名、年龄、身份证号码、薪水。

教授:姓名、年龄、身份证号码、薪水、研究课题方向。

5、定义一个人员类Cperson,包括数据成员:姓名,编号,性别,用于输入输出的成员函数,在此基础上派生出学生类Cstudent(增加成绩)和教师类Cteacher(增加教龄),并实现对学生和信息的输入和输出。

6、定义一个字符串类Cstrone,包含一格存放字符串的数据成员,能够通过构造函数初始化字符串,通过成员函数显示字符串内容,在此基础上,派生出Cstrtwo类,增加一个存放字符串的数据成员,并能通过派生类的构造函数传递参数初始化两个字符串,通过成员函数进行两个字符串的合并以及输出7、把定义平面直角坐标系的一个点的类Cpoint作为基类,派生出描述一条之间的类Line,再派生出一格矩形类,要求成员函数能求出两点间的距离,矩形的周长和面积。

《面向对象程序设计》_上机指导书

《面向对象程序设计》_上机指导书

《面向对象程序设计》实验指导书实验一 C++程序的编辑、编译、连接和运行一、实验目的(1)熟练VC编译系统的操作环境(2)掌握编辑、编译、连接和运行一个C++程序的基本过程(3)应用项目的建立(4)程序的运行,调试等二、实验内容(1)教材P68~72:例3-4、例3-5、例3-6。

(2)调试要求掌握编辑、编译、连接和运行一个C++程序的基本过程,可设置程序断点、可进行单步跟踪调试。

三、实验步骤(1)创建一个VC的项目学会创建VC的工程项目文件,并能编写源代码文件(.h、.cpp),添加进工程。

1,创建项目:在菜单“文件”——“新建”,如下图:2,添加文件进工程:右键点击工程名——选择Add Files to Project…(2)编写并调试源程序1,源代码请参照《C++语言程序设计(第4版)》P68~722,重点学会打断点,单步调试,察看变量等,如下图:实验二类与对象一、实验目的(1)掌握类定义的基本格式和类成员的访问控制;(2)掌握对象定义和利用构造函数对对象的数据成员进行初始化的方法二、实验内容编写如下要求的完整程序:类对象构造与析构(1)定义四个类:CPU、RAM、CDROM、COMPUTER(2)具体要求1,每个类定义构造函数和析构函数,如结果图输出2,每个类分别定义run和stop接口函数3,COMPUTER为组合类,包含CPU、RAM、CDROM的对象4,主函数:定义一个COMPUTER对象,并调用run和stopCPU和RAM的run和stop事件由COMPUTER调用结果如下图(供参考):三、实验步骤(1)创建工程项目(2)程序设计1,类申明构造函数,与类名同名的函数,当申明对象时自动调用,通常用于初始化;析构函数,~类名,当对象消亡时自动调用,通常用于清理现场。

2,定义接口:public类型的成员函数3,组合类:即类的成员变量中包含其它多个类的对象(3)程序调试与测试实验三多文档程序,类的静态成员和友元一、实验目的(1)掌握多文档结构程序设计方法;(2)掌握类的静态成员和友元;二、实验内容编写如下要求的完整程序:客户端对象信息访问(1)C++程序由多个文件组成,包括:类申明的头文件,类实现文件,主程序文件(2)具体要求1,在头文件中申明类CLIENT,在CPP文件中实现类CLIENT2,类中申明:静态成员变量服务器名ServerName和客户机数量ClientNum静态成员函数GetClientNum——获得客户机数量静态成员函数ChangeServerName——设置服务器名静态成员函数GetServerName——获得服务器名友元函数PrintServerNameAndClientNum——屏幕输出服务器名和客户机数目3,类的构造函数将客户机数目加1,析构函数将客户机数目减14,主函数:定义多个CLIENT对象;应用静态成员方式设置服务器名,访问服务器名和客户机数量;应用友元函数访问服务器名和客户机数量。

面向对象程序设计上机作业

面向对象程序设计上机作业

1.编一个程序,程序中包含以下内容:(1) 一个圆类(Circle),包含:属性:园半径radius;常量:PI。

方法:构造方法;求面积方法area();求周长方法:perimeter();显示半径、面积和周长的方法show()。

(2) 主方法main(),在主方法中创建圆类的对象c1和c2并初始化,c1的半径为100,c1的半径为200,然后分别显示两个圆的半径、面积和周长。

#include<iostream>using namespace std;class Circle{public:Circle(double r);double area();double perimeter();void show();private:double radius;const double PI;};Circle::Circle(double r):PI(3.14){radius=r;}double Circle::area(){return PI*radius*radius;}double Circle::perimeter(){return 2*PI*radius;}void Circle::show(){cout<<radius<<' '<<area()<<' '<<perimeter()<<endl;}int main(){Circle c1(100),c2(200);c1.show();c2.show();return 0;}2.编一个程序,程序中包含以下内容:(1)一个学生类(Student),包含:属性:学号s_No,姓名s_Name,性别s_Sex,年龄s_Age,成绩s_Score。

方法:构造方法;显示学号、姓名、性别、年龄及成绩的方法show(),修改成绩的方法modifyScore()。

面向对象程序设计编程实验上机

面向对象程序设计编程实验上机
{Pen myPen=new Pen();
Pen hisPen=new Pen( "GREEN,"8);
hisPen.SetPrice();
Console .WriteLine( "The price is{0}" ,hisPen.GetPrice());
}
}
( 3)使用重载方法求5和5.65的平方。
public int GetPrice()
{return Price;}
public void SetColor( string newColor)
{Color=newColor;}
public string GetColor()
{return Color;}
}
class Test
{
public static void Main()
Console .WriteLine( "The Color is{0}",myPen.Color);
}
}
}
(2)调试构造函数重载Pen()例题
using System;
class Pen
{
public string Color;
private int Price;
public Pen()
{Color="BLACK"; Price= 5;}
public double app1( double y)
{return y*y;}
}
static void Main( string[]args)
{app x=new app();
Console .WriteLine("5的平方是{0}" ,x.app1(5));

面向对象 作业三答案

面向对象 作业三答案

面向对象程序设计技术作业三一、填空题1、假定p所指对象的值为28,p+1所指对象的值为62,则*p++的值为28 。

2、假定p所指对象的值为28,p+1所指对象的值为62,则*++p的值为62 。

3、假定p所指对象的值为25,p+1所指对象的值为50,则执行”(*p)++;”语句后,p所指对象的值为26 。

4、假定p所指对象的值为25,p+1所指对象的值为50,则执行”*(p++);”语句后,p所指对象的值为50 。

5、假定a是一个指针数组,则a+I所指对象的地址比a地址大4*I 字节。

6、假定a是一个一维数组,则a [i]的指针访问方式为*(a+i)。

7、假定a是一个二维数组,则a[i][j]的指针访问方式为*(*(a+i)+j) 。

8、假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为a+4*j 。

9、假定一个二维数组为a[M][N],则a[i][j]对应的存储地址(以字节为单位)为a+4*i*N+4*j 。

10、假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为a+4i*N 。

11、假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大 4 字节。

12、假定a为一个字符数组名,则元素a[8]的字节地址为a+8 。

13、假定a为一个整型数组名,则元素a[4]的字节地址为a+16 。

14、假定一个结构类型的定义为”struct A{int a, b;short c;A * d;};”,则该类型的大小为14 字节。

15、假定一个结构类型的定义为”struct B{int a[8];char*b;};”,则该类型的大小为36 字节。

16、假定一个结构类型的定义为”struct D{int a;union{int b;double c;};D*d[3];};”,则该类型的大小为24 字节。

17、假定要动态分配一个类型为Worker的具有n个元素的数组,并由r 指向这个动态数组,则使用的语句为Worker *r=new Worker[n] 。

面向对象第3章上机作业参考

面向对象第3章上机作业参考

public class RationalNumber implements Cloneable,Comparable { private int numerator;private int denominator;private int greatestCommonFactor (int n1, int n2) //求最大公约数{……} private int leastCommonMultiple (int n1, int n2) ; //求最小公倍数{……}private void reductionOfFraction(); //约分{……}public RationalNumber() { ……}public RationalNumber(int n, int d) { ……}public void set RationalNumber(int n, int d) { ……}public RationalNumber getRationalNumber() { ……}public int getNumerator() { ……}public int getDenominator () { ……}public RationalNumber add(RationalNumber r) {……}public RationalNumber sub(RationalNumber r) {……}public RationalNumber mul(RationalNumber r) {……}public RationalNumber div(RationalNumber r) {……}public boolean equals(Object otherObject) {if (this == otherObject) return true;if (otherObject == null) return false;if (getClass() != otherObject.getClass()) return false;RationalNumber r = (RationalNumber)otherObject;// 通分,比较是否相等……}public int compareTo(Object otherObject) {……}public RationalNumber clone() throws CloneNotSupportedException { return (RationalNumber)super.clone();}public String toString() { return “……..”; }}public class Course implements Cloneable {private int No;private Strng name;private int classHour;private int classCharacter;private String teacher;private Material[] materials;public Course() {……}public Course(String name, int classHour,int classCharacter, String teacher, Material[] materials) {……}public int getNo(){……}public String getName(){……}public int getClassHour(){……}public int get ClassCharacter(){……}public String getTeacher(){……}public Material[] getMaterials(){……}public void setNo(int No){……}public void setName(String name){……}public void setClassHour(int classHour){……}public void set ClassCharacter(int character){……}public void setTeacher(String teacher){……}public void setMaterials(Material[] materials){……}public boolean equals(Object otherObject) {if (this == otherObject) return true;if (otherObject == null) return false;if (getClass() != otherObject.getClass()) return false;Course c = (Course)otherObject;//比较是否相等……}public Course clone() throws CloneNotSupportedException { Course c= (Course) super.clone(); = (String)name.clone();c.teacher = (String)teacher.clone();c.materials = (Material[])materials.clone();return c;}public String toString() { return “……..”; }}。

(面向对象程序设计)第五次上机

(面向对象程序设计)第五次上机

面向对象程序设计第五次上机题目
1,已知如下一个类:
class A
{
Int a1,a2;
A(int I, int j )
{
a1=i;
a2=j;
}
}
要求编写一个方法swap来交换A类的两个对象的成员变量的值。

2,已知一个类如下:
class S
{
double r;
}
编写S的一个子类,该子类中包含一个计算圆面积的方法area()和使用super()初始化S类成员的构造方法。

3,定义一个复数类complex,内有两个成员变量:实部和虚部,还有两个方法:求两个复数和,两个复数的差。

编程验证该运算。

4,编写一个类,使该类中具有不同权限的成员,将这个类存放在一个包中。

在另一个包中再编写第二个类,在此类中编写一个方法,在该方法中操作第一个类中的成员,熟悉哪些成员可操作,哪些成员不可操作。

5,按下列要求编程
a)编写一个抽象类,至少含有一个常量和一个抽象方法。

b)编写二个抽象类的子类,重写定义抽象类中的抽象方法
c)编写一个珠泪亮起上述三个类,进行某种运算。

(自己定义)。

大三《面向对象技术》上机作业

大三《面向对象技术》上机作业

《面向对象技术》上机作业一、设计目的和时间安排●掌握面向对象程序设计的基本思路和方法。

●利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

二、内容及要求自学《教材》前14章,利用所学到的Java编程知识和编程技巧,设计一个实际的应用软件,初步认识软件设计的基本方法,提高进行工程设计的基本技能及分析、解决实际问题的能力,为后续课程和以后的工程实践打下良好的基础。

三、考核方式请在考试前将代码打包,命名为“学号_姓名.rar”,发送到guokehua@,注意,千万不能发错,否则后果自负。

四、时间、地点安排见 csu_xxxy_jsj@ 邮箱。

五、题目(根据你的学号尾数除以5的余数,选1题。

)0. 人事信息管理系统:主要功能如下:1.添加功能:添加一个职员的基本信息,包括姓名,身份证号码,家庭住址,联系电话,薪水,性别;2.显示功能:显示所有职员的详细信息;3.查找功能1:根据你键入的职员姓名,显示其详细信息;4.查找功能2:输入性别(男或女),显示该性别所有职员的详细信息。

1.通讯录:主要功能如下:1.添加功能:添加一个联系人的基本信息,包括姓名,电话号码,身份证号码,家庭住址,性别;2.查找功能:根据你键入的联系人姓名,显示其详细信息;4.修改功能:对联系人的基本信息进行修改。

5.删除功能:根据你键入的联系人姓名,可以对其进行删除操作。

2.学生成绩管理系统:主要功能如下:1.添加学生信息功能:添加一个学生的基本信息,包括学号、姓名,性别;2.添加课程信息功能:添加一个课程的基本信息,包括课程号、课程名称;3. 添加考试成绩功能:添加考试成绩:输入一个学生的学号,输入一个课程号,输入分数;4.统计功能:输入姓名,能显示某学生各门科目的课程号和分数。

3.客房管理系统主要功能如下:1.添加客房信息功能:添加一个客房的基本信息,包括房号、价格;2.添加住宿信息:添加顾客住宿信息,包括顾客姓名、身份证号、房号,天数;3. 查询顾客应付款项:输入顾客身份证号,显示其需要付款的数量。

面向对象程序设计上机练习六

面向对象程序设计上机练习六
虚函数
1.阅读并执行代码,然后回答问题
class A
{
public:
A() { cout<<"Lines="<<++lineno<<" Call A::A()"<<endl;}
virtual ~A() { cout<<"Lines="<<++lineno<<" Call A::~A()"<<endl;} //----------------(1)
//p->Func3(100); //---------------------------------------------(14)
//p->Func1(100); //---------------------------------------------(15)
protected:
int num;
};
int A::lineno=0; //----------------------------------------------(9)
int main(int argc, char* argv[])
protected: //-------------------------------------------------------------(4)
static int lineno;
};
class B:public A
{
public:
B() {cout<<"Lines="<<++lineno<<" Call B::B()"<<endl;}

《面向对象程序设计》上机考查试题

《面向对象程序设计》上机考查试题

《面向对象程序设计》上机考查试题上机考查说明:(1)要求用VC6开发环境中完成,以学号姓名作为工作区名称,每题题号作为项目名称,每道上机试题为一个项目(2)每个项目只有一个源程序文件,与所在项目同名(3)考试结束后,关闭VC6,上交以学号姓名命名的文件夹(4)考查应该独立完成,可查阅书籍和网上资料,但不可互相抄袭,一旦批阅时发现雷同,均以0分计1、计算并输出sum=1-1/2+1/3-1/4+...+1/99-1/100 10分2、已知主函数如下:int main(){Calculator cal;Cout<<"加结果:"<<cal.Add(10,30);Cout<<"公约数结果:"<<cal.gys(6,8);Cout<<"求余数结果:"<<cal.mod(10,3);return 0;}设计Calculator类完成相关功能。

20分3、设计一个分数类(a/b),随机产生100个分数,求最大分数,并输出。

30分4、已知主函数如下:完成相关类并进行测试 40分Int main(){Shape *p[]={New Square(3), //正方形New Ladder(1,2,3),//梯形New Rectangle(3,5),//长方形New Ladder(2,3,4)};For(int i=0;i<sizeof(p)/sizeof(Shape*);i++)Cout<<p[i]->area()<<endl;Return 0;}。

面向对象程序设计(第二次上机实验)

面向对象程序设计(第二次上机实验)

《面向对象程序设计》上机报告题目:第二次上机班级:学号:姓名:上机时间:一、题目要求1.阅读程序,预测功能,再上机编辑、运行该程序,以验证自己的预测。

【思考与练习】1.构造函数的作用以及在什么情况下调用构造函数。

作用:不需要用户来调用它,在建立对象时自动识别它,有用户定义,根据初始化的要求设计函数体和函数参数。

2.在什么情况下拷贝构造函数被调用。

在以下三种情况下,系统自动调用拷贝构造函数。

⑴当用类的一个对象去初始化该类的另一个对象时;⑵如果函数的形参是类的对象,调用函数,进行形参和实参的结合时;⑶如果函数的返回值是类的对象,函数执行完成返回调用者时。

3.构造一个圆柱体的类,定义该类对象a,再定义一个和a 同底等高的圆柱体b,计算a 圆柱体的底面积,计算b 圆柱体的体积。

二1.定义一个复数类,通过重载运算符: +,-,*,/,直接实现二个复数之间的乘除运算。

编写一个完整的程序,测试重载运算符的正确性。

要求加法“+”用成员函数实现重载,减法“-”用成员函数实现重载。

乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载。

⑵上机要求增加重载复数的加法和减法运算符的功能,实现两个复数的加法,一个复数与一个实数的加法;两个复数的减法,一个复数与一个实数的减法。

用成员函数实现加法运算符的重载,用友元函数实现减法运算符的重载。

自已设计主函数,完成程序的调试工作二、题目分析3,构造函数,通过调用函数实现运算。

2,运用运算符的重载。

三、源代码1.1#include <iostream.h>class Point{public:Point(int xx = 0, int yy = 0){X = xx; Y = yy;cout<<"调用构造函数\n";}Point(Point &p);int GetX(){ return X; }int GetY(){ return Y; }private:int X,Y;};Point::Point(Point & p){X = p.X;Y = p.Y;cout<<"调用拷贝构造函数\n";}void main(){Point A(3,4);//Point B = A;//Point B; B = A;Point B(A); //b 行cout<<B.GetX()<<"\n";}1.2#include <iostream.h>class Point{public:Point(int xx = 0,int yy = 0) {X = xx; Y = yy;cout<<"调用构造函数\n";}Point(Point & p);int GetX(){ return X; }int GetY(){ return Y; }private:int X,Y;};Point::Point(Point & p){X = p.X;Y = p.Y;cout<<"调用拷贝构造函数\n";}void fun1(Point p){cout<<p.GetX()<<"\n";}void main(){Point A(4,5);Point B(A);cout<<B.GetX()<<"\n";fun1(B); //调用拷贝构造函数,实现形参和实参结合}1.3#include <iostream.h>class Point{public:Point(int xx=0,int yy=0){X = xx;Y = yy;cout<<"调用构造函数\n";}Point(Point & p);int GetX() {return X;}int GetY() {return Y;}private:int X,Y;};Point::Point(Point &p){X=p.X;Y=p.Y;cout<<"调用拷贝构造函数\n";}Point fun2(){Point Temp(10,20); //调用构造函数return Temp;}void main(){Point A(4,5);Point B(A);cout<<B.GetX()<<"\n";B = fun2();cout<<B.GetX()<<"\n";}思考3#include <iostream>using namespace std;class Point{public:Point(int,int);Point(Point &p);int volume();int area();private:int radius;int height;};Point::Point(int r,int h){radius=r;height=h;}Point::Point(Point &p){radius=p.radius;height=p.height;cout<<"调用拷贝构造函数\n";}int Point::volume(){return(3.14159*radius*radius*height);}int Point::area(){return(3.14159*radius*radius);}int main(){Point c1(2,5);cout<<"The area of c1 is "<<c1.area()<<endl;Point c2(c1);cout<<"The volume of c2 is "<<c2.volume()<<endl;return 0;}2#include <iostream.h>class Complex{public:Complex(){real=0;imag=0;}Complex(double r){real=r;imag=0;}Complex(double r,double i){real=r;imag=i;}friend Complex operator + (Complex c1,Complex c2);friend Complex operator - (Complex c1,Complex c2);void display();private:double real;double imag;};Complex operator + (Complex c1,Complex c2){return Complex(c1.real+c2.real, c1.imag+c2.imag);}Complex operator - (Complex c1,Complex c2){return Complex(c1.real-c2.real, c1.imag-c2.imag);}void Complex::display(){cout<<"("<<real<<"+"<<imag<<"i)"<<endl;}int main(){Complex c1(1,5),c2(2,8),c3,c4;c3=c1+c2;c4=c1-c2;c3.display();c4.display();return 0;}四、运行记录和调试过程1.1输出:调用构造函数调用拷贝构造函数3Press any key to continue思考:1,将b 行改写为Point B = A; 程序输出结果会有变化吗?答:没有变化。

第三章面向对象编程思想上机作业

第三章面向对象编程思想上机作业

第三章面向对象编程思想目标了解什么是面向对象面向对象的基本概念⏹类⏹对象⏹封装⏹继承⏹多态如何定义类,如何创建对象成员运算符访问控制权限:public和private构造方法【练习题一】编写Java程序,用于显示人的姓名和年龄。

定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。

定义构造方法,用来初始化数据成员。

再定义显示(display)方法,将姓名和年龄打印出来。

在main方法中创建人类的实例,然后将信息显示。

【练习题二】编写Java程序,模拟简单的计算器。

定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。

编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。

在main方法中创建Number类的对象,调用各个方法,并显示计算结果。

【练习题三】在程序中,经常要对时间进行操作,但是并没有时间类型的数据。

那么,我们可以自己实现一个时间类,来满足程序中的需要。

定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。

为MyTime类定义构造方法,以方便创建对象时初始化成员变量。

再定义diaplay方法,用于将时间信息打印出来。

本题在后续的课程中还要继续完善。

记住:要复习第二章的课件首先:感谢Lucky课件的支持!!作者:Mellow。

《面向对象与C++》上机作业

《面向对象与C++》上机作业

《面向对象与C++》上机作业《面向对象程序设计与C++》作业王涛教材:《C++语言程序设计》郑莉等著清华大学出版社2003.12 注:作业中的题号为教材中对应的题号。

第二章指针与内存分配1. void Func(char str[100]){sizeof(str) = ?}char* p = new char[100];sizeof(p) = ?为什么?2. void GetMemory(char* p) {p = new char[100];}void Test() {char * str = NULL;GetMemory(str);strcpy(str, “hello world”);printf(“%s”, str);}请问运行Test函数会有什么样的结果?为什么?3. char * GetMemory(){char p[] = “hello world”;return p;}void Test(){char *str = GetMemory();printf(“%s”, str);}请问运行Test函数会的到什么样的结果?为什么?4. void GetMemory(char**p, int num){*p = new char[num];}void Test(){char * str = NULL;GetMemory(&str, 100);strcpy(str, “hello world”);printf(“%s”, str);}请问运行Test函数后有什么样的结果?为什么?5. void Test(){char * str = new char[100];strcpy(str, “hello”);delete[] str;if( str != NULL ){strcpy(str, “world”);printf(“%s”, str);}}请问运行Test函数后会有什么样的结果?为什么?6. Email address book includes two types of email address:◆General address, include information:email address (unique), name, phone number◆Group address, include information:email address (unique), name, list of address(each address may be a general address or a group address).Write an Email address book management program withC/C++ language:◆Give an email address, find its information. If given address is a group address,should list all the general addresses in this group.◆Add/Remove one email address.◆Read email address book from a source file.◆Save email address book to a dest ination file.第四章从C到C++教材P38811-3. 使用I/O流以文本方式建立一个文件test1.txt,写入字符“已成功写入文件!”,用其他字处理程序(例如Windows记事本程序Notepad)打开,看看是否正确写入。

《面向对象程序设计》上机编程题 附答案(修)

《面向对象程序设计》上机编程题 附答案(修)

《面向对象程序设计》上机编程题附答案(修)2021-2021学年《面向对象程序设计》上机编程题安徽财经大学管理科学与工程学院1、编写程序实现对输入的3个整数,按照从大到小的顺序输出。

程序如下:import java.util.Scanner; public class cxddsc {public static void main(String args[]){ Scanner input=newScanner(System.in); int a,b,c,t;System.out.print(\输入第一个数:\); a=input.nextInt();System.out.print(\输入第二个数:\); b=input.nextInt();System.out.print(\输入第三个数:\); c=input.nextInt();if(b>a){ t=a;a=b;b=t; }if(c>a){ t=a;a=c;c=t; }if(c>b){ t=b;b=c;c=t; }System.out.printf(\从大到小输出为:===\,a,b,c); } }2、编写程序,输入一个字符,判断它是否为小写字母,如果是,将它转换成大写字母,否则,不转换。

import java.util.Scanner;public class bdxx {public static void main(String args[]){ Scanner input=newScanner(System.in);System.out.print(\输入一个字符:\); char c=input.next().charAt(0);if(c>='a'&&c<='z'){ c=(char)(c-32);System.out.printf(\,c); }else if(c>='A'&&c<='Z'){System.out.println(\这是一个大写字母!不转换!\); } } }3、编写程序,对输入的3个正数,判断能否构成一个三角形。

面向对象上机考试题

面向对象上机考试题

面向对象上机考试题(1)——关于宠物进笼Anne的宠物小屋有12个笼子,每个笼子可以放不同的动物,但只能放1只或0只,包括猫Cat,狗Dog,蛇Snake.1,实现一个简单的管理系统,可增加、删除笼子中的宠物,查询每个笼子中存放的宠物类型,(包括笼子为空的情况),统计笼中宠物的种类和数量.2,定义描述宠物小屋的类shelves,其中有12笼子用于存放各种宠物.3,定义虚拟基类Animal,包括纯虚函数ShowMe,显示每个宠物的情况,包括类型、颜色、体重和喜爱的食物。

4,定义派生类Cat,Dog,Snake,具体实现上述纯虚函数。

5,重载输入‘>>'*作符,使得可能通过cin直接读入宠物颜色、体重和喜爱的食物。

6,编写main函数,测试上述要求和各种功能。

*/#include "iostream.h"#include "string.h"enum {NONE=0, CAT=1, DOG=2, SNAKE=3};class Animal{protected:char color[20];char food[20];double weight;public:virtual void ShowMe()=0;};class Cat:public Animal{public:friend istream& operator>>(istream &is, Cat &cat); void ShowMe(){cout<<"猫的颜色、喜欢的食物、体重分别为:";cout<<color<<”,”<<food<<”,”<<weight<<endl;}};istream & operator>>(istream &is, Cat &cat){cout<<" 请输入猫的颜色: ";is>>cat.color;cout<<" 喜爱的食物:";is>>cat.food;cout<<" 体重:";is>>cat.weight;return is;}class Dog:public Animal{public:friend istream& operator>>(istream &is, Dog &Dog); void ShowMe(){cout<<"狗的颜色、喜欢的食物、体重分别为:";cout<<color<<”,”<<food<<”,”<<weight<<endl;}};istream& operator>>(istream &is, Dog &dog){cout<<" 请输入狗的颜色: ";is>>dog.color;cout<<" 喜爱的食物:";is>>dog.food;cout<<" 体重:";is>>dog.weight;return is;}class Snake:public Animal{public:friend istream& operator>>(istream &is, Snake &snake); void ShowMe(){cout<<"蛇的颜色、喜爱的食物、体重分别为:";cout<<color<<”,”<<food<<”,”<<weight<<endl;};istream& operator>>(istream &is, Snake &snake){cout<<" 请输入蛇的颜色: ";is>>snake.color;cout<<" 喜爱的食物: ";is>>snake.food;cout<<" 体重: ";is>>snake.weight;return is;}class Shelves{int cage[12]; //每个笼子里动物的数量int sum[3]; 每种动物的数量Cat cats[12];Dog dogs[12];Snake snakes[12];public:Shelves (){for (int i=0; i<12; i++)cage[i]=NONE;for (i=0; i<3; i++)sum[i]=0;}int push_cat(Cat &cat, int n){cats[n] = cat;if (cage[n]!=NONE) return 0;else {sum[0]++;return cage[n]=CAT;}int push_dog(Dog &dog, int n){dogs[n]=dog;if (cage[n]!=NONE) return 0;else{sum[1]++;return cage[n]=DOG;}}int push_snake(Snake &snake, int n) {snakes[n]=snake;if (cage[n]!=NONE) return 0;else {sum[2]++;return cage[n]=SNAKE;}}void del(int n){if (cage[n]==CAT) sum[0]--;if (cage[n]==DOG) sum[1]--;if (cage[n]==SNAKE) sum[2]--;if (cage[n]==NONE)cout<<"笼子里没有动物";elsecage[n]=NONE;cout<<"已删除笼子里的动物";}cout<}void seek(int n){if (cage[n]==NONE) cout<<"第"<<N<<"个笼子里没有动物"; if (cage[n]==CAT){cout<<"第"<<N<<"个笼子里的动物为猫,";cats[n].ShowMe();}if (cage[n]==DOG){cout<<"第"<<N<<"个笼子里的动物为狗,";dogs[n].ShowMe();}if (cage[n]==SNAKE){cout<<"第"<<N<<"个笼子里的动物为蛇,";snakes[n].ShowMe();}cout<}void count(){cout<<"笼子里的猫总共有:"<<SUM[0]<<"只"<<endl;cout<<"笼子里的狗总共有:"<<SUM[1]<<"只"<<endl;cout<<"笼子里的蛇总共有:"<<SUM[2]<<"只"<<endl;}};void main(){Cat cat;Dog dog;Snake snake;Shelves shelves;int i=1,j;cout<<"这是关于往笼子里放动物的问题: "<<endl;cout<<" 1: 往笼子里放猫;"<<endl;cout<<" 2: 往笼子里放狗;"<<endl;cout<<" 3: 往笼子里放蛇;"<<endl;cout<<" 4: 查询笼子里的动物;"<<endl;cout<<" 5: 删除笼子里的动物;"<<endl;cout<<" 6:统计笼子里的动物种类及数量;"cout<<" 7: 退出程序;"<<endl;cout<<"------------------------------------------"<<endl; while(i){cout<<"请选择您的操作:";cin>>i;switch(i){cout<<" 往哪只笼子里面放: ";cin>>j;cin>>cat;while (shelves.push_cat(cat, j)==0){cout<<" 笼子里已有动物,请换一个笼子: "; cin>>j;}break;case 2:cout<<" 往哪只笼子里面放: ";cin>>j;cin>>dog;while (shelves.push_dog(dog, j)==0){cout<<" 笼子里已有动物,请换一个笼子: "; cin>>j;}break;case 3:cout<<" 往哪只笼子里面放: ";cin>>j;cin>>snake;while (shelves.push_snake(snake, j)==0) {cout<<" 笼子里已有动物,请换一个笼子: "; cin>>j;}break;cout<<" 查询哪只笼子: ";cin>>j;shelves.seek(j);break;case 5:cout<<" 删除哪只笼子里的动物: ";cin>>j;shelves.del(j); break;case 6:shelves.count(); break;default: i=0; break;}cout<<endl;}}面向对象上机考试题(2)——关于堆栈1.请实现一个栈,既可以存放整数,又可以存放字符串。

(面向对象程序设计)第二次上机

(面向对象程序设计)第二次上机

《面向对象程序设计》第二次上机作业
1.求下列表达式的值并上机验证结果。

a)已知:int a=3,b=5; 求下列表达式的结果:
(a+b)%b
b>>a
++a-b++
b)已知:int a[] ={3,5,7,9}; 求值:
a[0]+a[1]
(a[0]+=a[1])+ ++a[2]
for(int i=1;i<4;i++)
a[0]+=a[i];
计算a[0]的值。

2.编写一个程序,写出下面的java语句。

a,b,c,是3个int型变量,用条件表达式写出a>b时,c的值为a,否则c的值为b。

用for循环实现下述循环:循环变量m为100,每次循环m减10;当m等于50时退出循环,并输出m。

3.编程求出一个一维int型数组的元素最大值,最小值,所有元素之和,以及平均值。

4.使用switch语句根据考试成绩登记输出百分制的分数段。

规定如下:
A:85-100 B:70-84 C:60-69 D:<60
5.思考题(选做):百钱买百鸡。

我国古代数学家张丘建在《张丘建算经》一书中提出了“百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。

百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
简单解释下就是:花100块钱买100只鸡,不能多也不能少。

公鸡5元一只,母鸡3元一只,小鸡1元三只。

问应该买公鸡,母鸡,小鸡各多少只?(提示:答案不唯一)要求用java写个程序来实现,把所有符合要求的答案都找出来。

2021.7.2测试 面向对象(上机)

2021.7.2测试 面向对象(上机)

2021.7.2测试面向对象(上机)2021.7.2测试-面向对象(上机)[类和对象]1、定义一个类实现银行帐户的概念,包括的变量有\帐号\和\存款余额\,包括的方法有\存款\、\取款\、\查询余额\和“显示帐号”。

定义主类,创建帐户类的对象,并完成相应操作。

程序运行结果如下:用户账号:234567,余额:1000存入2000元后余额为:3000取出1000元后余额为:20002.设计了一个类来描述汽车。

该类的非静态成员变量用于表示车主的姓名、当前速度和当前方向盘的转向角。

该类的非静态成员方法用于表示更换汽车的速度。

程序运行结果如下:姓名:xiaowang速率:90.0km/h方向盘角度:30.0度***汽车正常行驶中!***? 当速度等于0时,显示“***车辆已停止!***”;?当速率大于150,显示“***行驶超速,请限速在150km/h以下!***”;?当速率大等于0小等于150,显示“***汽车正常行驶中!***”;[继任]编写程序描述咖啡、茶和啤酒问题描述:请使用面向对象的思想设计定制类,并描述咖啡、茶和啤酒的参考分析思想:第一步:分析咖啡、茶、啤酒的共性:1.都是饮料。

第2步:定义抽象饮料2、属性:名称、口感3、方法:饮用第三步:定义咖啡、茶和啤酒,分别继承饮料的经营效果:名称:曼特宁咖啡口感:醇厚偏苦饮用时可以加奶和糖----------------------------名称:普洱茶口感:甜爽具佳热饮口感最好----------------------------品名:青岛啤酒口感:圆润圆润。

冷冻时味道最好【抽象类】1.编写程序计算图形面积。

该程序应该能够计算和输出矩形和圆形的面积。

考虑到程序的未来扩展,设计了一个图形抽象类:shape。

在此基础上,导出了矩形和圆形的图形类。

(1)矩形类的基本信息:宽度和高度。

(2) cirlce类的基本信息:中心坐标和半径。

(3)每个图形类有多个构造方法:默认构造方法、带参数的构造方法;成员变量为private属性,成员方法为public属性。

(面向对象程序设计)第十次上机

(面向对象程序设计)第十次上机

<<面向对象程序设计>>第十次上机练习
1.为什么应用程序中需要多线程?在单核处理器的计算机系统中,多个线程是如何同时运行的?
2.怎样创建一棵树?怎样从JTree的实例中得到默认的树模型和树的选择模型?
3.创建一棵树,显示某本树的目录表格。

选中树的某个结点时,显示描述该结点的一段文字,如下图所示。

4.使用以下数据创建一个表格。

第一行是表头,其余的行与表格中的行相对应。

用JTable 组件显示表格,如下图所示。

Country, Capitol, Population, Democracy
USA, Washington DC, 280, true
Canada, Ottawa, 32, true
United Kingdom, London, 60, true
Germany, Berlin, 83, true
France, Paris, 60, true
Norway, Oslo, 4.5, true
India, New Deli, 1046, true。

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

《面向对象技术》
上机作业
一、设计目的和时间安排
●掌握面向对象程序设计的基本思路和方法。

●利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

二、内容及要求
自学《教材》前14章,利用所学到的Java编程知识和编程技巧,设计一个实际的应用软件,初步认识软件设计的基本方法,提高进行工程设计的基本技能及分析、解决实际问题的能力,为后续课程和以后的工程实践打下良好的基础。

三、考核方式
请在考试前将代码打包,命名为“学号_姓名.rar”,发送到
guokehua@,注意,千万不能发错,否则后果自负。

四、时间、地点安排
见 csu_xxxy_jsj@ 邮箱。

五、题目(根据你的学号尾数除以5的余数,选1题。


0. 人事信息管理系统:
主要功能如下:
1.添加功能:添加一个职员的基本信息,包括姓名,身份证号码,家庭住址,联系电话,薪水,性别;
2.显示功能:显示所有职员的详细信息;
3.查找功能1:根据你键入的职员姓名,显示其详细信息;
4.查找功能2:输入性别(男或女),显示该性别所有职员的详细信息。

1.通讯录:
主要功能如下:
1.添加功能:添加一个联系人的基本信息,包括姓名,电话号码,身份证号码,家庭住址,性别;
2.查找功能:根据你键入的联系人姓名,显示其详细信息;
4.修改功能:对联系人的基本信息进行修改。

5.删除功能:根据你键入的联系人姓名,可以对其进行删除操作。

2.学生成绩管理系统:
主要功能如下:
1.添加学生信息功能:添加一个学生的基本信息,包括学号、姓名,性别;
2.添加课程信息功能:添加一个课程的基本信息,包括课程号、课程名称;
3. 添加考试成绩功能:添加考试成绩:输入一个学生的学号,输入一个课程
号,输入分数;
4.统计功能:输入姓名,能显示某学生各门科目的课程号和分数。

3.客房管理系统
主要功能如下:
1.添加客房信息功能:添加一个客房的基本信息,包括房号、价格;
2.添加住宿信息:添加顾客住宿信息,包括顾客姓名、身份证号、房号,天数;
3. 查询顾客应付款项:输入顾客身份证号,显示其需要付款的数量。

4.删除功能:输入顾客身份证号,选择删除,将顾客住宿信息删除。

4.高校工资管理系统
主要功能如下:
1.添加功能:添加一个职员的基本信息,包括姓名,工作证号,身份证号码,出生年月日,家庭住址,联系电话,薪水,性别;
2.调整工资功能:输入一个职员的姓名,输入他的新工资数量,能将其薪水变成新的数量;
3.查找功能:根据你键入的职员姓名,显示其详细信息;
5.删除功能:输入职员身份证号,能显示详细信息,并能选择将其删除。

相关文档
最新文档