数据库系统原理 自考 好难阿! 网上试卷都找不到答案!有没有高手帮帮忙 就几题!! 很急 谢谢了

数据库系统原理 自考 好难阿! 网上试卷都找不到答案!有没有高手帮帮忙 就几题!! 很急 谢谢了,第1张

1、记录、

2、物理结构设计(概念结构设计阶段、数据库逻辑设计阶段、物理结构设计统称结构设计,这里答案不标准,实际应该填写行为设计,行为设计包括,功能设计+事物设计+程序设计)

3、数据库实施阶段

#include <string.h>

#include <iostream.h>

class Book{ // 书籍基类

protected:

char Title[40]// 书名

long Code// 条码

int Type// 0表示书,1表示杂志

public:

Book()

Book(char *title,long code)

void SetCode(long code){ Code = code}

void SetTitle(char* tl){ strcpy(Title,tl)}

void SetType(bool type){Type = type}

int GetType(){ return Type}

long GetCode(){ return Code}

virtual void Show()// 显示书的信息

friend ostream&operator<<(ostream&, Book&)// 重载插入运算符

friend istream&operator>>(istream&is, Book&)// 重载提取运算符

Book *Next// 为创建每个读者所借书链表而定义指针

}

class Item :public Book{ //书的款目

// char Title[40]// 书名

char Author[20]// 著者名

char IndexCode[10]// 分类号

// long Code// 条码

public:

Item()

Item(char *author,char *title,char *index,int code)

Item(Item &)

void SetAuthor(char*)

void SetIndexCode(char*)

virtual void Show()// 显示书的信息

friend ostream&operator<<(ostream&os, Item&)// 重载插入运算符

friend istream&operator>>(istream&is, Item&)// 重载提取运算符

public:

}

class Magazine:public Book { //杂志类

int Volume

enum LANG {CHINESE=1,ENGLISH} Lang// 枚举变量,确定语言类别

public:

Magazine():Book(){Volume = 0Lang = CHINESEType = 1}

Magazine(char *title,int vol,LANG lang,int code)

Magazine(Magazine&)

void SetVolume(int vol){Volume = vol}

void SetLang(int lang){Lang = (LANG)lang}

virtual void Show()// 显示杂志的信息

friend ostream&operator<<(ostream&os, Magazine&)// 重载插入运算符

friend istream&operator>>(istream&is, Magazine&)// 重载提取运算符

}

class Reader{ // 读者信息类

char Name[20]// 姓名

char Position[20]// 职务

int Age// 年龄

long Code// 借书证号

Book* items// 所借书链表

public:

Reader()

Reader(char *name,char *posi,int age,int code)

// Reader(Reader&)

~Reader()

long GetCode(){return Code}

void SetName(char*)

void SetPosition(char*)

void SetAge(int)

void SetCode(long)

void AddBook(Item)// 添加所借书

void AddBook(Magazine)// 添加所借杂志

void DelBook(Book it)// 还书后减少所借书

void ShowBooks()// 显示所借书

void Show()// 显示读者信息

friend ostream&operator<<(ostream&os, Reader&)// 重载插入运算符

friend istream&operator>>(istream&is, Reader&)// 重载提取运算符

public:

int Counter//计数器,统计所借书数目

}

class Manager{ // 管理员类

char Name[20]// 姓名

int Age// 年龄

int Code// 工号

friend class Library// 将图书馆类声明为友元

public:

Manager(){}

Manager(char*,int,int)

long GetCode(){ return Code}

void Show()

friend ostream&operator<<(ostream&os, Manager&)// 重载插入运算符

friend istream&operator>>(istream&is, Manager&)// 重载提取运算符

}

class Loan { // 借阅信息类

int Type// 0表示书,1表示杂志

Item item// 借阅书

Magazine mag// 借阅杂志

Reader reader// 借阅者

Manager manager// 借书 *** 作员

int Code

friend class Library// 将图书馆类声明为友元

public:

Loan(){ }

Loan(Loan &l)

int GetCode(){ return Code}

void Show()

friend ostream&operator<<(ostream&os, Loan&)// 重载插入运算符

friend istream&operator>>(istream&is, Loan&)// 重载提取运算符

}

、、、、、、、、、、、、、、、、、、、、、、、

#include<iostream.h>

#include<string.h>

class Reader

template<typename T>class DblList

template<typename T>class DblNode{

public:

T Info//数据域

DblNode<T>*llink,*rlink//前驱(左链)、后继(右链)指针

public:

DblNode(T data)//一般结点

DblNode()//头结点

T GetInfo(){return Info}

friend class DblList<T>

friend class Library

}

template<typename T>class DblList{

DblNode<T>*head,*current

public:

DblList()

~DblList()

void Insert(const T&data)

DblNode<T>* Remove(DblNode<T>* p)

void Print()

int Length()//计算链表长度

DblNode<T>*Find(T data)//搜索数据与定值相同的结点

DblNode<T>* Find(int data)//按某个关键字查找

void MakeEmpty()//清空链表

void ShowList()//显示链表各结点

friend istream&operator>>(istream&, DblList<typename T>&)// 重载输入流运算符

friend ostream&operator<<(ostream&os, DblList<typename T>&dlist)// 重载输出流运算符

friend class Library

//其它 *** 作

}

