文档库 最新最全的文档下载
当前位置:文档库 › 面向对象程序设计实验报告

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

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

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

学生所在学院:信息科学与工程学院

学生所在班级:

学生姓名:

指导教师:

实验一C++基础

1.1实验目的

1.了解并熟悉开发环境,学会调试程序;

2.熟悉C++中简单的标准输入输出函数的使用方法;

3.理解const修饰符的作用并学会应用;

4.理解内联函数的优缺点并学会其使用场合;

5.理解并学会函数重载;

6.理解并熟练掌握使用new和delete来分配内存;

7.理解并熟练掌握引用的使用方法。

1.2实验内容

1.2.1程序阅读

1.理解下面的程序并运行,然后回答问题。

#include

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="<

cout<<"x2="<

cout<<"d1="<

cout<<"d2="<

return 1;

}

问题一:上述程序的输出结果是什么?

答:输出结果为

问题二:①处调用的是哪个函数?

答:①处调用的是double max_def(double x,double y)函数

问题三:②处的输出结果为什么是d2=12,而不是d2=12.3?

答:因为调用的int max_def(int x,int y,int z)函数返回值为整型。

2.理解下面的程序并运行,然后回答问题。

#include

int main()

{

int*p1=new int;------------------------------------------------------①

int*p2=new int(0);-------------------------------------------------------②

char*p3=new char[10];----------------------------------------------------③

return 1;

}

问题一:①、②、③处动态申请内存分别代表什么意思?

答:①处:定义一个整型指针动态分配一个整型空间将首地址赋给p1;

②处:定义一个整型指针动态分配一个整型空间,并赋值为0;

③处:定义一个字符型指针动态分配具有10个数组元素的字符数组空间,将

首地址赋给p3。

问题二:该程序存在什么不合理的地方?

答:程序结束时没有释放分配的存储空间。

3. 理解下面的程序并运行,然后回答问题。

#include

void s a,int b)

{

int temp=a;

a=b;

b=temp;

}

void s*a,int*b)

{

int temp=*a;

*a=*b;

*b=temp;

}

int main()

{

int i=5;

int j=10;

cout<<"Before s"<

s);

cout<<"After the first s"<

s);

cout<<"After the second s"<

return 1;

}

问题一:输出结果是什么?

答:

问题二:①处函数调用不能实现两个数的交换,而②可以,原因是什么?

答:①处调用的函数形参为整型变量,是值传递,形参的改变不影响实参;

②处调用的函数形参为指针,是址传递,形参的改变会导致实参的改变。

问题三:②处调用的是哪个函数?

答:调用的函数是void s*a,int*b)。

实验二类和对象——类的构建

2.1 实验目的

1.类的定义;

2.类对象的使用;

3.类成员变量的定义和使用;

4.类成员函数的定义和使用;

5.理解类的作用域;

6.理解类的声明;

7.理解类中成员的访问属性;

2.2 实验内容

2.2.1程序阅读

1. 理解下面的程序并运行,然后回答后面的问题。

#include

class CDate

{

public:

void Set(int m,int d,int y)

{

month=m;

day=d;

year=y;

}

int IsLeapYear()

{

return (year%4==0 && year%100!=0)||(year%400==0);

}

void Print()

{

cout<

}

private:

int month;

int day;

int year;

};

void main()

{

CDate a;

a.Set(10,15,2007);

a.Print();

}

问题一:以上程序为什么不能通过编译?如何改正?

答:因为Set函数被设为私有main函数中无法调用,应在set函数前加public。问题二:类中的成员函数和成员变量分别属于哪种访问权限?

答:数据成员为私有,Print为公有;set原为私有,改正后为公有。

问题三:①处语句的意思是什么?

答:将类定义一个对象a。

2.理解下面的程序并运行,然后回答问题。

. #include

int month;//全局变量

int day;

int year;

void Set(int m,int d,int y)

{

::month=m;

::day=d;

::year=y;

}

class CDate

{

public:

void Set(int m,int d,int y)

{

::Set(m,d,y);

}

void Print()

{

cout<

}

private:

int month;

int day;

int year;

};

void main()

{

CDate a;

a.Set(10,15,2007);

a.Print();

}

问题一:①处是在给成员变量赋值还是全局变量赋值,如果去掉域作用符::,程序是否还能正确运行?

答:全局变量,不能。

问题二:②处调用的哪个函数,如果去掉域作用符::,程序是否还能正确运行?答:调用全局set函数;不能。

