欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      圖書管理系統(tǒng)與習(xí)題作業(yè)講解要點(diǎn)

      時間:2019-05-14 18:45:23下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《圖書管理系統(tǒng)與習(xí)題作業(yè)講解要點(diǎn)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《圖書管理系統(tǒng)與習(xí)題作業(yè)講解要點(diǎn)》。

      第一篇:圖書管理系統(tǒng)與習(xí)題作業(yè)講解要點(diǎn)

      圖書管理系統(tǒng)功能性需求說明如下:

      ? 圖書管理系統(tǒng)能夠為一定數(shù)量的借閱者提供服務(wù)。每個借閱者能夠擁有唯一標(biāo)識其存在的編號。圖書館向每一個借閱者發(fā)放圖書證,其中包含每一個借閱者的編號和個人信息。提供的服務(wù)包括:提供查詢圖書信息、查詢個人信息服務(wù)和預(yù)定圖書服務(wù)等。

      ? 當(dāng)借閱者需要借閱圖書、歸還書籍時需要通過圖書管理員進(jìn)行,即借閱者不直接與系統(tǒng)交互,而是通過圖書管理員充當(dāng)借閱者的代理和系統(tǒng)交互。? 系統(tǒng)管理員主要負(fù)責(zé)系統(tǒng)的管理維護(hù)工作,包括對圖書、數(shù)目、借閱者的添加、刪除和修改。并且能夠查詢借閱者、圖書和圖書管理員的信息。? 可以通過圖書的名稱或圖書的ISBN/ISSN號對圖書進(jìn)行查找。

      回答下面問題:

      1)該系統(tǒng)中有哪些參與者?

      2)確定該系統(tǒng)中的類,找出類之間的關(guān)系并畫出類圖 3)畫出語境“借閱者預(yù)定圖書”的時序圖

      2.(1)借閱者

      圖書管理員

      系統(tǒng)管理員

      (2)用戶類、用戶角色類、圖書類、預(yù)定類、借閱類、書目類

      (3)時序圖

      網(wǎng)絡(luò)的普及帶給了人們更多的學(xué)習(xí)途徑,隨之而來的管理遠(yuǎn)程網(wǎng)絡(luò)教學(xué)的“遠(yuǎn)程網(wǎng)絡(luò)教學(xué)系統(tǒng)”誕生了。

      “遠(yuǎn)程網(wǎng)絡(luò)教學(xué)系統(tǒng)”的功能需求如下:

      ? 學(xué)生登錄網(wǎng)站后,可以瀏覽課件、查找課件、下載課件、觀看教學(xué)視頻。? 教師登錄網(wǎng)站后,可以上傳課件、上傳教學(xué)視頻、發(fā)布教學(xué)心得、查看教學(xué)心得、修改教學(xué)心得。

      ? 系統(tǒng)管理員負(fù)責(zé)對網(wǎng)站頁面的維護(hù)、審核不合法課件和不合法教學(xué)信息、批準(zhǔn)用戶注冊。

      1)學(xué)生需要登錄“遠(yuǎn)程網(wǎng)絡(luò)教學(xué)系統(tǒng)”后才能正常使用該系統(tǒng)的所有功能。如果忘記密碼,可與通過“找回密碼”功能恢復(fù)密碼。請畫出學(xué)生參與者的用例圖。

      2)教師如果忘記密碼,可以通過“找回密碼”功能找回密碼。請畫出教師參與者的用例圖。

      (1)用例圖一

      (2)用例圖二

      運(yùn)用剛才介紹有關(guān)活動圖的相關(guān)知識,結(jié)合以往圖書館管理系統(tǒng)還書用例建模該用例的活動圖。綜合運(yùn)用所學(xué)到的標(biāo)記符,包括活動、轉(zhuǎn)移、控制點(diǎn)、泳道、分叉和匯合等。并使用建?;顒訄D的五個步驟,逐步為用例建?;顒訄D。

      >lude><>DisplayLoansLibrarian 圖

      還書用例

      用戶系統(tǒng)輸入圖書信息查找該圖書的借閱關(guān)系查看是否有過期的借閱關(guān)系顯示過期信息[True][False]確定歸還刪除該圖書的借閱關(guān)系顯示借閱關(guān)系 如今汽車租賃行業(yè)比較好,請聯(lián)系實(shí)際,繪制對應(yīng)的汽車租賃構(gòu)件圖。

      現(xiàn)有一個產(chǎn)品銷售系統(tǒng),其總體需求如下:

      系統(tǒng)允許管理員生成存貨清單報告。管理員可以更新存貨清單。銷售員記錄正常的銷售情況。

      交易可以使用信用卡或支標(biāo),系統(tǒng)需要對其進(jìn)行驗證。每次交易后都需要更新存貨清單。分析其總體需求,并繪制出其用例圖?

      生成存貨清單報告記錄銷售情況更新存貨清單交易管理員驗證賬號銷售員一臺自動售貨機(jī)能提供6種不同的飲料,售貨機(jī)上有6個不同的按鈕,分別對應(yīng)這6種不同的飲料,顧客通過這些按鈕選擇不同的飲料。售貨機(jī)有一個硬幣槽和找零槽,分別用來收錢和找錢。現(xiàn)在為這個系統(tǒng)設(shè)計一個用例圖?

      選擇飲料投幣顧客找零 5 繪制用例圖,為如下的每個事件顯示酒店管理系統(tǒng)中的用例,并描述各用例的基本操作流程。

      ? 客人預(yù)訂房間。? 客人登記。

      ? 客人的承擔(dān)服務(wù)費(fèi)用。? 生成最終賬單 ? 客人結(jié)賬 ? 客人支付賬單

      預(yù)訂房間登記計算費(fèi)用結(jié)賬服務(wù)員打印賬單

      創(chuàng)建一個類圖。下面給出創(chuàng)建類圖所需的信息。

      ? 學(xué)生(student)可以是在校生(undergraduate)或者畢業(yè)生(graduate)。? 在校生可以是助教(tutor)。? 一名助教指導(dǎo)一名學(xué)生。

      ? 教師和教授屬于不同級別的教員。

      ? 一名教師助理可以協(xié)助一名教師和一名教授,一名教師只能有一名教師助理,一名教授可以有5名教師助理。? 教師助理是畢業(yè)生。創(chuàng)建類圖的步驟如下:

      (1)將學(xué)生可以是在校生或者畢業(yè)生建模為3個類:Student、UnderGraduate和Graduate,其中,后兩個類是Student類的子類。

      (2)為“在校生可以是助教的一種”建立模型,即建立UnderGraduate類的另一個超類Tutor。

      (3)通過創(chuàng)建從Tutor到Student的關(guān)聯(lián)(名為tutors),建立一名助教指導(dǎo)一名學(xué)生的模型。

      (4)將“教師和教授屬于不同級別的教員”建模為3個類:Instructor、Teacher和Professor,其中,后兩個類是Instructor類的子類。

      (5)建立“一名教師助理可以協(xié)助一名教師和一名教授,一名教師只能有一名教師助理,一名教授可以有5名教師助理”的模型。創(chuàng)建TeacherAssistant類,并使其與Teacher類和Professor類都建立關(guān)聯(lián)。

      6(6)將TeacherAssistant類建模為Graduate類的派生類。

      InstructorTutor11StudentTeacherProfessor11UnderGraduateGraduateTeacherAssistantn1

      根據(jù)用例圖和系統(tǒng)需求描述創(chuàng)建類圖。本練習(xí)將根據(jù)如下所示的系統(tǒng)需求和如圖2所示的用例圖建模一個類圖。

      系統(tǒng)需求描述:

      (1)系統(tǒng)允許管理員通過從磁盤加載存貨數(shù)據(jù)來運(yùn)行存貨清單報告。

      (2)管理員通過從磁盤加載存貨數(shù)據(jù)、向磁盤保存存貨數(shù)據(jù)來更新存貨清單。(3)售貨員做銷售記錄。

      (4)電話操作員是處理電話訂單的特殊售貨員。(5)任何類型的銷售都需要更新存貨清單。

      (6)如果交易使用了信用卡,那么售貨員需要核實(shí)信用卡。(7)如果交易使用了支票,那么售貨員需要核實(shí)支票。

      <>run inventory reportsload inventory data<>Administratorupdate inventorysave inventory data<><><>sale<>verify checkverify credit cardphone orderwalk-in saletelephone operatorsales clerk

      用例圖示例

      創(chuàng)建類圖的步驟如下所示:

      (1)確定可以在用例圖中找到的類。(2)建模類與類之間的關(guān)系。

      (3)為類圖中的關(guān)聯(lián)關(guān)系添加合適的角色名。(4)為已被封裝到類中的獨(dú)立功能建模類。(5)為類圖中的類添加必要的特性和操作。

      credit card+Verify()0..*nsale+Update()check+verify()0..*n1n+Load()+Save()+Update()inventory

      根據(jù)還書的用例圖,其對應(yīng)的活動圖。

      >lude>cni<>DisplayLoansLibrarian 還書用例

      用戶系統(tǒng)輸入圖書信息查找該圖書的借閱關(guān)系查看是否有過期的借閱關(guān)系顯示過期信息[True][False]確定歸還刪除該圖書的借閱關(guān)系顯示借閱關(guān)系

      下面列出了打印文件時的工作流:

      ? 用戶通過計算機(jī)指定要打印的文件。

      ? 打印服務(wù)器根據(jù)打印機(jī)是否空閑,操作打印機(jī)打印文件。? 如果打印機(jī)空閑,則打印機(jī)打印文件;

      ? 如果打印機(jī)忙,則將打印消息存放在隊列中等待。

      經(jīng)分析人員分析確認(rèn),該系統(tǒng)共有四個對象Computer、PrintServer、Printer和Queue。請給出對應(yīng)用于該工作流的順序圖。

      Computer打印文件請求打印文件PrintServerPrinterQueue判斷隊列是否為空添加到隊列打印文件3.下面是一個客戶在ATM機(jī)上取款工作流。

      ? 客戶選擇取款功能選項。? 系統(tǒng)提示插入IC卡。

      ? 客戶插入IC卡后,系統(tǒng)提示用戶輸入密碼。? 客戶輸入自己的密碼。

      ? 系統(tǒng)檢查用戶密碼是否正確。

      ? 如果密碼正確;則系統(tǒng)顯示用戶賬戶上的剩余金額,并提示用戶輸入想要提取的金額。

      ? 用戶輸入提取金額后,系統(tǒng)檢查輸入數(shù)據(jù)的合法性。

      ? 在獲取用戶輸入的正確金額后,系統(tǒng)開始一個事條處理,減少賬戶上的余額,并輸出相應(yīng)的現(xiàn)金。

      從該工作流中分析求出所涉及到的對象,并用順序圖描述這個過程。

      讀卡機(jī)插入IC卡顯示屏輸入設(shè)備客戶管理點(diǎn)鈔機(jī)事務(wù)管理接愛IC卡查詢密碼顯示輸入密碼請求輸入密碼傳送密碼消息1確認(rèn)密碼合法性顯示服務(wù)類型請求輸入取款請求查詢服務(wù)類型傳遞取款請求查詢?nèi)】罱痤~顯示可選的取款金額請求輸入取款金額傳送金額修改賬號金額出鈔請求出鈔取鈔為下面打印文件時的工作流建模通信圖:

      ? 用戶通過計算機(jī)指定要打印的文件。

      ? 打印服務(wù)器根據(jù)打印機(jī)是否空閑,操作打印機(jī)打印文件。? 如果打印機(jī)空閑,則打印機(jī)打印文件;

      ? 如果打印機(jī)忙,則將打印消息存放在隊列中等待。

      該系統(tǒng)共有四個對象Computer、PrintServer、Printer和Queue。

      PrintServer件制控5.印文打求打印3.1.隊列是否為空3.2.添加到隊列4.返回打印文件1.打印文件Computer2.請Printer

      3.根據(jù)ATM機(jī)上取款工作流的順序圖,為其建立通信圖模型。

      Queue1.插IC卡入讀卡機(jī)2.接收IC卡4.顯示9請.13求.顯顯示密服示碼務(wù)可類選型的取款金額輸入設(shè)備碼密類型詢務(wù)額3.查服款金詢?nèi)?.查查詢.12客戶管理顯示屏點(diǎn)鈔機(jī)建模狀態(tài)機(jī)圖,建模一個銷售系統(tǒng)。對于其中的實(shí)體sale類創(chuàng)建一個狀態(tài)機(jī)圖,用來描述如何接受訂單、處理訂單、記入貨存清單并且成功完成處理。這里給出以下主要狀態(tài):

      ? EmptyOrder ? ValidOrder ? Processing ? Processed ? Canclled

      依據(jù)狀態(tài)機(jī)圖創(chuàng)建步驟,利用上面狀態(tài)組成完成的狀態(tài)機(jī)圖,并檢測是否需要組成狀態(tài)來完成完整功能。建模狀態(tài)機(jī)圖時需要注意,狀態(tài)機(jī)圖和活動圖在外觀上有相似之處,一定要注意區(qū)分兩種圖形之間的區(qū)別。

      17.出鈔請求5.輸入密碼10.輸入取款請求14.輸入取款金額6.傳送密碼11.傳送取款請求15.傳送金額碼性密法證合額驗碼金.17.認(rèn)密賬號確改2.7.6.修1事務(wù)管理

      EmptyOrderProcessingValidOrderProcessedCanclled 附:2活動圖中的泳道的作用是

      (1)泳道是活動圖中水平方向的區(qū)域劃分,根據(jù)每個活動的職責(zé)對所有活動進(jìn)行劃分,每個泳道代表一個責(zé)任區(qū)。

      (2)泳道將活動圖中的活動劃分為若干組,并把每一組指定給負(fù)責(zé)這組活動的業(yè)務(wù)組織

      (3)泳道區(qū)分了負(fù)責(zé)活動的對象,明確地表示了哪些活動是由哪些對象進(jìn)行的(4)每個活動只能明確地屬于一個泳道(5)泳道可以用于建模某些復(fù)雜的活動圖。

      3面向?qū)ο蠓治龇椒ǖ奈鍌€步驟是

      面向?qū)ο笏膫€基本特征

      五個步驟:

      1.以基本需求為指南選擇類和對象 2.為對象標(biāo)識屬性和操作 3.定義組織類的結(jié)構(gòu)和層次 4.建造對象-關(guān)系模型 5.建造對象-行為模型

      四個基本特征

      1.模塊性

      2.繼承性和類比性 3.動態(tài)連接性 4.易維護(hù)性

      6軟件生命周期的三個過程

      9個階段

      3個過程:軟件定義過程、軟件開發(fā)過程、軟件使用與維護(hù)過程

      9個階段:可行性研究、需求分析、概要設(shè)計、詳細(xì)設(shè)計、實(shí)現(xiàn)、組裝測試、驗收測試、使用與維護(hù)、退役。

      10用例模型的組成元素(3個)用例圖中的組成元素及建模步驟

      組成元素包括:用例、參與者、關(guān)系 步驟:確認(rèn)參與者、確定用例、標(biāo)識用例間的關(guān)系、描述參與者與用例之間的關(guān)系、閱讀用例圖 例如:活動圖:

      第七題: ? UML的靜態(tài)建模機(jī)制:

      用例圖、類圖、對象圖、包圖、構(gòu)件圖和配置圖? UML的動態(tài)建模機(jī)制:

      順序圖,合作圖、狀態(tài)圖、活動圖

      第二篇:圖書管理系統(tǒng)

      圖書管理系統(tǒng)源代碼

      #include #include class Book{ // 書籍基類 protected: char Title[40];// 書名 long Code;// 條碼 int Type;// 0表示書,1表示雜志 public: Book();Book(char *title,long code);void SetCode(long code){ Code = code;} void SetTitle(char* tl){ strcpy(Title,tl);} void SetType(bool type){Type = type;} int GetType(){ return Type;} long GetCode(){ return Code;} virtual void Show();// 顯示書的信息 friend ostream& operator<<(ostream& , Book&);// 重載插入運(yùn)算符 friend istream& operator>>(istream& is, Book&);// 重載提取運(yùn)算符 Book *Next;// 為創(chuàng)建每個讀者所借書鏈表而定義指針 };class Item :public Book{ //書的款目 // char Title[40];// 書名 char Author[20];// 著者名 char IndexCode[10];// 分類號 // long Code;// 條碼 public: Item();Item(char *author,char *title,char *index,int code);Item(Item &);void SetAuthor(char*);void SetIndexCode(char*);virtual void Show();// 顯示書的信息 friend ostream& operator<<(ostream& os, Item&);// 重載插入運(yùn)算符 friend istream& operator>>(istream& is, Item&);// 重載提取運(yùn)算符 public: };class Magazine:public Book { //雜志類 int Volume;enum LANG {CHINESE=1,ENGLISH} Lang;// 枚舉變量,確定語言類別 public: Magazine():Book(){Volume = 0;Lang = CHINESE;Type = 1;} Magazine(char *title,int vol,LANG lang,int code);Magazine(Magazine&);void SetVolume(int vol){Volume = vol;} void SetLang(int lang){Lang =(LANG)lang;} virtual void Show();// 顯示雜志的信息 friend ostream& operator<<(ostream& os, Magazine&);// 重載插入運(yùn)算符 friend istream& operator>>(istream& is, Magazine&);// 重載提取運(yùn)算符 };class Reader{ // 讀者信息類 char Name[20];// 姓名 char Position[20];// 職務(wù) int Age;// 年齡 long Code;// 借書證號 Book* items;// 所借書鏈表 public: Reader();Reader(char *name,char *posi,int age,int code);// Reader(Reader&);~Reader();long GetCode(){return Code;} void SetName(char*);void SetPosition(char*);void SetAge(int);void SetCode(long);void AddBook(Item);// 添加所借書 void AddBook(Magazine);// 添加所借雜志 void DelBook(Book it);// 還書后減少所借書 void ShowBooks();// 顯示所借書 void Show();// 顯示讀者信息 friend ostream& operator<<(ostream& os, Reader&);// 重載插入運(yùn)算符 friend istream& operator>>(istream& is, Reader&);// 重載提取運(yùn)算符 public: int Counter;//計數(shù)器,統(tǒng)計所借書數(shù)目 };class Manager{ // 管理員類 char Name[20];// 姓名 int Age;// 年齡 int Code;// 工號 friend class Library;// 將圖書館類聲明為友元 public: Manager(){} Manager(char*,int,int);long GetCode(){ return Code;} void Show();friend ostream& operator<<(ostream& os, Manager&);// 重載插入運(yùn)算符 friend istream& operator>>(istream& is, Manager&);// 重載提取運(yùn)算符 };class Loan { // 借閱信息類 int Type;// 0表示書,1表示雜志 Item item;// 借閱書 Magazine mag;// 借閱雜志 Reader reader;// 借閱者 Manager manager;// 借書操作員 int Code;friend class Library;// 將圖書館類聲明為友元 public: Loan(){ } Loan(Loan & l);int GetCode(){ return Code;} void Show();friend ostream& operator<<(ostream& os, Loan&);// 重載插入運(yùn)算符 friend istream& operator>>(istream& is, Loan&);// 重載提取運(yùn)算符 };、、、、、、、、、、、、、、、、、、、、、、、#include #include class Reader;template class DblList;template class DblNode{ public: T Info;//數(shù)據(jù)域 DblNode *llink,*rlink;//前驅(qū)(左鏈)、后繼(右鏈)指針 public: DblNode(T data);//一般結(jié)點(diǎn) DblNode();//頭結(jié)點(diǎn) T GetInfo(){return Info;};friend class DblList;friend class Library;};templateclass DblList{ DblNode *head,*current;public: DblList();~DblList();void Insert(const T& data);DblNode* Remove(DblNode* p);void Print();int

      Length();//計算鏈表長度 DblNode *Find(T data);//搜索數(shù)據(jù)與定值相同的結(jié)點(diǎn) DblNode* Find(int data);//按某個關(guān)鍵字查找 void MakeEmpty();//清空鏈表 void ShowList();//顯示鏈表各結(jié)點(diǎn) friend istream& operator>>(istream&, DblList&);// 重載輸入流運(yùn)算符 friend ostream& operator<<(ostream& os, DblList& dlist);// 重載輸出流運(yùn)算符 friend class Library;//其它操作 };template DblNode::DblNode(){ llink=rlink=NULL;} template DblNode::DblNode(T data){ info=data;llink=NULL;rlink=NULL;} template DblList::DblList(){//建立表頭結(jié)點(diǎn) head=new DblNode();head->rlink=head->llink=head;current=NULL;} template DblList::~DblList(){ MakeEmpty();//清空鏈表 delete head;} template void DblList::MakeEmpty(){ DblNode *tempP;while(head->rlink!=head){ tempP=head->rlink;head->rlink=tempP->rlink;//把頭結(jié)點(diǎn)后的第一個節(jié)點(diǎn)從鏈中脫離 tempP->rlink->llink=head;//處理左指針 delete tempP;//刪除(釋放)脫離下來的結(jié)點(diǎn) } current=NULL;//current指針恢復(fù) } template void DblList::Insert(const T & data){//新節(jié)點(diǎn)在鏈尾 current=new DblNode;current->Info=data;current->rlink=head;//注意次序 current->llink=head->llink;head->llink->rlink=current;head->llink=current;//最后做 } template DblNode* DblList::Remove(DblNode* p){ // 刪除結(jié)點(diǎn) current=head->rlink;while(current!=head&¤t!=p)current=current->rlink;if(current==head)current=NULL;else{//結(jié)點(diǎn)摘下 p->llink->rlink=p->rlink;p->rlink->llink=p->llink;p->rlink=p->llink=NULL;} return current;} template DblNode* DblList::Find(T data){ // 按結(jié)點(diǎn)查找 current=head->rlink;while(current!=head&¤t->Info!=data)current=current->rlink;if(current==head)current=NULL;return current;} template DblNode* DblList::Find(int data){ // 按數(shù)據(jù)值查找結(jié)點(diǎn) current=head->rlink;int temp =current->Info.GetCode();while(current!=head&&temp!=data){ current=current->rlink;temp = current->Info.GetCode();} if(current==head)current=NULL;return current;} template void DblList::Print(){ // 輸出鏈表 current=head->rlink;while(current!=head){ cout<Info<<'t';current=current->rlink;} cout< int DblList::Length(){ // 取得鏈表長度 int count=0;current=head->rlink;while(current!=head){ count++;current=current->rlink;} return count;} template void DblList::ShowList(){ // 輸出鏈表各結(jié)點(diǎn) int count=0;current=head->rlink;while(current!=head){ current->GetInfo().Show();current=current->rlink;} return;} template istream& operator>>(istream& is, DblList &dlist){ int len;T tt;// 定義局部變量讀入一個結(jié)點(diǎn) is>>len;for(int i= 0;i>tt;dlist.Insert(tt);} return is;} template ostream& operator<<(ostream& os, DblList &dlist){ DblNode *tempP;int len = dlist.Length();os<rlink;while(tempP!=dlist.head){ // 循環(huán)輸出鏈表各結(jié)點(diǎn) os<Info;tempP = tempP->rlink;} return os;} #include “class.h” #include “dblist.h” #include class Library{ // 封裝圖書館流通業(yè)務(wù)的類 DblList item;// 在館圖書鏈表 DblList mag;// 在館雜志鏈表 DblList reader;// 讀者鏈表 DblList loan;// 借閱信息鏈表 DblList manager;// 管理員信息鏈表 int itemNum;// 記錄在館圖書數(shù)目 int magNum;// 記錄在館雜志數(shù)目 int readerNum;// 記錄讀者數(shù)目 int loanNum;// 記錄借閱信息數(shù)目 int managerNum;// 記錄管理員數(shù)目 ofstream itemFileOut;// 文件流對象,保存圖書館書籍?dāng)?shù)據(jù) ifstream itemFileIn;// 文件流對

      象,讀入圖書館書籍?dāng)?shù)據(jù) ofstream magFileOut;// 文件流對象,保存圖書館雜志數(shù)據(jù) ifstream magFileIn;// 文件流對象,讀入圖書館雜志數(shù)據(jù) ofstream readerFileOut;// 文件流對象,保存圖書館讀者數(shù)據(jù) ifstream readerFileIn;// 文件流對象,讀入圖書館讀者數(shù)據(jù) ofstream loanFileOut;// 文件流對象,保存圖書館借閱信息數(shù)據(jù) ifstream loanFileIn;// 文件流對象,讀入圖書館借閱信息 ofstream managerFileOut;// 文件流對象,保存圖書館管理員數(shù)據(jù) ifstream managerFileIn;// 文件流對象,讀入圖書館管理員數(shù)據(jù) public: Library();// 構(gòu)造函數(shù) ~Library();//析構(gòu)函數(shù) void Run();// 圖書館類的運(yùn)行函數(shù) void CreateBibliotheca();// 創(chuàng)建書目 void CreateReader();// 創(chuàng)建讀者庫 void CreateManager();// 創(chuàng)建管理員信息 int ShowMainMenu();// 顯示主菜單函數(shù) void Borrow();// 借書操作 void Return();// 還書操作 void Require();// 查詢操作 void SaveInfo();// 保存圖書館信息 void OpenInfo();// 讀入圖書館信息 };

      第三篇:圖書管理系統(tǒng)

      目錄

      第一章 緒論.....................................................................................................................................1 第二章 需求分析..............................................................................................................................2

      2.1任務(wù)概述............................................................................................................................2

      2.1.1 圖書管理系統(tǒng)完成的主要目標(biāo)...........................................................................2 2.1.2用戶的特點(diǎn)............................................................................................................3 2.2需求規(guī)定............................................................................................................................3

      2.2.1對功能的規(guī)定........................................................................................................3 2.2.2讀者管理功能........................................................................................................4 2.2.3系統(tǒng)管理功能........................................................................................................4

      第三章 概要設(shè)計.............................................................................................................................4

      3.1總體設(shè)計............................................................................................................................4

      3.1.1系統(tǒng)目標(biāo)設(shè)計........................................................................................................4 3.1.2系統(tǒng)功能分析........................................................................................................5 3.2系統(tǒng)設(shè)計思想.....................................................................................................................5 3.3 系統(tǒng)模塊功能解析............................................................................................................5 第四章 詳細(xì)設(shè)計.............................................................................................................................6

      4.1程序設(shè)計說明....................................................................................................................6

      4.1.1用戶登錄模塊........................................................................................................6 4.1.2用戶添加模塊........................................................................................................7 4.1.3書籍查詢模塊........................................................................................................8 4.1.4圖書借閱模塊........................................................................................................9 4.1.5圖書歸還模塊......................................................................................................10 4.1.6新書入庫模塊......................................................................................................11 第五章 編碼與測試.......................................................................................................................13 5.1各功能模塊的實(shí)現(xiàn)...........................................................................................................13 5.2 測試.................................................................................................................................19 5.2.1借閱卡管理測試..................................................................................................19 5.2.2書籍管理測試......................................................................................................19 5.2.3系統(tǒng)管理測試......................................................................................................19 結(jié)束語.............................................................................................................................................20 致

      謝...........................................................................................................................................21 參考文獻(xiàn).........................................................................................................................................21

      圖書管理系統(tǒng)

      摘要:本文介紹了在VB6.0環(huán)境下采用“自上而下地總體規(guī)劃,自下而上地應(yīng)用開發(fā)”的策略開發(fā)一個管理信息系統(tǒng)的過程。通過分析傳統(tǒng)的人工管理圖書館的不足,創(chuàng)建了一套行之有效的計算機(jī)管理圖書館的方案。文章詳細(xì)介紹了圖書管理信息系統(tǒng)的系統(tǒng)分析部分,包括可行性分析、組織機(jī)構(gòu)分析、管理職能分析、業(yè)務(wù)流程分析、數(shù)據(jù)流程分析、數(shù)據(jù)字典、處理描述等等;系統(tǒng)設(shè)計部分主要介紹了系統(tǒng)功能設(shè)計和數(shù)據(jù)庫設(shè)計;系統(tǒng)實(shí)現(xiàn)部分列出了幾個主要的程序框圖,并附帶了一些主要的窗口和程序。關(guān)鍵字:圖書管理系統(tǒng),VB6.0,sqlserver2000,信息系統(tǒng)

      Library Management System Abstract:This article introduces the detailed process of exploring a management information system under the environment of VB6.0, utilizing “Top-Bottom” overall plan and a strategy according to “Bottom-Top” application and exploitation.That is to establish a set of effective scheme for library management by computer, through analyzing disadvantages of traditional library management by human resources.This article emphasizes on three sections.The system analysis section of library management information includes feasible analysis, organizing organs analysis, management function analysis, technological process of business analysis, technological process of data analysis, data dictionary, disposal description and the like.The system design section mainly focuses on system function design and data base design.And the system realization section has provided several major program charts, together with the main windows and programs.Key words: library management system, VB6.0,information system

      第一章 緒論

      隨著人類社會的發(fā)展,人類對知識的需求也不斷地增長。在這種形勢下,書籍就漸漸地成為人們獲取并增長知識的主要途徑,而圖書館就自然而然地在人們的生活中占據(jù)了一定的位置,如何科學(xué)地管理圖書館不但關(guān)系到讀者求知的方便程度,也關(guān)系到圖書館的發(fā)展,因此,開發(fā)一套完善的圖書館管理系統(tǒng)就必不可

      少了。

      圖書館管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前端的應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立數(shù)據(jù)的一致性和完整性,對于后者則要求應(yīng)用程序功能的完備,易用等的特點(diǎn)?;谏鲜隹紤]本系統(tǒng)主要利用VB6.0作前端的應(yīng)用開發(fā)工具,利用sqlsever 作為后臺的數(shù)據(jù)庫,利用WINDOWS作為系統(tǒng)平臺開發(fā)的圖書管理系統(tǒng)。另外本圖書館管理系統(tǒng)利用軟件工程化思想和方法,總體上是采用結(jié)構(gòu)化生命法進(jìn)行系統(tǒng)分析和設(shè)計的,而系統(tǒng)實(shí)現(xiàn)等步驟則采用了原型法和面對對象的方法

      系統(tǒng)開發(fā)的總目標(biāo)是實(shí)現(xiàn)內(nèi)部圖書借閱管理的系統(tǒng)化、規(guī)范化和自動化。能夠?qū)D書進(jìn)行注冊登記,也就是將圖書的基本信息(如:書名、作者、價格等)預(yù)先存入數(shù)據(jù)庫中,供以后檢索。能夠?qū)栝喨诉M(jìn)行注冊登記,包括記錄借閱人的姓名、地址、電話等信息。提供方便的查詢方法。如:以書名、作者、出版社、出版時間(確切的時間、時間段、某一時間之前、某一時間之后)等信息進(jìn)行圖書檢索,并能反映出圖書的借閱情況;以借閱人編號對借閱人信息進(jìn)行檢索;以出版社名稱查詢出版社聯(lián)系方式信息。提供統(tǒng)計分析功能??梢哉宫F(xiàn)出圖書類型比例、庫存與借出比例。提供舊書銷毀功能,對于淘汰、損壞、丟失的書目可及時對數(shù)據(jù)庫進(jìn)行修改。能夠?qū)κ褂迷摴芾硐到y(tǒng)的用戶進(jìn)行管理,按照不同的工作職能提供不同的功能授權(quán)。提供較為完善的差錯控制與友好的用戶界面,盡量避免誤操作。圖書館的基本功能就是為讀者提供借閱服務(wù),讀者通過借閱這一過程,可以把圖書帶出圖書館,從而使讀者能夠更方便的瀏覽圖書。借書過程中,圖書管理員要對讀者的借書資格進(jìn)行審查,對符合借書條件的讀者,允許其借書,對其借書記錄進(jìn)行登記;對沒有借書資格的讀者,禁止其借書。

      在VB6.0環(huán)境下采用“自上而下地總體規(guī)劃,自下而上地應(yīng)用開發(fā)”的策略開發(fā)一個管理信息系統(tǒng)的過程。通過分析傳統(tǒng)的人工管理圖書館的不足,創(chuàng)建了一套行之有效的計算機(jī)管理圖書館的方案。文章詳細(xì)介紹了圖書管理信息系統(tǒng)的系統(tǒng)分析部分,包括可行性分析、組織機(jī)構(gòu)分析、管理職能分析、業(yè)務(wù)流程分析、數(shù)據(jù)流程分析、數(shù)據(jù)字典、處理描述等等;系統(tǒng)設(shè)計部分主要介紹了系統(tǒng)功能設(shè)計和數(shù)據(jù)庫設(shè)計;系統(tǒng)實(shí)現(xiàn)部分列出了幾個主要的程序框圖,并附帶了一些主要的窗口和程序。

      第二章 需求分析

      2.1任務(wù)概述

      2.1.1 圖書管理系統(tǒng)完成的主要目標(biāo)

      進(jìn)入系統(tǒng)前需要身份認(rèn)證、用戶名、密碼、輸入正確方可進(jìn)入。用戶可以根據(jù)需要進(jìn)行書庫管理。用戶可以進(jìn)行借書證的辦理、查詢、掛失等操作。用戶可

      以添加賬戶和修改密碼。2.1.2用戶的特點(diǎn)

      最終用戶包括讀者(具有借閱卡的人)、圖書管理員,鑒于此軟件應(yīng)用于大學(xué)圖書管理,讀者基本都是在校大學(xué)生即校職工和領(lǐng)導(dǎo),圖書管理員都是接受過高等教育的職工,因此他們都懂得運(yùn)用基本的計算機(jī)知識。大學(xué)圖書管理系統(tǒng)的使用頻度很高,假如一個一萬人的大學(xué)來講,每天圖書館的平均日流量為1.5萬。因此,該軟件的可靠性、可用性、可維護(hù)性顯得尤為重要。

      2.2需求規(guī)定

      2.2.1對功能的規(guī)定

      1、圖書信息查詢/借書信息查詢:圖書館主要向讀者提供圖書借閱的服務(wù)。讀者為了借閱圖書,一般情況下,需要在借書之前查詢所要借閱的圖書情況,所以圖書館需要為讀者提供圖書查詢功能。例如,讀者可能想借閱某方面的書,但不知道圖書館在該方面有哪些圖書可供借閱,所以需要對圖書館的圖書進(jìn)行查詢;或者,讀者知道想借閱的圖書信息,但不知道該圖書館是否有該書或不知道圖書在圖書館的位置、是否被借出、是否可以借閱等信息,這也需要使用圖書查詢功能。一般的圖書查詢中,讀者是通過圖書登記卡、瀏覽圖書登記卡中的信息得到圖書信息的。經(jīng)過圖書查詢,讀者獲得圖書館是否有自己想要的圖書,該圖書的簡單信息以及圖書在圖書館的借閱位置等信息。

      2、新書入庫:為了能正常運(yùn)行,圖書館要及時更新館藏圖書。對于新書,要購進(jìn),供讀者借閱;所以要設(shè)計到圖書的批量入庫。對于批量入庫,圖書管理員要批量登記圖書的信息,包括書名ID、ISBN、圖書名稱、作者、出版社、單價、入庫時間、圖書總量、現(xiàn)存總量等。

      3、借閱圖書/歸還圖書:圖書館的基本功能之一就是為讀者提供借閱服務(wù),讀者通過借閱這一過程,可以把圖書帶出圖書館,從而使讀者能夠更方便的瀏覽圖書。借書過程中,圖書管理員要對讀者的借書資格進(jìn)行審查,對符合借書條件的讀者,允許其借書,對其借書記錄進(jìn)行登記;對沒有借書資格的讀者,禁止其借書。具體的步驟如下:讀者向圖書管理員提交請求和圖書借閱卡,圖書管理員檢查讀者提供的借閱卡,如果該借閱證真實(shí)準(zhǔn)確,讀者已經(jīng)借閱的圖書并沒有超過允許借書量,而且讀者沒有逾期未還的圖書,則允許讀者借書,否則,讀者不能從圖書館借書。讀者拿到要借閱的圖書,同時拿到自己的借閱卡,借書過程完畢。當(dāng)借閱圖書的數(shù)量超過5本或者出現(xiàn)未按期歸還圖書的情況,則不好進(jìn)行借閱處理。圖書館的另一基本功能就是為讀者提供還書服務(wù),讀者在一本圖書借閱期滿之前把該圖書還給圖書館,一般的還書步驟如下:讀者把所借的圖書和自己的借閱卡交給圖書管理員。圖書管理員對圖書進(jìn)行檢查,看有無損壞,如果出現(xiàn)圖書的損壞情況,讀者應(yīng)進(jìn)行相應(yīng)的賠償。圖書管理員查看是否超過規(guī)定借閱期限,如果已經(jīng)過期,則讀者要按規(guī)定交納罰金。圖書管理員進(jìn)行登記,同時把還書信息記入借閱卡。讀者拿回自己的借閱卡,還書過程借書。讀者逾期未歸還圖書超過三天,將按照每本每天進(jìn)行一定的罰款。

      4、書籍掛失:對圖書由于丟失而不能即時還書的情況,讀者要即時到圖書管理員進(jìn)行登記,確保圖書信息的更新。進(jìn)行書籍掛失的步驟一般如下:讀者將所丟圖書信息告訴圖書管理員并將借閱卡交給圖書管理員。圖書管理員對該圖書信息進(jìn)行登記,并按圖書的價格,要求讀者進(jìn)行相應(yīng)賠償。圖書管理員將信息記入借閱卡。讀者拿回自己的借閱卡,掛失功能結(jié)束。

      2.2.2讀者管理功能

      1、辦理借閱卡:圖書館向讀者提供借閱服務(wù),讀者必須具有有效憑證方可借閱。因此,讀者必須辦理借閱卡獲取有效憑證。讀者在辦理借閱卡時,必須輸入個人有關(guān)注冊信息,包括讀者姓名、性別、出生日期、家庭住址、身份證號碼、電話號碼等信息。系統(tǒng)根據(jù)讀者提供的信息,辦理借閱卡并生成個人帳號、讀者可自行修改密碼。

      2、借閱卡信息查詢;圖書館在正常運(yùn)營中要面對大量的讀者信息,需要掌握每個讀者的信息,即時準(zhǔn)確的掌握讀者的基本情況,這些是圖書館運(yùn)營的保證。讀者要進(jìn)行信息查詢,可以通過系統(tǒng)將自己的借閱卡賬戶、密碼輸入系統(tǒng),系統(tǒng)通過核對找到讀者的信息。如果讀者的信息正確,系統(tǒng)將讀者的信息包括讀者姓名、性別、出生日期、家庭住址、身份證號碼、電話號碼等信息。如果讀者的信息不正確,系統(tǒng)將提示錯誤,并且系統(tǒng)設(shè)定,當(dāng)錯誤次數(shù)超過5次時,系統(tǒng)將不予查詢。

      3、借閱卡掛失:對借閱卡的丟失要即時進(jìn)行掛失處理,以防止其他人盜用自己的有效信息并出現(xiàn)私自借書等行為。借閱卡掛失的一般步驟可分為:讀者將掛失情況即時到圖書管理員處進(jìn)行登記,并填寫登記單。圖書管理員將讀者情況進(jìn)行登記掛失,注銷借閱卡的信息,并咨詢讀者是否重新辦理。若讀者需重新辦理,則重新填寫相關(guān)信息,系統(tǒng)自動生成心的借閱卡信息記錄,讀者重新設(shè)置帳號即密碼,并交納相應(yīng)的費(fèi)用。若讀者不需辦理,則系統(tǒng)將信息注銷。讀者獲得新的圖書借閱卡。

      2.2.3系統(tǒng)管理功能

      1、注冊管理員:為了對圖書館管理系統(tǒng)進(jìn)行管理,圖書館需要若干名圖書管理員進(jìn)行管理,在圖書管理員對系統(tǒng)進(jìn)行管理之前必須進(jìn)行注冊功能,以確定管理員身份。對管理員進(jìn)行注冊,系統(tǒng)生成相應(yīng)信息。其中管理員的基本信息包括:成員ID、密碼等。系統(tǒng)管理員每次登陸前輸入自己的ID與密碼,系統(tǒng)對其信息進(jìn)行核實(shí),如基本信息正確,則系統(tǒng)管理員可進(jìn)行系統(tǒng)管理功能,若系統(tǒng)檢查不正確,則系統(tǒng)管理員不可以進(jìn)行相應(yīng)的操作。

      2、修改密碼:服務(wù)圖書館管理員可能由于某些原因,如電腦中毒導(dǎo)致管理員密碼的泄露,為避免圖書管理信息遭到破壞,系統(tǒng)具有修改密碼的功能,確保圖書管理功能的安全性。

      3、退出功能:系統(tǒng)管理員每次離開必須進(jìn)行退出功能,確保管理功能不被他人所用,這樣更方便圖書管理系統(tǒng)出現(xiàn)問題時,找到責(zé)任人。

      第三章 概要設(shè)計

      3.1總體設(shè)計

      3.1.1系統(tǒng)目標(biāo)設(shè)計

      系統(tǒng)開發(fā)的總目標(biāo)是實(shí)現(xiàn)內(nèi)部圖書借閱管理的系統(tǒng)化、規(guī)范化和自動化。能夠?qū)D書進(jìn)行注冊登記,也就是將圖書的基本信息(如:書名、作者、價格等)

      預(yù)先存入數(shù)據(jù)庫中,供以后檢索。能夠?qū)栝喨诉M(jìn)行注冊登記,包括記錄借閱人的姓名、地址、電話等信息。提供方便的查詢方法。如:以書名、作者、出版社、出版時間(確切的時間、時間段、某一時間之前、某一時間之后)等信息進(jìn)行圖書檢索,并能反映出圖書的借閱情況;以借閱人編號對借閱人信息進(jìn)行檢索;以出版社名稱查詢出版社聯(lián)系方式信息。提供統(tǒng)計分析功能??梢哉宫F(xiàn)出圖書類型比例、庫存與借出比例。提供舊書銷毀功能,對于淘汰、損壞、丟失的書目可及時對數(shù)據(jù)庫進(jìn)行修改。能夠?qū)κ褂迷摴芾硐到y(tǒng)的用戶進(jìn)行管理,按照不同的工作職能提供不同的功能授權(quán)。提供較為完善的差錯控制與友好的用戶界面,盡量避免誤操作。3.1.2系統(tǒng)功能分析

      根據(jù)以上功能,將圖書管理系統(tǒng)的數(shù)據(jù)分為:數(shù)據(jù)輸入部分:主要包括圖書基本信息的錄入、借閱人基本信息的錄入、用戶基本信息的錄入。數(shù)據(jù)輸出部分:主要是各種統(tǒng)計查詢,包括:根據(jù)圖書信息(如書名、作者、出版社等)查閱圖書及其借閱信息、統(tǒng)計輸出圖書類型比例等。數(shù)據(jù)處理部分:主要涉及借閱和歸還的處理,如一本書借出后,必須在數(shù)據(jù)

      庫中將該書標(biāo)記為已借出,以防出現(xiàn)數(shù)據(jù)庫中有書但圖書館無書的情況;一本書歸還后,同樣必須在數(shù)據(jù)庫中將其標(biāo)記為已經(jīng)歸還,以便再次借出。

      概念設(shè)計階段主要任務(wù)和目標(biāo)是根據(jù)需求分析的結(jié)果,包括一般聯(lián)系實(shí)體,畫出對應(yīng)的ER圖。對于復(fù)雜的系統(tǒng),通常首先要對它的各功能模進(jìn)行分析,然后再把它的功能結(jié)構(gòu)圖畫出來,便是設(shè)計和優(yōu)化。功能分析之后,再根據(jù)各個崗位、各個用戶對數(shù)據(jù)和使用權(quán)限的不同要求作出局部ER圖,然后再把各個局部ER圖綜合起來形成統(tǒng)一的整體ER圖。

      3.2系統(tǒng)設(shè)計思想

      1、圖書管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個方面。圖書管理系統(tǒng)使用的是SQL Server2000的數(shù)據(jù)管理系統(tǒng)和以Visual Basic6.0為開發(fā)工具。

      2、首先進(jìn)行系統(tǒng)設(shè)計分析,系統(tǒng)設(shè)計主要包括系統(tǒng)功能分析、系統(tǒng)模塊設(shè)計以及運(yùn)行環(huán)境的選擇、系統(tǒng)實(shí)現(xiàn)過程。

      3、然后根據(jù)系統(tǒng)功能分析設(shè)計出需要的數(shù)據(jù)庫,繪制系統(tǒng)數(shù)據(jù)流圖與總結(jié)數(shù)據(jù)字典、設(shè)計數(shù)據(jù)庫結(jié)構(gòu)。

      4、最后在實(shí)現(xiàn)各個功能模塊時,采用先模塊后系統(tǒng)集成的方式,即各系統(tǒng)功能模塊分別獨(dú)立設(shè)計和調(diào)試,在創(chuàng)建系統(tǒng)主窗體時才將各個功能模塊通過主窗體菜單系統(tǒng)集成到一起,最后進(jìn)行系統(tǒng)整體的設(shè)計和調(diào)試。

      3.3 系統(tǒng)模塊功能解析

      (1)系統(tǒng)設(shè)計分析

      本圖書管理系統(tǒng)主要有以下功能: 圖書征訂:包括圖書征訂數(shù)據(jù)的錄入、修改、刪除與審校等功能。圖書編目:包括圖書數(shù)目信息的錄入、修改、刪除功能。圖書典藏:包括新書分配、庫室調(diào)配等功能。

      圖書流通:包括圖書借閱、續(xù)借、圖書返還,圖書書目的查詢的功能。系統(tǒng)用戶管理:包括系統(tǒng)用戶數(shù)據(jù)的錄入、修改與刪除等功能。

      讀者數(shù)據(jù)管理:包括讀者類別管理,讀者個人數(shù)據(jù)的錄入、修改和刪除功能。(2)系統(tǒng)功能分析

      權(quán)限功能:權(quán)限功能設(shè)置的對象為高級管理員、普通管理員、讀者。高級管 刪除所有信息;普通管理員只能對授權(quán)范圍內(nèi)進(jìn)行相應(yīng)修改及刪除;讀者 只能查詢借閱記錄和圖書書目不能修改。

      錄入功能:為普通管理員提供相應(yīng)的錄入功能,為高級管理員提供對所有信息的錄入功能。

      查詢功能:為所有用戶提供查詢的功能,可查詢允許范圍內(nèi)的所有信息。維護(hù)功能:為普通管理員提供查詢及相應(yīng)的修改,刪除功能,為高級管理提 供對所有信息的修改刪除功能。

      打印功能:可打印圖書征訂計劃。

      退出功能:各個功能模塊和主窗體都設(shè)有關(guān)閉命令按鈕,可方便地退出各模 塊或系統(tǒng)。

      第四章 詳細(xì)設(shè)計

      4.1程序設(shè)計說明

      4.1.1用戶登錄模塊

      1.程序描述:此程序用于用戶登陸的至用戶界面,程序通過輸入用戶的ID,用戶密碼的正確性來實(shí)現(xiàn)對驗證用戶的真實(shí)性。2.功能:實(shí)現(xiàn)用戶的登錄功能

      3.性能:用戶通過輸入用戶ID,用戶名和密碼進(jìn)行用戶登陸,通過認(rèn)證后,用戶

      即可進(jìn)入用戶界面。

      4.輸入項:輸入用戶ID,用戶名,密碼5.輸出項:用戶主頁面。流程邏輯如圖所示:

      輸入用戶名和密碼N數(shù)據(jù)庫是否打開Y連接失敗返回N用戶名和密碼是否正確Y輸入次數(shù)是否超過5次YN重新輸入密碼關(guān)閉數(shù)據(jù)庫返回登陸成功進(jìn)入主界面

      圖4-1用戶登錄流程邏輯

      4.1.2用戶添加模塊

      1.程序描述:此程序用于添加新的用戶,用戶通過向數(shù)據(jù)庫內(nèi)輸入必要的信息來注冊成為新的用戶,才通過一系列的驗證之后,即注冊成為真正的用戶。

      2.功能:實(shí)現(xiàn)對用戶的添加功能。

      3.性能:查詢新用戶的用戶名是否存在,若存在則停止添加返還數(shù)據(jù)庫;若用戶不存在,則進(jìn)行添加,并進(jìn)行注冊,注冊成功后返回。

      4.輸入項:輸入用戶的詳細(xì)信息,包括姓名,出生日期,性別,地址,身份證號碼,電話號碼等信息。

      5.輸出項:若添加成功,則輸出提示用戶注冊成功界面;若未成功,則提示輸出未成功原因界面。

      6.流程邏輯如下圖所示:

      輸入用戶信息N判斷數(shù)據(jù)庫是否打開提示連接失敗返回Y查詢數(shù)據(jù)庫中是否有該用戶Y提示已經(jīng)存在該用戶關(guān)閉數(shù)據(jù)庫并返回N向數(shù)據(jù)庫中添加新用戶提示注冊成功返回

      圖4-2用戶添加模塊流程邏輯

      4.1.3書籍查詢模塊

      1.程序描述:此程序用于實(shí)現(xiàn)用戶對想要借閱的查詢功能。用戶通過輸入相應(yīng)的圖書信息來查詢,數(shù)據(jù)庫根據(jù)用戶提供的信息來搜索,最后給出客戶相應(yīng)的圖書信息。

      2.功能:實(shí)現(xiàn)圖書查詢功能。

      3.性能:對進(jìn)行想要查詢的書籍進(jìn)行搜索,若存在此書則顯示該書的詳細(xì)信息;若不存在此書,則提示沒有此書并返回。

      4.輸入項:輸入圖書的詳細(xì)信息,包括圖書名稱,書籍ID,圖書作者,出版社,單價等信息。

      5.輸出項:若輸入的圖書存在即輸出圖書詳細(xì)信息界面;若輸入的圖書不存在則顯示圖書不存在界面。

      6.流程邏輯如下圖所示:

      輸入圖書信息判斷數(shù)據(jù)庫是否打開Y查詢是否有該書YN連接失敗返回N關(guān)閉數(shù)據(jù)庫返回顯示該書的信息關(guān)閉數(shù)據(jù)庫返回 圖4-3圖書查詢模塊流程

      4.1.4圖書借閱模塊

      1.程序描述:此程序用于圖書的借閱,用戶通過登錄自己的借閱ID后,對需要借閱的圖書進(jìn)行借閱操作,如果符合借閱的要求,則可進(jìn)行借閱。2.功能:實(shí)現(xiàn)對圖書的書籍借閱功能。

      3.性能:首先驗證借閱者輸入的借閱ID是否存在,若存在進(jìn)行下一步;若不存在則返回。

      4.若借閱ID存在,則檢查此借閱ID是否借閱書籍超出4本,若超出則提示超出借閱數(shù)目,返回;若沒有超出,則進(jìn)行下一操作。

      5.對想要借閱的圖書ID進(jìn)行搜索,若此書不存在,則提示此書不存在;若此書存在則進(jìn)行下一步操作。

      將借閱者借閱的數(shù)量増一,將數(shù)據(jù)庫中此書數(shù)量減一,同時提醒借閱成功,然后返回。

      6.輸入項:輸入借閱證的ID,圖書ID 7.輸出項:若借閱證ID正確且圖書ID正確且符合借閱要求,則輸出提示借閱成功界面;若存在借閱ID或圖書ID或不符合借閱要求等問題,則輸出提示沒有借閱成功原因的界面。8.流程邏輯如下圖

      輸入書籍ID和借閱IDN數(shù)據(jù)庫是否打開YN借閱卡ID是否存在YY判斷借閱ID是否借書超出4本提示超出最大借書數(shù)量關(guān)閉數(shù)據(jù)庫返回提示不存在該借閱者關(guān)閉數(shù)據(jù)庫返回數(shù)據(jù)庫連接失敗返回NN數(shù)據(jù)庫中是否存在書籍IDY將借閱者的借書數(shù)量加1提示不存在該書籍關(guān)閉數(shù)據(jù)庫返回將書籍的數(shù)量減1提示借書成功關(guān)閉數(shù)據(jù)庫返回 圖4-4圖書借閱模塊

      4.1.5圖書歸還模塊

      1.程序描述:此程序用于圖書的歸還,用戶在登錄自己的ID之后,用戶可以對需要?dú)w還的圖書進(jìn)行操作,如果符合歸還要求,則可以將圖書歸還。2.功能:實(shí)現(xiàn)對圖書的書籍歸還功能。

      3.性能:首先驗證借閱者輸入的借閱ID是否存在,若存在進(jìn)行下一步;若不存在則返回。

      對想要?dú)w還的圖書ID進(jìn)行搜索,若此書不存在,則提示此書不存在;若此書存在則進(jìn)行下一步操作。將借閱者借閱的數(shù)量減一,將數(shù)據(jù)庫中此書數(shù)量加一,同時提醒借閱歸還,然后返回。

      4.輸入項:輸入借閱證ID和圖書ID 5.輸出項:若借閱證ID和圖書ID正確,則輸出提示圖書歸還成功界面;若借閱證ID或圖書ID不正確,則輸出提示沒有成功原因的界面。

      6.流程邏輯如下圖:

      輸入書籍ID和借閱IDN數(shù)據(jù)庫是否打開YN借閱卡ID是否存在YN提示不存在該書籍關(guān)閉數(shù)據(jù)庫返回提示不存在該借閱者關(guān)閉數(shù)據(jù)庫返回數(shù)據(jù)庫連接失敗返回數(shù)據(jù)庫中是否存在書籍IDY將借閱者的借書數(shù)量減1將書籍的數(shù)量加1提示還書成功關(guān)閉數(shù)據(jù)庫返回 圖4-5圖書歸還模塊

      4.1.6新書入庫模塊

      1.程序描述:此程序用戶對新進(jìn)圖書的入口登記處理。用戶可以將新書的詳細(xì)信息進(jìn)行輸入,保存在數(shù)據(jù)庫中后,新書即登記成功。

      2.功能;實(shí)現(xiàn)新進(jìn)圖書入庫功能。

      3.性能:對數(shù)據(jù)庫查詢是否已存在此書,若存在則將此書數(shù)量加一,提示添加成功;若沒有此書,則將此書的基本信息存入數(shù)據(jù)庫,并提示添加書籍成功。

      4.輸入項:輸入新書的書籍ID,書名,作者,出版社,單價等信息。

      5.輸出項:若添加成功,則輸出提示新書添加成功界面;若沒有添加成功,輸出提示未成功原因界面。

      6.流程邏輯如下圖

      輸入書籍信息N數(shù)據(jù)庫是否打開關(guān)閉數(shù)據(jù)庫返回Y是否已經(jīng)存在Y該書將該書的數(shù)量加1提示添加書籍成功關(guān)閉數(shù)據(jù)庫N將該書信息存入數(shù)據(jù)庫是否是第一條N記錄提示添加書籍成功關(guān)閉數(shù)據(jù)庫返回Y提示添加第一本書籍關(guān)閉數(shù)據(jù)庫返回圖4-6新書入庫模塊

      返回

      第五章 編碼與測試

      5.1各功能模塊的實(shí)現(xiàn)

      (1)用戶登錄窗體

      圖5-1 用戶登錄窗體

      用戶登錄代碼:

      Const MaxLogTimes As Integer = 3 Private Sub cmdcancel_Click()

      If MsgBox(“是否真的退出系統(tǒng)登錄?”, vbYesNo, “登錄驗證”)= vbYes Then

      Unload Me

      End If End Sub Private Sub cmdok_Click()

      Static intLogTimes As Integer

      intLogTimes = intLogTimes + 1

      If intLogTimes > MaxLogTimes Then

      MsgBox “超過登錄次數(shù)!”, vbCritical, “登錄驗證”

      Else

      With Library_Manage.rsSysUsers

      .Open

      If.RecordCount > 0 Then

      .MoveFirst

      .Find “編號=” & Trim(txtLog(0))& “"

      If.EOF Then

      MsgBox Trim(txtLog(0))& ”不是系統(tǒng)用戶,請檢查輸入!“, vbCritical, ”登錄驗證“

      txtLog(0).SetFocus

      txtLog(0).SelStart = 0

      txtLog(0).SelLength = Len(txtLog(0))

      ElseIf.Fields(”口令“)<> Trim(txtLog(1))Then

      MsgBox ”口令錯誤,請檢查輸入口令!“, vbCritical, ”登錄驗證“

      txtLog(1).SetFocus: txtLog(1)= ”“

      Else

      CurrentUserNum =.Fields(編號)

      CurrentUserPassword =.Fields(”口令“)

      CurrentUserStatus =.Fields(”權(quán)限“)

      MsgBox ”歡迎使用常州信息學(xué)院管理系統(tǒng)!“, vbInformation, ”登陸成功!“

      Unload Me

      End If

      End If

      .Close

      End With

      End If End Sub Private Sub Form_Load()

      SysLogon.BackColor = RGB(192, 210, 270)End Sub(2)用戶管理窗體界面

      圖5-2 用戶管理窗體

      用戶管理窗體代碼 '保存

      Private Sub cmdSave_Click()

      Dim objcopy As New Recordset

      If Trim(txtNum)= ”“ Then

      MsgBox ”不能為空!“, vbCritical, ”系統(tǒng)用戶管理“

      txtNum.SetFocus

      txtNum.SelStart = 0

      txtNum.SelLength = Len(txtNum)

      ElseIf Len(Trim(txtPwd))<> 6 Then

      MsgBox ”用戶口令須為6位字符串!“, vbCritical, ”系統(tǒng)用戶管理“

      txtPwd.SetFocus

      txtPwd.SelStart = 0

      txtPwd.SelLength = Len(txtPwd)ElseIf Not txtAuth Like ”[0,1]“ Then

      MsgBox ”用戶權(quán)限必須為0或1“, vbCritical, ”系統(tǒng)用戶管理“

      txtAuth = ”“

      txtAuth.SetFocus Else

      Set objcopy = Library_Manage.rsSysUsers.Clone '對錯?

      With objcopy

      If.RecordCount > 0 Then

      .MoveFirst

      .Find ”編號“ & Trim(txtNum)& ”“

      If Not.EOF And.AbsolutePosition <> Library_Manage.rsSysUsers.AbsolutePosition Then

      MsgBox ”編號:“ & Trim(txtNum)& ”已被使用,請選擇其他編號!“, vbCritical, ”系統(tǒng)用戶管理“

      txtNum.SetFocus

      txtNum.SelStart = 0

      txtNum.SelLength = Len(txtNum)

      Exit Sub

      Else

      '保存記錄

      Library_Manage.rsSysUsers.Update

      MsgBox ”數(shù)據(jù)保存成功!“, vbInformation, ”系統(tǒng)用戶管理“

      cmdAdd.Enabled = True

      cmdDel.Enabled = True

      isAdding = False: picNavigation.Enabled = True

      End If

      End With End If End Sub Private Sub Form_Load()

      cmdMove(0).Value = True End Sub(3)讀者數(shù)據(jù)管理窗體界面

      圖5-3 讀者數(shù)據(jù)管理窗體

      讀者數(shù)據(jù)管理窗體代碼

      Library_Manage.Library_Manage_Con.Execute ”TRUNCATE TABLE 讀者類別“

      With Library_Manage.ReaderType

      If.State = adStateClosed Then.Open

      .AddNew

      .Fields(”編號“)= ”0“

      .Fields(”名稱“)= ”特殊“

      .Fields(”借書量“)= Val(txtSp(1))

      .Fields(”借書期“)= Val(txtSp(2))

      .Fields(”有效期“)= Val(txtSp(3))

      .Update

      .AddNew

      .Fields(”編號“)= ”1“

      .Fields(”名稱“)= ”館員“

      .Fields(”借書量“)= Val(txtL(1))

      .Fields(”借書期“)= Val(txtL(2))

      .Fields(”有效期“)= Val(txtL(3))

      .Update

      .AddNew

      .Update

      .AddNew

      .Fields(”編號“)= ”2“

      .Fields(”名稱“)= ”教師“

      .Fields(”借書量“)= Val(txtT(1))

      .Fields(”借書期“)= Val(txtT(2))

      .Fields(”有效期“)= Val(txtT(3))

      .Update

      .AddNew

      .Fields(”編號“)= ”3“

      .Fields(”名稱“)= ”學(xué)生“

      .Fields(”借書量“)= Val(txtS(1))

      .Fields(”借書期“)= Val(txtS(2))

      .Fields(”有效期“)= Val(txtS(3))

      .Update

      End With End Sub Private Sub Form_Load()cmdMove(0).Value = True End Sub Private Sub SSTab1_DblClick()End Sub(4)圖書征訂管理窗體

      圖5-4 圖書征訂管理窗體

      圖書征訂管理代碼

      txtPubDate.SelLength = Len(txtPubDate)

      ElseIf Trim(txtAuthor)= ”“ Then

      MsgBox ”作者不能為空!“, vbCritical, ”圖書征訂管理“

      txtAuthor.SetFocus

      txtAuthor.SelStart = 0

      txtAuthor.SelLength = Len(txtAuthor)

      ElseIf Val(txtNum)= ”“ Then

      MsgBox ”正的數(shù)量無效!“, vbCritical, ”圖書征訂管理“

      txtNum.SetFocus

      txtNum.SelStart = 0

      txtNum.SelLength = Len(txtNum)

      ElseIf Not IsDate(txtDate)= ”“ Then

      MsgBox ”作者不能為空!“, vbCritical, ”圖書征訂管理“

      txtDate.SetFocus

      txtDate.SelStart = 0

      txtDate.SelLength = Len(txtDate)

      Else

      '保存記錄

      Library_Manage.rsBooksOrder.Update

      MsgBox ”數(shù)據(jù)保存成功!“, vbInformation, ”圖書征訂管理“

      cmdAdd.Enabled = True: cmdDel.Enabled = True

      cmdExam.Enabled = True: cmdRefresh.Enabled = True

      isAdding = False: picNavigation.Enabled = True

      End If End Sub Dim objcopy As Recordset Private Sub cmbOut_Click()

      AddListOut

      End Sub Private Sub cmdAddAll_Click(Index As Integer)'選擇全部條碼

      ListItem_Add lstPre(Index), LstIn(Index), Index, True End Sub Private Sub cmdAddOne_Click(Index As Integer)'選擇當(dāng)前條碼

      ListItem_Add lstPre(Index), LstIn(Index), Index, False End Sub Private Sub cmdExit_Click()

      If LstIn(0).ListCount > 0 Then

      If MsgBox(”你選定了部分新書準(zhǔn)備入庫,但沒執(zhí)行保存操作“ & vbCr & ”是否要執(zhí)行保存操作?“, vbCritical + vbYesNo, ”圖書典藏管理“)= vbYes Then

      SSTab1.Tab = 0

      cmdSave.Value = True

      End If

      ElseIf LstIn(1).ListCount > 0 Then

      If MsgBox(”你選定了部分新書準(zhǔn)備入庫,但沒執(zhí)行保存操作“ & vbCr & ”是否要執(zhí)行保存操作?“, vbCritical + vbYesNo, ”圖書典藏管理“)= vbYes Then

      SSTab1.Tab = 1

      cmdSave.Value = True

      End If

      End If

      Unload Me End Sub '刷新新書或調(diào)出庫室條碼列表

      Private Sub cmdRefresh_Click(Index As Integer)

      Select Case Index

      Case 0 '刷新新書列表

      With Library_Manage.rsBooksBibli

      If.State = adStateClosed Then.Open

      .Requery

      End With

      AddListNew

      Case 1 '刷新庫室條碼列表

      With Library_Manage.rsBooksStore

      If.State = adStateClosed Then.Open

      .Requery

      End With

      AddListOut

      End Select End Sub Public Sub AddListNew()

      lstPre(0).Clear

      With Library_Manage.rsBooksBibli

      If.State = adStateClosed Then.Open

      If.RecordCount > 0 Then

      .MoveFirst

      While Not.EOF

      lstPre(0).AddItem.Fields(”條碼“)

      .MoveNext

      Wend

      Else

      lstPre(0).AddItem ”當(dāng)前無待分配新書"

      End If End With End Sub 5.2 測試

      5.2.1 借閱卡管理測試

      進(jìn)度安排測試辦理借閱證信息,檢查個人賬號、讀者可自行修改密碼。測試查詢借閱卡信息的正確性,包括輸入的讀者信息等。測試借閱卡掛失功能,包括讀者信息等。

      5.2.2 書籍管理測試

      進(jìn)度安排:測試新書入庫信息的正確性。測試借書、還書功能信息正確性。測試書籍掛失信息的正確性。測試圖書信息查詢的正確性。測試借書信息查詢的正確性。

      5.2.3 系統(tǒng)管理測試

      進(jìn)度安排測試注冊管理員信息的正確性。測試修改密碼信息的正確性。

      結(jié)束語

      對于這篇論文我有不少心得體會。這次是對我們掌握所學(xué)知識的一次考核。它可以讓我們了解自己一學(xué)期里的學(xué)習(xí)情況,有助于在今后的學(xué)習(xí)中加以改進(jìn)。通過這次上機(jī)實(shí)驗,我發(fā)現(xiàn)了自己對數(shù)據(jù)庫和vb語言掌握的并不牢,有的知識點(diǎn)根本就不懂。這都要怪自己在平時的學(xué)習(xí)過程中不夠用心,不懂的地方也沒有及時的去搞懂,課后也沒怎么花時間去研究。這次實(shí)驗我覺得自己不僅學(xué)到了很多軟件設(shè)計方面的知識,也讓我鞏固了以前所學(xué)的知識以及看到了自己以前學(xué)習(xí)中的不足之處。

      在今后的學(xué)習(xí)過程中,我一定會認(rèn)真學(xué)習(xí)專業(yè)課程,再也不能像以前那樣迷迷糊糊的,課后要多花時間去研究一些有關(guān)編程方面的題目,不懂的地方及時把它弄懂。以后自己還要多動手編寫一些程序。在這里我要感謝學(xué)校能提供這么一個寶貴的機(jī)會,我們可以把課堂上所學(xué)的理論知識運(yùn)用到實(shí)踐中去,把書上的東西變成我們自己的。這個機(jī)會既讓我們學(xué)習(xí)鞏固了知識,也讓我們發(fā)現(xiàn)了自己的不足之處。特別要感謝我們的指導(dǎo)老師,正因為有了您的幫助我們才可以完成實(shí)驗。我也希望今后還會有更多的機(jī)會讓我們?nèi)?shí)踐,去充實(shí)自己。

      致 謝

      在本次設(shè)計的過程中,老師們給了我們很大的幫助。不僅使我們在規(guī)定時間內(nèi)完成了系統(tǒng)的設(shè)計,同時還使我們學(xué)到了很多有益的知識和寶貴的經(jīng)驗在此,我謹(jǐn)向他們表示最衷心的感謝。感謝老師的指導(dǎo),使我們充分利用軟件工程,VB,數(shù)據(jù)庫原理開發(fā)出自己的項目.在開發(fā)的過程中使我體會到了工程化開發(fā)方法和瀑布模型利用的重要性,在此還要感謝所有合作參與項目開發(fā)的同學(xué)們這次畢業(yè)設(shè)計的成功離不開所有參與的同學(xué)們的幫助和支持,是他們讓我知道了團(tuán)隊工作的重要.參考文獻(xiàn)

      1、陶宏才.數(shù)據(jù)庫原理及設(shè)計[M].北京:清華大學(xué)出版社.2004.2、陸麗娜.軟件工程 [M].北京:經(jīng)濟(jì)科學(xué)出版社.1999

      3、郝志恒、劉舫.Visual Basic 6.0 編程篇[M] 北京:電子工業(yè)出版社 2004

      4、劉世峰.數(shù)據(jù)庫基礎(chǔ)與應(yīng)用[M] 北京: 中央電大出版社 2003

      5、吳斌、魯大林.Visual Basic+SQL Sever數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)[M] 北京:機(jī)械工程出版社 2008

      6、邱李華.SQL Server 2000 數(shù)據(jù)庫應(yīng)用教程[M] 北京:人民郵電出版社 2007

      7、鐘軍.Visual Basic數(shù)據(jù)庫高級實(shí)例導(dǎo)航[M] 北京:清華大學(xué)出版社 2003

      8、趙松濤.Visual Basic+SQL Server 2000 系統(tǒng)開發(fā)實(shí)錄[M] 北京: 機(jī)械工業(yè)出版社 2007

      第四篇:圖書管理系統(tǒng)

      圖書管理系統(tǒng)

      背景:當(dāng)今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理,這正是計算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大提高了其安全性。

      隨著圖書館的藏書、管理人員、讀者數(shù)量的不斷增多,如何對書籍以及讀者信息、讀者借閱信息進(jìn)行管理成為一個難題。圖書涉及大量的數(shù)據(jù)處理,如果用手工來完成龐大的數(shù)據(jù)處理,不僅費(fèi)時費(fèi)力,還容易出錯。為了滿足圖書管理的需要,急需要一套圖書管理系統(tǒng)來完成這項工作。作為計算機(jī)應(yīng)用的一部分,使用計算機(jī)對圖書信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高圖書管理的效率,也是圖書館信息的科學(xué)化、正規(guī)化管理的重要條件。因此將詳細(xì)分析一個圖書館系統(tǒng)地實(shí)現(xiàn)過程。從需求分析、架構(gòu)設(shè)計、系統(tǒng)建模、詳細(xì)設(shè)計、代碼實(shí)現(xiàn)逐步展開分析,整個過程按照軟件實(shí)際流程進(jìn)行。

      意義:通過學(xué)習(xí)JAVA語言,又加深對面向?qū)ο蠓治?,確定問題域中的對象及對象間關(guān)系,并建立起問題域的對象模型。面向?qū)ο蟮脑O(shè)計方法是一種進(jìn)行程序設(shè)計的新方法,它吸取了結(jié)構(gòu)化程序設(shè)計的先進(jìn)思想,為解決程序結(jié)構(gòu)過于復(fù)雜而產(chǎn)生。它的思想是在進(jìn)行程序設(shè)計時,把整個問題分成由相關(guān)部分組成的組,每個組考慮和組相關(guān)的代碼和數(shù)據(jù),同時這些分組將按層次關(guān)系組織起來,每個分組轉(zhuǎn)換為對象的獨(dú)立單元。面向?qū)ο蟮某绦蛟O(shè)計語言都具有多態(tài)性、繼承性、封裝性等特點(diǎn)。學(xué)習(xí)以后對JAVA程序設(shè)計有了深入的了解,JAVA語言程序設(shè)計要求結(jié)構(gòu)緊湊,概念準(zhǔn)確。

      實(shí)踐項目:圖書管理系統(tǒng)。

      主要完成這個項目的,可以實(shí)現(xiàn)圖書系統(tǒng)的系統(tǒng)化和自動化,幫助圖書管理人員更好更高效地完成圖書管理工作。需求分析:圖書管理系統(tǒng)需要滿足三方面的需求,這三個方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個人借閱情況及個人信息的修改;圖書館工作人員對圖書借閱者的借閱及還書要求進(jìn)行操作,同時形成借書或還書記錄;圖書館管理人員的功能最復(fù)雜,包括對圖書借閱者、圖書進(jìn)行管理和維護(hù),及系統(tǒng)狀態(tài)的查看、維護(hù)。

      圖書借閱者可直接查看圖書館圖書情況,如果圖書借閱者根據(jù)本人借書證號和密碼登錄系統(tǒng),還可以進(jìn)行本人借書情況的查詢并維護(hù)部分個人信息。一般情況下,圖書借閱者只應(yīng)該查詢和維護(hù)本人的借書情況和信息,若查詢和維護(hù)其他借閱者的借書情況和信息,就要知道其他圖書借閱者的借書證號和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書借閱者的要求,還保護(hù)了圖書借閱者的個人隱私。

      圖書館工作人員有修改圖書借閱者借書和還書記錄的權(quán)限,在此模塊中,圖書館工作人員可以為圖書借閱者加入借書記錄或是還書記錄。

      圖書館管理人員功能的信息量大,數(shù)據(jù)安全性和保密性要求最高。本功能實(shí)現(xiàn)對圖書信息、借閱者信息、總體借閱情況信息的管理和信息查看及維護(hù)。圖書館管理員可以瀏覽、查詢、添加、刪除、修改圖書的基本信息;瀏覽、查詢、添加、刪除和修改圖書借閱者的基本信息,但不能添加、刪除和修改借閱信息,這部分功能應(yīng)該由圖書館工作人員執(zhí)行,但是,刪除某條圖書借閱者基本信息記錄時,應(yīng)實(shí)現(xiàn)對該圖書借閱者借閱記錄的級聯(lián)刪除。

      功能如下:⑴書籍管理部分:主要包括讀者類別和書籍信息管理兩部分。其中,書籍類別管理包括添加書籍類別、修改書籍類別等;書籍信息管理包括書籍信息的添加、書籍信息的修改、書籍信息的查詢、書籍信息的刪除等。

      ⑵讀者管理部分:主要包括讀者類別管理和讀者信息管理兩部分。其中,讀者類別管理包括添加讀者類

      別、修改讀者類別等;讀者信息管理包括添加讀者信息、修改讀者信息、刪除讀者信息、查詢讀者信息等。

      ⑶借閱管理部分:主要包括借書信息管理和還書信息管理兩部分。其中,借書信息管理包括借書信息的添加、借書信息的修改、借書信息的查詢等;還書信息管理部分包括還書信息的添加、還書信息的修改、還書信息的查詢等。

      ⑷系統(tǒng)管理部分:包括修改系統(tǒng)用戶密碼、增加新用戶以及退出系統(tǒng)等

      所以,該圖書管理系統(tǒng)能夠是圖書管理員方便地管理圖書館內(nèi)的多種事務(wù),讓圖書館工作人員更有效地

      為讀者提供借閱、歸還書籍的服務(wù),也能夠為讀者提供查詢書籍信息、個人借閱信息。

      數(shù)據(jù)庫流程分析:

      1.?dāng)?shù)據(jù)處理流程

      數(shù)據(jù)庫或數(shù)據(jù)表結(jié)構(gòu)確定之后,在實(shí)際的數(shù)據(jù)處理程序設(shè)計之前需要對所處理的數(shù)據(jù)處理流程作必要的分析。所謂對數(shù)據(jù)處理流程作必要的分析是指找出各數(shù)據(jù)之間的主要關(guān)系,數(shù)據(jù)存取的主要走向。另外,在實(shí)際的數(shù)據(jù)處理過程中還會有些細(xì)節(jié)問題。在遇到這些細(xì)節(jié)問題時,及時處理即可。并且,有些細(xì)節(jié)問題不是在做數(shù)據(jù)處理流程分析時事先都能預(yù)料的。對于現(xiàn)在這個數(shù)據(jù)處理系統(tǒng)來說,最主要的工作實(shí)際就是三項:

      1)讀者信息的基本情況及時錄入數(shù)據(jù)庫;

      2)要將讀者查詢情況及時錄入數(shù)據(jù)庫;

      3)對讀者操作情況進(jìn)行匯總。

      整體數(shù)據(jù)流:管理員通過密碼進(jìn)入系統(tǒng),分別對上述幾大功能逐一實(shí)現(xiàn)。

      在數(shù)據(jù)關(guān)系簡單的情況下對數(shù)據(jù)處理,可以在將數(shù)據(jù)庫設(shè)計好之后直接設(shè)計程序。但是按正規(guī)的數(shù)據(jù)庫管理系統(tǒng)的設(shè)計程序,無論要處理的數(shù)據(jù)關(guān)系復(fù)雜與否都應(yīng)在做程序設(shè)計之前做好數(shù)據(jù)的流程分析。

      2.管理窗體

      創(chuàng)建該窗體,根據(jù)相關(guān)操作可以完成個人信息、圖書信息、管理操作、系統(tǒng)設(shè)置等功能實(shí)現(xiàn),在圖書信息里可以進(jìn)行圖書查詢、圖書借閱、圖書歸還、圖書續(xù)借等功能。

      總結(jié):圖書管理系統(tǒng)可以有效的省去很多的認(rèn)為登記錯誤,并且能夠節(jié)省廣大的師生寶貴時間。另一方面,圖書

      館里系統(tǒng)具有界面清晰,操作方便,功能少而使用,實(shí)現(xiàn)圖書館工作的自動化,減少手工勞動量帶來的數(shù)據(jù)遺漏,誤報等人為因素,提高工作效率,也增強(qiáng)系統(tǒng)的通用性。但是完善的系統(tǒng)也會有所弊處,有計算機(jī)操控的系統(tǒng),一旦系統(tǒng)出現(xiàn)問題,整個圖書館的借閱系統(tǒng)也會跟著癱瘓,帶來不便。所以,也要經(jīng)常的去維護(hù)系統(tǒng),這樣才能給我們提供一個安全的信息處理方法。

      管理信息系統(tǒng)創(chuàng)建,首先數(shù)據(jù)庫在一個管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫設(shè)計的好壞將直接對應(yīng)用系

      統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)存儲的效率,以確保數(shù)據(jù)的完整性和一致性。設(shè)計數(shù)據(jù)庫系統(tǒng)時應(yīng)該首先充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。數(shù)據(jù)庫設(shè)計一般包括如下幾個步驟:數(shù)據(jù)庫需求分析;數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計;數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計;數(shù)據(jù)庫物理設(shè)計。設(shè)計中詳細(xì)的總結(jié)了該系統(tǒng)的系統(tǒng)設(shè)計部分,包括功能模塊設(shè)計、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計等。系統(tǒng)設(shè)計為整個程序構(gòu)建了骨架,各個功能模塊實(shí)現(xiàn)各個細(xì)節(jié)部分。通過本次課程設(shè)計知道了各種數(shù)據(jù)之間的相互關(guān)系,并在操作中用適當(dāng)?shù)腟QL語句和存儲過程實(shí)現(xiàn)。本系統(tǒng)還實(shí)現(xiàn)了VB通過ODBC對SQL的數(shù)據(jù)庫快遞、高效訪問和更新功能。

      通過這次課程設(shè)計懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故。

      在程序設(shè)計與代碼編寫階段我們遇到了很多的問題,由于我們組中的人大部分都是第一次開發(fā)數(shù)據(jù)庫系統(tǒng),所以對數(shù)據(jù)庫開發(fā)的流程不熟息,而且在數(shù)據(jù)庫的與編程系統(tǒng)的連接方面也遇到了很多的問題。

      第五篇:圖書管理系統(tǒng)

      七個文件

      1.book.txt存放書籍

      2.borrower.txt存放借閱信息

      3.chenwen.txt 存放開始信息

      4.mima.txt存放密碼 5.qianyan.txt前言

      6.student.txt存放學(xué)生信息

      7.yuyue.txt 存放預(yù)約信息

      #include #include #include void guanliyuan();void youke();typedef struct borrower{ struct borrower *next;struct borrower *front;int book;int stu;

      int times;

      int sum;}Borr;typedef struct stus{ int numbers;char mark[40];

      char name[40];

      char xueyuan[40];

      int sum;

      struct stus *next;

      struct stus *front;}Stus;typedef struct books{ struct books *front;int numbers;char name[40];char author[40];char type[40];char publisher[40];int sum;int cun;struct books *next;}Books;void chenwenxie4();void chenwen();void time();void time1();void fangkuang();void printstudent1(Stus *head);Borr* buildborrowerlist();Books* buildbookslist();Stus* buildstudentlist();Books* insertbook(Books *head1,Books *pa);Stus* insertstudent(Stus *head2,Stus *pb);Borr* insertborrower(Borr *head3,Borr *pc);Books* chenwensousou11(Books* head11,int num11);Books* chenwensousou12(Books* head12,char name12[]);Books* chenwensousou13(Books* head13,int num13);Books* chenwensousou15(Books* head22,char name22[]);Stus* chenwensousou21(Stus* head21,int num21);Stus* chenwensousou22(Stus* head22,char name22[]);Stus* chenwensousou23(Stus* head23,int num23);Borr* chenwensousou31(Borr* head31,int num31);Borr* chenwensousou32(Borr* head32,int num32);Borr* chenwensousou33(Borr* head33,int num33);Borr* chenwensousou34(Borr* head34,int num34);Books* deletebook1(Books *head,int num);Stus* deletestudent1(Stus *head,int num);Borr* deleteborrower1(Borr *head,int num);Borr* deleteborrower2(Borr *head,int num);Books* booksorting11(Books *head);Books* booksorting12(Books *head);Stus* studentsorting21(Stus *head);Stus* studentsorting22(Stus *head);Borr* borrowersorting31(Borr *head);Borr* borrowersorting32(Borr *head);Borr* borrowersorting33(Borr *head);Books* chenwensousou14(Books* head12,char type[]);void printbook(Books *head);void printborrower(Borr *head);void chenwendu1(Books *head);void chenwendu2(Stus *head);void chenwendu3(Borr *head);Books* chenwenxie1();Stus* chenwenxie2();Stus* chenwenxie22();Borr* chenwenxie3();Borr* yuyuexie();void yuyuedu(Borr *head);Books bookcreat();Stus studentcreat();Borr borrowercreat();void time2();void qingkong();void qingkong1();void qingkong2();void qingkong3();int yanzheng(Books* head,int num);int yanzheng1(Stus* head,int num);int yanzheng2(Borr* head,int num);int yanzheng3(int num);void bianli(Books *head1,Stus *head2,Borr *head3);void sousuo(Books *head1,Stus *head2,Borr *head3);void paixu(Books *head1,Stus *head2,Borr *head3);void mimadu(char a[]);void sousuo1(Borr *headborrower);char* mimaxie();void qingkong4();void tishi1();void tishi2();int main(){ int n=0,i;char choice=3,ch[40],ch1[3]=“是”,cw;printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉█▉n”);time();

      printf(“█┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓█n”);time();

      printf(“█┃******************歡迎進(jìn)入河南工業(yè)大學(xué)圖書管理系統(tǒng)********************* ┃▉n”);time();

      printf(“█┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛█n”);time();

      printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉██n”);

      for(i=0;i<25;i++)

      time();system(“cls”);chenwen();chenwenxie4();while(1){

      scanf(“%s”,ch);

      if(strcmp(ch,ch1)==0)

      break;

      else{

      system(“cls”);

      printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉█▉n”);

      printf(“█┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓█n”);

      printf(“■┃〓〓〓〓〓〓〓對不起,你尚未同意該協(xié)議,不能使用該系統(tǒng)〓〓〓〓〓〓〓〓〓┃█n”);

      printf(“█┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛█n”);

      printf(“█ ▓▓▓▓▓▓▓▓▓▓我已閱讀并同意該協(xié)議?(是/否)▓▓▓▓▓▓▓▓▓▓▓▓ ▉n”);

      printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉█▉n”);

      } } getchar();system(“cls”);while(n==0){ printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);printf(“ ┃ ▼▲▼▲▼▲▼▲▼歡迎進(jìn)入河南工業(yè)大學(xué)圖書管理系統(tǒng) ▼▲▼▲▼▲▼▲▼

      ┃n”);printf(“ ┣━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━┫n”);printf(“ ┃

      ★(0)退出

      ★(1)管理員登錄

      ★(2)學(xué)生登錄

      ┃n”);printf(“ ┣━━━━━━━━━━━┻━━━━━━━━━━━━━┻━━━━━━━━━━┫n”);printf(“ ┃

      ▂▃▄▅▆▇█▉▊▋▌●●● 請輸入選擇●●●▌▋▊█▉▇▆▅▄▃▂

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%c”,&choice)&&choice>='0'&&choice<='2'){

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice){

      case '0':system(“cls”);

      chenwen();

      return 0;

      case '1':guanliyuan();

      break;

      case '2':youke();

      break;

      }

      }

      else{

      tishi2();

      while(choice!='n'){

      scanf(“%c”,&choice);

      }

      } } printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉█▉n”);time();

      printf(“█┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓█n”);time();

      printf(“█┃******************謝謝使用河南工業(yè)大學(xué)圖書管理系統(tǒng)********************* ┃▉n”);time();

      printf(“█┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛█n”);time();

      printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉██n”);

      for(i=0;i<25;i++)

      time();system(“cls”);return 0;} void guanliyuan(){

      char choice,choice1,choice2,cw;

      int f=1;int n=0,j=3,l=0,a=0,g=0;

      char *ppp=(char *)malloc(40*sizeof(char));Books *headbook=chenwenxie1(),*pa=NULL,*book;Stus *headstudent=chenwenxie2(),*pb=NULL,*stu;Borr *headborrower=chenwenxie3(),*pc=NULL,*headyuyue=yuyuexie(),*yu;char p[40];p[0]='4',p[1]='3',p[2]='1',p[3]='5',p[4]='c',p[5]='w';

      ppp=mimaxie();system(“cls”);printf(“

      ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);printf(“

      ┃◆◆◆◆◆◆◆◆◆◆◆◆歡迎管理員登陸◆◆◆◆◆◆◆◆◆◆◆◆┃n”);printf(“

      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);printf(“

      ┃▁▂▃▄▅▆▇█▉▊▋▌▌?wù)堓斎朊艽a▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);printf(“

      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);printf(“

      ┃ ▓▓▓▓▓▓▓▓▓▓★你一共有3次機(jī)會★▓▓▓▓▓▓▓▓▓▓▓┃n”);printf(“

      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      g=0;

      while(n==0){

      scanf(“%s”,p+6);

      if(strcmp(ppp,p)==0){

      getchar();

      l=0;

      system(“cls”);

      while(1){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃*****************************您享有的操作*******************************┃n”);

      printf(“ ┃************************************************************************┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃ ★(0)返回上級 ★(1)創(chuàng)建列表 ★(2)插入(借還)★(3)刪除(借還)★(4)遍歷

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★(5)排序

      ★(6)搜索

      ★(7)修改密碼

      ★(8)保存

      ★(9)清空文件

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▉▉▉▉▉▉▉▉▉▉▉▉▉●●●請輸入選擇●●●▉▉▉▉▉▉▉▉▉▉▉▉┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%c”,&choice)&&choice>='0'&&choice<='9'){

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice){

      case '0':

      system(“cls”);

      break;

      case '1':{

      system(“cls”);

      while(n==0){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃*****************************您享有的操作*******************************┃n”);

      printf(“ ┃************************************************************************┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★(0)返回上級

      ★(1)創(chuàng)建圖書鏈表 ★(2)創(chuàng)建學(xué)生鏈表 ★(3)創(chuàng)建借閱鏈表

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▉▉▉▉▉▉▉▉▉▉▉▉▉●●●請輸入選擇●●●▉▉▉▉▉▉▉▉▉▉▉▉┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='3'){

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice1){

      case '0':

      system(“cls”);

      break;

      case '1':headbook=buildbookslist();

      g=1;

      break;

      case '2':headstudent=buildstudentlist();

      g=1;

      break;

      case '3':headborrower=buildborrowerlist();

      g=1;

      break;

      }

      }

      else{

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓對不起,您的輸入有誤▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      while(choice1!='n'){

      scanf(“%c”,&choice1);

      }

      }

      if(choice1=='0'){

      break;

      }

      }

      }

      break;

      case '2': {

      system(“cls”);

      while(n==0){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃*****************************您享有的操作*******************************┃n”);

      printf(“ ┃************************************************************************┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★(0)返回上級

      ★(1)插入圖書信息 ★(2)插入學(xué)生信息

      ★(3)插入借閱信息 ┃n”);

      printf(“ ┃________________________________________________________________________┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▉▉▉▉▉▉▉▉▉▉▉▉▉●●●請輸入選擇●●●▉▉▉▉▉▉▉▉▉▉▉▉┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='3'){

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice1){

      case '0':

      system(“cls”);

      break;

      case '1':{

      system(“cls”);

      if(headbook==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓圖書鏈表為空,請先創(chuàng)建圖書鏈表〓〓〓〓〓〓〓〓〓〓┃n”);

      }

      else{

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃*****************************您享有的操作*******************************┃n”);

      printf(“ ┃************************************************************************┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃████████████請輸入你要插入的圖書信息████████████┃|n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★1.編號

      ★2.書名

      ★3.作者

      ★4.類型

      ★5.出版社

      ★(6)庫存

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▲▼●◆■★▼▲★■◆請依次輸入(用空格隔開)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if((pa=(Books *)malloc(sizeof(Books)))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(1);

      }

      while(scanf(“%d”,&pa->numbers)&&scanf(“%s”,pa->name)&&scanf(“%s”,pa->author)&&scanf(“%s”,pa->type)&&scanf(“%s”,pa->publisher)&&scanf(“%d”,&pa->cun)){

      getchar();

      system(“cls”);

      headbook=insertbook(headbook,pa);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓恭喜你,插入成功▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      l=1;

      break;

      }

      if(l==0){

      tishi2();

      getchar();

      }

      }

      l=0;

      break;

      }

      case '2':{

      if(headstudent==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃

      ██████████學(xué)生鏈表為空,請先創(chuàng)建學(xué)生鏈表██████████ ┃n”);

      }

      else{

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃*****************************您享有的操作*******************************┃n”);

      printf(“ ┃************************************************************************┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃████████████請輸入你要插入的學(xué)生信息████████████┃|n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★1.學(xué)號★

      ★2.姓名★

      ★3.學(xué)院★

      ★4.身份證★

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▲▼●◆■★▼▲★■◆請依次輸入(用空格隔開)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if((pb=(Stus *)malloc(sizeof(Stus)))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(1);

      }

      while(scanf(“%d”,&pb->numbers)&&scanf(“%s”,pb->name)&&scanf(“%s”,pb->xueyuan)&&scanf(“%s”,pb->mark)){

      getchar();

      stu=chenwensousou21(chenwenxie2(),pb->numbers);

      if(stu!=NULL){

      free(pb);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓對不起,該學(xué)號已存在▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      l=1;

      system(“pause”);

      system(“cls”);

      break;

      }

      headstudent=insertstudent(headstudent,pb);

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓恭喜你,插入成功▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      l=1;

      break;

      }

      if(l==0){

      tishi2();

      getchar();

      }

      }

      l=0;

      break;

      }

      case '3':{

      if(headborrower==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃

      ██████████借閱鏈表為空,請先創(chuàng)建借閱鏈表██████████ ┃n”);

      }

      else{

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃*****************************您享有的操作*******************************┃n”);

      printf(“ ┃************************************************************************┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃████████████請輸入你要插入的借閱信息████████████┃|n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★★1.學(xué)號★★

      ★★2.書編★★

      ★★3.時間★★

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃***********請注意:(時間格式 年月日 比如1992年08月13日為920813)**********┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▲▼●◆■★▼▲★■◆請依次輸入(用空格隔開)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if((pc=(Borr *)malloc(sizeof(Borr)))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(1);

      }

      while(scanf(“%d”,&pc->stu)&&scanf(“%d”,&pc->book)&&scanf(“%d”,&pc->times)){

      if(yanzheng2(chenwenxie3(),pc->book)==0){

      free(pc);

      break;

      }

      stu=chenwensousou21(chenwenxie2(),pc->stu);

      if(stu==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓對不起,該學(xué)號不存在▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      free(pc);

      system(“pause”);

      system(“cls”);

      break;

      }

      if(chenwensousou11(chenwenxie1(),pc->book)==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓對不起,該書編不存在▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      free(pc);

      system(“pause”);

      system(“cls”);

      break;

      }

      book=chenwensousou11(chenwenxie1(),pc->book);

      book->cun--;

      getchar();

      if(headyuyue!=NULL)

      yu=chenwensousou32(headyuyue,pc->book);

      if(yu!=NULL&&headyuyue!=NULL){

      headyuyue=deleteborrower1(yuyuexie(),pc->book);

      if(headyuyue!=NULL)

      yuyuedu(headyuyue);

      else{

      qingkong4();

      }

      }

      headborrower=insertborrower(headborrower,pc);

      if(headbook!=NULL)

      chenwendu1(headbook);

      if(headborrower!=NULL)

      chenwendu3(headborrower);

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓恭喜你,插入成功▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      l=1;

      break;

      }

      if(l==0){

      tishi2();

      getchar();

      }

      }

      l=0;

      break;

      }

      }

      }

      else{

      tishi2();

      while(choice1!='n'){

      scanf(“%c”,&choice1);

      }

      }

      if(choice1=='0'){

      break;

      }

      }

      }

      break;

      case '3':

      system(“cls”);

      {

      while(n==0)

      {

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃*****************************您享有的操作*******************************┃n”);

      printf(“ ┃************************************************************************┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃████████████請輸入你要刪除的借閱信息████████████┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃ ★(0)返回上級

      ★(1)刪除圖書信息

      ★(2)刪除學(xué)生信息

      ★(3)刪除借閱信息 ┃n ”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▉▉▉▉▉▉▉▉▉▉▉▉▉●●●請輸入選擇●●●▉▉▉▉▉▉▉▉▉▉▉▉┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%c”,&choice2)&&choice2>='0'&&choice2<='3')

      {

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice2)

      {

      case '0':

      system(“cls”);

      break;

      case '1':

      {

      if(headbook==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓圖書鏈表為空,請先創(chuàng)建圖書鏈表〓〓〓〓〓〓〓〓〓〓┃n”);

      }

      else

      {

      system(“cls”);

      while(n==0)

      {

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃*****************************您享有的操作*******************************┃n”);

      printf(“ ┃************************************************************************┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃━━━━━━━━━━━請輸入你要刪除的圖書信息的━━━━━━━━━━━━┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★0.返回上級

      ★1.編號

      ★2.書名

      ★3.位置

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▉▉▉▉▉▉▉▉▉▉▉▉▉●●●請輸入選擇●●●▉▉▉▉▉▉▉▉▉▉▉▉┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if((pa=(Books *)malloc(sizeof(Books)))==NULL)

      {

      printf(“Not able to allocate memory.n”);

      exit(1);

      }

      if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='3')

      {

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice1)

      {

      case '0':

      system(“cls”);

      break;

      case '1':

      if(headbook==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      tishi1();

      printf(“ ┃

      輸入編號●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%d”,&pa->numbers))

      {

      getchar();

      pa=chenwensousou11(headbook,pa->numbers);

      }

      else

      {

      getchar();

      pa=NULL;

      }

      break;

      case '2':

      if(headbook==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      tishi1();

      printf(“ ┃

      輸入書名●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%s”,pa->name))

      {

      getchar();

      pa=chenwensousou15(headbook,pa->name);

      }

      else

      {

      getchar();

      pa=NULL;

      }

      break;

      case '3':

      if(headbook==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      tishi1();

      printf(“ ┃

      輸入位置●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%d”,&pa->sum))

      {

      getchar();

      pa=chenwensousou13(headbook,pa->sum);

      }

      else

      {

      getchar();

      pa=NULL;

      }

      break;

      }

      if(choice1=='0')

      {

      break;

      }

      if(pa==NULL)

      {

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓沒有找到你想刪除的信息〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      }

      else

      {

      if(headbook==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃◆◆◆◆◆◆◆◆◆◆◆◆你要刪除的信息是這些嘛?◆◆◆◆◆◆◆◆◆◆◆◆┃n”);

      printf(“ ┣━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┫n”);

      printf(“ ┃

      ①編號┃

      ②書名┃

      ③作者 ┃n”);

      printf(“ ┣━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫n”);

      printf(“ ┃ %21d ┃ %21s┃ %20s ┃n”,pa->numbers,pa->name,pa->author);

      printf(“ ┣━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━┳━━━━━┫n”);

      printf(“ ┃

      ④類型┃

      ⑤出版社┃

      ⑥位置┃

      ⑦庫存量┃n”);

      printf(“ ┣━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━╋━━━━━┫n”);

      printf(“ ┃ %23s┃ %21s┃%10d┃%10d┃n”,pa->type,pa->publisher,pa->sum,pa->cun);

      printf(“ ┣━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━┻━━━━━┫n”);

      printf(“ ┃

      ★(0)不刪除,返回上級

      ★(1)刪除

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%c”,&choice2)&&choice2=='0'){

      system(“cls”);

      break;

      }

      if(choice2!='1'){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓你的輸入有誤,此信息未刪除〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      system(“pause”);

      system(“cls”);

      break;

      }

      headbook=deletebook1(headbook,pa->numbers);

      if(headbook!=NULL)

      chenwendu1(headbook);

      if(headborrower!=NULL)

      headborrower=deleteborrower1(headborrower,pa->numbers);

      if(headborrower!=NULL)

      chenwendu3(headborrower);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓恭喜你,刪除成功〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      }

      }

      else

      {

      tishi2();

      while(choice1!='n')

      scanf(“%c”,&choice1);

      }

      }

      }

      break;

      }

      case '2':

      {

      if(headstudent==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      }

      else

      {

      system(“cls”);

      while(n==0)

      {

      tishi1();

      printf(“ ┃━━━━━━━━━━━━請輸入你要刪的學(xué)生信息的━━━━━━━━━━━┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★0.返回上級

      ★1.學(xué)號

      ★2.名字

      ★3.位置

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      請輸入選擇●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if((pb=(Stus *)malloc(sizeof(Stus)))==NULL)

      {

      printf(“Not able to allocate memory.n”);

      exit(1);

      }

      if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='3')

      {

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice1)

      {

      case '0':

      system(“cls”);

      break;

      case '1':

      if(headstudent==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      tishi1();

      printf(“ ┃

      輸入學(xué)號●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%d”,&pb->numbers))

      {

      getchar();

      pb=chenwensousou21(headstudent,pb->numbers);

      }

      else

      {

      getchar();

      pb=NULL;

      }

      break;

      case '2':

      if(headstudent==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      tishi1();

      printf(“ ┃

      輸入名字●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%s”,pb->name))

      {

      getchar();

      pb=chenwensousou22(headstudent,pb->name);

      }

      else

      {

      getchar();

      pb=NULL;

      }

      break;

      case '3':

      if(headstudent==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      tishi1();

      printf(“ ┃

      輸入位置●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%d”,&pb->sum))

      {

      getchar();

      pb=chenwensousou23(headstudent,pb->sum);

      }

      else

      {

      getchar();

      pb=NULL;

      }

      break;

      }

      if(choice1=='0')

      {

      break;

      }

      if(pb==NULL)

      {

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓對不起,沒有找到你想刪除的信息▓▓▓▓▓▓▓▓▓▓▓┃n”);

      }

      else

      {

      if(headstudent==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃◆◆◆◆◆◆◆◆◆◆◆◆你要刪除的信息是這些嘛?◆◆◆◆◆◆◆◆◆◆◆◆┃n”);

      printf(“ ┣━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━┫n”);

      printf(“ ┃

      學(xué)號

      姓名

      學(xué)院

      位置 ┃n”);

      printf(“ ┣━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━━╋━━━━━┫n”);

      printf(“ ┃%18d┃ %17s┃ %19s┃ %8d ┃n”,pb->numbers,pb->name,pb->xueyuan,pb->sum);

      printf(“ ┣━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━━┻━━━━━┫n”);

      printf(“ ┃

      ★(0)不刪除,返回上級

      ★(1)刪除

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%c”,&choice2)&&choice2=='0'){

      system(“cls”);

      break;

      }

      if(choice2!='1'){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“

      ┃▓▓▓▓▓▓▓▓▓▓▓你的輸入有誤,此信息未刪除▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      system(“pause”);

      system(“cls”);

      break;

      }

      headstudent=deletestudent1(headstudent,pb->numbers);

      if(headstudent!=NULL)

      chenwendu2(headstudent);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓恭喜你,刪除成功〓〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      }

      }

      else

      {

      tishi2();

      while(choice1!='n')

      scanf(“%c”,&choice1);

      }

      }

      }

      break;

      }

      case '3':

      {

      if(headborrower==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      }

      else

      {

      system(“cls”);

      while(n==0)

      {

      tishi1();

      printf(“ ┃━━━━━━━━━━━━請輸入你要刪的借閱信息的━━━━━━━━━━━┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★0.返回上級

      ★1.學(xué)號

      ★2.書編

      ★3.位置

      ★4.時間

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃*******請注意:(時間格式 年月日 比如1992年08月13日 為 920813)*********┃ n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      請輸入選擇●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if((pc=(Borr *)malloc(sizeof(Borr)))==NULL)

      {

      printf(“Not able to allocate memory.n”);

      exit(1);

      }

      if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='4')

      {

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice1)

      {

      case '0':

      system(“cls”);

      break;

      case '1':

      if(headborrower==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      tishi1();

      printf(“ ┃

      輸入學(xué)號●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%d”,&pc->stu))

      {

      getchar();

      pc=chenwensousou31(headborrower,pc->stu);

      }

      else

      {

      getchar();

      pc=NULL;

      }

      break;

      case '2':

      if(headborrower==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      tishi1();

      printf(“ ┃

      輸入編號●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%d”,&pc->book))

      {

      getchar();

      pc=chenwensousou32(headborrower,pc->book);

      }

      else

      {

      getchar();

      pc=NULL;

      }

      break;

      case '3':

      if(headborrower==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      tishi1();

      printf(“ ┃

      輸入位置●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%d”,&pc->sum))

      {

      getchar();

      pc=chenwensousou33(headborrower,pc->sum);

      }

      else

      {

      getchar();

      pc=NULL;

      }

      break;

      case '4':

      if(headborrower==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      system(“cls”);

      tishi1();

      printf(“ ┃

      輸入時間●●●●●●

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃********請注意:(時間格式 年月日 比如1992年08月13日 為 920813)********┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%d”,&pc->times))

      {

      getchar();

      pc=chenwensousou34(headborrower,pc->times);

      }

      else

      {

      getchar();

      pc=NULL;

      }

      break;

      }

      if(choice1=='0')

      {

      break;

      }

      if(pc==NULL)

      {

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓對不起,沒有找到你想刪除的信息▓▓▓▓▓▓▓▓▓▓▓┃n”);

      }

      else

      {

      if(headborrower==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓鏈表為空,請先創(chuàng)建鏈表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      break;

      }

      if(choice1=='2'||choice1=='3'){

      system(“cls”);

      pb=chenwensousou21(headstudent,pc->stu);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃◆◆◆◆◆◆◆◆◆◆◆◆你要刪除的信息是這些嘛?◆◆◆◆◆◆◆◆◆◆◆◆┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      姓名:”);

      printf(“

      %20s

      ┃n”,pb->name);

      printf(“ ┣━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━┫n”);

      printf(“ ┃

      學(xué)號

      書編

      時間

      位置

      ┃n”);

      printf(“ ┣━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━╋━━━━━━━┫n”);

      printf(“ ┃ %16d ┃ %16d ┃ %14d ┃%13d ┃n”,pc->stu,pc->book,pc->times,pc->sum);

      printf(“ ┣━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━┻━━━━━━━┫n”);

      pa=chenwensousou11(headbook,pc->book);

      printf(“ ┃

      %20s

      ┃n”,pa->name);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★(0)不刪除,返回上級

      ★(1)刪除

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%c”,&choice2)&&choice2=='0'){

      getchar();

      system(“cls”);

      break;

      }

      if(choice2!='1'){

      getchar();

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓你的輸入有誤,此信息未刪除〓〓〓〓〓〓〓〓〓〓〓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      system(“pause”);

      system(“cls”);

      break;

      }

      getchar();

      book=chenwensousou11(chenwenxie1(),pc->book);

      book->cun++;

      headborrower=deleteborrower2(headborrower,pc->stu);

      if(headborrower!=NULL)

      chenwendu3(headborrower);

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓恭喜你,刪除成功〓〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      }

      else{

      pc=pc->next;

      while(pc!=NULL){

      headbook=chenwenxie1();

      book=chenwensousou11(headbook,pc->book);

      book->cun++;

      system(“cls”);

      pb=chenwensousou21(headstudent,pc->stu);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃◆◆◆◆◆◆◆◆◆◆◆◆你要刪除的信息是這些嘛?◆◆◆◆◆◆◆◆◆◆◆◆┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      姓名:”);

      printf(“

      %20s

      ┃n”,pb->name);

      printf(“ ┣━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━┫n”);

      printf(“ ┃

      學(xué)號

      書編

      時間

      位置

      ┃n”);

      printf(“ ┣━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━╋━━━━━━━┫n”);

      printf(“ ┃ %16d ┃ %16d ┃ %14d ┃%13d ┃n”,pc->stu,pc->book,pc->times,pc->sum);

      printf(“ ┣━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━┻━━━━━━━┫n”);

      pa=chenwensousou11(headbook,pc->book);

      printf(“ ┃

      %20s

      ┃n”,pa->name);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★(0)不刪除,返回上級

      ★(1)刪除

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%c”,&choice2)&&choice2=='0'){

      getchar();

      system(“cls”);

      pc=pc->next;

      continue;

      }

      if(choice2!='1'){

      getchar();

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓你的輸入有誤,此信息未刪除〓〓〓〓〓〓〓〓〓〓〓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      pc=pc->next;

      system(“pause”);

      system(“cls”);

      continue;

      }

      getchar();

      headborrower=deleteborrower2(headborrower,pc->stu);

      if(headborrower!=NULL)

      chenwendu3(headborrower);

      if(headbook!=NULL)

      chenwendu1(headbook);

      pc=pc->next;

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓恭喜你,刪除成功〓〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      }

      }

      }

      }

      else

      {

      tishi2();

      while(choice1!='n')

      scanf(“%c”,&choice1);

      }

      }

      }

      break;

      }

      }

      if(choice2=='0')

      {

      break;

      }

      }

      else

      {

      tishi2();

      while(choice2!='n')

      scanf(“%c”,&choice2);

      }

      }

      break;

      }

      case '4':

      bianli(headbook,headstudent,headborrower);

      break;

      case '5':

      paixu(headbook,headstudent,headborrower);

      break;

      case '6':

      sousuo(headbook,headstudent,headborrower);

      break;

      case '7':

      system(“cls”);

      while(1){

      tishi1();

      printf(“ ┃

      請輸入新密碼●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      scanf(“%s”,ppp);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃

      請再次輸入密碼●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      scanf(“%s”,p);

      if(strcmp(ppp,p)==0){

      mimadu(p);

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓密碼修改成功〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      getchar();

      break;

      }

      else{

      system(“cls”);

      tishi1();

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓兩次密碼不同,修改失敗▓▓▓▓▓▓▓▓▓▓▓▓ ┃n”);

      getchar();

      while(1){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃

      ★(0)返回上級

      ★(1)繼續(xù)修改

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      請輸入選擇●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      if(scanf(“%c”,&choice2)&&choice2>='0'&&choice2<='1'){

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice2){

      case '0':

      system(“cls”);

      break;

      case '1':

      system(“cls”);

      break;

      }

      }

      else{

      tishi2();

      while(choice2!='n'){

      scanf(“%c”,&choice2);

      }

      }

      if(choice2=='0'||choice2=='1'){

      break;

      }

      }

      if(choice2=='0'){

      break;

      }

      }

      }

      break;

      case '8':

      system(“cls”);

      while(1)

      {

      tishi1();

      printf(“ ┃

      ★(0).返回上級

      ★(1).保存圖書信息

      ★(2).保存學(xué)生信息

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★(3).保存借閱信息

      ★(4).保存所有信息

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      請輸入選擇●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='4'){

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice1){

      case '0':

      system(“cls”);

      break;

      case '1':

      system(“cls”);

      if(headbook==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓圖書鏈表為空,請先創(chuàng)建圖書鏈表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      break;

      }

      chenwendu1(headbook);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存圖書鏈表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      system(“pause”);

      system(“cls”);

      break;

      case '2':

      system(“cls”);

      if(headstudent==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓學(xué)生鏈表為空,請先創(chuàng)建學(xué)生鏈表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      break;

      }

      chenwendu2(headstudent);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存學(xué)生鏈表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      system(“pause”);

      system(“cls”);

      break;

      case '3':

      system(“cls”);

      if(headborrower==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓借閱鏈表為空,請先創(chuàng)建借閱鏈表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      break;

      }

      chenwendu3(headborrower);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存借閱鏈表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      system(“pause”);

      system(“cls”);

      break;

      case '4':

      system(“cls”);

      if(headbook==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓圖書鏈表為空,請先創(chuàng)建圖書鏈表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      }

      else{

      chenwendu1(headbook);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存圖書鏈表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      }

      if(headstudent==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓學(xué)生鏈表為空,請先創(chuàng)建學(xué)生鏈表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      }

      else{

      chenwendu2(headstudent);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存學(xué)生鏈表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      }

      if(headborrower==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓借閱鏈表為空,請先創(chuàng)建借閱鏈表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      }

      else{

      chenwendu3(headborrower);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存借閱鏈表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      }

      system(“pause”);

      system(“cls”);

      break;

      }

      }

      else{

      tishi2();

      while(choice1!='n'){

      scanf(“%c”,&choice1);

      }

      }

      if(choice1=='0')

      break;

      }

      break;

      case '9':

      system(“cls”);

      qingkong();

      break;

      }

      }

      else{

      tishi2();

      while(choice!='n'){

      scanf(“%c”,&choice);

      }

      }

      if(choice=='0'){

      break;

      }

      }

      }

      else{

      tishi2();

      j--;

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃ ▓▓▓▓▓▓▓▓▓▓▓▓★你還有%3d次機(jī)會★▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃”,j);

      printf(“

      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      請輸入密碼●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      while(choice!='n'){

      scanf(“%c”,&choice);

      }

      if(j==0){

      system(“cls”);

      getchar();

      return;

      }

      }

      if(choice=='0'){

      break;

      }

      } } void youke(){ int n=0,l=0,xue=1;char choice,ppp[40],ch,pp[40],p[40],choice2,cw;Books *headbook=chenwenxie1(),*pa=NULL;Stus *headstudent=chenwenxie2(),*pb=NULL,*p1;Borr *headborrower=chenwenxie3(),*pc=NULL,*yu;Borr *headyuyue=yuyuexie();system(“cls”);if(chenwenxie2()==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓對不起,學(xué)生現(xiàn)在不能登錄▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      return;} while(xue!=0){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃

      ★★(0).返回上級★★

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      請輸入學(xué)號●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if(scanf(“%d”,&xue)){

      getchar();

      if(xue==0){

      system(“cls”);

      return;

      }

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃

      ★ ★ ★請輸入登錄密碼(初始密碼為身份證號碼)

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      scanf(“%s”,ppp);

      getchar();

      p1=chenwensousou21(chenwenxie2(),xue);

      if(p1==NULL){

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓對不起,該學(xué)號不存在▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      continue;

      }

      if(p1->numbers==xue&&strcmp(ppp,p1->mark)==0){

      break;

      }

      else{

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓★★密碼錯誤★★▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      continue;

      }

      }

      else{

      system(“cls”);

      system(“cls”);

      scanf(“%c”,&ch);

      while(ch!='n'){

      scanf(“%c”,&ch);

      }

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓★★對不起,學(xué)號不能為字符,請輸入數(shù)字★★▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      } } system(“cls”);

      while(n==0){

      tishi1();

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃████████████████歡迎學(xué)生進(jìn)入██████████████┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★(0)返回上級

      ★(1)遍歷

      ★(2)搜索

      ★(3)排序

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★(4)借書預(yù)約

      ★(5)修改密碼

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      請輸入選擇●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      l++;

      if(scanf(“%c”,&choice)&&choice>='0'&&choice<='5'){

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice)

      {

      case '0':

      system(“cls”);

      break;

      case '1':

      bianli(headbook,chenwenxie22(),headborrower);

      break;

      case '2':

      sousuo(headbook,headstudent,headborrower);

      break;

      case '3':

      paixu(headbook,headstudent,headborrower);

      break;

      case '4':

      if(headyuyue==NULL){

      yu=(Borr *)malloc(sizeof(Borr));

      headyuyue=yu,yu->sum=0,yu->front=NULL,yu->next=NULL;

      }

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃*****************************您享有的操作*******************************┃n”);

      printf(“ ┃************************************************************************┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃█████████████請輸入你要預(yù)約的信息█████████████┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★★1.書編★★

      ★★2.時間★★

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃***********請注意:(時間格式 年月日 比如1992年08月13日為920813)**********┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▲▼●◆■★▼▲★■◆請依次輸入(用空格隔開)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      if((yu=(Borr *)malloc(sizeof(Borr)))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(1);

      }

      yu=(Borr *)malloc(sizeof(Borr));

      yu->stu=xue,yu->sum=headyuyue->sum+1;

      while(scanf(“%d”,&yu->book)&&scanf(“%d”,&yu->times)){

      if(chenwensousou11(chenwenxie1(),yu->book)==NULL){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓對不起,該書編不存在▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      free(pc);

      system(“pause”);

      system(“cls”);

      break;

      }

      getchar();

      headyuyue=insertborrower(headyuyue,yu);

      yuyuedu(headyuyue);

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓恭喜你,預(yù)約成功▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

      l=1;

      break;

      }

      if(l==0){

      tishi2();

      getchar();

      }

      l=0;

      break;

      case '5':

      system(“cls”);

      while(1){

      tishi1();

      printf(“ ┃

      請輸入新密碼●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      scanf(“%s”,pp);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃

      請再次輸入密碼●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      scanf(“%s”,p);

      if(strcmp(pp,p)==0){

      pb=chenwensousou21(headstudent,xue);

      strcpy(pb->mark,p);

      chenwendu2(headstudent);

      system(“cls”);

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓密碼修改成功〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

      getchar();

      break;

      }

      else{

      system(“cls”);

      tishi1();

      printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓兩次密碼不同,修改失敗▓▓▓▓▓▓▓▓▓▓▓▓ ┃n”);

      getchar();

      while(1){

      printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ ┃

      ★(0)返回上級

      ★(1)繼續(xù)修改

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      請輸入選擇●●●●●●

      ┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

      if(scanf(“%c”,&choice2)&&choice2>='0'&&choice2<='1'){

      }

      break;

      }

      }

      else{

      scanf(“%c”,&cw);

      if(cw!='n'){

      tishi2();

      while(cw!='n'){

      scanf(“%c”,&cw);

      }

      continue;

      }

      switch(choice2){

      case '0':

      system(“cls”);

      break;

      case '1':

      system(“cls”);

      break;

      }

      }

      else{

      tishi2();

      while(choice2!='n'){

      scanf(“%c”,&choice2);

      }

      }

      if(choice2=='0'||choice2=='1'){

      break;

      } } if(choice2=='0'){

      break;} }

      tishi2();

      while(choice!='n'){

      scanf(“%c”,&choice);

      }

      }

      if(choice=='0'){

      break;

      } } } Books* buildbookslist(){ Books *head=NULL,*p,*tail,*begin;int n=sizeof(Books),num;if((begin=(Books *)malloc(n))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(1);} head=begin,begin->front=NULL,begin->sum=0;if((p=(Books *)malloc(n))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(1);} begin->next=p,p->front=begin, p->next=NULL;head=begin;p->sum=1;while(1){

      system(“cls”);

      tishi1();

      printf(“ ┃

      ★0.返回上級

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★1.編號

      ★2.書名

      ★3.作者

      ★4.類型

      ★5.出版社

      ★(6)庫存

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▲▼●◆■★▼▲★■◆請依次輸入(用空格隔開)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      while(scanf(“%d”,&num)==0){

      getchar();

      system(“cls”);

      tishi2();

      tishi1();

      printf(“ ┃

      ★0.返回上級

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★1.編號

      ★2.書名

      ★3.作者

      ★4.類型

      ★5.出版社

      ★(6)庫存

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▲▼●◆■★▼▲★■◆請依次輸入(用空格隔開)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      }

      if(num==0){

      p->front->next=NULL,tail=p->front;

      system(“cls”);

      getchar();

      free(p);

      return head;

      }

      if(yanzheng(head,num)){

      if(scanf(“%s%s%s%s%d”,p->name,p->author,p->type,p->publisher,&p->cun)){

      p->numbers=num;

      begin->sum++;

      getchar();

      tail=p;

      if((p=(Books *)malloc(n))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(0);

      }

      tail->next=p,p->front=tail,p->next=NULL,p->sum=p->front->sum+1;

      }

      else{

      tishi2();

      getchar();

      }

      } } getchar();return head;} Stus* buildstudentlist(){ Stus *head,*tail,*p,*begin;int num;int n=sizeof(Stus);if((begin=(Stus *)malloc(n))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(1);} head=begin;

      if((p=(Stus *)malloc(n))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(1);} begin->sum=0,begin->front=NULL;begin->next=p,tail=p,p->next=NULL,p->front=begin;head=begin;

      p->sum=1;while(1){

      system(“cls”);

      tishi1();

      printf(“ ┃

      ★0.返回上級★

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★1.學(xué)號★

      ★2.姓名★

      ★3.學(xué)院★

      ★4.身份證 ★

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▲▼●◆■★▼▲★■◆請依次輸入(用空格隔開)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      while(scanf(“%d”,&num)==0){

      getchar();

      system(“cls”);

      tishi2();

      tishi1();

      printf(“ ┃

      ★0.返回上級★

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃

      ★★1.學(xué)號★★

      ★★2.姓名★★

      ★★3.學(xué)院★★

      ┃n”);

      printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

      printf(“ ┃▲▼●◆■★▼▲★■◆請依次輸入(用空格隔開)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

      printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

      }

      if(num==0){

      p->front->next=NULL,tail=p->front;

      free(p);

      getchar();

      system(“cls”);

      return head;

      }

      if(yanzheng1(head,num)){

      if(scanf(“%s%s%s”,p->name,p->xueyuan,p->mark)){

      p->numbers=num;

      begin->sum++;

      getchar();

      tail=p;

      if((p=(Stus *)malloc(n))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(1);

      }

      tail->next=p,p->front=tail,tail=p,p->next=NULL,p->sum=p->front->sum+1;

      }

      else{

      tishi2();

      getchar();

      }

      } } getchar();return head;} Borr* buildborrowerlist(){ Borr *head,*tail,*p,*begin;Stus *stu;Books *book;int n=sizeof(Borr),num;if((begin=(Borr *)malloc(n))==NULL){

      printf(“Not able to allocate memory.n”);

      exit(1);

      下載圖書管理系統(tǒng)與習(xí)題作業(yè)講解要點(diǎn)word格式文檔
      下載圖書管理系統(tǒng)與習(xí)題作業(yè)講解要點(diǎn).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        圖書管理系統(tǒng)

        經(jīng)過大學(xué)四年理論課程的學(xué)習(xí),以及校內(nèi)校外的實(shí)踐,極大的豐富了自身的理論基礎(chǔ),并且也具備了一些處理簡單問題的能力,但即將踏上社會的我深知這還遠(yuǎn)遠(yuǎn)不夠,因此我利用了畢業(yè)設(shè)計的......

        圖書管理系統(tǒng)說明

        圖書管理系統(tǒng)設(shè)計說明書(上) 2009-02-12 18:10閱讀:3,614 摘 要: 介紹了信息中心圖書管理系統(tǒng)數(shù)據(jù)庫的設(shè)計。該系統(tǒng)是運(yùn)行在學(xué)校內(nèi)的圖書管理系統(tǒng),實(shí)現(xiàn)了圖書資料的計算機(jī)管理和......

        VB圖書管理系統(tǒng)

        圖書管理系統(tǒng)的設(shè)計與實(shí)現(xiàn) 目錄 一、序言····························································......

        智能圖書管理系統(tǒng)

        目錄 1.采訪管理子系統(tǒng) ............................................................................................................ 3 2.編目管理子系統(tǒng) ................

        圖書管理系統(tǒng)答案

        圖書管理系統(tǒng)答案 1.B2.D3.D4.C5.C6.A7.B8.A9.A10.B11.B12.B13.C 14.B15.D 16.C 17.B 18.D 19.C 20.C 21.A 22.C 23.A 24.B 25.A 26.B 27.B 28.B 29.D 30.A 31.A 32.B 33.A 3......

        圖書管理系統(tǒng)實(shí)驗范文

        小型圖書管理系統(tǒng) 試驗?zāi)康?采用C/S模式完成一個小型的圖書管理系統(tǒng);完成需求分析所有流程。 問題及算法描述 完成一個小型圖書管理系統(tǒng),功能要求如下: 1) 能夠通過書籍基本信......

        圖書管理系統(tǒng)心得

        為期兩個星期的c#圖書管理系統(tǒng)實(shí)習(xí)終于結(jié)束了,總算松了一口氣,在這短短的兩周時間內(nèi)承受了很大的壓力現(xiàn)在終于能夠得到“釋放”了,感覺到很輕松?;仡欉@兩周所做過的工作和努力......

        圖書管理系統(tǒng)(五篇模版)

        課程設(shè)計任務(wù)書一、題目:二、課程設(shè)計班級及小組成員: 三、課程設(shè)計起止時間: 四、原始數(shù)據(jù)及主要任務(wù): 1、系統(tǒng)分析與設(shè)計:對系統(tǒng)進(jìn)行調(diào)研,詳細(xì)分析系統(tǒng),設(shè)計出圖書管理系統(tǒng)網(wǎng)絡(luò)版......