请设计一个学校图书馆理系统,设计该系统的图书类、读者类、书架类,并编写相关类的成员函数和成员数据。要求在每个类定义及成员数据和成员函数间给出相应的注释。本题共三十分。 图书类(10分) 读者类(10分) 书架类(10分)

请设计一个学校图书馆理系统,设计该系统的图书类、读者类、书架类,并编写相关类的成员函数和成员数据。要求在每个类定义及成员数据和成员函数间给出相应的注释。本题共三十分。 图书类(10分) 读者类(10分) 书架类(10分)


参考答案和解析
设计过程如下。 (1)通过与客户沟通,可以得知创建学校图书管理系统的目的是为了对学校图书馆的图书进行有效管理,提高工作效率,方便学校师生借阅图书。 (2)了解创建数据库的目的之后,经过调查和分析,收集相关数据。可以得到与创建数据库相关的数据信息有:读者信息、学生信息、班级信息、专业信息、所在院系信息、图书信息、图书分类信息、条形码信息、图书借阅信息和工作人员信息等。 (3)根据收集到的相关信息,就可以确定“学校图书管理系统”中应该创建的数据库表及其字段。在该数据库中应该创建如下表和字段: ● 系名称(系名,系代码) ● 专业名称(专业名,专业代码,系代码) ● 班级(班级名称,班级代码,班级人数,学制,辅导员) ● 学生信息(姓名,学号,班级代码,性别,身份证号,照片,家庭住址,出生日期,备注) ● 读者(借书证号,读者类别,办证日期,班级/部门代码,读者状态) ● 图书(图书名,书籍条形码,图书馆条码,图书类别,出版社,页数,作者,简介,价格,书架号,是否入库,登记日期,是否借出) ● 分类(分类号,分类名称) ● 借还记录(条形码,图书名,借/还,借书证号,读者姓名,借/还日期,工作人员) ● 工作人员(姓名,口令,权限) 确定了要创建的表和字段之后,就可以根据实际需要,建立表与表之间的关系。“图书管理系统”的关系模型如图2-1所示。

相关考题:

在用class定义一个类时,数据成员和成员函数的默认权限是【 】。

( 12 )下列关于类定义的说法中,正确的是A )类定义中包括数据成员和函数成员的声明B )类成员的缺省访问权限是保护的C ) 数据成员必须被声明为私有的D )成员函数只能在类体外进行定义

关于静态数据成员的描述中正确的是( )。A.类的静态数据成员不是类的所有对象共享的数据B.类的静态数据成员不能被类的成员函数调用C.类的静态数据成员不能被类的构造函数调用D.类的静态数据成员必须进行初始化

使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公有派生。 (1)定义类A的构造函数,该构造函数有一个整型的参数x,在构造函数中请将x赋值给数据成员a。请在注释“//********1********”之后添加适当的语句。 (2)定义类A1的构造函数,该构造函数有两个整型的参数x和y,在构造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数值传人。请在注释“//********2********”之后添加适当的语句。 (3)定义类A2的构造函数,该构造函数有3个整型的参数x,y和z,在构造函数中请将x赋值给数据成员C,将y和z分别赋值给基类A1构造函数的参数x和y。请在注释“//********3********”之后添加适当的语句。 (4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输出基类数据成员a和b及类A2自身的数据成员C的值,上述3个值在输出时以空格隔开。请在注释“//********4********”之后添加适当的语句。 程序输出结果如下: 7 3 738 注意:除在指定的位置添加语句之外,请不要改动程序的其他部分。 试题程序: includeiostream.h classA { inta; public: //********1******** intgeta{returna;} }; classA1:publicA { intb; public: //********2******** intgetb{returnb;} }; classA2:publicA1 { intC; public: //****,****3******** voidshow { //********4******** } }; voidmain { A2a(8.3.7): couta.getaendl: couta.getbendl: a.show; }

以下叙述中正确的是A.在类中,不作特别说明的数据成员均为私有类型B.在类中,不作特别说明的成员函数均为公有类型C.类成员的定义必须是成员变量在前、成员函数在后D.类成员的定义必须放在类定义体内部

下列关于类定义的说法中,正确的是A.类定义中包括数据成员和函数成员的声明B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义

在一个类的定义中,包含有()成员的定义。A、数据B、函数C、数据和函数D、数据或函数