问题三:程序的输出结果是?

答:

实验三类和对象——构造函数与析构函数

3.1实验目的

1.理解this指针的作用和用法;

2.掌握构造函数的定义和作用;

3.掌握构造函数的使用;

4.掌握拷贝构造函数的定义和使用;

5.掌握构造函数的重载;

6.掌握析构函数的定义和使用。

3.2实验内容

3.2.1程序阅读

1.理解下面的程序并运行,然后回答问题。

#include

class CPoint

{

public:

void Set(int x,int y);

void Print();

private:

int x;

int y;

};

void CPoint::Set(int x,int y)

{

x=x;

y=y;

}

void CPoint::Print()

{

cout<<"x="<

}

void main()

{

CPoint pt;

pt.Set(10,20);

pt.Print();

}

问题一:以上程序编译能通过吗?如果不能,原因是什么?

答:能通过编译。

问题二:以上程序的运行结构是否正确,如果不正确,分析为什么,如何改正?答:运行结构不正确,因为Set函数中,x=x,参数x覆盖数据成员,使得数据成员并没有被赋值。

2.理解下面的程序并运行,然后回答后面的问题。

include

class CPerson

{

public:

void Print();

private:

CPerson();

private:

int age;

char*name;

};

CPerson::CPerson()

{

}

void CPerson::Print()

{

cout<<"name="<

}

void main()

{

CPerson ps(23,"张三");

ps.Print();

}

问题一:以上程序存在三个错误,在不改变主函数内容的前提下,试改正该程序。答:第一处错误是:在程序头应添加#include文件,第二处错误是:构造函数没有参数,应添加为(int i,char j),第三处错误是:构造函数没有函数体。改正后的程序为:

#include

#include

class CPerson

{

public:

void Print();

CPerson(int i ,char *j);

public:

int age;

char *name;

};

CPerson::CPerson(int i,char *j)

{

age=i;

name=j;

}

void CPerson::Print()

{

cout<<"name="<

}

void main()

{

CPerson ps(23,"张三");

ps.Print();

}

实验四类和对象—对象传递与静态成员

4.1 实验目的

1. 静态成员(静态数据成员、静态成员函数)的作用与使用时的注意事项

2.掌友元(友元函数、友元类)的作用和使用;

3. 理解常类型。

4.2 实验内容

4.2.1 程序阅读

1. 理解下面的程序并运行,然后回答后面的问题。

#include

#include

class CStudent

{

public:

CStudent(char*n,int a);

~CStudent();

static void SetAge(int age);

private:

char*name;

int age;

static int nTotalObj;

};

int CStudent::nTotalObj=0;

CStudent::CStudent(char*n,int a)

:age(a)

{

int nLcn=strlen(n);

name=new char[nLen+1];

strcpy(name,n);

name[nLen]='\0';

nTotalObj++;

}

CStudent::~CStudent()

{

delete[]name;

nTotalObj--;

}

void CStudent::SetAge(int age)

{

this->age=age;

}

void main()

{

CStudent stu1("张三",25);

CStudent str2("李四",26);

cout<<"CStudent::nTotalObj="<

}

问题一:以上程序编译能通过吗,为什么?

答:不能,CStudent::nTotalObj为私有变量,类引不能访问。

问题二:成员变量nTotalObj起什么作用,它是如何实现的?

答:统计该类所创建对象的个数,通过声明为静态。

问题三:如果不改编主函数和类Cstudent中的成员变量的属性,应该如何改正该程序?

答:可以将static int nTotalObj声明为公有。

2. 理解下面的程序并运行,然后回答后面的问题。

#include

#include

class CStudent

{

public:

CStudent(char*n,int a);

~CStudent();

private:

char*name;

int age;

};

CStudent::CStudent(char*n,int a) :age(a)

{

int nLen=strlen(n);

name=new char[nLen+1];

strcpy(name,n);

name[nLen]='\0';

}

CStudent::~CStudent()

{

delete[]name;

}

class CTeacher

{

public:

CTeacher(char*tn,int ta);

~CTeacher();

void SetStuAge(int a); private:

char*name;

int age;

CStudent stu;

};

CTeacher::CTeacher(char*tn,int ta) :age(ta)

{

int nLen=strlen(tn);

name=new char[nLen+1];

strcpy(name,tn);

name[nLen]='\0';

}

CTeacher::~CTeacher()

{

delete[]name;

}

void CTeacher::SetStuAge(int a)

{

stu.age=a;

}

void main()

