数据库课程设计图书借阅管理系统
Ⅰ 数据库系统原理课程设计 -----图书借阅管理系统
#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 = 0; Lang = CHINESE; Type = 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<len; i++){ // 循环读入链表各结点
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(); // 读入图书馆信息
};
Ⅱ 《数据库原理及应用》课程设计:图书借阅管理系统 VC源程序 谢谢
可以通过Bai Hi提示我
有时间可能完成你所面临的任务
相关的要求也可能提示我
ES:\\
交易提醒:预付定金是诈骗
Ⅲ 数据库课程设计 图书馆管理系统
①建立Access数据库
先新建一个数据库(access):建立Microsoft Access->命名为Text->否->打开->设计(添加学生所需信息)->表保存命名为lm(information)->否
②进行ADO配置
“开始” -> “程序” -> “Borland Delphi 7” ->“File” ->“Open Project” ->“Project1” -> Ctrl+F12选择“Main” ,按F12后出现MainForm窗体:
1)在程序主窗体MainForm上放置一个 “ADOConnection1”在Properties里LoginPrompt的属性设为false;ConnectionString ->Use ConnectionString 点Build” ->“Microsoft Jet 4.0 OLE DB Provider”后点“下一步”,选择创建的Access 2003 数据库的路径->“测试连接”出现成功后点“确定”->ok;Connected属性设为True;
2)在主窗体上放一个“ADOTable1”属性Connection->ADOConnection1,属性TableName->lm,属性Active->T(简称阀门);
3) 在主窗体上放DataSource1->DataSet->ADOTable1;4)在主窗体上放一个-DBGrid1-->DataSource->DataSource1;
①splashForm在工程文件(.dpr)中核心代码
SplashForm := TSplashForm.Create(Application); //启动屏创建
Application.CreateForm(TMainForm, MainForm); //创建主窗体
Application.CreateForm(TLoginForm, LoginForm); //创建用户验证窗体
SplashForm.Close; //关闭启动屏窗体
SplashForm.Free; //释放启动屏窗体所占的内存
②loginForm核心代码
LoginForm.ModalResult := mrOK; //确定按钮,可以进入主界面
LoginForm.ModalResult := mrCancel; //取消按钮
③mainForm 核心代码
1) 在Onshow中的核心代码:
LoginForm.ShowModal;
if LoginForm.ModalResult = mrCancel then
Application.Terminate //(登陆界面进入主界面的过程中只要用户名密码都对时,登陆界面自动消失)
2) 在录入按钮的核心代码:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Insert Into lm(num, name, sex,
shijian,class,zhu,link,gs,yy,jsj)');
ADOQuery1.SQL.Add('Values (:snum,:sname,:ssex,:sshijian,
:sclass,:szhu,:slink,:sgs,:syy,:sjsj)');
ADOQuery1.Parameters.ParamByName('sNum').Value := Edit1.Text;
(输入学生的基本信息跟各科成绩后,点“录入”,便可在DBGrid1中添加所输入的信息)。
3) 在修改按钮的核心代码:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(‘Update lm');
ADOQuery1.SQL.Add(‘set num=:snum, name=:sname sex=:ssex,shijian=:sshijian,class=:sclass,zhu=:szhu,link=:slink,gs=:sgs; yy=:syy,jsj=:sjsj');
ADOQuery1.SQL.Add(‘ Where Num = :sNum2');
ADOQuery1.Parameters.ParamByName(‘snum').Value := Edit11.Text;
(在“输入要修改的学号”处输入某学号,再重新输入该基本信息与各科成绩,点击即可)。
4) 在删除按钮的核心代码:
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(‘Delete From lm Where num = :snum');
ADOQuery1.Parameters.ParamByName(‘snum').Value := Edit1.Text;
ADOQuery1.ExecSQL;
showmessage(‘ok'); //弹出对话框,提示操作成功
(输入学号,即可删除该学号的全部信息)。
5) 在查询按钮的核心代码:
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(‘Select * From lm Where num = :snum');
ADOQuery2.Parameters.ParamByName(‘snum').Value :=Edit1.Text;
ADOQuery2.Open
(通过输入学号,点击“查询”按钮后即可查询该学号对应的信息)。
6) 刷新核心代码:
ADOTable1.Close ;
ADOTable1.Open; //对录入,修改,删除,查询的操作数据进行刷新。
Ⅳ 求一个数据库课程设计。要完整的,题目可以是图书借阅管理和学生成绩管理系统。
我有数据库课程设计
Ⅳ 急求一份完整的数据库课程设计图书管理系统(要求用VB 以及SQL-server制作)
1.开发背景
数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的树木逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,通过使用PowerBuilder创建的图书管理系统可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。
2.需求分析
2.1系统目标
图书管理信息系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
系统开发的总体任务是实现各种信息的系统化,规范化和自动化。
2.2需求定义
图书馆管理系统开发。系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。
本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。本系统结构分为读者类别管理、读者档案管理、图书类型管理、图书档案管理以及图书流程管理,读者管理可以浏览读者的信息,可以对读者信息进行维护。图书管理可以浏览图书的信息,可以对图书信息进行维护。借阅管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。本系统主要解决的问题是利用关键字对数据库进行查询。
其系统的功能模块图如下:
图2-1 系统功能模块图
针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:
读者信息
属性:读者学号,读者姓名,读者性别,联系电话,所在院系,生效日期,失效日期,违章状况,累计借书
主键:读者学号
书籍信息
属性:ISBN,书名,作者,出版社,出版日期,简介
主键:ISBN
管理员信息
属性:工作号,姓名,性别,电话,家庭住址
主键:工作号
2.3数据流程
2.3.1 读者
作为学生对图书管理系统的要求有:
1. 能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。
2. 能够方便地借阅图书、续借图书、归还图书。
3. 能够查询自己的基本资料、借阅图书情况。
4. 能够熟悉图书管理系统的使用。
读者进入系统工作的流程图为:
2-1进入系统工作的流程图
2.3.2 图书管理员
作为图书管理员,他们对图书管理系统的要求有:
1. 能方便的对图书进行录入登记,注销陈旧的书籍。
2. 能够方便地对新生进行登记,或注销已经毕业的学生信息(基本信息,借阅信息)。
3. 能够随时发布一些诸如各学院学生借阅图书超期情况、馆内藏书情况、借情况等信息,以便各学院能够随时获知本院学生的一些借书信息。
图书管理员工作的流程图为:
2-2图书管理员工作流程图
3.功能描述
系统功能分析是在系统开发的总体任务的基础上完成。本系统需要完成的功能主要有5部分:
(1) 图书基本情况的录入,修改,删除等基本操作。
1.书籍类别标准的制定,类别信息的输入,包括类别编号,类别名称,关键词,备注信息等。
2.书籍类别信息的查询,修改,包括类别编号,类别名称,关键词,备注信息等。
3.书籍信息的输入,包括书籍编号,书籍名称,书籍类别,作者名称,出版社名称,出版日期,书籍页数,关键词,登记日期,备注信息等。
(2) 办理借书卡模块。
1.新生办理借书证。
2.丢失办理借书证。
(3) 实现借书功能。
1.借书信息的输入,包括借书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
2.借书信息的查询,修改,包括借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。
(4) 实现还书功能。
1.还书信息的输入,包括还书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
2.还书信息的查询和修改,包括还书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。
(5) 能方便的对图书进行查询。对超期的情况能自动给出提示信息
4.概念模型设计
各部分E-R图如下:
(1)读者信息类别实体E-R图
4-1 读者类别实体E-R图
(2)书籍信息类别实体E-R图
4-2 书籍类别实体E-R图
(3)图书借阅实体E-R图:
4-3 图书借阅实体E-R图
(4)投诉管理实体E-R图:
4-4 投诉管理实体E-R图
4-5实体之间关系的E-R图
借阅关系(读者、管理员、书籍三元关系)
图4-6 CDM图
5.逻辑模型设计和优化
从理论‘E-R模型’到理论‘关系模型’的整理转换,通过E-R模型到关系模型的转化,可以得到如下关系模式:
借阅关系
属性:工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注。
主键:工作号,读者学号,ISBN
管理员_书籍关系
属性:工作号,ISBN,添加时间,是否在馆
主键:工作号,ISBN
管理员_学生关系
属性:工作号,读者学号,确认借还
主键:工作号,读者学号
通过由概念模型设计得到CDM图powerdesigner转换成对应的PDM图:
Ⅵ 数据库课程设计图书管理系统
数据库设计包括六个主要步骤:
1、需求分析:了解用户的数据需求、回处理需求、安全性及完整性要求答;
2、概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
3、逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
4、物理结构设计:设计数据的存储结构和存取方法,如索引的设计;
5、系统实施:组织数据入库、编制应用程序、试运行;
6、运行维护:系统投入运行,长期的维护工作。
Ⅶ 求数据库图书管理系统课程设计全套
数据库图书管理系统课程设计:
1、可以参考网上的一些开源项目,根据别人提供的一些思路,进行开发
2、找身边的学长,学姐,他们开发过类似的系统
3、请教老师同学,让他们给你提供一些思路
4、可以参考类似的系统
Ⅷ 数据库课程设计 图书管理系统 急急急!
统目标是实现图书馆日常管理和图书信息数字化
比较多好肯定乁嗯