圖書管理系統源碼下載
『壹』 急求圖書館管理系統代碼java,c++,delphi,vb都可以
/*1、 系統初始化10種圖書(圖書名自定);
2、 顯示所有圖書列表(編號、名稱和當前狀態);
3、 顯清慎示圖書借出狀態(是否已經被借閱);
4、 操作者可以通過圖書名稱進行查詢,並借閱;
5、 操作者也可以歸還某本已經借閱的圖書;
6、 對某本圖書的借閱次數進行匯總求和;
7、 求出借閱次數最多和最少的圖書;*/
#ifndef LIBRARY_H
#define LIBRARY_H
#include<vector>
#include<string>
#include<iterator>
#include<utility>
#include<iostream>
using std::cin;
using std::vector;
using std::iterator;
using std::string;
using std::pair;
using std::istream;
class Book{
public:
Book(istream& i):ve(bo(i)){};//1、 系統初始化10種圖書(圖書名自定);
void list(size_t& n) const//查詢
{ pair<string,bool> ir=ve[n+1];
std::cout<<"第"<<n<<"本書名"<<ir.first<<"狀態"<<std::ends;
(ir.second==true)?std::cout<<"存在":std::cout<<"已借出"<<std::endl;
std::cout<<std::endl;}//2、 顯示答乎敬圖書列表(編頃咐號、名稱和當前狀態);
void list(string& str) //查詢並借閱
{
vector<pair<string,bool> >::iterator itr=ve.begin();
vector<pair<string,int> >::iterator it=pai.begin();
while(itr!=ve.end())
{if(itr->first==str&&it->first==str)<br> {std::cout<<"存在!請輸入y/n確認是否借閱"<<std::ends;<br> char ch;cin>>ch;<br> if(ch=='y')<br> {itr->second=false;<br> it->second=it->second++;<br> std::cout<<"已借閱"<<std::ends;}
}else{std::cout<<"不存在"<<std::ends;}
++itr;++it;
}
}
void rest(string& str)
{vector<pair<string,bool> >::iterator itr=ve.begin();<br> while(itr++!=ve.end())<br> {if(itr->first==str&&itr->second==false)<br> {itr->second=true;<br> std::cout<<"已歸還"<<" ";}else{std::cout<<"不在"<<std::endl;}}}//5、 操作者也可以歸還某本已經借閱的圖書;
void sum(const string str)
{vector<pair<string,int> >::iterator it=pai.begin();<br> int max=(++it)->second;<br> int min=(++it)->second;<br> string ma,mi;<br> while(it!=pai.end())<br> {<br> if(it->first==str)<br> {std::cout<<"借閱次數為"<<(it->second)<<std::ends;}
if(max<it->second)
{max=it->second;<br> ma=it->first;}
if(min>it->second)
{min=it->second;<br> mi=it->first;}}
std::cout<<"借閱最多次de 圖書"<<ma<<" "<<max<<"次"<<std::endl;
std::cout<<"借閱最少次de 圖書"<<mi<<" "<<min<<"次"<<std::endl;}/*6、 對某本圖書的借閱次數進行匯總求和;
7、 求出借閱次數最多和最少的圖書;*/
private:
vector<pair<string,bool> > bo(istream&);
vector<pair<string,bool> > ve;
vector<pair<string,int> > pai;
};
vector<pair<string,bool> > Book::bo(istream& is)//創建 圖書 及存在情況
{
int i=0;
std::string s;
std::vector<pair<string,bool> > v;
vector<pair<string,int> > pai;
while(is>>s)
{
v.push_back(make_pair(s,true));
pai.push_back(make_pair(s,0));
++i;
if(i==10)
break;
}
is.clear();
return v;
}
#endif
下面是 main
#include<iostream>
#include"library.h"
using namespace std;
int main()
{
size_t x=5;
string str;
Book a(cin);//初始化
cin.clear();
a.list(x);//輸入數字查詢
cout<<"輸入查詢"<<endl;
cin>>str;
a.list(str);//輸入字元查詢並借閱
//a.rest(string("sa"));//歸還
//a.sum(string("sa"));//查詢某本書的借閱次數並統計輸出借閱最多和最少的書
return 0;
}
『貳』 急求用c語言編寫的圖書管理系統源代碼
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#define STACK_INIT_SIZE 10
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
struct student /*定義學生類型,用於存放借出的書籍*/
{
int carnum;
char lendbook[10];
}student[1000];
struct employ /*定義職工類型*/
{
int employnum;
char employname[15];
int employage;
char employsex[2];
char employleve[10];
long int employtage;
}employ[50];
struct book /*定義書的類型*/
{
int booknum;
char bookname[10];
char bookcreat[10];
int turefalse; /*用於借書和還書模塊判斷一本書是否借出的條件*/
}book[1000];
struct car /*借書卡的數據類型*/
{
int carnum;
char studentname[10];
int studentclass;
}car[100];
huanbook() /*還書函數*/
{
FILE *fp,*fp2; /*定義兩個文件指針,fp2用於修改數據時設立臨時文件用,防止數據遭破壞*/
int i,n;
int carnum;
char lendbook[10];
printf("請你輸入你的卡號\n");
scanf("%d",&carnum);
fp=fopen("car.txt","r"); /*讀取卡號記錄*/
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) /*for循環判斷卡號是否存在*/
{
if(car[i].carnum==carnum) /*卡號存在,進入下一循環*/
{
n=i;
fclose(fp);
printf("請輸入你要還的書的名字\n");
scanf("%s",lendbook);
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判斷是否借閱了輸入的書*/
{
if(strcmp(student[i].lendbook,lendbook)==0) /*借閱了該書,進入下一循環,否則出錯顯示*/
{
fclose(fp);
fp=fopen("record.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
{
if(strcmp(student[i].lendbook,lendbook)==0)
{
continue; /*刪除還掉的書的借書記錄*/
}
fwrite(&student[i],sizeof(struct student),1,fp2); /*寫入原來沒還的書的記錄*/
}
fclose(fp);
fclose(fp2);
fp=fopen("record.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++)
{
fwrite(&student[i],sizeof(struct student),1,fp); /*將借書記錄信息寫回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w"); /*清臨時文件的記錄*/
fclose(fp2);
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) /*將書的記錄寫入臨時文件,防止因為修改信息破壞以前的記錄*/
{
if(i==n)
{
book[i].turefalse=1;
fwrite(&book[i],sizeof(struct book),1,fp2); /*將還的書的原來狀態設為無人借閱的*/
continue;
}
fwrite(&book[i],sizeof(struct book),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book),1,fp); /*將臨時文件寫回*/
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w"); /*清臨時文件*/
fclose(fp2);
printf("還書完畢,按任意鍵返回\n");
getch();
return 1;
}
}
printf("你沒有借這樣的書,任意鍵返回\n"); /*出錯提示*/
fclose(fp);
getch();
return 0;
}
}
printf("系統沒這樣的卡,和管理員聯系,按任意鍵返回\n"); /*出錯提示*/
fclose(fp);
getch();
}
findbook()
{
FILE *fp;
char bookname[10];
int ture,i;
fp=fopen("book.txt","r");
printf("請輸入你要查找的書名\n");
scanf("%s",bookname);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(bookname,book[i].bookname)==0)
{
if(book[i].turefalse==1)
{
printf("這本書的詳細資料是:%d %s %s 此書現在無人借閱\n按任意鍵返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);
}
else {printf("這本書已經有人借出\n");fclose(fp);return 0;}
fclose(fp);
return FALSE;
}
}
printf("沒有你要查詢的書籍\n");
fclose(fp);
return FALSE;
}
findbook1()
{
FILE *fp;
char bookcreat[10];
int ture,i;
fp=fopen("book.txt","r");
printf("請輸入你要查找的作者名\n");
scanf("%s",bookcreat);
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(bookcreat,book[i].bookcreat)==0)
{
if(book[i].turefalse==1)
{
printf("這本書的詳細資料是:%d %s %s 此書現在無人借閱\n按任意鍵返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);
}
else {printf("這本書已經有人借出\n");fclose(fp);return 0;}
fclose(fp);
return FALSE;
}
}
printf("沒有你要查詢的書籍\n");
fclose(fp);
return FALSE;
}
lendcount()
{
FILE *fp;
int i,n=0;
fp=fopen("record.txt","r");
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)
{
printf("卡號:%d 借出的書籍:%s \n",student[i].carnum,student[i].lendbook);
n=n+1;
}
fclose(fp);
printf("目前共有%d本書借出\n",n);
printf("按任意鍵\n");
getch();
return n;
}
chabook()
{
char ch5;
do
{
printf("---------------歡迎進入圖書查詢系統!--------------\n");
printf(" 1:<按書名查找>\n");
printf(" 2:<按作者查找>\n");
printf(" 0:<返回>\n");
printf("請輸入0--2,其他輸入非法!\n");
scanf("%s",&ch5);
switch(ch5)
{
case '1':findbook();getch();break;
case '2':findbook1();getch();break;
case '0':break;
default:printf("無此操作\n");getch();break;
}
}while(ch5!='0');
return FALSE;
}
lendbook()
{
FILE *fp,*fp2;
int i,n;
int carnum;
printf("請你輸入你的卡號\n");
scanf("%d",&carnum);
fp=fopen("car.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
if(car[i].carnum==carnum)
{
n=i;
fclose(fp);
printf("請輸入你要借閱的書的名字\n");
scanf("%s",student[n].lendbook);
fp=fopen("book.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(book[i].bookname,student[n].lendbook)==0)
{
if(book[i].turefalse==0) {printf("對不起,此書有人借出,請借其他書\n");fclose(fp);getch();return;}
else
fclose(fp);
fp=fopen("record.txt","a+");
student[n].carnum=carnum;
fwrite(&student[n],sizeof(struct student),1,fp);
fclose(fp);
fp=fopen("book.txt","r");
fp2=fopen("bookl.txt","w");
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++)
{
if(strcmp(book[i].bookname,student[n].lendbook)==0)
{
book[i].turefalse=0;
fwrite(&book[i],sizeof(struct book),1,fp2);
continue;
}
fwrite(&book[i],sizeof(struct book),1,fp2);
}
fclose(fp);
fclose(fp2);
fp=fopen("book.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++)
{
fwrite(&book[i],sizeof(struct book),1,fp);
}
fclose(fp);
fclose(fp2);
fopen("bookl.txt","w");
fclose(fp2);
printf("借書完畢,按任意鍵返回\n");
getch();
return;
}
}
printf("不存在這樣的書,任意鍵返回\n");
fclose(fp);
getch();
return;
}
}
printf("你的卡號不存在,請申請新卡,按任意鍵返回\n");
fclose(fp);
getch();
}
carcount()
{
FILE *fp;
int i,n=0;
fp=fopen("car.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
printf("第%d張卡<卡號:%d 姓名:%s 班級:%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass);
n=n+1;
}
fclose(fp);
printf("目前共有%d本書\n",n);
printf("按任意鍵\n");
getch();
}
delcar()
{
FILE *fp,*fp2;
int i;
int carnum;
char choice;
fp=fopen("car.txt","r");
fp2=fopen("bookl.txt","w");
printf("請輸入你要刪除的卡號\n");
printf("如果你輸入的卡號存在,系統自動刪除該信息!如果不存在,系統不做任何改動\n");
scanf("%d",&carnum);
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++)
{
if(car[i].carnum!=carnum)
{
fwrite(&car[i],sizeof(struct car),1,fp2);
}
}
fclose(fp);
fclose(fp2);
printf("是否真的要刪除該卡?刪除後該書籍的所有信息將無法恢復《Y/N》\n");
scanf("%s",&choice);
if(choice=='y'||choice=='Y')
{
fp=fopen("car.txt","w");
fp2=fopen("bookl.txt","r");
for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++)
{
fwrite(&car[i],sizeof(struct car),1,fp);
}
fclose(fp);
fclose(fp2);
fp2=fopen("bookl.txt","w");
fclose(fp2);
printf("按任意鍵返回\n");
getch();
return;
}
else
{
printf("按任意鍵返回\n");
getch();
return;
}
}
addcar()
{
FILE *fp;
int i=0;
fp=fopen("car.txt","a+");
printf("請你輸入卡號\n");
scanf("%d",&car[i].carnum);
printf("請你輸入學生姓名\n");
scanf("%s",car[i].studentname);
printf("請你輸入班級\n");
scanf("%d",&car[i].studentclass);
fwrite(&car[i],sizeof(struct car),1,fp);
fclose(fp);
printf("輸入完畢,任意鍵返回\n");
getch();
}
『叄』 資料庫圖書管理系統代碼
create database db
use db
create table 借閱等級信息(
借閱等級 int primary key,
最長借閱時間 int,
最大借閱數量 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),
聯系電話 char(7)
)
insert into 出版社信息 values
('清華大學出版社', '北京', '4979421'),
('晟威出版社', '天津', '5564130'),
('南海出版公司', '海南', '4984910'),
('上海文藝出版社', '上海', '6640239')
create table 圖書信息(
索書號 char(15) primary key,
作者 char(15),
書名 char(15),
出版社 varchar(20),
出版時間 date,
foreign key(出版社)references 出版社信息(出版社)
)
insert into 圖書信息 values
('b12987', '嚴蔚敏', '數據結構', '清華大學出版社', '2012-02-06'),
('b97894', '東野圭吾', '幻夜', '南海出版公司', '2004-08-02'),
('b16546', '吳玉華', '物理實驗教程', '清華大學出版社', '2013-05-15'),
('b89490', '張雪峰', '考研指點', '晟威出版社', '2016-12-12'),
('b56400', '郟宗培', '紙上尋仙記', '上海文藝出版社', '2011-02-05')
create table 單本圖書信息(
條碼號 char(7) primary key check(len(條碼號) = 7),
索書號 char(15),
館藏地 varchar(40),
書刊狀態 varchar(6) check(書刊狀態 in ('可借', '借出', '非可借')),
歷史借閱量 int default 0,
foreign key(索書號)references 圖書信息(索書號)
)
insert into 單本圖書信息(條碼號, 索書號, 館藏地, 書刊狀態) values
('t987628', 'b97894', '三樓A8', '借出'),
('t594805', 'b97894', '二樓C7', '可借'),
('t984910', 'b89490', '五樓A2', '借出'),
('t940566', 'b12987', '負一樓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),
內容 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', '計算機', '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 單本圖書信息 --更改圖書狀態
set 單本圖書信息.書刊狀態 = '借出'
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(圖書條碼, 借閱者姓名, 編號, 借閱時間, 應還時間)
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(讀者編號, 條碼, 圖書名稱, 應還日期)
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(讀者編號, 圖書名稱, 評論時間, 評論內容)
as
select 評論者id, 書名, 評論時間, 內容
from 借閱信息, 單本圖書信息, 評論信息, 圖書信息
where 借閱信息.圖書條碼號 = 單本圖書信息.條碼號 and 單本圖書信息.索書號 = 評論信息.索書號
and 評論信息.索書號 = 圖書信息.索書號 and 評論者id = '541607120165'
go
create view view_7(出版社名稱, 圖書名稱, 出版時間)
as
select top 100 percent 出版社信息.出版社, 書名, 出版時間
from 出版社信息, 圖書信息
where 出版社信息.出版社 = 圖書信息.出版社
order by 出版時間 asc
--執行
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
(3)圖書管理系統源碼下載擴展閱讀:
資料庫模型:
對象模型
層次模型(輕量級數據訪問協議)
網狀模型(大型數據儲存)
關系模型
面向對象模型
半結構化模型
平面模型(表格模型,一般在形式上是一個二維數組。如表格模型數據Excel)
架構
資料庫的架構可以大致區分為三個概括層次:內層、概念層和外層。
內層:最接近實際存儲體,亦即有關數據的實際存儲方式。
外層:最接近用戶,即有關個別用戶觀看數據的方式。
概念層:介於兩者之間的間接層。
資料庫索引
主條目:資料庫索引
數據索引的觀念由來已久,像是一本書前面幾頁都有目錄,目錄也算是索引的一種,只是它的分類較廣,例如車牌、身份證字型大小、條碼等,都是一個索引的號碼,當我們看到號碼時,可以從號碼中看出其中的端倪,若是要找的人、車或物品,也只要提供相關的號碼,即可迅速查到正確的人事物。
另外,索引跟欄位有著相應的關系,索引即是由欄位而來,其中欄位有所謂的關鍵欄位(Key Field),該欄位具有唯一性,即其值不可重復,且不可為"空值(null)"。
例如:在合並數據時,索引便是扮演欲附加欄位數據之指向性用途的角色。故此索引為不可重復性且不可為空。
資料庫操作:事務
主條目:資料庫事務
事務(transaction)是用戶定義的一個資料庫操作序列,這些操作要麼全做,要麼全不做,是一個不可分割的工作單位。
事務的並發性是指多個事務的並行操作輪流交叉運行,事務的並發可能會訪問和存儲不正確的數據,破壞交易的隔離性和資料庫的一致性。
網狀數據模型的數據結構 網狀模型 滿足下面兩個條件的基本層次聯系的集合為網狀模型。 1. 允許一個以上的結點無雙親; 2. 一個結點可以有多於一個的雙親。
參考資料來源:網路——資料庫
『肆』 求sql+vs的圖書管理系統,源代碼和資料庫
像這種你直接在網路上搜索圖書管理系統,然後參照別人的圖書管理系統按照自己的需求進行更改就可以了。
『伍』 c語言 圖書管理系統 源代碼
#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| * - * - * -圖書管理系統 * - * - * |\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| * - * - * -圖書管理系統 * - * - * |\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] 退圖書管理系統 |\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| * - * - * -圖書管理系統 * - * - * |\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] 退圖書管理系統 |\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:\\課程設計\\圖書管理系統.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("編號 書名 作者 版社 版間 價格 狀態 借閱者\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("否繼續查詢圖書 ? [(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:\\課程設計\\圖書管理系統.txt","ab+");
do
{
system("cls");
do
{
l=0;
printf("\n");
printf("編號 書名 作者 版社 版間 價格 狀態 借閱者\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("否繼續輸入新圖書信息[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:\\課程設計\\圖書管理系統.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("編號 書名 作者 版社 版間 價格 狀態 借閱者\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("確認刪除圖書信息 [(y)/否(n)]\n\n");
do
{
z=getche();
}while(z!='n'&&z!='y');
if(z=='n')
break;
else
{
fp1=fopen("F:\\課程設計\\圖書管理系統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:\\課程設計\\圖書管理系統.txt","wb");
fp1=fopen("F:\\課程設計\\圖書管理系統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("否繼續刪除圖書信息 [(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:\\課程設計\\圖書管理系統.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("編號 書名 作者 版社 版間 價格 狀態 借閱者\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(" 否繼續修改用戶信息[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:\\課程設計\\圖書管理系統.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("編號 書名 作者 版社 版間 價格 狀態 借閱者\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("請輸入圖書信息並修改庫狀態及借閱者信息");
printf("****************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態 借閱者\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(" 否繼續借書 [(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:\\課程設計\\圖書管理系統.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("編號 書名 作者 版社 版間 價格 狀態 借閱者\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("請輸入圖書信息並修改庫狀態 \n\n");
printf("****************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態 借閱者\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("否繼續書 [(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:\\課程設計\\圖書管理系統.txt","rb");
rewind(fp);
system("cls");
while(1)
{
fread(&n,sizeof(n),1,fp);
if(feof(fp))
break;
else
{
printf("********************************************\n");
printf("編號 書名 作者 版社 版間 價格 狀態 借閱者\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");
}
}
『陸』 C++圖書館管理系統源代碼
/*****************************************************************************************/
#include <iostream>
#include <iomanip>
#include <cstring>
#include <fstream>//輸入/輸出文件流類
using namespace std;
const int Maxr=100;//最多的讀者
const int Maxb=100;//最多的圖書
const int Maxbor=5;//每位讀者最多借五本書
//讀者類,實現對讀者的信息的描述
class Reader
{
private:
int tag; //刪除標記 1:已刪 0:未刪
int no; //讀者編號
char name[10]; //讀者姓名
int borbook[Maxbor];//所借圖書
public:
Reader() {}
char *getname() {return name;} //獲取姓名
int gettag() {return tag;} //獲取刪除標記
int getno() {return no;} //獲取讀者編號
void setname(char na[]) //設置姓名
{
strcpy(name,na);
}
void delbook(){ tag=1; }//設置刪除標記 1:已刪 0:未刪
void addreader(int n,char *na)//增加讀者
{
tag=0;
no=n;
strcpy(name,na);
for(int i=0;i<Maxbor;i++)
borbook[i]=0;
}
void borrowbook(int bookid)//借書操作
{
for(int i=0;i<Maxbor;i++)
{
if (borbook[i]==0)
{
borbook[i]=bookid;
return;
}
}
}
int retbook(int bookid)//還書操作
{
for(int i=0;i<Maxbor;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;i<Maxbor;i++)
if(borbook[i]!=0)
cout << borbook[i] << "|";
cout << "]"<<endl;
}
};
//讀者類庫,實現建立讀者的個人資料
class RDatabase
{
private:
int top; //讀者記錄指針
Reader read[Maxr];//讀者記錄
public:
RDatabase() //構造函數,將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(); //關閉 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();//讀者庫維護
~RDatabase() //析構函數,將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讀 者 維 護\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;
}
}
}
//圖書類,實現對圖書的描述,圖書的編號,書名,借出,還入等
class Book
{
private:
int tag;//刪除標記 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; }//獲取刪除標記
void setname(char na[])//設置書名
{
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;
}
};
//圖書庫類,實現對圖書的維護,查找,刪除等
class BDatabase
{
private:
int top; //圖書記錄指針
Book book[Maxb]; //圖書記錄
public:
BDatabase()//構造函數,將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();//圖書庫維護
void disp()
{
for (int i=0;i<=top;i++)
if (book[i].gettag()==0)
book[i].disp();
}
~BDatabase()//析構函數,將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圖 書 維 護 "<<endl<<endl;
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() 函數的實現,程序的主界面的引導
int main(void)
{
char choice;
int bookid,readerid;
RDatabase ReaderDB;
Reader *r;
BDatabase BookDB;
Book *b;
while(choice!='0')
{
cout <<endl<<endl<<"\t\t\t 圖 書 管 理 系 統\n\n\n";
cout <<"\t\t\t1 借 書\n\n\t\t\t2 還 書 \n\n\t\t\t3 圖 書 維 護\n\n\t\t\t4 讀 者 維 護\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;
}
『柒』 java圖書管理系統代碼
最近好多人要這份源碼啊感覺..有建表腳本..使用mysql資料庫..建表之後就可以直接運行了.
『捌』 求圖書館管理系統C++源代碼
#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.退出系統 ☆"<<endl
<<"\t\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl;
cout<<"請輸入所需要的服務編碼"<<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<<"請依照提示輸入現有的三本圖書的信息:"<<endl;
for(int i=0;i<3;i++)
{
cout<<"書名:"<<endl;
cin>>book[i].name;
cout<<"書號:"<<endl;
cin>>book[i].booknumber;
cout<<"庫存量:"<<endl;
cin>>book[i].num_all;
cout<<"現存量:"<<endl;
cin>>book[i].num_present;
}
}
void New_Book()
{
system("cls");
int j;
char newbook_name[20];
cout<<"請輸入新書書名:"<<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<<"請為此新書編號:"<<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<<"請輸入所要查詢的書號:"<<endl;
cin>>booknumber;
for(k=0;k<1000;k++)
{
if(book[k].booknumber==booknumber)
{
cout<<"書號:"<<booknumber<<endl;
cout<<"書名:"<<book[k].name<<endl;
cout<<"庫存量:"<<book[k].num_all<<endl;
cout<<"現存量:"<<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<<"請依照提示輸入現有的三位讀者的信息:"<<endl;
for(int m=0;m<3;m++)
{
cout<<"姓名:"<<endl;
cin>>reader[m].name;
cout<<"編號:"<<endl;
cin>>reader[m].readernumber;
reader[m].card=0;
}
}
void Borrow_Book()
{
system("cls");
char reader_name[20];
int n,book_number;
cout<<"請輸入讀者姓名:"<<endl;
cin>>reader_name;
for(n=0;n<3;n++)
{
if(strcmp(reader_name,reader[n].name)==0)
{
if(reader[n].card!=0)
{
cout<<"已借書,不能再借,請按任意鍵返回"<<endl;
system("pause");
mainmenu();
}
else
break;
}
}
if(n==3)
{
cout<<"無此讀者!輸入有誤!!按任意鍵返回主菜單"<<endl;
system("pause");
mainmenu();
}
cout<<"請輸入所借圖書書號:"<<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<<"該書已經被借完,請按任意鍵返回"<<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<<"借書成功,請按任意鍵返回"<<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<<"所輸入的書號不存在,請按任意鍵返回主菜單"<<endl;
system("pause");
mainmenu();
}
}void Return_Book()
{
system("cls");
int j;
char reader_name[20];
int book_number;
cout<<"請輸入讀者姓名:"<<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<<"請輸入所還圖書書號:"<<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<<"還書成功,請按任意鍵返回"<<endl;
system("pause");
break;
}
}
}
else
{
cout<<"該讀者未藉此書"<<endl;
system("pause");
}
}
if(j==v)
cout<<"所輸入的書號不存在:"<<endl;
}
}
void Output_Message()
{
system("cls");
int q;
cout<<"以下是圖書信息"<<endl<<endl;
for(q=0;q<v;q++)
{
cout<<"書號:"<<book[q].booknumber<<'\t';
cout<<"書名:"<<book[q].name<<'\t';
cout<<"庫存量:"<<book[q].num_all<<'\t';
cout<<"現存量:"<<book[q].num_present<<endl;
}
cout<<"以下是讀者信息"<<endl<<endl;
for(q=0;q<3;q++)
{
cout<<"姓名:"<<reader[q].name<<'\t'
<<"編號:"<<reader[q].readernumber<<'\t'
<<"所借書號:"<<reader[q].card<<endl;
}
system("pause");
}
void Exit_System()
{
system("cls");
cout<<"歡迎下次使用,謝謝"<<endl;
system("pause");
}
void main()
{
mainmenu();
}
『玖』 請教哪裡有jsp的圖書館管理系統的源碼
項目說明:
用戶名:admin
密碼:admin
運行環境:
硬體平台:
CPU:酷睿II。
內存:1GB以上。
軟體平台:
操作系統:Windows。
資料庫:MySQL。
編程平台:MyEclipse
瀏覽器:IE
Web伺服器:tomcat
解析度:最佳效果1024×768像素。
操作流程
(1)用戶登錄圖書館管理系統後,可看到圖書借閱排行榜,通過排行榜可以看出借閱圖書的名稱、圖書類型、借閱次數等相關信息。
(2)單擊「系統設置」/「圖書館信息」命令,對圖書館信息進行設置操作。
(3)單擊「系統設置」/「管理員設置」命令,對管理員信息進行添加、許可權設置、查詢及刪除操作。
(4)單擊「系統設置」/「參數設置」命令,對辦證費用及有效期限信息進行添加操作。
(5)單擊「系統設置」/「書架設置」命令,對書架信息進行添加、修改及刪除操作。
(6)單擊「讀者管理」/「讀者類型管理」命令,對讀者類型信息進行添加、修改及刪除操作。
(7)單擊「讀者管理」/「讀者檔案管理」命令,對讀者信息進行添加、修改及刪除操作。
(8)單擊「圖書管理」/「圖書類型設置」命令,對圖書類型信息進行添加、修改及刪除操作。
(9)單擊「圖書管理」/「圖書檔案管理」命令,對圖書信息進行添加、修改及刪除操作。
(10)單擊「圖書借還」/「圖書借閱」命令,對圖書借閱信息添加操作。
(11)單擊「圖書借還」/「圖書續借」命令,對圖書續借信息進行添加操作。
(12)單擊「圖書借還」/「圖書歸還」命令,對圖書歸還信息進行添加操作。
(13)單擊「系統查詢」/「圖書檔案查詢」命令,對圖書檔案信息進行查詢操作。
(14)單擊「系統查詢」/「圖書借閱查詢」命令,對借閱的圖書信息進行查詢操作。
(15)單擊「系統查詢」/「借閱到期提醒」命令,對借閱到期提醒信息進行查詢操作。
(16)單擊「更改口令」按鈕,對當前的用戶密碼進行修改操作。
(17)單擊「退出系統」按鈕,退出當前操作系統。