C語言圖書信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁
C語言圖書信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁
C語言圖書信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁
C語言圖書信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁
C語言圖書信息管理系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、課 程 報(bào) 告課 程 名 稱: 程序設(shè)計(jì)實(shí)踐 專 業(yè) 班 級 : 學(xué) 生 姓 名 : 學(xué) 號 : 任 課 教 師 : 閻娟 學(xué) 期 :2021-2021學(xué)年第二學(xué)期 課程報(bào)告任務(wù)書題 目圖書信息管理系統(tǒng)主要內(nèi)容開發(fā)一個(gè)圖書信息管理系統(tǒng),圖書信息包括:圖書編號、書名、作者、出版社、類別、出版時(shí)間、價(jià)格等根本信息也可以根據(jù)自己情況進(jìn)行擴(kuò)充,比方是否借出、庫存量等。使之能提供以下根本功能:1圖書信息錄入功能(圖書信息用文件保存)輸入2圖書信息瀏覽功能輸出3查詢功能(至少一種查詢方式)、排序功能(至少一種排序方式): 按書名查詢 按作者名查詢 = 3 * GB3 按照價(jià)錢排序 = 4 * GB3 按出

2、版時(shí)間排序等等4圖書信息的刪除與修改擴(kuò)展功能:可以按照自己的程度進(jìn)行擴(kuò)展。比方1簡單的權(quán)限處理 2報(bào)表打印功能3甚至根據(jù)自己情況,可以加上學(xué)生信息,并擴(kuò)充為圖書借閱系統(tǒng)。4模糊查詢 5綜合查詢 6統(tǒng)計(jì)功能 比方統(tǒng)計(jì)處某一類別的圖書信息 或 篩選出小于指定數(shù)量庫存的圖書信息等等,總之,可以根據(jù)自己需求進(jìn)行分析功能。任務(wù)要求一、提交材料應(yīng)包括:1系統(tǒng)源代碼 2課程報(bào)告二、整個(gè)設(shè)計(jì)過程具體要求1需求分析 要求學(xué)生對案例系統(tǒng)進(jìn)行分析,設(shè)計(jì)出需要完成的功能,完善各個(gè)模塊的調(diào)用關(guān)系;2設(shè)計(jì)過程 要求學(xué)生進(jìn)一步明確各模塊調(diào)用關(guān)系,進(jìn)一步完善模塊函數(shù)細(xì)節(jié)函數(shù)名、參數(shù)、返回值等3實(shí)現(xiàn)過程 要求學(xué)生養(yǎng)成良好的編碼

3、習(xí)慣、完成各個(gè)模塊并進(jìn)行測試,最終完成系統(tǒng)整體測試;4總結(jié)階段 按照要求完成系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)報(bào)告,并進(jìn)行總結(jié)、辯論。成績評定報(bào)告撰寫情況30分系統(tǒng)完成情況30分辯論情況40分總分內(nèi)容20分標(biāo)準(zhǔn)程度5分程序測試5分根本功能20分?jǐn)U展功能10分自述情況10分辯論情況30分成績評定教師:1 需求分析 隨著當(dāng)今社會開展,信息化水平逐步提高,對圖書管理有了新的要求,因此,編寫一個(gè)信息管理系統(tǒng)是十分必要的。為了滿足圖書管理的要求,通過計(jì)算機(jī)技術(shù)給圖書管理人員和讀者借、還書帶來便利。使用C語言編寫圖書管理系統(tǒng)。本系統(tǒng)主要實(shí)現(xiàn)圖書信息管理的功能,通過此系統(tǒng)可對圖書館庫存圖書信息進(jìn)行管理和維護(hù)操作。實(shí)現(xiàn)了圖書館內(nèi)

4、管理的一般功能,包括查詢、添加、刪除、修改圖書信息等。所設(shè)計(jì)的系統(tǒng)以菜單方式工作,為用戶提供清晰的使用提示,依據(jù)用戶的選擇來進(jìn)行各種處理,并且在此過程中能夠盡可能的兼容用戶使用過程中可能出現(xiàn)的異常情況。圖書信息包括編號、書名、作者、出版社、出版日期、價(jià)格、庫存數(shù)量等。圖書信息的錄入和顯示要求有一定的標(biāo)準(zhǔn)格式,錄入的圖書信息用文件形式保存,并可以對其進(jìn)行瀏覽、查詢、修改、刪除等根本操作。整個(gè)程序?qū)崿F(xiàn)鏈表操作,對圖書信息的操作逐個(gè)進(jìn)行,一個(gè)圖書信息的更改不應(yīng)影響其他的圖書記錄。 2 概要設(shè)計(jì) 1,設(shè)計(jì)表示:(1)、整個(gè)系統(tǒng)除了主函數(shù)外,另外還有各種功能子函數(shù),利用無限次循環(huán)語句while()和選擇

