课程设计,图书馆管理系统

#include <iostream>
#include <iomanip>
#include <string> 
using namespace std;
//定义一个图书基础资料类
class bookdata_base
{
private:
int number;
string name;
string writer; 
float prize; 
public:
bookdata_base(){}
void input();
int disp(int a);
int change(int a);
int del(int a);


};
void bookdata_base::input()
{
cout<<"输入书的编号"<<endl;
cin>>number;
cout<<"输入书名"<<endl;
cin>>name;
cout<<"输入作者"<<endl;
cin>>writer;
cout<<"输入价格"<<endl;
cin>>prize;
}
int bookdata_base::change(int a)
{
if(a!=number){return 0;}//返回0就是这个编号不是该书本编号
else return 1;//假如返回1就找到了该书本
}
int bookdata_base::disp(int a)
{
if(a!=number)return 0;
else
{
cout<<"书名:"<<name<<endl;
cout<<"编号:"<<number<<endl;
cout<<"作者:"<<writer<<endl;
cout<<"价格:"<<prize<<endl;
return 1;
}
}
int bookdata_base::del(int a)
{
if(a!=number){return 0;}
else return 1;//同理
}
class readerData
{
private:
int number;
string name;
string id; 
public:
readerData(){}
void input();
int disp(int a);
int change(int a);
int del(int a);
};
void readerData::input()
{
cout<<"输入读者编号"<<endl;
cin>>number;
cout<<"输入读者姓名"<<endl;
cin>>name;
cout<<"输入读者身份证号码"<<endl;
cin>>id;
}
int readerData::change(int a)
{
if(a!=number)return 0;
else return 1;//同理
}
int readerData::disp(int a)
{
if(a!=number)return 0;
else
{
cout<<"读者编号:"<<number<<endl;
cout<<"读者姓名:"<<name<<endl;
cout<<"读者身份证号码:"<<id<<endl;
return 1;
}
}
int readerData::del(int a)
{
if(a!=number){return 0;}
else return 1;
}
int book=0;//定义一个全局函数来标记当前图书输入的位置
int reader=0;//同上




