智慧檔案管理與大數(shù)據(jù)解決方案的領(lǐng)航者,讓信息價(jià)值超越期待
電 話:18937133779
網(wǎng) 址:http://bestguitarvideos.com
郵 箱:zboao@qq.com
#include<iostream>
#include<fstream>
#include<windows.h>
#include<stdlib.h>
using namespace std;
void mainmenu();
void Manage_Book();
void input_Book();
void input_Reader();
void New_Book();
void Seek_Book();
void Borrow_Manage();
void Borrow_Book();
void Return_Book();
void Output_Message();
void Exit_System();
int u,v=3,k=0;
struct Book
{
char name[20];
int booknumber;
int num_present;
int num_all;
}book[1000];
struct Reader
{
char name[20];
int readernumber;
int card;
}reader[3];
void mainmenu()
{
int Num_Choice1,flag=1;
system("color E");
for(;k<=0;k++)
{
input_Book();
input_Reader();
}
while(flag==1)
{
system("cls");
cout<<"\t\t\t◆◆◆◆◆主菜單◆◆◆◆◆"<<endl
<<"\t\t\t☆ 1.圖書管理 ☆"<<endl
<<"\t\t\t☆ 2.借閱管理 ☆"<<endl
<<"\t\t\t☆ 3.輸出信息 ☆"<<endl
<<"\t\t\t☆ 4.退出系統(tǒng) ☆"<<endl
<<"\t\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl;
cout<<"請(qǐng)輸入所需要的服務(wù)編碼"<<endl;
cin>>Num_Choice1;
switch(Num_Choice1)
{
case 1:
Manage_Book();
break;
case 2:
Borrow_Manage();
break;
case 3:
Output_Message();
break;
case 4:
Exit_System();
flag=0;
break;
default:
flag=0;
cout<<"輸入有誤!!"<<endl;
}
}
}
void Manage_Book()
{
int flag1=1,Num_Choice2;
system("cls"); while(flag1==1)
{
cout<<"\t\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl
<<"\t\t\t☆ 1.新書入庫 ☆"<<endl
<<"\t\t\t☆ 2.圖書查詢 ☆"<<endl
<<"\t\t\t☆ 3.返回主菜單 ☆"<<endl
<<"\t\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl;
cin>>Num_Choice2;
switch(Num_Choice2)
{
case 1:
flag1=2;
New_Book();
break;
case 2:
flag1=2;
Seek_Book();
break;
case 3:
mainmenu();
default:
flag1=1;
cout<<"輸入有誤!"<<endl;
system("pause");
system("cls");
}
}}
void input_Book()
{
cout<<"請(qǐng)依照提示輸入現(xiàn)有的三本圖書的信息:"<<endl;
for(int i=0;i<3;i++)
{
cout<<"書名:"<<endl;
cin>>book[i].name;
cout<<"書號(hào):"<<endl;
cin>>book[i].booknumber;
cout<<"庫存量:"<<endl;
cin>>book[i].num_all;
cout<<"現(xiàn)存量:"<<endl;
cin>>book[i].num_present;
}
}
void New_Book()
{
system("cls");
int j;
char newbook_name[20];
cout<<"請(qǐng)輸入新書書名:"<<endl;
cin>>newbook_name;
for(j=0;j<1000;j++)
{
if(strcmp(newbook_name,book[j].name)==0)
{
book[j].num_all++;
book[j].num_present++;
break;
}
}
if(j==1000)
{
cout<<"請(qǐng)為此新書編號(hào):"<<endl;
v++;
cin>>book[v].booknumber;
strcpy(book[v].name,newbook_name);
book[v].num_all=1;
book[v].num_present=1;
}
else cout<<"已有此書,庫存量加一"<<endl;
system("pause");
}
void Seek_Book()
{
system("cls");
int k,booknumber;
cout<<"請(qǐng)輸入所要查詢的書號(hào):"<<endl;
cin>>booknumber;
for(k=0;k<1000;k++)
{
if(book[k].booknumber==booknumber)
{
cout<<"書號(hào):"<<booknumber<<endl;
cout<<"書名:"<<book[k].name<<endl;
cout<<"庫存量:"<<book[k].num_all<<endl;
cout<<"現(xiàn)存量:"<<book[k].num_present<<endl;
system("pause");
break;
}
}
if(k==1000)
{
cout<<"未找到此書?。?<<endl;
system("pause");
}
}
void Borrow_Manage()
{
int flag=1;
system("cls");
int Num_Choice3;
while(flag==1)
{
cout<<"\t\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl
<<"\t\t\t☆ 1.借書登記 ☆"<<endl
<<"\t\t\t☆ 2.還書管理 ☆"<<endl
<<"\t\t\t☆ 3.返回主菜單 ☆"<<endl
<<"\t\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl;
cin>>Num_Choice3;
switch(Num_Choice3)
{
case 1:
flag=2;
Borrow_Book();
break;
case 2:
flag=2;
Return_Book();
break;
case 3:
mainmenu();
default:
flag=1;
cout<<"輸入有誤!!"<<endl;
system("pause");
}
system("cls");
}
}
void input_Reader()
{
system("cls");
cout<<"請(qǐng)依照提示輸入現(xiàn)有的三位讀者的信息:"<<endl;
for(int m=0;m<3;m++)
{
cout<<"姓名:"<<endl;
cin>>reader[m].name;
cout<<"編號(hào):"<<endl;
cin>>reader[m].readernumber;
reader[m].card=0;
}
}
void Borrow_Book()
{
system("cls");
char reader_name[20];
int n,book_number;
cout<<"請(qǐng)輸入讀者姓名:"<<endl;
cin>>reader_name;
for(n=0;n<3;n++)
{
if(strcmp(reader_name,reader[n].name)==0)
{
if(reader[n].card!=0)
{
cout<<"已借書,不能再借,請(qǐng)按任意鍵返回"<<endl;
system("pause");
mainmenu();
}
else
break;
}
}
if(n==3)
{
cout<<"無此讀者!輸入有誤??!按任意鍵返回主菜單"<<endl;
system("pause");
mainmenu();
}
cout<<"請(qǐng)輸入所借圖書書號(hào):"<<endl;
cin>>book_number;
for(n=0;n<v;n++)
{
if(strcmp(reader_name,reader[n].name)==0)
reader[n].card=book_number;
}
for(n=0;n<v;n++)
{
if(book[n].booknumber==book_number)
{
if(book[n].num_present==0)
{
cout<<"該書已經(jīng)被借完,請(qǐng)按任意鍵返回"<<endl;
system("pause");
for(n=0;n<v;n++)
{
if(strcmp(reader_name,reader[n].name)==0)
reader[n].card=0;
}
mainmenu();
}
else
{
book[n].num_present--;
cout<<"借書成功,請(qǐng)按任意鍵返回"<<endl;
system("pause");
break;
}
}
}
if(n==v)
{
for(n=0;n<v;n++)
{
if(strcmp(reader_name,reader[n].name)==0)
reader[n].card=0;
}
cout<<"所輸入的書號(hào)不存在,請(qǐng)按任意鍵返回主菜單"<<endl;
system("pause");
mainmenu();
}
}void Return_Book()
{
system("cls");
int j;
char reader_name[20];
int book_number;
cout<<"請(qǐng)輸入讀者姓名:"<<endl;
cin>>reader_name;
for(j=0;j<3;j++)
{
if(strcmp(reader_name,reader[j].name)==0)
break;
}
if(j==3)
{
cout<<"無此讀者!輸入有誤!!按任意鍵返回主菜單"<<endl;
system("pause");
mainmenu();
}
cout<<"請(qǐng)輸入所還圖書書號(hào):"<<endl;
cin>>book_number;
for(j=0;j<3;j++)
{
if(strcmp(reader_name,reader[j].name)==0)
{
if(book_number==reader[j].card)
{
reader[j].card=0;
for(j=0;j<v;j++)
{
if(book[j].booknumber==book_number)
{
book[j].num_present++;
cout<<"還書成功,請(qǐng)按任意鍵返回"<<endl;
system("pause");
break;
}
}
}
else
{
cout<<"該讀者未借此書"<<endl;
system("pause");
}
}
if(j==v)
cout<<"所輸入的書號(hào)不存在:"<<endl;
}
}
void Output_Message()
{
system("cls");
int q;
cout<<"以下是圖書信息"<<endl<<endl;
for(q=0;q<v;q++)
{
cout<<"書號(hào):"<<book[q].booknumber<<'\t';
cout<<"書名:"<<book[q].name<<'\t';
cout<<"庫存量:"<<book[q].num_all<<'\t';
cout<<"現(xiàn)存量:"<<book[q].num_present<<endl;
}
cout<<"以下是讀者信息"<<endl<<endl;
for(q=0;q<3;q++)
{
cout<<"姓名:"<<reader[q].name<<'\t'
<<"編號(hào):"<<reader[q].readernumber<<'\t'
<<"所借書號(hào):"<<reader[q].card<<endl;
}
system("pause");
}
void Exit_System()
{
system("cls");
cout<<"歡迎下次使用,謝謝"<<endl;
system("pause");
}
void main()
{
mainmenu();
}
create database db
use db
create table 借閱等級(jí)信息(
借閱等級(jí) int primary key,
最長借閱時(shí)間 int,
最大借閱數(shù)量 int,
)
insert into 借閱等級(jí)信息 values
(0, 30, 10),
(1, 60, 20),
(2, 90, 30),
(3, 120, 40)
create table 讀者信息(
姓名 char(15) not null,
證件號(hào) char(12) primary key,
借閱等級(jí) int default 0,
累計(jì)借書 int default 0,
foreign key(借閱等級(jí)) references 借閱等級(jí)信息(借閱等級(jí))
)
insert into 讀者信息(姓名, 證件號(hào), 借閱等級(jí)) 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 圖書信息(
索書號(hào) char(15) primary key,
作者 char(15),
書名 char(15),
出版社 varchar(20),
出版時(shí)間 date,
foreign key(出版社)references 出版社信息(出版社)
)
insert into 圖書信息 values
('b12987', '嚴(yán)蔚敏', '數(shù)據(jù)結(jié)構(gòu)', '清華大學(xué)出版社', '2012-02-06'),
('b97894', '東野圭吾', '幻夜', '南海出版公司', '2004-08-02'),
('b16546', '吳玉華', '物理實(shí)驗(yàn)教程', '清華大學(xué)出版社', '2013-05-15'),
('b89490', '張雪峰', '考研指點(diǎn)', '晟威出版社', '2016-12-12'),
('b56400', '郟宗培', '紙上尋仙記', '上海文藝出版社', '2011-02-05')
create table 單本圖書信息(
條碼號(hào) char(7) primary key check(len(條碼號(hào)) = 7),
索書號(hào) char(15),
館藏地 varchar(40),
書刊狀態(tài) varchar(6) check(書刊狀態(tài) in ('可借', '借出', '非可借')),
歷史借閱量 int default 0,
foreign key(索書號(hào))references 圖書信息(索書號(hào))
)
insert into 單本圖書信息(條碼號(hào), 索書號(hào), 館藏地, 書刊狀態(tài)) values
('t987628', 'b97894', '三樓A8', '借出'),
('t594805', 'b97894', '二樓C7', '可借'),
('t984910', 'b89490', '五樓A2', '借出'),
('t940566', 'b12987', '負(fù)一樓D3', '借出')
create table 借閱信息(
借閱號(hào) char(6) primary key,
借閱時(shí)間 date,
歸還時(shí)間 date,
圖書條碼號(hào) char(7),
借閱人證件號(hào) char(12),
foreign key(圖書條碼號(hào)) references 單本圖書信息(條碼號(hào)),
foreign key(借閱人證件號(hào)) references 讀者信息(證件號(hào))
)
create table 評(píng)論信息(
評(píng)論號(hào) char(8) primary key,
評(píng)分 numeric(2, 1),
內(nèi)容 varchar(200),
評(píng)論時(shí)間 date,
評(píng)論者id char(12),
索書號(hào) char(15),
foreign key(索書號(hào))references 圖書信息(索書號(hào)),
foreign key(評(píng)論者id)references 讀者信息(證件號(hào))
)
insert into 評(píng)論信息 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),
索書號(hào) char(15),
foreign key(索書號(hào))references 圖書信息(索書號(hào))
)
insert into 主題詞信息 values
('z64400', '計(jì)算機(jī)', 'b12987'),
('z95410', '物理', 'b16546'),
('z98500', '考研', 'b89490'),
('z64165', '推理\懸疑', 'b97894'),
('z69850', '仙俠', 'b56400')
use db
go
create trigger trigger1
on 借閱信息
after insert
as
begin
update 讀者信息? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--更改讀者累計(jì)借書量
set 累計(jì)借書 = 累計(jì)借書 + 1
from 讀者信息, inserted
where 讀者信息.證件號(hào) = inserted.借閱人證件號(hào)
update 單本圖書信息? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--更改圖書狀態(tài)
set 單本圖書信息.書刊狀態(tài) = '借出'
from inserted, 單本圖書信息
where inserted.圖書條碼號(hào) = 單本圖書信息.條碼號(hào)
update 單本圖書信息
set 歷史借閱量 = 歷史借閱量 + 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--更改圖書歷史借閱量
from inserted, 單本圖書信息
where inserted.圖書條碼號(hào) = 單本圖書信息.條碼號(hào)
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(圖書條碼, 借閱者姓名, 編號(hào), 借閱時(shí)間, 應(yīng)還時(shí)間)
as
select 圖書條碼號(hào), 姓名, 證件號(hào), 借閱時(shí)間, 歸還時(shí)間
from 借閱信息, 讀者信息
where 借閱信息.借閱人證件號(hào) = 讀者信息.證件號(hào) and 歸還時(shí)間 > getdate()
go
create view view_2(圖書條碼, 歷史總借閱量)
as
select 條碼號(hào), 歷史借閱量
from 單本圖書信息, 圖書信息
where 單本圖書信息.索書號(hào) = 圖書信息.索書號(hào) and 書名 = '幻夜'
go
create view view_3(類別, 圖書條碼, 歷史總借閱量)
as
select 類別, 條碼號(hào), 歷史借閱量
from 單本圖書信息, 圖書信息, 主題詞信息
where 主題詞信息.索書號(hào) = 圖書信息.索書號(hào) and 圖書信息.索書號(hào) = 單本圖書信息.索書號(hào) and 類別 = '考研'
go
create view view_4(讀者編號(hào), 條碼, 圖書名稱, 應(yīng)還日期)
as
select 借閱人證件號(hào), 圖書條碼號(hào), 書名, 歸還時(shí)間
from 單本圖書信息, 圖書信息, 借閱信息
where 借閱信息.圖書條碼號(hào) = 單本圖書信息.條碼號(hào) and 單本圖書信息.索書號(hào) = 圖書信息.索書號(hào)
and 歸還時(shí)間 > getdate() and 借閱人證件號(hào) = '541607120165'
go
create view view_5(讀者編號(hào), 圖書條碼, 圖書名稱, 借閱日期, 歸還日期)
as
select 借閱人證件號(hào), 圖書條碼號(hào), 書名, 借閱時(shí)間, 歸還時(shí)間
from 單本圖書信息, 圖書信息, 借閱信息
where 借閱信息.圖書條碼號(hào) = 單本圖書信息.條碼號(hào) and 單本圖書信息.索書號(hào) = 圖書信息.索書號(hào)
and 借閱人證件號(hào) = '541607120165'
go
create view view_6(讀者編號(hào), 圖書名稱, 評(píng)論時(shí)間, 評(píng)論內(nèi)容)
as
select 評(píng)論者id, 書名, 評(píng)論時(shí)間, 內(nèi)容
from 借閱信息, 單本圖書信息, 評(píng)論信息, 圖書信息
where 借閱信息.圖書條碼號(hào) = 單本圖書信息.條碼號(hào) and 單本圖書信息.索書號(hào) = 評(píng)論信息.索書號(hào)
and 評(píng)論信息.索書號(hào) = 圖書信息.索書號(hào) and 評(píng)論者id = '541607120165'
go
create view view_7(出版社名稱, 圖書名稱, 出版時(shí)間)
as
select top 100 percent 出版社信息.出版社, 書名, 出版時(shí)間
from 出版社信息, 圖書信息
where 出版社信息.出版社 = 圖書信息.出版社
order by 出版時(shí)間 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 出版時(shí)間 asc
擴(kuò)展資料:
數(shù)據(jù)庫模型:
對(duì)象模型
層次模型(輕量級(jí)數(shù)據(jù)訪問協(xié)議)
網(wǎng)狀模型(大型數(shù)據(jù)儲(chǔ)存)
關(guān)系模型
面向?qū)ο竽P?/p>
半結(jié)構(gòu)化模型
平面模型(表格模型,一般在形式上是一個(gè)二維數(shù)組。如表格模型數(shù)據(jù)Excel)
架構(gòu)
數(shù)據(jù)庫的架構(gòu)可以大致區(qū)分為三個(gè)概括層次:內(nèi)層、概念層和外層。
內(nèi)層:最接近實(shí)際存儲(chǔ)體,亦即有關(guān)數(shù)據(jù)的實(shí)際存儲(chǔ)方式。
外層:最接近用戶,即有關(guān)個(gè)別用戶觀看數(shù)據(jù)的方式。
概念層:介于兩者之間的間接層。
數(shù)據(jù)庫索引
主條目:數(shù)據(jù)庫索引
數(shù)據(jù)索引的觀念由來已久,像是一本書前面幾頁都有目錄,目錄也算是索引的一種,只是它的分類較廣,例如車牌、身份證字號(hào)、條碼等,都是一個(gè)索引的號(hào)碼,當(dāng)我們看到號(hào)碼時(shí),可以從號(hào)碼中看出其中的端倪,若是要找的人、車或物品,也只要提供相關(guān)的號(hào)碼,即可迅速查到正確的人事物。
另外,索引跟字段有著相應(yīng)的關(guān)系,索引即是由字段而來,其中字段有所謂的關(guān)鍵字段(Key Field),該字段具有唯一性,即其值不可重復(fù),且不可為"空值(null)"。
例如:在合并數(shù)據(jù)時(shí),索引便是扮演欲附加字段數(shù)據(jù)之指向性用途的角色。故此索引為不可重復(fù)性且不可為空。
數(shù)據(jù)庫操作:事務(wù)
主條目:數(shù)據(jù)庫事務(wù)
事務(wù)(transaction)是用戶定義的一個(gè)數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個(gè)不可分割的工作單位。
事務(wù)的并發(fā)性是指多個(gè)事務(wù)的并行操作輪流交叉運(yùn)行,事務(wù)的并發(fā)可能會(huì)訪問和存儲(chǔ)不正確的數(shù)據(jù),破壞交易的隔離性和數(shù)據(jù)庫的一致性。
網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu) 網(wǎng)狀模型 滿足下面兩個(gè)條件的基本層次聯(lián)系的集合為網(wǎng)狀模型。 1. 允許一個(gè)以上的結(jié)點(diǎn)無雙親; 2. 一個(gè)結(jié)點(diǎn)可以有多于一個(gè)的雙親。
參考資料來源:百度百科——數(shù)據(jù)庫
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#define N 100 //書籍的最多本數(shù)
struct book
{ char title[30];
int number;
char author[30];
float price;
int store;
char borrower_name[20];
char borrower_gender[5];
int borrower_number;
}s[N];
int m=0;
void input(structbook *p); //輸入圖書信息
void save(structbook *p); //保存圖書信息
void read(structbook *p); //讀取圖書信息
void search(structbook *p); //查找圖書信息
void del(structbook *p); //刪除圖書信息
void borrow(structbook *p); //借閱圖書
void retur(structbook *p); //歸還圖書
void main()
{
int x;
do
{
printf("**************************************菜單**************************************\n"
" *********** 1.輸入圖書信息 ********** \n"
" *********** 2.查找圖書信息 ********** \n"
" *********** 3.刪除圖書信息 ********** \n"
" *********** 4.借閱圖書 ********** \n"
" *********** 5.歸還圖書 ********** \n"
" *********** 0.退出 ********** \n");
printf("********************************************************************************\n");
printf("請(qǐng)?jiān)?-5中選擇,以回車鍵結(jié)束\n");
scanf("%d",&x);
switch(x)
{ case 1: input(&s[0]);break;
case 2: search(&s[0]);break;
case 3: del(&s[0]);break;
case 4: borrow(&s[0]);break;
case 5: retur(&s[0]);break;
case 0: break;
}
}while(x!=0);
}
void input(structbook *p)
{ int y;
for(;p<(&s[0]+N);p++)
{ printf("請(qǐng)輸入書名:");scanf("%s",p->title);
printf("請(qǐng)輸入編號(hào):"); scanf("%d",&p->number);
printf("請(qǐng)輸入作者:"); scanf("%s",p->author);
printf("請(qǐng)輸入圖書價(jià)格:"); scanf("%f",&p->price);
printf("請(qǐng)輸入圖書數(shù)量:"); scanf("%d",&p->store);
m++;
printf("第%d個(gè)信息已經(jīng)輸入完畢,是否繼續(xù)?\n按任意鍵繼續(xù),按0鍵結(jié)束.",m);
scanf("%d",&y);//讀取是否繼續(xù)
if(y==0)
{ save(&s[0]);
read(&s[0]);//調(diào)用讀取文件函數(shù)
break;
}
}
}
void search(structbook *p)//查詢模塊
{ int n;
char name1[20];
char name2[20];
char c[3];
do
{ p=&s[0];
printf("\t請(qǐng)選擇查找方式:\n");//打印查詢方式菜單
printf(" 1.按書名查找\n 2.按作者查找\n 0.返回\n");
printf("請(qǐng)?jiān)?-2中選擇:\n\n");
scanf("%d",&n);//讀取查找方式
if(n==0) break;
switch(n)
{ case 1: printf("請(qǐng)輸入書名:\n");scanf("%s",name1);break;
case 2: printf("請(qǐng)輸入作者:\n");scanf("%s",name2);break;
}
for(;p<&s[m];p++)
{ read(&s[0]);//調(diào)用讀取函數(shù)
if(strcmp(p->title,name1)==0||strcmp(p->author,name2)==0)
{ printf("\n查找圖書信息成功!\n");
printf("書名 編號(hào) 作者 價(jià)格 數(shù)量\n");
printf("%-10s%-10d%-10s%-10.2f%-10d\n",p->title,p->number,p->author,p->price,p->store);//打印信息
break;
}
}
printf("是否繼續(xù)查找?\n“是”請(qǐng)鍵入“yes”, “否”請(qǐng)按任意鍵,返回菜單\n");
scanf("%s",c);
}while(strcmp(c,"yes")==0);//判斷是否結(jié)束
}
void del(structbook *p)//刪除模塊
{ int i;
struct book *p1,*p2;
char name1[20];
char name2[20];
char c[3];
int n;
do
{ p=&s[0];
printf("請(qǐng)選擇刪除以方式回車鍵結(jié)束:\n");//打印刪除方式菜單
printf( " 1.按書名刪除\n 2.按作者刪除\n 0.返回\n");
printf("請(qǐng)?jiān)?-2中選擇:\n\n");
scanf("%d",&n);//讀取查找方//
if(n==0) break;
switch(n)
{case 1:printf("請(qǐng)輸入書名:\n");
scanf("%s",name1);break;
case 2: printf("請(qǐng)輸入作者:\n");
scanf("%s",name2);break;
}
read(&s[0]); //調(diào)用讀取函數(shù)
for(i=0;i<m;i++,p++)
{
if(strcmp(p->title,name1)==0||strcmp(p->author,name2)==0)
{ p1=p;
for(p2=p1+1;p2<=&s[m];p1++,p2++)
{
strcpy(p1->title,p2->title);
strcpy(p1->author,p2->author);
p1->number=p2->number;
p1->store=p2->store;
p1->price=p2->price;
m--;
printf("刪除成功?。n");
}
}
else {printf("沒有該書記錄??!");
break;}
}
printf("是否繼續(xù)刪除?“是”請(qǐng)鍵入“yes”, “否”請(qǐng)按任意鍵,返回菜單\n");
scanf("%s",c); //讀取是否繼續(xù)
save(&s[0]); //調(diào)用保存函數(shù)
}while(strcmp(c,"yes")==0); //判斷是否繼續(xù)刪除
}
void borrow(structbook *p)//借書模塊
{ int z;
char name3[20],name4[20];
char w[3];
do
{ p=&s[0];
printf("請(qǐng)先查找您要借閱的圖書!");
printf("請(qǐng)選擇查找方式:\n");//打印查詢方式菜單
printf(" 1.按書名查找\n 2.按作者查找\n 0.返回\n");
printf("請(qǐng)?jiān)?-2中選擇:\n");
scanf("%d",&z);//讀取查找方式
if(z==0) break;
switch(z)
{ case 1: printf("請(qǐng)輸入書名:\n");scanf("%s",name3);break;
case 2: printf("請(qǐng)輸入作者:\n");scanf("%s",name4);break;
}
read(&s[0]);//調(diào)用讀取函數(shù)
for(;p<&s[m];p++)
{ if(strcmp(p->title,name3)==0||strcmp(p->author,name4)==0)
{
printf("\n查找圖書信息成功!\n");
printf("書名 編號(hào) 作者 價(jià)格 數(shù)量\n");
printf("%-10s%-10d%-10s%-10.2fs%-10d\n",p->title,p->number,
p->author,p->price,p->store);//打印信息
printf("請(qǐng)輸入您的姓名:");scanf("%s",p->borrower_name);
printf("請(qǐng)輸入您的性別:");scanf("%s",p->borrower_gender);
printf("請(qǐng)輸入您的學(xué)號(hào):");scanf("%d",&p->borrower_number);
p->store--;
printf("借書成功!\n");
printf("書名 編號(hào) 作者 價(jià)格 數(shù)量 借書人 性別 學(xué)號(hào)\n");
printf("%-10s%-10d%-10s%-10.2f%-10d%-10s%-10s%-10d\n",p->title,p->number,p->author,
p->price,p->store,p->borrower_name,p->borrower_gender,p->borrower_number);
break;
}
}
printf("是否繼續(xù)借書??");
printf("“是”請(qǐng)鍵入“yes”, “否”請(qǐng)按任意鍵,返回菜單\n");
scanf("%s",w); //讀取是否繼續(xù)
save(&s[0]); //調(diào)用保存函數(shù)
}while(strcmp(w,"yes")==0); //判斷是否繼續(xù)借書
}
void retur(structbook *p)//還書模塊
{ int e,f;
char name5[20];
char name6[20];
char t[3];
do
{ p=&s[0];
printf("請(qǐng)先查找您要還的圖目!");
printf("請(qǐng)選擇查找方式:\n"); //打印查詢方式菜單
printf(" 1.按書名查找\n 2.按作者查找\n 0.返回\n");
printf("請(qǐng)?jiān)?-2中選擇:\n\n");
scanf("%d",&e); //讀取查找方式
if(e==0) break;
switch(e)
{ case 1: printf("請(qǐng)輸入書名:\n");scanf("%s",name5);break;
case 2: printf("請(qǐng)輸入作者:\n");scanf("%s",name6);break;
}
read(&s[0]);//調(diào)用讀取函數(shù)
for(;p<&s[m];p++)
{ if(strcmp(p->title,name5)==0||strcmp(p->author,name6)==0)
{ printf("\n查找圖書信息成功!\n");
printf("確認(rèn)還書請(qǐng)按“1”!");//確認(rèn)是否還書
scanf("%d",&f);
if(f==1)
{ strcpy(p->borrower_name,"0");
strcpy(p->borrower_gender,"0");
p->borrower_number=0;
p->store++;
printf("書名 編號(hào) 作者 價(jià)格 數(shù)量 借書人 性別 學(xué)號(hào)\n");
printf("%-10s%-10d%-10s%-10.2f%-10d%-10s%-10s%-10d\n",p->title,p->number,p->author,
p->price,p->store,p->borrower_name,p->borrower_gender,p->borrower_number);
//打印信息
}
break;
}
else {printf("沒有該書記錄?。?);
break;}
}
printf("是否繼續(xù)還書?\n");
printf("“是”請(qǐng)鍵入“yes”, “否”請(qǐng)按任意鍵,返回菜單\n");
scanf("%s",t); //讀取是否繼續(xù)
save(&s[0]); //調(diào)用保存函數(shù)
}while(strcmp(t,"yes")==0); //判斷是否繼續(xù)還書
}
void save(structbook *p)//保存文件
{ FILE *fp,*fp1;
int i;
if((fp=fopen("tushu.txt","wb"))==NULL)//打開文件并判斷是否出錯(cuò)
{ printf("創(chuàng)建文件失敗!\n\n");//打印出錯(cuò)提示
getchar(); return;
}
if((fp1=fopen("book.txt","wb"))==NULL)//打開文件并判斷是否出錯(cuò)
{ printf("創(chuàng)建文件失敗!\n\n");//打印出錯(cuò)提示
getchar(); return;
}
for(i=0;i<m;i++,p++)
if(fwrite(p,sizeof(structbook),1,fp)==0)//向文件寫入數(shù)據(jù),并判斷是否出錯(cuò)
printf("向文件輸入數(shù)據(jù)失敗!\n\n");
fprintf(fp1,"%d",m);
fclose(fp);//關(guān)閉文件
fclose(fp1);//關(guān)閉文件
}
void read(structbook *p)//從文件讀取信息模塊
{ FILE *fp,*fp1;
int i;
if((fp=fopen("tushu.txt","rb"))==NULL)//打開文件,并判斷是否出錯(cuò)
{ printf("出錯(cuò),請(qǐng)檢查文件是否存在,按任意鍵返回住菜單");//打印出錯(cuò)提示
getchar();
}
if((fp1=fopen("book.txt","rb"))==NULL)//打開文件并判斷是否出錯(cuò)
{ printf("創(chuàng)建文件失敗!\n\n");//打印出錯(cuò)提示
getchar(); return;
}
fscanf(fp1,"%d",&m);
fclose(fp1);//關(guān)閉文件
for(i=0;i<m;i++,p++)
{ fread(p,sizeof(struct book),1,fp);//從文件中讀取信息
}
fclose(fp);//關(guān)閉文件
}
你把保存的文件地址自己修改一下就可以了。。希望能幫到你
這應(yīng)該是分離后的文件,先把data放到你知道的位置,哪個(gè)盤都可以,打開SQL2000然后右擊“數(shù)據(jù)庫”選所有任務(wù)里的附加數(shù)據(jù)庫,找到你放的data文件就OK了