{

CStudent stu1("张三",25);

CStudent str2("李四",26);

}

问题一:以上程序有两个错误,指出并改正。

答:第一处错误是Cstudent age为私有,Cteacher无法访问。

第二处错误是Cteacher中Cstudent未初始化。

改正:①public:int age②Cteacher::Cteacher(char*tn,int ta)::age(ta),stu(tn,ta) 3. 理解下面的程序并运行,然后回答后面的问题。

#include

class Date

{

private:

const int year;

const int month;

const int day;

public:

Date(int y,int m,int d);

void showdate();

};

Date::Date(int y,int m,int d)

{

year=y;

month=m;

day=d;

}

void Date::showdate()

{

cout<

}

void main()

{

const Date obj(2007,10,30);

obj.showdate();

}

问题一:以上程序有两个错误,试指出来,并改正之?

答:第一处错误是:构造函数应该用成员初始化列表对常数据成员初始化;第二处错误是:没有用常成员函数访问常对象数据成员。改正后的程序为:

#include

using namespace std;

class Date

{

private:

const int year;

const int month;

const int day;

public:

Date(int y,int m,int d);

void showdate()const ;

};

Date::Date(int y,int m,int d):year(y),month(m),day(d)

{

}

void Date::showdate()const

{

cout<

}

void main()

{

Date obj(2007,10,30);

obj.showdate();

}

实验五派生与继承—单基派生

5.1 实验目的

1. 理解继承的概念;

2.理解共有派生、私有派生和保护派生;

3. 理解单基派生类中构造函数和析构函数的执行顺序。

5.2 实验内容

5.2.1 程序阅读

1. 理解下面的程序并运行,然后回答后面的问题。

#include

class CBase

{

public:

CBase(int a)

:a(a)

{

}

protected:

void print()

{

cout<<"a="<

}

private:

int a;

};

class CDerive:public CBase

{

public:

void print()

{

CBase::print();

cout<<"b="<

}

private:

int b;

}

void main()

{

CDerive d;

d.print();

CBase b;

b.print();

}

问题一:以上程序有两个错误,试指出来,并改正之。

答:类CBase中的成员数据应该为公有访问属性,第二个错误是构造函数有问题。改正后的程序有两种:

#include

using namespace std;

class CBase

{

public:

CBase(int a):a(a)

{

}

Void print()

{

cout<<"a="<

}

public:

int a;

};

class CDerive:public CBase

{

public:

CDerive(int a,int b):CBase(a),b(b)

{

}

void print()

{

CBase::print();

cout<<"b="<

}

private:

int b;

};

void main()

{

CDerive d(6,4);

d.print();

CBase b(5);

b.print();

}

#include

using namespace std;

class CBase

{

public:

void print()

{

cout<<"a="<

}

public:

int a;

};

class CDerive:public CBase {

public:

void print()

{

CBase::print();

cout<<"b="<

}

private:

int b;

};

void main()

{

CDerive d;

d.print();

CBase b;

b.print();

}

2. 理解下面的程序并运行,然后回答后面的问题。#include"iostream.h"

class CBase

{

public:

CBase(int a)

:a(a)

{

cout<<"base structure"<

}

~CBase()

{

cout<<"base destructure"<

}

void print()

{

cout<<"a="<

}

protected:

int a;

};

class CDerive:public CBase

{

public:

CDerive(int a,int b,int c)

:CBase(a),b(b),c(c)

{

cout<<"dervice structure"<

}

~CDerive()

{

cout<<"derive destructure"<

}

void print()

{

CBase::print();

cout<<"b.a="<

cout<<"c="<

}

private:

CBase b;

int c;

};

void main()

{

CDerive d(1,2,3);

d.print();

}

问题一:以上程序的输出结果是什么,为什么?

答:输出结果是

原因是基类和派生类中构造函数和析构函数的执行顺序。问题二:①处语句执行完后,d.b.a的值为多少?

答:值为1。

实验六派生与继承—多基派生

6.1 实验目的

1. 理解多基派生的定义;

2. 基派生中的构造函数与析构函数的调用顺序;

3. 理解多基派生中虚基类的作用。

6.2实验内容

6.2.1 程序阅读

1. 理解下面的程序并运行,然后回答后面的问题。class CBase1

{

public:

CBase1(int a)

:a(a)

{

cout<<"base1 structure..."<

}

~CBase1()

{

cout<<"base1 destructure..."<

}

void print()

{

cout<<"a="<

}

protected:

int a;

};

class CBase2

