云借閱圖書管理系統(tǒng)代碼百度網(wǎng)盤(圖書借閱系統(tǒng)軟件)
本篇文章給大家談?wù)勗平栝唸D書管理系統(tǒng)代碼百度網(wǎng)盤,以及圖書借閱系統(tǒng)軟件對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
圖書館管理系統(tǒng)代碼
/*****************************************************************************************/
#include iostream
#include iomanip
#include cstring
#include fstream//輸入/輸出文件流類
using namespace std;
const int Maxr=100;//最多的讀者
const int Maxb=100;//最多的圖書
const int Maxbor=5;//每位讀者最多借五本書
//讀者類,實現(xiàn)對讀者的信息的描述
class Reader
{
private:
int tag; //刪除標(biāo)記 1:已刪 0:未刪
int no; //讀者編號
char name[10]; //讀者姓名
int borbook[Maxbor];//所借圖書
public:
Reader() {}
char *getname() {return name;} //獲取姓名
int gettag() {return tag;} //獲取刪除標(biāo)記
int getno() {return no;} //獲取讀者編號
void setname(char na[]) //設(shè)置姓名
{
strcpy(name,na);
}
void delbook(){ tag=1; }//設(shè)置刪除標(biāo)記 1:已刪 0:未刪
void addreader(int n,char *na)//增加讀者
{
tag=0;
no=n;
strcpy(name,na);
for(int i=0;iMaxbor;i++)
borbook[i]=0;
}
void borrowbook(int bookid)//借書操作
{
for(int i=0;iMaxbor;i++)
{
if (borbook[i]==0)
{
borbook[i]=bookid;
return;
}
}
}
int retbook(int bookid)//還書操作
{
for(int i=0;iMaxbor;i++)
{
if(borbook[i]==bookid)
{
borbook[i]=0;
return 1;
}
}
return 0;
}
void disp()//讀出讀者信息
{
cout setw(5) no setw(10) name"借書編號:[";
for(int i=0;iMaxbor;i++)
if(borbook[i]!=0)
cout borbook[i] "|";
cout "]"endl;
}
};
//讀者類庫,實現(xiàn)建立讀者的個人資料
class RDatabase
{
private:
int top; //讀者記錄指針
Reader read[Maxr];//讀者記錄
public:
RDatabase() //構(gòu)造函數(shù),將reader.txt讀到read[]中
{
Reader s;
top=-1;
fstream file("reader.txt",ios::in);//打開一個輸入文件
while (1)
{
file.read((char *)s,sizeof(s));
if (!file)break;
top++;
read[top]=s;
}
file.close(); //關(guān)閉 reader.txt
}
void clear()//刪除所有讀者信息
{
top=-1;
}
int addreader(int n,char *na)//添加讀者時先查找是否存在
{
Reader *p=query(n);
if (p==NULL)
{
top++;
read[top].addreader(n,na);
return 1;
}
return 0;
}
Reader *query(int readerid)//按編號查找
{
for (int i=0;i=top;i++)
if (read[i].getno()==readerid
read[i].gettag()==0)
{
return read[i];
}
return NULL;
}
void disp() //輸出所有讀者信息
{
for (int i=0;i=top;i++)
read[i].disp();
}
void readerdata();//讀者庫維護(hù)
~RDatabase() //析構(gòu)函數(shù),將read[]寫到reader.txt文件中
{
fstream file("reader.txt",ios::out);
for (int i=0;i=top;i++)
if (read[i].gettag()==0)
file.write((char *)read[i],sizeof(read[i]));
file.close();
}
};
void RDatabase::readerdata()
{
char choice;
char rname[20];
int readerid;
Reader *r;
while (choice!='0')
{
cout "\n\n\t\t\t讀 者 維 護(hù)\n\n\n\t\t 1 新 增\n\n\t\t 2 更 改\n\n\t\t 3 刪 除\n\n\t\t 4 查 找\n\n\t\t 5 顯 示\n\n\t\t 6 全 刪\n\n\t\t 0 退 出"endl;
cin choice;
switch (choice)
{
case '1':
cout "輸入讀者編號:";
cin readerid;
cout "輸入讀者姓名:";
cin rname;
addreader (readerid,rname);
break;
case '2':
cout "輸入讀者編號:";
cin readerid;
r=query(readerid);
if (r==NULL)
{
cout " 該讀者不存在 "endl;
break;
}
cout "輸入新的姓名:";
cin rname;
r-setname(rname);
break;
case '3':
cout " 輸入讀者編號:";
cin readerid;
r=query(readerid);
if (r==NULL)
{
cout " 該讀者不存在" endl;
break;
}
r-delbook();
break;
case '4':
cout "讀入讀者編號:";
cin readerid;
r=query(readerid);
if (r==NULL)
{
cout "該讀者不存在" endl;
break;
}
r-disp();
break;
case '5':
disp();
break;
case '6':
clear();
break;
default:cout"輸入錯誤,請從新輸入:";break;
}
}
}
//圖書類,實現(xiàn)對圖書的描述,圖書的編號,書名,借出,還入等
class Book
{
private:
int tag;//刪除標(biāo)記 1:已刪 0:未刪
int no;//圖書編號
char name[20];//書名
int onshelf;//是否再架 1:再架 2:已借
public:
Book(){}
char *getname() { return name; }//獲取姓名
int getno(){ return no; }//獲取圖書編號
int gettag(){ return tag; }//獲取刪除標(biāo)記
void setname(char na[])//設(shè)置書名
{
strcpy(name,na);
}
void delbook(){ tag=1;}//刪除圖書
void addbook(int n,char *na)//增加圖書
{
tag=0;
no=n;
strcpy(name,na);
onshelf=1;
}
int borrowbook()//借書操作
{
if (onshelf==1)
{
onshelf=0;
return 1;
}
return 0;
}
void retbook()//還書操作
{
onshelf=1;
}
void disp()//輸出圖書
{
cout setw(6) no setw(18) name setw(10)
(onshelf==1? "在架":"已借") endl;
}
};
//圖書庫類,實現(xiàn)對圖書的維護(hù),查找,刪除等
class BDatabase
{
private:
int top; //圖書記錄指針
Book book[Maxb]; //圖書記錄
public:
BDatabase()//構(gòu)造函數(shù),將book.txt讀到book[]中
{
Book b;
top=-1;
fstream file("book.txt",ios::in);
while (1)
{
file.read((char *)b,sizeof(b));
if (!file) break;
top++;
book[top]=b;
}
file.close();
}
void clear()//全刪
{
top=-1;
}
int addbook(int n,char *na)//增加圖書
{
Book *p=query(n);
if (NULL==p)
{
top++;
book[top].addbook(n,na);
return 1;
}
return 0;
}
Book *query(int bookid)//查找圖書
{
for (int i=0;i=top;i++)
if (book[i].getno()==bookid book[i].gettag()==0)
{
return book[i];
}
return NULL;
}
void bookdata();//圖書庫維護(hù)
void disp()
{
for (int i=0;i=top;i++)
if (book[i].gettag()==0)
book[i].disp();
}
~BDatabase()//析構(gòu)函數(shù),將book[]寫到book.txt文件中
{
fstream file("book.txt",ios::out);
for (int i=0;i=top;i++)
if (book[i].gettag()==0)
file.write((char *)book[i],sizeof(book[i]));
file.close();
}
};
void BDatabase::bookdata()
{
char choice;
char bname[40];
int bookid;
Book *b;
while (choice!='0')
{
cout "\n\n\n\t\t\t圖 書 維 護(hù) "endlendl;
cout"\t\t1 新 增\n \t\t2 更 改\n\t\t3 刪 除\n\t\t4 查 找\n\t\t5 顯 示\n\t\t6 全 刪\n\t\t0 退 出"endl;
cin choice;
switch (choice)
{
case '1':
cout "輸入圖書編號:"endl;
cin bookid;
cout "輸入圖書書名:"endl;
cin bname;
addbook(bookid,bname);
break;
case '2':
cout "輸入圖書編號:"endl;
cin bookid;
b=query(bookid);
if (b==NULL)
{
cout " 該圖書不存在 "endl;
break;
}
cout "輸入新的書名:"endl;
cin bname;
b-setname(bname);
break;
case '3':
cout " 讀入圖書編號:"endl;
cin bookid;
b=query(bookid);
if (b==NULL)
{
cout " 該圖書不存在" endl;
break;
}
b-delbook();
break;
case '4':
cout " 讀入圖書編號:"endl;
cin bookid;
b=query(bookid);
if (b==NULL)
{
cout " 該圖書不存在" endl;
break;
}
b-disp();
break;
case '5':
disp();
break;
case '6':
clear();
break;
default:cout"輸入錯誤,請從新輸入:";
}
}
}
//main() 函數(shù)的實現(xiàn),程序的主界面的引導(dǎo)
int main(void)
{
char choice;
int bookid,readerid;
RDatabase ReaderDB;
Reader *r;
BDatabase BookDB;
Book *b;
while(choice!='0')
{
cout endlendl"\t\t\t 圖 書 管 理 系 統(tǒng)\n\n\n";
cout "\t\t\t1 借 書\n\n\t\t\t2 還 書 \n\n\t\t\t3 圖 書 維 護(hù)\n\n\t\t\t4 讀 者 維 護(hù)\n\n\t\t\t0 離 開"endl;
cin choice;
switch (choice)
{
case '1':
cout " 借書 讀者編號:";
cin readerid;
cout " 圖書編號: ";
cin bookid;
r=ReaderDB.query(readerid);//按編號查找
if (NULL==r)
{
cout " 不存在該讀者,不能借書" endl;
break;
}
b=BookDB.query(bookid);
if (b==NULL)
{
cout " 不存在該圖書,不能借書" endl;
break;
}
if (b-borrowbook()==0)
{
cout " 該圖書已借出,不能借書" endl;
break;
}
r-borrowbook(b-getno());
break;
case '2':
cout"還書\n 讀者編號:";
cin readerid;
cout " 圖書編號:";
cin bookid;
r=ReaderDB.query(readerid);
if (r==NULL)
{
cout " 不存在該讀者,不能還書" endl;
break;
}
b=BookDB.query(bookid);
if (b==NULL)
{
cout " 不存在該圖書,不能還書" endl;
break;
}
b-retbook();
r-retbook(b-getno());
break;
case '3':
BookDB.bookdata();
break;
case '4':
ReaderDB.readerdata();
break;
default:cout"輸入錯誤,請從新輸入:";
}
}
return 0;
}
希望能解決您的問題。
數(shù)據(jù)庫圖書管理系統(tǒng)代碼
create database db
use db
create table 借閱等級信息(
借閱等級 int primary key,
最長借閱時間 int,
最大借閱數(shù)量 int,
)
insert into 借閱等級信息 values
(0, 30, 10),
(1, 60, 20),
(2, 90, 30),
(3, 120, 40)
create table 讀者信息(
姓名 char(15) not null,
證件號 char(12) primary key,
借閱等級 int default 0,
累計借書 int default 0,
foreign key(借閱等級) references 借閱等級信息(借閱等級)
)
insert into 讀者信息(姓名, 證件號, 借閱等級) values
('張三', '541607120165', 1),
('李四', '541707010185', 3),
('王五', '541707120165', 1),
('趙六', '541505980268', 2),
('孫七', '541407010169', 0),
('周八', '541307010489', 1)
create table 出版社信息(
出版社 varchar(20) primary key,
地址 varchar(25),
聯(lián)系電話 char(7)
)
insert into 出版社信息 values
('清華大學(xué)出版社', '北京', '4979421'),
('晟威出版社', '天津', '5564130'),
('南海出版公司', '海南', '4984910'),
('上海文藝出版社', '上海', '6640239')
create table 圖書信息(
索書號 char(15) primary key,
作者 char(15),
書名 char(15),
出版社 varchar(20),
出版時間 date,
foreign key(出版社)references 出版社信息(出版社)
)
insert into 圖書信息 values
('b12987', '嚴(yán)蔚敏', '數(shù)據(jù)結(jié)構(gòu)', '清華大學(xué)出版社', '2012-02-06'),
('b97894', '東野圭吾', '幻夜', '南海出版公司', '2004-08-02'),
('b16546', '吳玉華', '物理實驗教程', '清華大學(xué)出版社', '2013-05-15'),
('b89490', '張雪峰', '考研指點', '晟威出版社', '2016-12-12'),
('b56400', '郟宗培', '紙上尋仙記', '上海文藝出版社', '2011-02-05')
create table 單本圖書信息(
條碼號 char(7) primary key check(len(條碼號) = 7),
索書號 char(15),
館藏地 varchar(40),
書刊狀態(tài) varchar(6) check(書刊狀態(tài) in ('可借', '借出', '非可借')),
歷史借閱量 int default 0,
foreign key(索書號)references 圖書信息(索書號)
)
insert into 單本圖書信息(條碼號, 索書號, 館藏地, 書刊狀態(tài)) values
('t987628', 'b97894', '三樓A8', '借出'),
('t594805', 'b97894', '二樓C7', '可借'),
('t984910', 'b89490', '五樓A2', '借出'),
('t940566', 'b12987', '負(fù)一樓D3', '借出')
create table 借閱信息(
借閱號 char(6) primary key,
借閱時間 date,
歸還時間 date,
圖書條碼號 char(7),
借閱人證件號 char(12),
foreign key(圖書條碼號) references 單本圖書信息(條碼號),
foreign key(借閱人證件號) references 讀者信息(證件號)
)
create table 評論信息(
評論號 char(8) primary key,
評分 numeric(2, 1),
內(nèi)容 varchar(200),
評論時間 date,
評論者id char(12),
索書號 char(15),
foreign key(索書號)references 圖書信息(索書號),
foreign key(評論者id)references 讀者信息(證件號)
)
insert into 評論信息 values
('p12391', 8.9, '很有趣', '2015-06-24', '541707010185', 'b97894'),
('p98523', 7.8, '受益頗多', '2016-05-22', '541307010489', 'b89490'),
('p94606', 6.8, '完全看不懂orz', '2017-05-02', '541607120165', 'b12987')
create table 主題詞信息(
ID char(8) primary key,
類別 char(15),
索書號 char(15),
foreign key(索書號)references 圖書信息(索書號)
)
insert into 主題詞信息 values
('z64400', '計算機(jī)', 'b12987'),
('z95410', '物理', 'b16546'),
('z98500', '考研', 'b89490'),
('z64165', '推理\懸疑', 'b97894'),
('z69850', '仙俠', 'b56400')
use db
go
create trigger trigger1
on 借閱信息
after insert
as
begin?
update 讀者信息? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--更改讀者累計借書量
set 累計借書 = 累計借書 + 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
from 讀者信息, inserted
where 讀者信息.證件號 = inserted.借閱人證件號
update 單本圖書信息? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--更改圖書狀態(tài)
set 單本圖書信息.書刊狀態(tài) = '借出'
from inserted, 單本圖書信息
where inserted.圖書條碼號 = 單本圖書信息.條碼號
update 單本圖書信息
set 歷史借閱量 = 歷史借閱量 + 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--更改圖書歷史借閱量
from inserted, 單本圖書信息
where inserted.圖書條碼號 = 單本圖書信息.條碼號
end
insert into 借閱信息 values
('j13488', '2018-05-01', '2018-08-01', 't987628', '541407010169')
insert into 借閱信息 values
('j14910', '2016-12-11', '2017-01-25', 't984910', '541607120165')
insert into 借閱信息 values
('j97890', '2018-05-14', '2018-06-14', 't940566', '541607120165')
go
create view view_1(圖書條碼, 借閱者姓名, 編號, 借閱時間, 應(yīng)還時間)
as
select 圖書條碼號, 姓名, 證件號, 借閱時間, 歸還時間
from 借閱信息, 讀者信息
where 借閱信息.借閱人證件號 = 讀者信息.證件號 and 歸還時間 getdate()
go
create view view_2(圖書條碼, 歷史總借閱量)
as
select 條碼號, 歷史借閱量
from 單本圖書信息, 圖書信息
where 單本圖書信息.索書號 = 圖書信息.索書號 and 書名 = '幻夜'
go
create view view_3(類別, 圖書條碼, 歷史總借閱量)
as
select 類別, 條碼號, 歷史借閱量
from 單本圖書信息, 圖書信息, 主題詞信息
where 主題詞信息.索書號 = 圖書信息.索書號 and 圖書信息.索書號 = 單本圖書信息.索書號 and 類別 = '考研'
go
create view view_4(讀者編號, 條碼, 圖書名稱, 應(yīng)還日期)
as
select 借閱人證件號, 圖書條碼號, 書名, 歸還時間
from 單本圖書信息, 圖書信息, 借閱信息
where 借閱信息.圖書條碼號 = 單本圖書信息.條碼號 and 單本圖書信息.索書號 = 圖書信息.索書號
and 歸還時間 getdate() and 借閱人證件號 = '541607120165'
go
create view view_5(讀者編號, 圖書條碼, 圖書名稱, 借閱日期, 歸還日期)
as
select 借閱人證件號, 圖書條碼號, 書名, 借閱時間, 歸還時間
from 單本圖書信息, 圖書信息, 借閱信息
where 借閱信息.圖書條碼號 = 單本圖書信息.條碼號 and 單本圖書信息.索書號 = 圖書信息.索書號
and 借閱人證件號 = '541607120165'
go
create view view_6(讀者編號, 圖書名稱, 評論時間, 評論內(nèi)容)
as
select 評論者id, 書名, 評論時間, 內(nèi)容
from 借閱信息, 單本圖書信息, 評論信息, 圖書信息
where 借閱信息.圖書條碼號 = 單本圖書信息.條碼號 and 單本圖書信息.索書號 = 評論信息.索書號
and 評論信息.索書號 = 圖書信息.索書號 and 評論者id = '541607120165'
go
create view view_7(出版社名稱, 圖書名稱, 出版時間)
as
select top 100 percent 出版社信息.出版社, 書名, 出版時間
from 出版社信息, 圖書信息
where 出版社信息.出版社 = 圖書信息.出版社
order by 出版時間 asc
--執(zhí)行
select * from view_1
select * from view_2
select * from view_3
select * from view_4
select * from view_5
select * from view_6
select * from view_7 order by 出版時間 asc
擴(kuò)展資料:
數(shù)據(jù)庫模型:
對象模型
層次模型(輕量級數(shù)據(jù)訪問協(xié)議)
網(wǎng)狀模型(大型數(shù)據(jù)儲存)
關(guān)系模型
面向?qū)ο竽P?/p>
半結(jié)構(gòu)化模型
平面模型(表格模型,一般在形式上是一個二維數(shù)組。如表格模型數(shù)據(jù)Excel)
架構(gòu)
數(shù)據(jù)庫的架構(gòu)可以大致區(qū)分為三個概括層次:內(nèi)層、概念層和外層。
內(nèi)層:最接近實際存儲體,亦即有關(guān)數(shù)據(jù)的實際存儲方式。
外層:最接近用戶,即有關(guān)個別用戶觀看數(shù)據(jù)的方式。
概念層:介于兩者之間的間接層。
數(shù)據(jù)庫索引
主條目:數(shù)據(jù)庫索引
數(shù)據(jù)索引的觀念由來已久,像是一本書前面幾頁都有目錄,目錄也算是索引的一種,只是它的分類較廣,例如車牌、身份證字號、條碼等,都是一個索引的號碼,當(dāng)我們看到號碼時,可以從號碼中看出其中的端倪,若是要找的人、車或物品,也只要提供相關(guān)的號碼,即可迅速查到正確的人事物。
另外,索引跟字段有著相應(yīng)的關(guān)系,索引即是由字段而來,其中字段有所謂的關(guān)鍵字段(Key Field),該字段具有唯一性,即其值不可重復(fù),且不可為"空值(null)"。
例如:在合并數(shù)據(jù)時,索引便是扮演欲附加字段數(shù)據(jù)之指向性用途的角色。故此索引為不可重復(fù)性且不可為空。
數(shù)據(jù)庫操作:事務(wù)
主條目:數(shù)據(jù)庫事務(wù)
事務(wù)(transaction)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。
事務(wù)的并發(fā)性是指多個事務(wù)的并行操作輪流交叉運行,事務(wù)的并發(fā)可能會訪問和存儲不正確的數(shù)據(jù),破壞交易的隔離性和數(shù)據(jù)庫的一致性。
網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu) 網(wǎng)狀模型 滿足下面兩個條件的基本層次聯(lián)系的集合為網(wǎng)狀模型。 1. 允許一個以上的結(jié)點無雙親; 2. 一個結(jié)點可以有多于一個的雙親。
參考資料來源:百度百科——數(shù)據(jù)庫
c語言 圖書管理系統(tǒng) 源代碼
#include
#include
#include
#include
#include
struct book{
char number[100];
char tittle[100];
char writer[100];
char publisher[100];
char date[100];
char price[100];
char status[100];
char reader[100];
};
void search_book();
void borrow_book();
void return_book();
void add_book();
void delete_book();
void modify_book();
void scan_book();
int main()
{
int c1=0,c2,c3;
int l,x,z;
while(1)
{
system("color 2C");
printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\t\t\t| * - * - * -圖書管理系統(tǒng) * - * - * |\n");
printf("\t\t\t* [1] 用戶登錄 *\n");
printf("\t\t\t* [2] 管理員登錄 *\n");
printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\n");
printf("請選擇操作 :");
scanf("%d",c1);
system("cls");
break;
}
if(c1==1)
{
while(1){
system("color 2C");
printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\t\t\t| * - * - * -圖書管理系統(tǒng) * - * - * |\n");
printf("\t\t\t* [1] 查詢圖書 *\n");
printf("\t\t\t| [2] 借閱圖書 |\n");
printf("\t\t\t* [3] 借圖書 *\n");
printf("\t\t\t* [4] 瀏覽圖書信息 *\n");
printf("\t\t\t| [5] 退圖書管理系統(tǒng) |\n");
printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\n");
printf("請選擇操作 :");
scanf("%d",c2);
getchar();
switch(c2)
{
case 1:search_book(); break;
case 2:borrow_book(); break;
case 3:return_book(); break;
case 4:scan_book(); break;
case 5:system("cls"); return 0;
}
}
}
if(c1==2)
{
while(1){
system("color 2C");
printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\t\t\t| * - * - * -圖書管理系統(tǒng) * - * - * |\n");
printf("\t\t\t| [1] 添加圖書 |\n");
printf("\t\t\t* [2] 刪減圖書 *\n");
printf("\t\t\t| [3] 修改圖書信息 |\n");
printf("\t\t\t* [4] 瀏覽圖書信息 *\n");
printf("\t\t\t| [5] 退圖書管理系統(tǒng) |\n");
printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\n");
printf("請選擇操作 :");
scanf("%d",c3);
getchar();
switch(c3)
{
case 1:add_book(); break;
case 2:delete_book(); break;
case 3:modify_book(); break;
case 4:scan_book(); break;
case 5:system("cls"); return 0;
}
}
}
}
/*查詢圖書*/
void search_book()
{
FILE*fp;
struct book n;
struct book nn;
int l,r;
char x,z;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","rb");
while(1)
{
l=0;
system("cls");
printf("請輸入圖書名稱:");
scanf("%s",n.tittle);
fflush(stdin);
rewind(fp);
while(1)
{
fread(nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle );
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("沒要查詢圖書\n\n ");
}
else
{
printf("查詢圖書:");
printf("\n");
printf("****************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n\n\n");
}
printf("否繼續(xù)查詢圖書 ? [(y)/否(n)] ? \n\n");
do
{
x=getche();
}while(x!='n'x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//添加
void add_book()
{
FILE *fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","ab+");
do
{
system("cls");
do
{
l=0;
printf("\n");
printf("編號 書名 作者 版社 版間 價格 狀態(tài) 借閱者\n");
fflush(stdin);
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
system("cls");
rewind(fp);
while(!feof(fp))
{
fread(nn,sizeof(nn),1,fp);
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
printf(" 該圖書已存請輸入新圖書信息: \n\n");
break;
}
}
}while(l);
fwrite(n,sizeof(n),1,fp);
printf("\n");
printf("否繼續(xù)輸入新圖書信息[y/n] \n\n");
do
{
x=getche();
}while(x!='n'x!='y');
}while(x=='y');
fclose(fp);
system("cls");
}
//刪除圖書
void delete_book()
{
FILE *fp,*fp1;
char x,z;
struct book n;
struct book nn;
int l,r;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","ab+");
while(1)
{
l=0;
system("cls");
printf("\n");
printf("請輸入需要刪除圖書名: \n\n");
fflush(stdin);
scanf("%s",n.tittle);
rewind(fp);
while(1)
{
fread(nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("起未找該圖書 \n");
}
else
{
printf("\n");
printf("****************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n");
printf("確認(rèn)刪除圖書信息 [(y)/否(n)]\n\n");
do
{
z=getche();
}while(z!='n'z!='y');
if(z=='n')
break;
else
{
fp1=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng)new.txt","wb");
rewind(fp);
while(1)
{
fread(nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r!=0)
fwrite(nn,sizeof(nn),1,fp1);
}
fclose(fp);
fclose(fp1);
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","wb");
fp1=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng)new.txt","rb");
while(1)
{
fread(nn,sizeof(nn),1,fp1);
if(feof(fp1))
break;
fwrite(nn,sizeof(nn),1,fp);
}
fclose(fp);
fclose(fp1);
}
}
printf("\n");
printf("否繼續(xù)刪除圖書信息 [(y)/否(n)] \n");
do
{
x=getche();
}while(x!='n'x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//修改圖書信息
void modify_book()
{
FILE *fp;
struct book n;
struct book nn;
int l,r;
char x,z;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","rb+");
while(1)
{
l=0;
printf("\n");
system("cls");
printf("請輸入需要修改圖書名: \n\n");
fflush(stdin);
scanf("%s",n.tittle);
system("cls");
rewind(fp);
while(1)
{
fread(nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("起未找該圖書信息 \n\n");
}
else
{
printf("\n");
printf("****************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("請依修改圖書信息\n\n\n");
fflush(stdin);
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,sizeof(nn),1);
fwrite(n,sizeof(nn),1,fp);
}
printf("\n");
printf(" 否繼續(xù)修改用戶信息[y/n]? \n\n");
do
{
x=getch();
}while(x!='n'x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//借書
void borrow_book()
{
FILE*fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","rb+");
while(1)
{
l=0;
system("cls");
printf("\n");
printf("請輸入需要借閱圖書名: \n");
fflush(stdin);
scanf("%s",n.tittle);
rewind(fp);
while(1)
{
fread(nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("起未找該圖書 \n");
}
else
{ printf("\n");
printf("****************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n");
fflush(stdin);
printf("請輸入圖書信息并修改庫狀態(tài)及借閱者信息");
printf("****************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態(tài) 借閱者\n");
printf("\n");
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,sizeof(nn),1);
fwrite(n,sizeof(nn),1,fp);
}
printf("\n");
printf(" 否繼續(xù)借書 [(y)/否(n)] \n\n");
do
{
x=getch();
}while(x!='n'x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//書
void return_book()
{
FILE*fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","rb+");
while(1)
{
l=0;
system("cls");
printf("\n");
printf("請輸入需要借圖書名: \n");
fflush(stdin);
scanf("%s",n.tittle);
rewind(fp);
while(1)
{
fread(nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("起未找該圖書 \n");
}
else
{
printf("\n");
printf("****************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n");
fflush(stdin);
printf("請輸入圖書信息并修改庫狀態(tài) \n\n");
printf("****************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態(tài) 借閱者\n");
printf("\n");
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,-(int)sizeof(nn),1);
fwrite(n,sizeof(nn),1,fp);
}
printf("\n");
printf("否繼續(xù)書 [(y)/否(n)] \n");
do
{
x=getche();
}while(x!='n'x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//瀏覽
void scan_book()
{
FILE*fp;
char x,z;
struct book n;
fp=fopen("F:\\課程設(shè)計\\圖書管理系統(tǒng).txt","rb");
rewind(fp);
system("cls");
while(1)
{
fread(n,sizeof(n),1,fp);
if(feof(fp))
break;
else
{
printf("********************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態(tài) 借閱者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
printf("\n");
}
}
printf("\n");
printf("主菜單請按車");
do
{
x=getche();
}while(x!='\r');
if(x=='\r')
{
fclose(fp);
system("cls");
}
}
關(guān)于云借閱圖書管理系統(tǒng)代碼百度網(wǎng)盤和圖書借閱系統(tǒng)軟件的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。