❶ 課程設計:圖書管理系統 要求:建立圖書資料文檔,要求具有插入,更新,刪除,查詢等功能,使用菜單顯示
的發展背景
資料庫技術和互聯網的飛速發展,因此,他們已成為現代信息技術的重要組成部分,是計算機信息系統和計算機應用的基礎與核心。的數據對於任何一個企業的重要資產,以及如何有效地利用這些數據為企業的發展發揮著極其重要的作用。的快速發展,中國的市場經濟,並在持續改善人們的生活水平,圖書館藏書的樹木逐漸增加,這也挑戰的圖書管理技術,在人工管理風格不再適合在環境現在,取而代之的是一個國家的最先進的圖書館管理系統,使用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館員作為一名圖書管理員,他們庫管理系統要求:
方便的登記簿條目,取消舊的書。
能夠方便地新生登記或者注銷畢業的學生信息(基本信息,借用信息)。
3。釋放,如各高校學生借閱圖書擴展的情況下,博物館收藏的情況下,在任何時間和其他高校學生的信息庫中的信息可隨時了解。的
圖書管理員的工作流程圖如下:
2-2館員工作流程圖
3。
說明系統功能分析系統開發的總體任務的基礎上完成的。該系統的主要功能是完成第5部分:
(1)基本入門,,刪除等基本操作。
1。的書分類標准,分類信息的輸入,包括的類別編號,類別名稱,關鍵字,注釋,信息等。
2。類的書籍信息的查詢,,包括的類別編號,類別名稱,關鍵字,注釋,信息等。
3。輸入圖書信息,書號,書名,圖書類別,作者姓名,發布者的名稱,出版日期,書頁,關鍵詞,登記日期,備注信息等。
(2)申請借書證模塊。
1。新生申請借書證。
2。辦理借書證丟失。
(3)庫函數。
1。圖書館信息輸入,包括#庫,讀多讀者的名字,書號,書名,借書日期,備注。
2。圖書館信息查詢,,包括庫#讀卡器ID讀卡器名稱,書號,書名,圖書館日期,票據,信息等。
(4)還書。
1。圖書信息的輸入,數字閱讀器ID讀碼器名稱,書號,這本書的名字,庫日期,包括書籍,書日期備注。
2。查詢和信息的書籍,其中包括#的書,讀多讀者的名稱,書號,書名,借書日期,日期的書籍,筆記,資料。
(5)可以方便地查詢書籍。自動延長給定的消息
設計
概念模型ER圖如下:
(1)的讀者信息類實體ER圖
4-1讀者實體ER圖
(2)類的書籍實體ER圖
4-2類的書籍實體ER圖
(3)庫實體ER圖:
4-3圖書實體ER圖
(4)投訴管理實體ER圖:
4-4投訴管理實體ER圖
4-5實體之間的關系ER圖
BR />
借用關系(讀者,管理員,圖書三元關系)
圖4-6 CDM圖
。邏輯模型設計和優化
「關系模型」的理論「ER模型理論的完成轉換,ER模型到關系模型的轉換,你可以得到以下關系模式:<BR
屬性/>的借貸關系:工作數量,讀者學號,ISBN,是否續借圖書館日期截止日期備注。
主鍵:工號,讀者學號,ISBN
管理員_書關系
屬性:工號,ISBN,添加時間,無論在博物館
主鍵:作業號,ISBN
經理_師生關系
設計的概念屬性:工號,讀者學號,確認後也
主鍵:工號,讀者學號模型得到PowerDesigner的CDM圖,轉換成相應的PDM圖:
BR />
PDM圖
5.1圖書信息表
列名數據類型為空
ISBN數據類型為varchar
標題數據類型為varchar否否
的數據類型為varchar
出版varchar是
出版日期日期時間數據類型為varchar
5.2讀者信息表
出的數據類型的名稱可以空
讀者學習號數據類型為varchar
讀者姓名VARCHAR
讀者性別數據類型為varchar
電話數據類型為varchar
教師VARCHAR BR />
5.3管理員信息表
列名數據類型的可行性空
號的工作VARCHAR是否
名稱為varchar
性別數據類型為varchar無
手機數據類型為varchar
首頁地址數據類型為varchar
表5.4借貸
難道是空
號字元的數據類型的列名不
ISBN字元
讀者了解數字字元無
借日期日期時間
日期的日期時間沒有
是否續約字元是否
5.5管理員_書 BR />列名
工號為空數據類型char無
ISBN字元無
添加時間datatime是
廳字元是否是
5.6管理員_學生
列名數據類型可能會清空
號字元
否
讀者學習也確認字元沒有
物理設計和數字字元實施
\實施的「資料庫」,安排的物理文件並建立索引的索引
6.1為了提高搜索的速度表中的元組從理論「關系模式」,實現實際執行的關鍵代碼索引表索引表項,應根據如下:
(1)讀者(讀者學習數)
(2)圖書信息( ISBN)
(3)管理信息(工號)
(4)貸款(工號,讀者學號,ISBN)
(5)的管理員_書(工號,ISBN)
(6)管理員_學生(工號,讀者的學生人數)
6.2 SQL語句
如下:
/ * ======== ================================================== ==== * /
/ *表:圖書信息* /
/ * ========================== ==================================== * /
創建表的圖書信息</(
ISBN CHAR(20)不為空,
書名CHAR(20),
CHAR(10),
出版CHAR(15),
出版日期CHAR(30),
介紹CHAR(160),
圖書信息的主要約束PK_鍵(ISBN)
)
/ * = ================================================== =========== * /
/ *索引:圖書信息_PK * /
/ * ================== ============================================ * /
創建唯一索引圖書信息_PK上的圖書信息(
ISBN ASC
)
/ * ============ ================================================== * /
/ *表:投訴* /
/ * =============================== =============================== * /
創建表的投訴
(
工作號CHAR(10)不為空,
學生ID CHAR(10)不為空,
一個字母的意見CHAR(100),
投訴日CHAR(30),在
受訴??日期CHAR(30),
約束PK_投訴的主要關鍵(工號,學號)
)
/ *() ================================================== ====================================== * /
/ *指數:投訴_PK * /
/ * ========================================== ==================== * /
創建唯一索引的投訴(投訴_PK
ASC,號
學生ID ASC
)
/ * ============================== ================================ * /
/ *指數:投訴_FK * /
/ * ================================================ ============== * /
創建索引的投訴(投訴_FK
工號ASC
)
/ * ================================================ ============== * /
/ *指數:投訴2_FK * /
/ * ================ ============================================== * / />創建索引投訴(投訴2_FK的,
)學生ID ASC
/ * ================= ============================================== * / /> / *表:注冊* /
/ * =================================== =========================== * /
創建表登記
(
工作數字元( 10)
學號CHAR(10)不為空,
ISBN CHAR(20)不為空,
證書的日期CHAR(30)不為空,不為空
還預訂日期CHAR(30)NOT NULL,
非法狀態CHAR(160)
累計庫CHAR(160)
備注CHAR(160),
約束PK_注冊主鍵(工號,學號,ISBN)
)
/ * ========================= ===================================== * /
/ *指數:注冊_ PK * /
/ * ========================================== ==================== * /
注冊_PK登記(
工作號ASC
學生ID ASC創建唯一索引,
ISBN ASC
)
/ * ============================ ================================== * /
/ *指數:注冊_FK * / /> / * ============================================== ================ * /
創建索引注冊_FK注冊(
工號ASC
);
>
/ * =========================================== =================== * /
/ *指數:注冊2_FK * /
/ * =========== ================================================== * /
創建索引注冊2_FK登記(
學生ID ASC
)
/ * ========= ================================================== ==== * /
/ *指數:注冊3_FK * /
/ * ========================== ==================================== * /
創建索引注冊(注冊3_FK BR /> ISBN ASC
);
/ * ============================= ================================= * /
/ *表:管理員信息* / / * =============================================== =====名稱========== * /
創建表的管理員信息
(
作業號CHAR(10)不為空,
CHAR( 10),
色情電話服務CHAR(5),
CHAR(15),
所在院系CHAR(25),
約束PK_管理員信息的主鍵(作業號)
);
/ * ================================== ============================ * /
/ *指數:管理員信息_PK * /
/ * = ================================================== =========== * /
創建唯一索引管理員信息_PK管理員信息(
號ASC
)
/ * ================================================== ============ * /
/ *表:讀者信息* /
/ * ================== ============================================ * /
創建表的讀者信息
(
號院CHAR(10)不為空,
名char(10),
性別CHAR(5),
>手機CHAR(15),
其中,院系CHAR(25),
約束PK_讀者信息的主鍵(學號)
)
/ * = ================================================== =========== * /
/ *指數:讀者信息_PK * /
/ * ================== ============================================ * /
創建唯一索引,讀者信息_PK的讀者(
學生ID ASC
)
7。 7.1管理員操作
主要數據操作語句
(1)注冊(登記)INSERT INTO
VALUES管理員(工號,姓名,性別,電話,家庭住址,備注)( ##姓名#性別#手機##注意家庭地址)
說明:管理員,以獲得一個獨特的工號,注冊操作後,查詢和數據可以被收集的工作號碼。
(2)取消(取消注冊中)
DELETE
從供應商
WHERE(工號=#工號);
(3)個人信息(更新)
更新管理員
設置(數量=#工號,姓名=#姓名,性別=#性別,電話=#電話,家庭地址=#家庭地址)
WHERE(作業數= #工號)
(4)增加的書籍(addbooks)
INSERT INTO圖書的ISBN,書名,作者,出版者,出版日期,簡介,
VALUES(#ISBN, ,#,##標題按出版日期#關於#注)INSERT INTO
管理員_書表(工號,ISBN,添加時間,無論是在大廳)
VALUES(#作業號#ISBN#添加時間,到#
刪除圖書
WHERE(ISBN#ISBN)
刪除的書籍(deletebooks)無論是在霍爾)
(5)(6)書(updatebooks)
:UPDATE書(標題=#標題#按=#出版社出版日期=
出版日期資料=#簡介)
WHERE(ISBN =#ISBN)
(1)注冊(登記)
INSERT INTO讀者(讀者學習數字,讀者的姓名,讀者性別聯系電話,所在之處,<BR / 7.2讀者有效日期,到期日期,非法狀態,累計圖書館,備注)
VALUES(#讀者的學生人數,#讀者姓名,#的讀者性別,#聯系電話系
生效日期,###,其中非法狀態和到期日,#累計庫,#備注)
說明:注冊操作後,讀者得到一個唯一的ID,這個ID來查詢和自己的信息。
(2)取消(注銷)
DELETE讀者
讀者學生ID =#讀者的學生人數(WHERE)
(3)個人信息(更新) UPDATE讀者集(讀者姓名=#姓名的讀者,聯系電話=#電話
地方部門=#,其中部的生效日期=#有效日期,到期日期=#到期日, />「非法狀態」=#非法狀態,累計圖書館=#累計圖書館備注=#備注)
WHERE(讀者學習數=#讀者的學生人數)
(4)查詢(選擇)
SELECT ISBN標題,作者,出版商
書
WHERE國際標准書號ISBN或標題=#標題
操作
7.3管理員的借貸關系(1)讀者的信息(插入)插入
INSERT INTO借(工作數量讀者的學生人數,ISBN,是否續借圖書館日期書籍,筆記)
VALUES(工號,#讀者學生ID# ISBN編號是否續約,#庫日期
書日期注)
(2)不斷更新的信息(更新)
①更新借給信息
UPDATE借
SET (庫日期=#庫日書日期=庫日期+30是否續約= 0)
WHERE(工號=#號和讀者學習數=#讀者的學生證和ISBN =#ISBN) BR /> UPDATE管理員_書籍
SET(無論是在館= 0)
WHERE(ISBN =#ISBN)
UPDATA學生
的SET(累計庫=累計庫+1)
WHERE(讀者學生ID =#讀者的學生人數)
的的INSERT INTO管理員_學生(工號,讀者學會數量,還ISBN確認),
VALUES(#在職號,學生#讀者,「0」,#ISBN))
該②更新更新信息
UPDATE借
SET(是否續期=#是否續約)
(工號=工作數量和讀者學習數=#讀者的學生證和ISBN =#ISBN)
(3)更新還書
UPDATE,管理員_書
SET(無論是在博物館= 1),
WHERE(ISBN =#ISBN)
UPDATE管理員_學生
的SET(確認= 1「)
WHERE(編號#工作數量和讀者的學生ID =#讀者學習數字和ISBN =#ISBN)
❷ 求用c語言編的小型圖書館管理系統(鏈表的插入,排序,查詢,刪除)
你這個問題其實很簡單,就是鏈表的全操作,少了一個排序而已,這是我學數據結構時寫的程序,你參考一下。
#include<stdio.h>
#include<malloc.h>
#define null 0
typedef struct node
{
int data;
struct node *next;
}linklist;
linklist *creat(linklist *p)
{
linklist *p1,*p2;int length,i,m;
scanf("%d",&length);
for(i=1;i<=length;i++)
{
p1=(linklist*)malloc(sizeof(linklist));
scanf("%d",&m);
p1->data=m;
if(i==1)p=p1;
else p2->next=p1;
p2=p1;
}
p1->next=null;
return p;
}
void print(linklist *p)
{
while(p!=null)
{
printf("%d ",p->data);
p=p->next;
}
}
linklist *insert(linklist *p,int m)
{
int i;linklist *head,*r,*q;
r=(linklist*)malloc(sizeof(linklist));
scanf("%d",&r->data);
head=p;
for(i=1;i<m-1;i++)
p=p->next;
q=p->next;
p->next=r;
r->next=q;
return head;
}
void del(linklist *p,int n)
{
int i;linklist *q,*r;
for(i=1;i<n-1;i++)
p=p->next;
q=p->next;
q=q->next;
p->next=q;
}
void main()
{
int m,n;
linklist *head=null;
head=creat(head);
print(head);
printf("\n請輸入插入元素的位置\n");
scanf("%d",&m);
head=insert(head,m);
print(head);
printf("\n請輸入要刪除元素的位置\n");
scanf("%d",&n);
del(head,n);
print(head);
}
你可以再加入一個排序函數
選擇排序如下:
void paixu()
{
int a[max+1];int i,j,k,t;
for(i=1;i<=max;i++)
scanf("%d",&a[i]);
for(i=1;i<max;i++)//要找出max-1個大值
{
k=i;//標記
for(j=i+1;j<=max;j++)
if(a[j]<a[k])k=j;//記下較大值的位置,最後得到最大值的位置
if(k!=i)//表示第一個不是最大值
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
for(i=1;i<=max;i++)
printf("%d ",a[i]);
}
這里的啊a{i}要換成結點結構體里德成員,也就是按照這個成員的值來排序,例如書號。
直接插入排序:
void insert(int a[])//從小到大排序
{
int i,j;
for(i=2;i<=max;i++)
if(a[i]<a[i-1])
{
a[0]=a[i];
a[i]=a[i-1];
for(j=i-2;a[0]<a[j];j--)
a[j+1]=a[j];
a[j+1]=a[0];//仔細分析排序過程
}
}
要改動的和上一個一樣。
如果你想將結果寫到文件,下次再運行程序時上次的輸入還存在,這個程序我也寫過,不過我的是學生成績管理系統,要的話發消息給我。
❸ 為什麼用戶、部門及角色不能刪除
用戶、部門及角色是系統的基礎信息在OA中是不能刪除的,原因是因為每個模塊中都會調用到用戶、部門等信息,如欄目發表人,發表部門等,如果把這些基礎信息刪除了那模塊中的數據就會因為數據不全而導致頁面報錯。
因此用戶、部門不能刪除的,只能失效,系統管理員可以到用戶、部門的編輯頁把狀態改成無效。無效狀態的用戶和部門只有系統管理員在系統管理界面才可以看到,普通用戶在選人樹中是看不到無效的部門及用戶的。
如果在系統初始化的時候設置了一些數據確實要刪除掉某些用戶或部門可以直接到資料庫中操作。用戶表為system_users,部門表為system_depts,角色表為system_roles。
❹ 圖書館管理系統
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
struct books_list
{
char author[20]; /*作者名*/
char bookname[20]; /*書名*/
char publisher[20]; /*出版單位*/
char pbtime[15]; /*出版時間*/
char loginnum[10]; /*登陸號*/
float price; /*價格*/
char classfy[10]; /*分類號*/
struct books_list * next; /*鏈表的指針域*/
};
struct books_list * Create_Books_Doc(); /*新建鏈表*/
void InsertDoc(struct books_list * head); /*插入*/
void DeleteDoc(struct books_list * head , int num);/*刪除*/
void Print_Book_Doc(struct books_list * head);/*瀏覽*/
void search_book(struct books_list * head); /*查詢*/
void info_change(struct books_list * head);/*修改*/
void save(struct books_list * head);/*保存數據至文件*/
/*新建鏈表頭節點*/
struct books_list * Create_Books_Doc()
{
struct books_list * head;
head=(struct books_list *)malloc(sizeof(struct books_list)); /*分配頭節點空間*/
head->next=NULL; /*頭節點指針域初始化,定為空*/
return head;
}
/*保存數據至文件*/
void save(struct books_list * head)
{
struct books_list *p;
FILE *fp;
p=head;
fp=fopen("data.txt","w+"); /*以寫方式新建並打開 data.txt文件*/
fprintf(fp,"┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓\n"); /*向文件輸出表格*/
fprintf(fp,"┃登錄號┃ 書 名 ┃ 作 者┃ 出版單位 ┃ 出版時間 ┃分類號┃ 價格 ┃\n");
fprintf(fp,"┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫\n");
/*指針從頭節點開始移動,遍歷至尾結點,依次輸出圖書信息*/
while(p->next!= NULL)
{
p=p->next;
fprintf(fp,"┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃\n",p->loginnum,p->bookname,p->author,p->publisher,p->pbtime,p->classfy,p->price);
}
fprintf(fp,"┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛\n");
fclose(fp);
printf(" 已將圖書數據保存到 data.txt 文件\n");
}
/*插入*/
void InsertDoc(struct books_list *head)
{
/*定義結構體指針變數 s指向開辟的新結點首地址 p為中間變數*/
struct books_list *s, *p;
char flag='Y'; /*定義flag,方便用戶選擇重復輸入*/
p=head;
/*遍歷到尾結點,p指向尾結點*/
while(p->next!= NULL)
{
p=p->next;
}
/*開辟新空間,存入數據,添加進鏈表*/
while(flag=='Y'||flag=='y')
{
s=(struct books_list *)malloc(sizeof(struct books_list));
printf("\n 請輸入圖書登陸號:");
fflush(stdin);
scanf("%s",s->loginnum);
printf("\n 請輸入圖書書名:");
fflush(stdin);
scanf("%s",s->bookname);
printf("\n 請輸入圖書作者名:");
fflush(stdin);
scanf("%s",s->author);
printf("\n 請輸入圖書出版社:");
fflush(stdin);
scanf("%s",s->publisher);
printf("\n 請輸入圖書出版時間:");
fflush(stdin);
scanf("%s",s->pbtime);
printf("\n 請輸入圖書分類號:");
fflush(stdin);
scanf("%s",s->classfy);
printf("\n 請輸入圖書價格:");
fflush(stdin);
scanf("%f",&s->price);
printf("\n");
p->next=s; /*將新增加的節點添加進鏈表*/
p=s; /*p指向尾節點,向後移*/
s->next=NULL;
printf(" ━━━━ 添加成功!━━━━");
printf("\n 繼續添加?(Y/N):");
fflush(stdin);
scanf("%c",&flag);
printf("\n");
if(flag=='N'||flag=='n')
{break;}
else if(flag=='Y'||flag=='y')
{continue;}
}
save(head); /*保存數據至文件*/
return;
}
/*查詢操作*/
void search_book(struct books_list *head)
{
struct books_list * p;
char temp[20];
p=head;
if(head==NULL || head->next==NULL) /*判斷資料庫是否為空*/
{
printf(" ━━━━ 圖書庫為空!━━━━\n");
}
else
{
printf("請輸入您要查找的書名: ");
fflush(stdin);
scanf("%s",temp);
/*指針從頭節點開始移動,遍歷至尾結點,查找書目信息*/
while(p->next!= NULL)
{
p=p->next;
if(strcmp(p->bookname,temp)==0)
{
printf("\n圖書已找到!\n");
printf("\n");
printf("登錄號: %s\t\n",p->loginnum);
printf("書名: %s\t\n",p->bookname);
printf("作者名: %s\t\n",p->author);
printf("出版單位: %s\t\n",p->publisher);
printf("出版時間: %s\t\n",p->pbtime);
printf("分類號: %s\t\n",p->classfy);
printf("價格: %.2f\t\n",p->price);
}
if(p->next==NULL)
{
printf("\n查詢完畢!\n");
}
}
}
return;
}
/*瀏覽操作*/
void Print_Book_Doc(struct books_list * head)
{
struct books_list * p;
if(head==NULL || head->next==NULL) /*判斷資料庫是否為空*/
{
printf("\n ━━━━ 沒有圖書記錄! ━━━━\n\n");
return;
}
p=head;
printf("┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓\n");
printf("┃登錄號┃ 書 名 ┃ 作 者┃ 出版單位 ┃ 出版時間 ┃分類號┃ 價格 ┃\n");
printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫\n");
/*指針從頭節點開始移動,遍歷至尾結點,依次輸出圖書信息*/
while(p->next!= NULL)
{
p=p->next;
printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃\n",p->loginnum,p->bookname,p->author,p->publisher,p->pbtime,p->classfy,p->price); /*循環輸出表格*/
}
printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛\n");
printf("\n");
}
/*修改操作*/
void info_change(struct books_list * head)
{
struct books_list * p;
int panan=0; /*此變數用於判斷是否找到書目*/
char temp[20];
p=head;
printf("請輸入要修改的書名:");
scanf("%s",temp);
while(p->next!= NULL)
{
p=p->next;
if(strcmp(p->bookname,temp)==0)
{
printf("\n 請輸入圖書登陸卡號:");
fflush(stdin);
scanf("%s",p->loginnum);
printf("\n 請輸入圖書書名:");
fflush(stdin);
scanf("%s",p->bookname);
printf("\n 請輸入圖書作者名:");
fflush(stdin);
scanf("%s",p->author);
printf("\n 請輸入圖書出版社:");
fflush(stdin);
scanf("%s",p->publisher);
printf("\n 請輸入圖書出版時間:");
fflush(stdin);
scanf("%s",p->pbtime);
printf("\n 請輸入圖書分類號:");
fflush(stdin);
scanf("%s",p->classfy);
printf("\n 請輸入圖書價格:");
fflush(stdin);
scanf("%f",&p->price);
printf("\n");
panan=1;
}
}
if(panan==0)
{
printf("\n ━━━━ 沒有圖書記錄! ━━━━\n\n");
}
return;
}
/*刪除操作*/
void DeleteDoc(struct books_list * head)
{
struct books_list *s,*p; /*s為中間變數,p為遍歷時使用的指針*/
char temp[20];
int panan; /*此變數用於判斷是否找到了書目*/
panan=0;
p=s=head;
printf(" [請輸入您要刪除的書名]:");
scanf("%s",temp);
/*遍歷到尾結點*/
while(p!= NULL)
{
if(strcmp(p->bookname,temp)==0)
{
panan++;
break;
}
p=p->next;
}
if(panan==1)
{
for(;s->next!=p;) /*找到所需刪除卡號結點的上一個結點*/
{
s=s->next;
}
s->next=p->next; /*將後一節點地址賦值給前一節點的指針域*/
free(p);
printf("\n ━━━━ 刪除成功! ━━━━\n");
}
else /*未找到相應書目*/
{
printf(" 您輸入的書目不存在,請確認後輸入!\n");
}
return;
}
int main(void)
{
struct books_list * head;
char choice;
head=NULL;
for(;;) /*實現反復輸入選擇*/
{
printf(" ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n");
printf(" ┃ ┃ socat 圖書管理系統 ┃ ┃\n");
printf(" ┃ ┗━━━━━━━━━━━━━━━━━━━┛ ┃\n");
printf(" ┃ ●[1]圖書信息錄入 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ ●[2]圖書信息瀏覽 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ ●[3]圖書信息查詢 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ ●[4]圖書信息修改 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ ●[5]圖書信息刪除 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ ●[6]退出系統 ┃\n");
printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━┛\n");
printf(" 請選擇:");
fflush(stdin);
scanf("%c",&choice);
if(choice=='1')
{
if(head==NULL)
{
head=Create_Books_Doc();
}
InsertDoc(head);
}
else if(choice=='2')
{
Print_Book_Doc(head);
}
else if(choice=='3')
{
search_book(head);
}
else if(choice=='4')
{
info_change(head);
}
else if(choice=='5')
{
DeleteDoc(head);
}
else if(choice=='6')
{
printf("\n");
printf(" ━━━━━━━━ 感謝使用圖書管理系統 ━━━━━━━━\n");
break;
}
else
{
printf(" ━━━━ 輸入錯誤,請重新輸入!━━━━");
break;
}
}
return 0;
}
❺ 三聯圖書館管理系統怎麼刪除輸入錯誤的圖書
這樣的問題需要查看管理系統的操作說明書,或者自行咨詢系統開發商的客服才能知道。
❻ 圖書館管理系統的功能模塊
主要用於查詢圖書,其中直接查詢包括按圖書編號直接查詢,按書名查詢,按作者查詢,按出版社查詢(可選模糊查詢)。多條件查詢可以
按讀者的要求選取所需要的圖書直接查詢和模糊查詢,多條件查詢)。 分別是由圖書管理員管理圖書(包括圖書信息的修改,新圖書的增加,舊圖書的刪除),超級管理員管理圖書分類,管理信息、,管理管理員登錄帳戶,管理逾期未還圖。