{

public:

第3章 面向对象程序设计基础

第3章面向对象程序设计基础

第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? 答:类是将一类事物的特性描述出来,然后如果用这个类来定义对象,则该对象就拥有了这个类所描述的所有特性。 在Java系统中,系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合称为一个包,所有包合称为类库。 【2】如何定义方法?在面向对象程序设计中方法有什么作用? 答:方法的定义由两部分组成:方法声明和方法体。 方法的声明如下: 返回值类型方法名(参数类型形式参数1,参数类型形式参数2…){ 程序代码; 返回值; } 在面向对象程序设计中,方法的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) {

studentNo=no; studentName=name; return no; } 答:构造方法的功能是:构造方法是一个特殊的方法,主要用于初始化新创建的对象; 特点:构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 错误之处:(1)构造方法Student()前不能加void,(2)不能用return语句,(3)类名Student 首字母S改成小写s. 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 class Student { String id; String name; String sex; int age; void talk(){

《C面向对象程序设计》谭浩强版复习总结

第一章C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

c++面向对象程序设计大作业

《面向对象程序设计》 大作业 题目学生成绩管理系统 学院 专业 班级 姓名 指导教师 2015 年11 月11 日

目录 一大作业的目的 (1) 二大作业的内容............................ . .. (2) 三大作业的要求与数据............... ...... . (3) 四大作业应完成的工作.................. . (4) 五总体设计(包含几大功能模块)........... . (5) 六详细设计(各功能模块的具体实现算法——流程图) (6) 七调试分析(包含各模块的测试用例,及测试结果) (7) 八总结 (8) 十参考资料 (9)

一大作业的目的 《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。 二大作业的内容 对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三大作业的要求与数据 1、用C++语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出. 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录 的输入。) (3)、成绩信息显示浏览功能:完成全部学生记录的显示。 (4)、查询功能:完成按姓名查找学生记录,并显示。 (5)成绩信息的删除:按学号进行删除某学生的成绩. (6)、排序功能:按学生平均成绩进行排序。 (7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

面向对象程序设计实验指导书讲解

面向对象程序设计实验指导书 实验一、C++开发环境应用入门(2学时)(选做) 1、实验目的 (1)了解C++开发工具的特点 (2)熟悉C++开发环境 (3)学习用C++编写标准的C++程序 2、实验任务 使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序: #include void main(void) { cout<<”Hello!\n”; cout<<”Welcome to C++!\n”; } 3、实验步骤 (1)启动Visual C++或C++Builder开发环境 (2)创建一个项目 A)单击File菜单中的New选项,显示示新建对话框 B)选择Console Wizard(C++Builder) 或Win32 Console Application(VC++)。 C)选择项目所在路径及输入项目的名称 D)依次按‘下一步’直至完成为止。 (3)至此,C++Builder已经建立好工程相关的文件(请不要随意更改其自动生成的文件),在生成的main函数中写入必要的内容即可。 (4)对于VC,请继续下面的步骤: A)建立C++源程序文件 a)选选菜单命令Project|Add to Project|New,弹出New对话框 b)在New对话框的Files选项卡中选择C++ Source File,并填入文件名称,单击OK按钮,完成 新建C++源程序文件 B)编辑C++源程序文件 a)在文件编辑窗口中输入代码 b)完成后,选择菜单File|Save保存这个文件 C)建立并运行可执行程序 a)选择菜单命令Build,建立可执行程序 如果你正确输入了源程序,此时便成功地生成了可执行程序。 如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源 程序进行修改后,重新选择菜单命令Build建立可执行程序。 b)选择菜单命令Run,运行程序,观察屏幕显示内容。 D)关闭工作空间 选择菜单命令File|Colse WorkSpace关闭工作空间。

(完整版)《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境 一、实验目的 1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。 2、掌握如何编辑、编译、连接和运行一个C++程序。 3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。 二、实验要求 1、分析下列程序运行的结果。 程序一: #include int add(int x,int y=8); void main() { int x=4; cout< void main() { int *p,i; i=5; p=&i; i=*p+10; cout<<"i="< void main(void) { int i=10; int &r=i; r++; cout<<"i="< void func(); int n=1; void main() { static int a; int b= -9; cout <<"a:"<

c++面向对象课程设计报告

课程设计报告 课程名称面向对象程序设计 课题名称学生成绩管理系统 专业计算机科学与技术 班级计算机 1001 学号 01 姓名 指导教师李珍辉陈淑红李杰军 2011年 12 月 28 日

湖南工程学院 课程设计任务书 课程名称面向对象程序设计 课题学生成绩管理系统 专业班级计算机1001 学生姓名 学号 01 指导老师李珍辉陈淑红李杰军 审批 任务书下达日期 2011 年 11 月 15 日 任务完成日期 2011 年 12 月 28 日

一、设计内容与设计要求 1.课程设计目的: 面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。 2.课题题目 1)公司库存管理系统 2)高校学籍管理系统 3)高校工资管理系统 4)高校人事管理系统 5)通讯录程序设计 6)学生成绩管理系统 7) 图书管理系统 8)文本编辑器的设计与实现 9)学生考勤管理系统 10)公司人员管理系统 3.设计要求: ⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相 应题号的课题。随意换题者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括 系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。②完 成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模 块图)。③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E -R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。④系 统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修 改和调整。⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出 每一步的操作步骤。⑥关键源程序(带注释)