5、語句swithch()實(shí)現(xiàn)各個(gè)子函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項(xiàng)來調(diào)用相應(yīng)的函數(shù),以實(shí)現(xiàn)相應(yīng)的功能。主要實(shí)現(xiàn)了圖書的密碼設(shè)置、錄入、存儲、查詢、添加、刪除、修改、排序等功能。(2) void Main_menu();這是一個(gè)指針函數(shù),它主要實(shí)現(xiàn)了鏈表的創(chuàng)立,并且在創(chuàng)立過程中從文件讀取信息到鏈表中,以用于后面其他函數(shù)的操作。 (3) void mainFind()、void Delete()、void change()、void write()、struct node * read()、void Sorting_order()、#define S 123、#define A 123456這六個(gè)

6、函數(shù)時(shí)整個(gè)圖書管理系統(tǒng)的全部菜單函數(shù)。void Delete()、void change()、void write()、struct node * read()、在此可以選擇刪除、修改、保存,讀取圖書,排序等操作。void mainFind();為查詢系統(tǒng)的菜單,在此可以選擇按書名、編號、作者等方式進(jìn)行查詢圖書。#define S 123、#define A 123456分別是學(xué)生登陸和管理員登陸的密碼。 (4) void Print();這個(gè)函數(shù)為圖書的遍歷,瀏覽所有的圖書。 (5) void Find_booknumber()、void Find_bookname()、void Find_

7、author()、void Find_press();這三個(gè)函數(shù)為查詢圖書信息函數(shù),void Find_booknumber();按書號查詢、; void Find_bookname()按書名查詢、void Find_author() ;按作者查詢、void Find_press();按出版社查找。(6)void Sorting_booknumber(),按書號排序。void Sorting_price(),按價(jià)格排序。void Sorting_publication_date(),按出版日期排序。void Sorting_number(),按館藏?cái)?shù)量排序。 3實(shí)現(xiàn)注釋:這個(gè)實(shí)用的小型圖書管理

8、程序程序以鏈表操作完成,并實(shí)現(xiàn)文件信息的錄入和保存等功能。實(shí)現(xiàn)了圖書管理的根本功能,包括了圖書的錄入、存儲、查詢、添加、刪除、修改、排序等功能。查詢時(shí)可按書名、編號、作者等方式查詢,找到后輸出這本書的所有信息。在添加圖書信息后,還增加了鏈表排序操作,并輸出整個(gè)鏈表,方便用戶檢查信息。系統(tǒng)中主要的數(shù)據(jù)結(jié)構(gòu)就是圖書的信息,包含編號、書名、作者、出版社、出版時(shí)間、價(jià)格、館藏?cái)?shù)量等,在處理過程中各項(xiàng)可以作為一本圖書的不同屬性來進(jìn)行處理。3 詳細(xì)設(shè)計(jì)1-1 定義變量struct nodeint book_number;/書號char book_name25;/書名char press50;/出版社cha

9、r author20;/作者int price;/價(jià)格char publication_date20;/出版日期int number;/館藏?cái)?shù)量struct node * next;struct node * head = NULL;/在此定義一個(gè)全局變量head,其它函數(shù)就不需要再返回head;但這樣做,程序中的函數(shù)的可用性就不是太高int Total = 0; /記錄圖書總數(shù)1-2函數(shù)的定義void Creat();/錄入圖書信息struct node* Insert(struct node* p,struct node* head0);/插入圖書信息void Delete();/刪除圖書

10、信息void change();/修改圖書信息void write();/保存圖書信息struct node * read();/讀取圖書信息void amend(struct node * p);/輔助修改選項(xiàng) void Print();/遍歷圖書信息void Print_by_one(struct node * p);/單項(xiàng)遍歷void Main_menu();/登陸界面void Administrator_menu0();/第一次進(jìn)入系統(tǒng)的管理員菜單void Administrator_menu1();/第n次進(jìn)入系統(tǒng)的管理員菜單void Student_menu();/學(xué)生菜單void