//定义一个系统管理类 来统一管理
class System
{
private: bookdata_base b[100];
readerData r[100];
public:void menu();
  void change(int a);//系统管理类的修改函数 a=1就会修改图书类 2就会修改读者类 以下函数相似
  void input(int a);
  void del(int a);
  void serch(int a);
};
void System::input(int a)
{
char xz;
int i;
switch(a)
{
case 1:
i=book;//把输入到第几本书 赋值给i
do
{
cout<<"输入第"<<book+1<<"本书本的信息"<<endl;
b[i].input();
book++;//每输入一本书 book自加
i++;
cout<<"是否继续输入 (y/Y)继续 其它任意键取消"<<endl;
cin>>xz;
}while(xz=='y'||xz=='Y');
break;
case 2:
i=reader;//同上
do
{
cout<<"请输入第"<<reader+1<<"个读者信息"<<endl;
r[i].input();
reader++;
i++;
cout<<"是否继续输入 (y/Y)继续 其它任意键取消"<<endl;
cin>>xz;
}while(xz=='y'||xz=='Y');
break;
}
}
void System::change(int a)
{
int num;char xz;
int i;
switch(a)
{
case 1:
cout<<"输入你要修改书本的编号"<<endl;
cin>>num;
for(i=0;i<book;i++)
{
if(b[i].change(num)==1)break;
}
if(i==book)
{
cout<<"找不到该编号书本"<<endl;system("puase");return;
}
cout<<"是否确认修改(Y/y)确认 任意字符取消"<<endl;
cin>>xz;
if(xz!='y'&&xz!='Y')return;
b[i].input();
cout<<"修改成功"<<endl;system("pause");break;
case 2:
cout<<"输入你要修改读者的编号"<<endl;
cin>>num;
for(i=0;i<reader;i++)
{
if(r[i].change(num)==1)break;
}
if(i==reader)
{
cout<<"找不到该编号读者"<<endl;system("pause");return;
}
cout<<"是否确认修改(Y/y)确认 任意字符取消"<<endl;
cin>>xz;
if(xz!='y'&&xz!='Y')return;
r[i].input();
cout<<"修改成功"<<endl;break;




}
}
void System::del(int a)//
{
int num;char xz;
int i;
switch(a)
{
case 1:
cout<<"输入你要删除书本的编号"<<endl;
cin>>num;
for(i=0;i<book;i++)
{
if(b[i].del(num)==1)break;
}
if(i==book){cout<<"找不到该编号的书本"<<endl;system("pause");return;}
cout<<"是否确认删除(Y/y)确认 任意字符取消"<<endl;
cin>>xz;
   if(xz!='y'&&xz!='Y')return;
for(;i<book-1;i++)
{
b[i]=b[i+1];
}
book--;
cout<<"删除成功"<<endl;
system("pause");break;
case 2: ;
cout<<"输入你要删除读者的编号"<<endl;
cin>>num;
for(i=0;i<reader;i++)
{
if(r[i].del(num)==1)break;
}
if(i==reader){cout<<"找不到该编号的读者"<<endl;system("pause");return;}
cout<<"是否确认删除(Y/y)确认 任意字符取消"<<endl;
cin>>xz;
   if(xz!='y'&&xz!='Y')return;
for(;i<reader-1;i++)
{
r[i]=r[i+1];
}
reader--;
cout<<"删除成功"<<endl;
system("pause");break;
}
}
void System::serch(int a)
{
int num;int i;
switch(a)
{
case 1:
cout<<"输入要查询书本的编号"<<endl;
cin>>num;
for(i=0;i<book;i++)
{
if(b[i].disp(num)==1){system("pause");return;}
}
if(i==book){cout<<"找不到该编号书本"<<endl;system("pause");return;}break;
case 2:
cout<<"输入要查询读者的编号"<<endl;
cin>>num;
for(i=0;i<reader;i++)
{
if(r[i].disp(num)==1){system("pause");return;}
}
if(i==reader){cout<<"找不到该编号读者"<<endl;system("pause");return;}break;
}
}
void System::menu()
{
int sel;
while(1)
{
system("cls");
cout<<"******************************************************"<<endl;
cout<<"**********************图书管理系统********************"<<endl;
cout<<"******************************************************"<<endl;
cout <<"\t\t 1图书管理\n\n\t\t 2读者管理 \n\n\t\t 0 离 开"<<endl;
cin>>sel;
switch(sel)
{
case 1:cout<<"①录入书本②修改书本信息③搜索书本信息④删除书本信息"<<endl;
cin>>sel;
switch(sel)
{
case 1:input(1);break;
case 2:change(1);break;
case 3:serch(1);break;
case 4:del(1);break;
}break;
case 2:
cout<<"①录入读者②修改读者信息③搜索读者信息④删除读者信息"<<endl;
cin>>sel;
switch(sel)
{
case 1:input(2);break;
case 2:change(2);break;
case 3:serch(2);break;
case 4:del(2);break;
}break;
case 0:exit(0);
}
}
}
int main()
{
System s;
s.menu();
return 0;
}



目 录 1 需求分析 2 2 数据库的概念设计 2 3 数据库的逻辑设计 3 4 数据库的物理设计 4 5 应用程序设计 6 6 编程实现 10 总结与体会 13 致 谢 14 参考文献 15 数据库原理及应用课程设计报告 1 需求分析 1.1 任务和要求 用户有以下需求:建立读者档案;建立图书档案,建立书目索引;完成日常图书检索、借、还工作,对读者档案、图书档案、借、还系统的访问,必需进行身份验证。 1.2系统总体功能设计 图书馆管理系统主要提供的功能包括图书入库、借出、归还以及对读者的信息管理 。 (1) 图书借阅: 借阅图书时应按图书馆的规则进行借阅,例如不超过5本,如果已有超时借阅的图书,则在归还前不允许再借阅等等。 (2) 图书归还: 对于图书遗失或超期归还的情况应根据图书馆的规则进行处罚。 (3) 新图书信息入库: 建立图书信息库,以便读者进行查询和借阅。 (4) 图书信息管理: 图书因使用过久或信息过时需做下架处理,或者在读者借阅书籍时发生遗失的情况下需做遗失处理,这些都需要修改数据库关于书籍的信息。 (5) 读者信息管理: 对读者应该提供能办证、修改、注销;访问时要进行身份验证,办证、修改、注销应记录操作员编号、操作日期、理由、审批记录等功能 (6) 图书信息查询: 一般读者在借阅书籍前都需查询图书馆关于所借书籍的大概信息:该图书是否在馆—是否已借出—在馆中的书架号;除查询书籍外读者还可查询关于自身的信息:是否有超期未还的图书,还可借阅书籍数目等。 1.3软硬件运行环境及开发工具 Visual Basic 6.0 SQL Server 2000 2 数据库的概念设计 E-R模型图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值