2016年电大面向对象程序设计技术-作业题

2015秋季学期计算机科学与技术本科 《面向对象程序设计技术》作业题 (在电大在线该课程讨论区跟帖提交,注明姓名和学号以记录成绩)选择题 1.可以在本类及派生类的成员函数中进行访问的访问控制修饰符是(B) A.private B.protected C.public 2.在IDE中将编程项目采用多文件结构下,类的定义一般放在(A) A.头文件 B.程序文件 C.主程序文件 3.内联成员函数在类外定义时要将其和类定义一起放在(A) A.头文件 B.程序文件 C.主程序文件 4.下面哪个内存区域是C++中的运行时动态内存分配区域?( D ) A.代码区 B.栈区 C.数据区 D.堆区 5.对象作为函数参数使用时,一般使用(A)形式 A.引用 B.指针 C.对象拷贝

6.同类的多个不同对象的数据成员值各有不同,但不同对象可以共享类的成员函数代码, 实际调用成员函数时,是通过(B )来区分不同对象的。 A.显式给出不同对象不同地址 B.隐含的this指针 C.引用 7.下面哪一种情况不会自动调用拷贝构造函数。(E) A.用一个对象初始化另一个对象时 B.当一个对象作为值传递给一个函数时 C.当一个对象作为值从一个函数返回之前,该对象被拷贝到栈区 D.函数调用结束后,栈区中的返回对象拷贝给主调程序的对象 E.建立指向对象的指针并初始化指针值时 8.下列哪些对象的数据成员类型可以不用初始化表的方式进行初始化(D) A.常量数据成员 B.引用数据成员 C.类中对象成员 D.一般数据成员 9.下列哪一种类设计一般无需在类中设计静态数据成员以使建立的多个对象共享静态数 据数据成员。( D ) A.一个链表类的头指针和尾指针 B.一个学生类中用于保存建立了多少个学生对象的计数器 C.银行帐号类中的年利率 D.一般只用于建立一个对象的类 10.一个类中的公有(public)性质的静态数据成员,以下哪一种访问方式是错误的(D) A.对象名.静态数据成员名 B.指向对象的指针—>静态数据成员名 C.类名::静态数据成员名 D.类名.静态数据成员名 11.下列哪一个运算符不能够被类所重载(E) A.“.”成员访问运算符 B.“*”成员指针访问运算符 C.“::”域运算符 D.“?:”条件运算符 E.“=”赋值运算符

《面向对象程序设计》实验指导书

《面向对象程序设计》课程实验指导书

实验一 Java开发环境的安装与配置 一、实验目的: 1. 掌握JDK、Eclipse的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及Eclipse的配置。 3. 熟悉Eclipse的编辑、编译与调试环境,编写简单的Application程序 编译执行并完成调试。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序 (能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 四、实验步骤: 1.从https://www.wendangku.net/doc/e55976623.html,/technetwork/java/index.html上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Eclipse环境下编写一个HelloWorld.java程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序)

实验二 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。 (闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.金字塔:Pyramid.java 在屏幕上显示一个由星型符号“*”组成的金字塔图案,示例如下: * *** ***** ******* 要求:金字塔高度h,可以由用户设置。 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成 示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String[ ] args)方法中加入实现要求功能 的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第二题)允许用户设置金字塔高度。 4. 编译运行程序,观察输出结果是否正确。

《面向对象程序设计》教学大纲资料

面向对象程序设计教学大纲西北民族大学数学与计算机科学学院 制定的时间:二〇一二年五月

