![數(shù)據(jù)結(jié)構(gòu)圖書管理系統(tǒng)(共15頁)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/e27932d9-ccc6-42aa-8457-d78703a5cfe1/e27932d9-ccc6-42aa-8457-d78703a5cfe11.gif)
![數(shù)據(jù)結(jié)構(gòu)圖書管理系統(tǒng)(共15頁)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/e27932d9-ccc6-42aa-8457-d78703a5cfe1/e27932d9-ccc6-42aa-8457-d78703a5cfe12.gif)
![數(shù)據(jù)結(jié)構(gòu)圖書管理系統(tǒng)(共15頁)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/e27932d9-ccc6-42aa-8457-d78703a5cfe1/e27932d9-ccc6-42aa-8457-d78703a5cfe13.gif)
![數(shù)據(jù)結(jié)構(gòu)圖書管理系統(tǒng)(共15頁)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/e27932d9-ccc6-42aa-8457-d78703a5cfe1/e27932d9-ccc6-42aa-8457-d78703a5cfe14.gif)
![數(shù)據(jù)結(jié)構(gòu)圖書管理系統(tǒng)(共15頁)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/e27932d9-ccc6-42aa-8457-d78703a5cfe1/e27932d9-ccc6-42aa-8457-d78703a5cfe15.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù) 據(jù) 結(jié) 構(gòu)課 程 設(shè) 計(jì) 說 明 書 學(xué)生姓名:學(xué) 號:學(xué) 院:專 業(yè):題 目:成績指導(dǎo)教師 年 月 日1 設(shè)計(jì)目的(小標(biāo)題黑體五號字)設(shè)計(jì)一個(gè)計(jì)算機(jī)管理系統(tǒng)完成圖書管理基本業(yè)務(wù)(數(shù)據(jù)可以存儲在一個(gè)數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)。2. 設(shè)計(jì)內(nèi)容和要求具體功能有:1)每種書的登記內(nèi)容包括書號、書名、著作者、出版單位、現(xiàn)存量和庫存量;2)對書號建立索引表(線性表)以提高查找效率;3)采編入庫:新購一種書,確定書號后,登記到圖書帳目表中,如果表中已有,則只將庫存量增加;4)借閱:如果
2、一種書的現(xiàn)存量大于0,則借出一本,登記借閱者的書證號和歸還期限,改變現(xiàn)存量;5)歸還:注銷對借閱者的登記,改變該書的現(xiàn)存量。3本設(shè)計(jì)所采用的數(shù)據(jù)結(jié)構(gòu)所用數(shù)據(jù)結(jié)構(gòu):線性表、查找、排序鏈表:用一組地址任意的存放線性表中的。以元素(的映象) + (指示后繼元素存儲位置)= 結(jié)點(diǎn)(表示 或 數(shù)據(jù)元素的映象)以“結(jié)點(diǎn)的序列”表示線性表稱作線性鏈表(單鏈表)單鏈表是一種鏈?zhǔn)酱嫒〉慕Y(jié)構(gòu),為找第 i 個(gè)必須先找到第 i-1 個(gè)數(shù)據(jù)元素。因此,查找第 i 個(gè)的基本操作為:移動(dòng),比較 j 和 i。(1)malloc(size)在內(nèi)存的區(qū)申請一個(gè)長度為size字節(jié)的連續(xù)空間。(2)calloc(n,size)在內(nèi)存
3、的區(qū)申請n個(gè)長度為size字節(jié)的連續(xù)空間,函數(shù)返回值為分配空間的首地址。若此函數(shù)未被成功執(zhí)行,函數(shù)返回值為0。(3)free(p)釋放由p所指向的存儲單元,而存儲單元的大小是最近一次調(diào)用malloc()或calloc()函數(shù)時(shí)所申請的。運(yùn)用了單鏈表的插入、刪除、排序、修改等一些操作!4 功能模塊詳細(xì)設(shè)計(jì)4.1 詳細(xì)設(shè)計(jì)思想(1) 基本思想:(2) 圖書信息錄入、圖書信息的查詢、圖書信息的排序、圖書信息的修改、圖書信息的刪除、圖書的借閱、圖書的歸還、退出圖書管理系統(tǒng)。(3) 程序中的主要函數(shù)有:void main() /主函數(shù)int CreateListR(LinkList *L) /尾插法建表
4、void LocateElem(LinkList *L) /查詢 int Sort(LinkList *L) /遞增有序排序(直接插入排序法)void Display(LinkList *L) /輸出排序結(jié)果ModifyList(LinkList *L) /修改int ListDelete(LinkList *L) /刪除 void Borrow(LinkList *L) /借閱void Return(LinkList *L) /歸還圖書信息的錄入添加圖書信息的查詢模塊圖書信息的排序模塊圖書信息的修改模塊圖書信息的刪除模塊圖書的借閱模塊圖書的歸還模塊退出圖書管理系統(tǒng)圖 書 管 理 系 統(tǒng)主 程
5、 序 模 塊4.2 核心代碼#include <stdio.h>#include <string.h>#include<stdlib.h>#include<malloc.h>typedef struct int num;char name20;char author20;char press20;int count;char price10; ElemType;typedef struct LNode/定義單鏈表結(jié)點(diǎn)類型ElemType data;struct LNode *next; LinkList;void InitList(LinkLis
6、t *L) /初始化線性表L = (LinkList *) malloc(sizeof(LinkList); /創(chuàng)建頭結(jié)點(diǎn)L->next = NULL;int CreateListR(LinkList *L) /尾插法建表int i, n;LinkList *s, *q, *p;p = L;while (p->next != NULL )p = p->next;printf("請輸入需要錄入的圖書信息的個(gè)數(shù):n=");scanf("%d", &n);for (i = 1; i < n + 1; i+) s = (LinkL
7、ist *) malloc(sizeof(LinkList);printf("書號 書名 作者 出版社名稱 存館數(shù)量 定價(jià)n");scanf("%d%s%s%s%d%s", &s->data.num, s->, s->data.author,s->data.press, &s->data.count, s->data.price);q = L->next;if (q = NULL ) p->next = s;p = s;p->next = NULL;printf(&q
8、uot;錄入成功!n");continue;while (q != NULL ) if (strcmp(s->, q->) = 0) printf("此圖書已存在!");printf("請重新輸入:n");scanf("%d%s%s%s%d%s", &p->data.num, p->,p->data.author, p->data.press, &p->data.count,p->data.price);q
9、= q->next;p->next = s;p = s;p->next = NULL;printf("錄入成功!n");return 0;void LocateElem(LinkList *L) /查詢LinkList *p = L->next; /p指向第一個(gè)數(shù)據(jù)結(jié)點(diǎn)int c;int x = 0;char name110, author110, press110;printf(" 1 按書名查詢:n");printf(" 2 按作者名查詢:n");printf(" 3 按出版社名稱:n"
10、);printf(" 4 返回n");printf(" 請選擇1-4進(jìn)行操作:n");scanf("%d", &c);if (c > 4 | c < 1) printf("您的輸入有誤!n");scanf("%d", &c);switch (c) case 1:printf("請輸入圖書書名: n");scanf("%s", name1);while (p != NULL ) if (strcmp(name1, p->da
11、) != 0) /查找圖書書名p = p->next;else printf("書號 書名 作者 出版社名稱 存館數(shù)量 定價(jià)n");printf("%dt%st%st%st%dt%s", p->data.num, p->,p->data.author, p->data.press, p->data.count,p->data.price);printf("n");p = p->next;x+;if (p = NULL && x = 0)pr
12、intf("對不起,不存在此圖書!n");break;case 2:printf("請輸入圖書作者:n");scanf("%s", author1);while (p != NULL ) if (strcmp(author1, p->data.author) != 0) /查找圖書作者p = p->next;else printf("書號 書名 作者 出版社名稱 存館數(shù)量 定價(jià)n");printf("%dt%st%st%st%dt%s", p->data.num, p->
13、,p->data.author, p->data.press, p->data.count,p->data.price);printf("n");p = p->next;x+;if (p = NULL && x = 0)printf("對不起,不存在此圖書!n");break;case 3:printf("請輸入圖書的出版社名稱: n");scanf("%s", press1);while (p != NULL ) if (strcmp(press1,
14、 p->data.press) != 0) /查找圖書出版社名稱p = p->next;else printf("書號 書名 作者 出版社名稱 存館數(shù)量 定價(jià)n");printf("%d %s %s %s %d %s",p->data.num, p->, p->data.author,p->data.press, p->data.count, p->data.price);printf("n");p = p->next;x+;if (p = NULL &&
15、amp; x = 0)printf("對不起!不存在此圖書n");break;case 4:break;int Sort(LinkList *L) /遞增有序排序(直接插入排序法)LinkList *p = L->next, *q, *r; /p指向第一個(gè)數(shù)據(jù)結(jié)點(diǎn)if (p != NULL ) /若原單鏈表中有一個(gè)或以上的數(shù)據(jù)結(jié)點(diǎn)r = p->next; /r保存*p結(jié)點(diǎn)直接后繼結(jié)點(diǎn)的指針p->next = NULL; /構(gòu)造只含一個(gè)數(shù)據(jù)結(jié)點(diǎn)的有序表p = r;while (p != NULL ) r = p->next; /r保存*p結(jié)點(diǎn)的直接后繼
16、結(jié)點(diǎn)的指針q = L;while (q->next != NULL && q->next->data.num < p->data.num)q = q->next; /在有序表中找插入*p的直接前驅(qū)結(jié)點(diǎn)*q的位置p->next = q->next; /將*p插入到*q之后q->next = p;p = r; /掃描原單鏈表余下的結(jié)點(diǎn)return 0;void Display(LinkList *L) /輸出排序結(jié)果LinkList *p = L->next;while (p != NULL ) printf("
17、書號 書名 作者 出版社名稱 存館數(shù)量 定價(jià)n");printf("%d t %s t %st %st%dt %s", p->data.num,p->, p->data.author, p->data.press, p->data.count,p->data.price);printf("n");p = p->next;int ModifyList(LinkList *L) /修改LinkList *p = L;char name110;printf("請輸入要修改的圖書的書
18、名:n");scanf("%s", name1);while (p != NULL ) if (strcmp(name1, p->) = 0) /查找所要修改的書名printf("請輸入修改后的信息!n");printf("書號 書名 作者 出版社名稱 存館數(shù)量 定價(jià)n");scanf("%d%s%s%s%d%s", &p->data.num, p->, p->data.author,p->data.press, &p-&g
19、t;data.count, p->data.price);printf("修改成功!n");return 0;p = p->next;printf("不存在此圖書n");return 0;int ListDelete(LinkList *L) /刪除LinkList *p = L->next, *q = L;char name110;if (p != NULL ) printf("請輸入要?jiǎng)h除的書名:");scanf("%s", name1);while (p->next != NULL &
20、amp;& strcmp(p->, name1) != 0) p = p->next;q = q->next;if (p->next != NULL ) /如果p此時(shí)不是最后一個(gè)節(jié)點(diǎn),說明此時(shí)已經(jīng)找到書q->next = p->next;printf("刪除成功!n");return 0;if (p->next = NULL && strcmp(name1, p->) != 0) /如果p此時(shí)為最后一個(gè)結(jié)點(diǎn)并且沒有找到與之相符的書名printf("你輸入的書
21、名不存在,請核實(shí)后重新輸入!n"); else q->next = NULL;printf("刪除成功!n");return 0;void Borrow(LinkList *L) /借閱LinkList *p = L->next;char name110;printf("請輸入要借閱的圖書的書名:n");scanf("%s", name1);while (p->next != NULL && strcmp(name1, p->) != 0)p = p->next
22、;if (p->next = NULL && strcmp(name1, p->) != 0)printf("此圖書不存在!n");else if (p->data.count < 1)printf("此書已借完!n");else if (strcmp(name1, p->) = 0) printf("借書成功!n");p->data.count-;void Return(LinkList *L) /歸還LinkList *p = L->ne
23、xt;char name110;printf("輸入歸還書的書名: n");scanf("%s", name1);while (p->next != NULL && strcmp(name1, p->) != 0)p = p->next;if (p->next = NULL && strcmp(name1, p->) != 0)printf("錯(cuò)誤!此圖書不存在!n");else if (strcmp(name1, p->) = 0) printf("該書歸還成功!n");p->data.count+;void menu() /菜單函數(shù)printf("- n");printf(" 歡迎光臨圖書管理系統(tǒng)! n");printf("- n");printf("1.圖書信息錄入添加功能:n")
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 4064-2:2024 EN Water meters for cold potable water and hot water - Part 2: Test methods
- 2025年度廠房施工合同糾紛解決協(xié)議(新版)
- 2025年度漁船租賃及船舶保險(xiǎn)風(fēng)險(xiǎn)評估與管理合同
- 2025年度金融中心保安服務(wù)合同范本
- 2025年度寵物行業(yè)標(biāo)準(zhǔn)化體系建設(shè)合同
- 2025年地面瞄準(zhǔn)設(shè)備、定位定向設(shè)備項(xiàng)目發(fā)展計(jì)劃
- 幼兒園農(nóng)業(yè)與自然知識教育計(jì)劃
- 非營利組織保安工作總結(jié)與志愿者管理計(jì)劃
- 班級學(xué)風(fēng)建設(shè)的探索與實(shí)踐計(jì)劃
- 班級建設(shè)與發(fā)展的長遠(yuǎn)規(guī)劃計(jì)劃
- 班主任工作培訓(xùn)內(nèi)容
- 手印鑒定書模板
- 某公司碼頭試運(yùn)行經(jīng)營方案
- 搬遷項(xiàng)目驗(yàn)收報(bào)告模板
- 2024年度中國郵政集團(tuán)公司縣分公司工作總結(jié)
- 部編人教版四年級下冊道德與法制全冊教案
- 綜合應(yīng)用能力事業(yè)單位考試(綜合管理類A類)試卷及解答參考(2025年)
- Unit1Lesson2HowDoWeLikeTeachers'Feedback-課件高中英語北師大版選擇性
- 2024年中科院心理咨詢師官方備考試題庫-上(單選題)
- 國學(xué)經(jīng)典校本課程設(shè)計(jì)
- 香港(2024年-2025年小學(xué)二年級語文)人教版摸底考試試卷(含答案)
評論
0/150
提交評論