11、 mainFind();/查找菜單void Find();/精確查找圖書void Find0();/模糊查找圖書int str(char a,char b);/模糊查找函數(shù)void Find_booknumber();/按書號查找void Find_booknumber0();/按書號模糊查找void Find_bookname();/按書名查找void Find_bookname0();/按書名模糊查找void Find_author(); /按作者查找void Find_author0(); /按作者模糊查找void Find_press(); /按出版社查找void Find_press

12、0(); /按出版社模糊查找char *transform(char str ,int n);/將整數(shù)轉(zhuǎn)化為字符存入字符數(shù)組返回void Sorting_order();/排序void Sorting_help(struct node* p1,struct node* p2);/輔助排序void Sorting_booknumber();/按書號排序void Sorting_price();/按價(jià)格排序void Sorting_publication_date();/按出版日期排序void Sorting_number();/按館藏?cái)?shù)量排序#define S 123 /學(xué)生密碼#define

13、A 123456/管理員密碼int T = 0;/選擇菜單1-3信息的錄入void Creat()/錄入圖書信息struct node *tail,*p;int book_number;/書號char choice;printf(該操作將去除書庫中所有書目的信息!n);printf(nttt你想繼續(xù)操作嗎?(Y/N)n);while(1)printf(請選擇:);if(scanf(%c,&choice)getchar();if(choice = Y|choice = y)system(cls);break;else if(choice = N|choice = n)system(cls);re

14、turn;elseprintf(請按要求輸入!n);continue;elseprintf(輸入的不是字母,請按照要求重新輸入!n);continue;printf(ttt提示:請輸入你要輸入的數(shù)據(jù),當(dāng)書號為數(shù)字0時(shí)結(jié)束!nn);printf(請輸入書號:);scanf(%d,&book_number);getchar();/吸收回車符,清空緩沖區(qū),這樣才能正常執(zhí)行清屏操作while(book_number != 0)p = (struct node *)malloc(sizeof(struct node);printf(請輸入書名:);scanf(%s,p-book_name);getcha

15、r();printf(請輸入作者:);scanf(%s,p-author);getchar();printf(請輸入出版社:);scanf(%s,p-press);getchar();printf(請輸入價(jià)格:);scanf(%d,&p-price);getchar();printf(請輸入出版時(shí)間:);scanf(%s,p-publication_date);getchar();printf(請輸入館藏?cái)?shù)量:);scanf(%d,&p-number);getchar();putchar(n);p-book_number = book_number;p-next = NULL;if(head

16、= NULL)head = tail = p;elsetail-next = p;tail = p;Total+;printf(請輸入書號:);scanf(%d,&book_number);printf(tttt圖書信息錄入成功!nn);1-4按編號查詢void Find_booknumber()/按書號查找int book_number;struct node *p1,*p2;printf(請輸入你要查找的圖書書號:);scanf(%d,&book_number);printf(ttn你要找的書為:n);printf(tt-n);printf(tt| 書號| 書名| 作者| 出版社| 價(jià)格|

17、 出版時(shí)間| 館藏?cái)?shù)量|n);printf(tt-n);if(head-book_number = book_number)Print_by_one(head);p1 = head;p2 = head-next;while(p2 != NULL)if(p2-book_number = book_number)Print_by_one(p2);p1 = p2;p2 = p2-next;elsep1 = p2;p2 = p2-next;1-5按出版時(shí)間排序void Sorting_publication_date()/按出版日期排序struct node *p1,*p2,*p3,*p4,*p5,*

18、p6,*p7;int x=1;for(p1=head;p1-next!=NULL;p4=p1,p1=p1-next)p3=p1;for(p2=p1-next,p5=p7=p2;p2!=NULL;p7=p2,p2=p2-next)if(strcmp(p3-publication_date , p2-publication_date) 0)p3=p2;p5=p7;if(p3!=p1)if(x&p1=head)p6=p1-next;p1-next=p3-next;p3-next=p6;p5-next=p1;head=p3;p1=p3;x=0;elsep6=p1-next;p1-next=p3-next;p3-next=p6;p4-next=p3;p5-next=p1;p1=p3;4 調(diào)試分析 問題1:對于函數(shù)是否返回函數(shù)值,并怎樣返回指針? 解答:對于void開頭的函數(shù),沒有返回值,在程序中可以直接調(diào)用。有指針返回值的函數(shù),直接返回指針名。問題2:在使用變量前,指針

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論