面向对象程序设计教学大纲 一、课程基本资料 主讲教师:曹永春、蔡正琦、顿毅杰 主教材:《C++面向对象程序设计》中国铁道出版社,陈维兴、林小茶编著,第2版,2009 辅助教材: 1.《C++编程思想》机械工业出版社,美Bruce Eckel,Chuck Alliso著,刘宗田,袁兆山,潘秋菱等译; 第1版,2011年 2. 《C++程序设计教程》机械工业出版社,美H.M.Deitel P.J.deitel 薛万鹏等译,2000年 3.《C++程序设计语言》,机械工业出版社,美Bjarne Stroustrup 著,裘宗燕译,2005年 4.《C++面向对象程序设计习题解析与上机指导》清华大学出版社,陈维兴主编,第2版,2009年 实验教材及参考书: 同上 课程性质:学科选修课 学分:4分 课时:72学时,其中理论课54学时,上机实验18学时 先修课程:计算机导论、C语言程序设计 课程结构:多媒体教学,课堂讨论、课内实验、课后作业 评价方案:(考核依据、评分的办法、权重的分布) ?平时成绩:10% 课堂表现(课堂提问、考勤、作业等) ?实验成绩:20%(实验报告、实验考试)

?期中成绩:20%(闭卷考试) .期末成绩:50%(闭卷考试) 参考书目: 名称编著者出版社出版年月《C++编程思想》刘宗田,袁兆山,潘 机械工业出版社2011年 秋菱等译 机械工业出版社2000年 《C++程序设计教程》H.M.Deitel, P.J.deitel 著,薛万鹏等译 《C++程序设计语言》Bjarne Stroustrup 机械工业出版社2005年 著,裘宗燕译 陈维兴主编清华大学出版社2009年 《C++面向对象程序设计 习题解析与上机指导》 推荐刊物: 1、《计算机学报》 2.《软件学报》 3.《程序员杂志》 4.《码农周刊》 5.《快乐码农》 相关网站: 1. 中国计算机学会https://www.wendangku.net/doc/e55976623.html,/sites/ccf/ 2. 计算机爱好者协会https://www.wendangku.net/doc/e55976623.html,/forum.php 3.C语言中文网https://www.wendangku.net/doc/e55976623.html,/cpp 5.中国悠悠期刊网https://www.wendangku.net/doc/e55976623.html,/ 6. 中国知网https://www.wendangku.net/doc/e55976623.html,/ 文献 1.谭浩强.C程序设计.第4版.北京:清华大学出版社,2010

什么是面向对象程序设计

1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。

面向对象程序设计(答案)

学号:姓名: 第三章面向对象程序设计作业 一、判断题 1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。对 2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。对 3、接口中的成员变量全部为常量,方法为抽象方法。对 4、抽象类可以有构造方法,可以直接实例化。错 5、对static方法的调用可以不需要类实例。对 6、包含抽象方法的类一定是抽象类。对 7、方法中的形参可以和方法所属类的属性同名。对 8、接口无构造器,不能有实例,也不能定义常量。错 9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。对 10、Java应用程序的入口main方法只有一种定义法。对 二、选择题 1、下列答案正确的是(A ) A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为public B) 在同一个Java源文件中只能包含一个类,并被声明为public C) 在同一个Java源文件中可以包含多个类,都可以被声明为public D) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default 2、Java实现动态多态性是通过( B )实现的。 A) 重载B) 覆盖 C) 接口D) 抽象类 3、下列哪一个是正确的方法重载描述( A ) A) 重载方法的参数类型必须不同 B) 重载方法的参数名称必须不同 C) 返回值类型必须不同 D) 修饰词必须不同 4、final关键字不可以用来修饰( D ) A) 类B) 成员方法 C) 域D) 接口 5、接口的所有成员方法都具有( B )属性 A) private, final B) public, abstract C) static, protected D) static 6、Java的封装性是通过(A )实现的 A) 访问控制B) 设计内部类 C) 静态域和静态方法D) 包 7、下列接口或类不属于.*包的是( D ) A) Collection B)Vector C) Map D) Integer 8、下述哪一组方法,是一个类中方法重载的正确写法( A ) A) int addValue( int a, int b ){return a+b;}

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