下列关于私有继承的说法中正确的是()。A、基类成员对派生类新定义的成员函数是不可见的;B、基类成员对派生类新定义的成员函数是可见的;C、只有基类成员中的公有成员对派生类新定义的成员函数是可见的;D、基类成员中的保护成员对派生类新定义的成员函数是可见的。

抽象类指的是()A、没有任何成员的类B、只有成员函数没有数据成员的类C、有虚函数的类D、有纯虚函数的类

在一个类的定义中,包含有数据成员和()的定义。A、数据B、函数C、成员函数D、友元

在类的定义形式中,数据成员、成员函数和()组成了类定义体。A、成员的访问控制信息B、公有消息C、私有消息D、保护消息

以下四个关于类的访问控制的描述哪一个是错误的A、子类不能访问其父类的私有数据成员和成员函数B、子类的对象不能访问其父类的保护数据成员或者成员函数C、类的对象不能访问类的保护数据成员或者成员函数D、类的成员函数不能访问类中的私有数据

一个( )允许用户为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数和返回值能取任意数据类型。A.函数模板B.模板函数C.类模板D.模板类

下列关于成员访问权限的描述中,不正确的是( )。A.公有数据成员和公有成员函数都可以被类对象直接处理B.类的私有数据成员只能被公有成员函数以及该类的任何友元类或友元函数访问C.只有类或派生类的成员函数和友元函数可以访问保护成员D.保护成员在派生类中可以被访问,而私有成员不可以

面关于类的静态成员,说法正确的是 ______。A.类的静态成员函数只能访问类的静态数据成员B.类的静态成员函数可直接访问类的所以数据成员C.类的每个对象都有一份自己的静态数据成员D.静态数据成员只能通过“类名::”进行访问

在用class定义一个类时,数据成员和成员函数默认的访问权限是【 】:

关于静态数据成员的描述中正确的是( )。 A.类的静态数据成员不是类的所有对象共享的数据 关于静态数据成员的描述中正确的是( )。A.类的静态数据成员不是类的所有对象共享的数据B.类的静态数据成员不能被类的成员函数调用C.类的静态数据成员不能被类的构造函数调用D.类的静态数据成员必须进行初始化

类的成员包括成员变量和成员函数。公开的成员变量又称为(),而用Property语句定义的成员变量则称为();公开的类成员函数又称为类的()。

若classB中定义了一个classA的类成员Aa,则关于类成员的正确描述是()A、在类B的成员函数中可以访问A类的私有数据成员B、在类B的成员函数中可以访问A类的保护数据成员C、类B的构造函数可以调用类A的构造函数做数据成员初始化D、类A的构造函数可以调用类B的构造函数做数据成员初始化

定义在类体内的成员函数是内联函数,定义在类体外的成员函数不能是内联函数。

下列哪一种顺序是派生类构造函数正确的调用其它构造函数顺序。()A、基类构造函数—对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员B、基类构造函数—派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数C、派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数—基类构造函数D、对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员—基类构造函数

下列关于类和对象的说法中,正确的是()A、编译器为每个类和类的对象分配内存B、类的对象具有成员函数的副本C、类的成员函数由类来调用D、编译器为每个对象的数据成员分配内存

在声明一个类时,必须同时声明类的数据成员和成员函数。

基类的()在私有继承时在派生类中为私有成员函数,在公有和保护继承时在派生类中为保护成员函数。A、私有成员函数B、保护成员函数C、公有成员D、保护数据成员

单选题下列哪一种顺序是派生类构造函数正确的调用其它构造函数顺序。()A基类构造函数—对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员B基类构造函数—派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数C派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数—基类构造函数D对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员—基类构造函数

单选题下列关于类和对象的说法中,正确的是()A编译器为每个类和类的对象分配内存B类的对象具有成员函数的副本C类的成员函数由类来调用D编译器为每个对象的数据成员分配内存

单选题基类的()在私有继承时在派生类中为私有成员函数,在公有和保护继承时在派生类中为保护成员函数。A私有成员函数B保护成员函数C公有成员D保护数据成员

单选题若classB中定义了一个classA的类成员Aa,则关于类成员的正确描述是()A在类B的成员函数中可以访问A类的私有数据成员B在类B的成员函数中可以访问A类的保护数据成员C类B的构造函数可以调用类A的构造函数做数据成员初始化D类A的构造函数可以调用类B的构造函数做数据成员初始化