template<typename T>DblNode<T>::DblNode(){

llink=rlink=NULL

}

template<typename T>DblNode<T>::DblNode(T data){

info=data

llink=NULL

rlink=NULL

}

template<typename T>DblList<T>::DblList(){//建立表头结点

head=new DblNode<T>()

head->rlink=head->llink=head

current=NULL

}

template<typename T>DblList<T>::~DblList(){

MakeEmpty()//清空链表

delete head

}

template<typename T>void DblList<T>::MakeEmpty(){

DblNode<T>*tempP

while(head->rlink!=head){

tempP=head->rlink

head->rlink=tempP->rlink//把头结点后的第一个节点从链中脱离

tempP->rlink->llink=head//处理左指针

delete tempP//删除(释放)脱离下来的结点

}

current=NULL//current指针恢复

}

template<typename T>void DblList<T>::Insert(const T &data){//新节点在链尾

current=new DblNode<T>

current->Info=data

current->rlink=head//注意次序

current->llink=head->llink

head->llink->rlink=current

head->llink=current//最后做

}

template<typename T>DblNode<T>* DblList<T>::Remove(DblNode<T>* p){ // 删除结点

current=head->rlink

while(current!=head&¤t!=p) current=current->rlink

if(current==head) current=NULL

else{//结点摘下

p->llink->rlink=p->rlink

p->rlink->llink=p->llink

p->rlink=p->llink=NULL

}

return current

}

template<typename T>DblNode<T>* DblList<T>::Find(T data){ // 按结点查找

current=head->rlink

while(current!=head&¤t->Info!=data) current=current->rlink

if(current==head) current=NULL

return current

}

template<typename T>DblNode<T>* DblList<T>::Find(int data){ // 按数据值查找结点

current=head->rlink

int temp =current->Info.GetCode()

while(current!=head&&temp!=data){

current=current->rlink

temp = current->Info.GetCode()

}

if(current==head) current=NULL

return current

}

template<typename T>void DblList<T>::Print(){ // 输出链表

current=head->rlink

while(current!=head){

cout<<current->Info<<'\t'

current=current->rlink

}

cout<<endl

}

template<typename T>int DblList<T>::Length(){ // 取得链表长度

int count=0

current=head->rlink

while(current!=head){

count++

current=current->rlink

}

return count

}

template<typename T>void DblList<T>::ShowList(){ // 输出链表各结点

int count=0

current=head->rlink

while(current!=head){

current->GetInfo().Show()

current=current->rlink

}

return

}

template<typename T>

istream&operator>>(istream&is, DblList<typename T>&dlist){

int len

T tt// 定义局部变量读入一个结点

is>>len

for(int i= 0 i<leni++){ // 循环读入链表各结点

is>>tt

dlist.Insert(tt)

}

return is

}

template<typename T>

ostream&operator<<(ostream&os, DblList<typename T>&dlist){

DblNode<T>*tempP

int len = dlist.Length()

os<<len<<' '

tempP=dlist.head->rlink

while(tempP!=dlist.head){ // 循环输出链表各结点

os<<tempP->Info

tempP = tempP->rlink

}

return os

}

#include "class.h"

#include "dblist.h"

#include <fstream.h>

class Library{ // 封装图书馆流通业务的类

DblList<Item>item// 在馆图书链表

DblList<Magazine>mag// 在馆杂志链表

DblList<Reader>reader// 读者链表

DblList<Loan>loan// 借阅信息链表

DblList<Manager>manager// 管理员信息链表

int itemNum// 记录在馆图书数目

int magNum// 记录在馆杂志数目

int readerNum// 记录读者数目

int loanNum// 记录借阅信息数目

int managerNum// 记录管理员数目

ofstream itemFileOut// 文件流对象,保存图书馆书籍数据

ifstream itemFileIn// 文件流对象,读入图书馆书籍数据

ofstream magFileOut// 文件流对象,保存图书馆杂志数据

ifstream magFileIn// 文件流对象,读入图书馆杂志数据

ofstream readerFileOut// 文件流对象,保存图书馆读者数据

ifstream readerFileIn// 文件流对象,读入图书馆读者数据

ofstream loanFileOut// 文件流对象,保存图书馆借阅信息数据

ifstream loanFileIn// 文件流对象,读入图书馆借阅信息

ofstream managerFileOut// 文件流对象,保存图书馆管理员数据

ifstream managerFileIn// 文件流对象,读入图书馆管理员数据

public:

Library()// 构造函数

~Library()//析构函数

void Run()// 图书馆类的运行函数

void CreateBibliotheca()// 创建书目

void CreateReader()// 创建读者库

void CreateManager()// 创建管理员信息

int ShowMainMenu()// 显示主菜单函数

void Borrow()// 借书 *** 作

void Return()// 还书 *** 作

void Require()// 查询 *** 作

void SaveInfo()// 保存图书馆信息

void OpenInfo()// 读入图书馆信息

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9907812.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存