C++面向对象程序设计实验报告 学院:信息科学与技术学院 班级:卓越电子1201 姓名:刘强 学号:120910115 实验二 C++面向过程程序设计 实验目的 掌握函数声明、定义和使用的方法 掌握函数递归调用的方法 实验内容 1、编写一个函数,求数列运算中从n个不同的数中取r个数的所有选择的个数,要求如下:主程序中设计一个循环,不断从输入接收n和r的值,计算结果并输出,当用户输入0 0时,程序结束; 能检查输入数据的合法性,要求n>=1并且n>=r; 能得到正确结果。 输入:5 3输出:10 输入:10 20;输出:Input Invalid !; 输入:-1 4;输出:Input Invalid!; 步骤: 利用一个函数fn(int n)计算n!, 利用另一个函数Cnr(int n, int r)计算Cnr,在该函数中调用fn(), 程序代码: #include int fn(int n) { int s=1; for(int i=1;i<=n;i++) { s=s*i; } cout<<"n!="<

int Cnr(int n,int r) { cout<<"Please input two numbers:"<>n>>r; if(n==0&&r==0) { cout<<"Programme shutdown."<=1&&n>=r) { int a; int b; int c; int d; a=fn(n); b=fn(r); c=fn(n-r); d=a/(b*c); cout<

《C++面向对象程序设计》教案

第3章类和对象3.2 构造函数与析构函数 例:点类 Point class Point { private: int x,y; public: Point() {}; Point(int xx, int yy) { x=xx; y=yy; } Point(Point &p) { x=p.x; y=p.y; } int GetX() const { return x; } int GetY() const { return y; } void SetXY(int xx, int yy) { x=xx; y=yy; } void Show(); }; void Point::Show() { cout<<"X: "<

void SetSex(int s){ sex = s; } char *GetName() const { return name; } int GetAge() const { return age; } char GetSex() const { return sex; } void Show(); }; #include "person.h" #include using namespace std; Person::Person(char *n, int a, char s) { name = new char[strlen(n)+1]; strcpy(name,n); age = a; sex = s; } Person::Person(Person &p) { name = new char[strlen(https://www.wendangku.net/doc/e55976623.html,)+1]; strcpy(name,https://www.wendangku.net/doc/e55976623.html,); age = p.age; sex = p.sex; } void Person::SetName(char *n) { delete[] name; name = new char[strlen(n)+1]; strcpy(name,n); } void Person::Show() { cout<<"Name: "<

面向对象程序设计教程答案

面向对象程序设计教程(C++语言描述)题解与课程设计指导 第1章 面向对象程序设计概论 一、名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 二、填空题 (1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。 (2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。

(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。 (5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、选择题(至少选一个,可以多选) (1)面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 (2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。 A. 抽象 B. 继承 C. 封装 D. 多态 (3)在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 (4)面向对象程序设计中,对象与对象之间的通信机制是(C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与C语言的关系的描述中,(D )是错误的。 A. C语言是C++的一个子集 B. C语言与C++是兼容的 C. C++对C语言进行了一些改进 D. C++和C语言都是面向对象的 【结果分析】 C语言是面向过程的。C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。 (6)面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依存、不可分割的整体来处理。

完成Java面向对象程序设计实验课的心得体会范文

Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),

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

资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 综合实验报告 面向对象程序设计 专业名称: 物联网工程 ___班级: _____ 级2班__ ___________姓名: 你哥哥 学号: 02051928 信息科学与工程学院 二零一三年七月

第一题: (1) 1.1题目概述 (1) 1.2设计思路 (2) 1.3设计说明与调试分析 (2) 1.4编码实现 (2) 1.5程序运行结果 (5) 1.6设计心得 (5) 第二题: (6) 2.1题目概述 (6) 2.2设计思路 (7) 2.3设计说明与调试分析 (7) 2.4编码实现 (7) 2.5程序运行结果 (11) 2.6设计心得 (11)

第一题: 1.1题目概述 用抽象类设计计算二维平面图形图形面积的程序, 在基类TDshape中设计纯虚函数area()和printName(), area()用于计算几何图形的面积, printName()用于打印输出几何图形的类名, 如Triangle类的对象就打印输出”Triangle”。每个具体形状的类则从抽象类TDshape派生, 各自需要定义其它独有的数据成员和成员函数, 而且定义area()和printName()的具体实现代码, 如图所示。 要求编写以TDshape为接口的函数, 借以访问具体类如

Triangle和Rectangle类的成员函数area(), printName ()。1.2设计思路 由简到繁, 逐步实现。 1.3设计说明与调试分析 编写基类TDshape->编写虚函数->编写继承类Triangle ->实例化TDshape和Triangle ->调用基类虚函数实现调用继承类相应函数->同样的方式处理继承类Rectangle. 1.4编码实现 #include using namespace std; class TDshape{ public: virtual void area()=0; virtual void printName()=0; }; class Triangle:public TDshape{ private: double width,height;

面向对象程序设计C#课程教案

《程序设计与算法(C#)二》课程教案 一、课程说明 1、课程代码: 040483 2、总学时数: 64 ,其中理论环节学时数: 32 ,实验实践环节学时数: 36 3、学分: 6分 4、适用专业:计算机应用技术 5、本课程的性质、地位和作用 本课程是计算机应用技术的一门重要的编程类专业课。C#语言是针对网络技术应 用而开发的语言,课程的主要教学内容以应用为主,以语法介绍为辅,主要包括C# 语言基本语法、面向对象编程方法,C#开发Windows应用程序,C#开发Web应用程序等。本课程的先修课是计算机应用基础或C语言,后续课程是基于C#的Web应用程 序设计。本课程是软件工程、信息系统开发、开发工具等课程的前驱课程。 《程序设计与算法(C#)》采用CAI课件,在多媒体教室讲授。使用多媒体技术 可以提高授课效率,可以现场运行、修改例子程序,实现直观教学,提高授课效果。 本课程以从实际应用出发,集应用与原理于一体,两部分内容互相联系,又各 有侧重,力求做到理论联系实际,用理论来指导实际应用。 二、教学基本要求 1、本课程的目的、任务 课程的教学目的是培养学生使用NET平台开发桌面及网络应用程序的能力。教学 任务是让学生掌握C#语言的基本知识与技术,理解并树立面向对象的程序设计思想,培养运用Visual C#https://www.wendangku.net/doc/e55976623.html,开发工具进行编程的能力。 2、本课程的教学要求 课程的要求是培养学生面向对象编程的思想和能力及素质,为以后学习其它面向 对象的编程语言打下坚实的基础。本课程是一个实践性非常强的课程,要求学生要注 重实践,在掌握C#语言的基本语法后,重点应放在提高编程能力的训练上。

面向对象程序设计教程答案

面向对象程序设计教程(C++吾言描述)题解与课程设计指导 面向对象程序设计概论 一、 名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公 共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的 单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对 象要求另一个对象实施某种操作的一个请求。 二、 填空题 ( 1) 目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种 重要的程序设计方法。 (2) 结构化程序设计方法中的模块由顺序、选择和循环 3 种基本结构组成。 ( 3) 在结构化程序设计方法中,程序可表示为程序 =数据结构 +算法; 而面向 对象的程序设计方法,程序可表示为程序 =对象 +消息。 ( 4) 结构化程序设计方法中的基本模块是过程; 而面向对象程序设计方法 中的基本模块是类。 ( 5) 面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、 选择题(至少选一个,可以多选) ( 1) 面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 ( 2) 面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制 叫做( C )。 A. 抽象 B. 继承 C. 封装 D. 多态 ( 3) 在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 ( 4) 面向对象程序设计中,对象与对象之间的通信机制是( C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与 C 语言的关系的描述中,(D )是错误的。 A. C 语言是C++勺一个子集 B. C 语言与C++是兼容的 C. C++对C 语言进行了一些改进 D. C++和C 语言都是面向对象的 【结果分析】 C 语言是面向过程的。C++吾言是一种经过改进的更为优化的 C 语言,是一种混 合型语言,既面向过程也面向对象。 ( 6) 面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依 存、不可分割的整体来处理。 A. 算法 B. 信息 C. 数据隐藏 D. 数据抽象 第1

面向对象程序设计大作业(C++)

面向对象分析/设计课程大作业 银行业务处理系统 13级软件学院测试班 1367004029 曾丹 1.需求分析 随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。 现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如

何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。 近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。 随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。支持决策系统的,需要在数据库的基础上,进行联机分析处理,每次处理的数据量大,响应时间长。 特别是银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。 主要用于银行的储蓄卡管理系统,它可以帮助我们有效、准确、并且高效实现的完成存取事件。此系统操作方便效率、安全性高,只要客户开户并设定好密码就可以轻松的实现存取款。 系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功能。 储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认密码和保存组成。(开户金额必须是数字,密码和确认密码必须一样是六位数字) *注销模块:一旦注销该卡号就不存在且余额提醒你取出。 通过该银行账户管理系统地运行,使办公人员可以轻松快捷的完成对账户管理的任务,提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。 该银行帐目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。经过实践证明,该划分是合理的,极大得提高了本系统的实现。

相关文档
相关文档 最新文档