圖書信息管理系統_第1頁
圖書信息管理系統_第2頁
圖書信息管理系統_第3頁
圖書信息管理系統_第4頁
圖書信息管理系統_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、黑龍江東方學院題目:教材管理系統設計學生姓名 張珂 學 號 15101133 專 業 軟件工程 班 級 軟件一班 學 部 計算機科學與電氣工程學部 目錄第1章 緒論11.1 設計目的11.2 內容與要求1第2章 系統總體設計22.1系統框圖22.2 系統功能描述22.3 開發環境介紹2第3章 系統詳細設計33.1系統流程圖33.2各個模塊功能描述33.3 主要算法描述43.4后臺數據庫設計4第4章 系統使用與測試6 4.1 系統使用說明64.2 系統運行結果6第5章 結論115.1系統主要知識點115.2系統難點與解決辦法115.3編程總結115.4系統分工115.5自評成績12第1章 緒論1

2、.1 設計目的設計目的本程序是為了課程設計準備。在熟悉C語言和數據結構的基礎下,完成了教材管理系統。本程序中涉及了結構體,和C語言文件等方面的知識。通過本程序的訓練,可以進一步了解C語言在文件操作有更深刻的了解,掌握單鏈表存儲實現對教材管理的原理,為進一步學習和進步打下基礎。設計的不同之處 在這次的程序設計中,我研究了圖書館的一些基本情況,例如,教材的作者,出版社,現存量等的輸入,輸出,同時我還在設計中進行了插入,修改等操作等,讓學習到的知識更加運用到實踐中。1.2 內容與要求1.了解教材的各種信息,然后確定教材管理系統要實現的功能,并對這些功能能否實現進行詳細的分析2.對要完成的教材的系統進

3、行信息采集和分析。對教材信息包括教材名、教材編號、所用冊數、所用班級等各項信息進行詳細分析。3.對教材管理系統的各個模塊進行劃分,確定各個模塊所要實現的功能。4.對教材管理系統模塊進行描述,確定各個模塊之間的關系。5.使用函數調用方式完成各模塊調用,采用文件讀取的方式完成數組存儲。程序在系統中以菜單方式工作,總體分為4個模塊。在設計中,運用了單鏈表。在單鏈表中進行了各種操作,包括,刪除,查找,修改。將所輸入的信息和記錄保存到與此程序同目錄下的library文件夾下。第2章 系統總體設計2.1系統設計的組成框圖。信息增加。教材信息的錄入添加教材信息的查詢模塊教材信息的排序模塊教材信息的修改模塊教

4、材信息的刪除模塊教材的借閱模塊教材的歸還模塊退出教材管理系統教材 管 理 系 統主 程 序 模 塊顯示信息模塊2.2 功能描述利用圖書信息主函數分別調用添加圖書信息子函數、刪除圖書信息子函數、查找圖書信息子函數、顯示所有圖書子函數2.3 開發環境介紹在熟悉C語言和數據結構的基礎下,完成了教材管理系統。本程序中涉及了結構體,和C語言文件等方面的知識。通過本程序的訓練,可以進一步了解C語言在文件操作有更深刻的了解,掌握單鏈表存儲實現對圖書信息管理的原理,為進一步學習和進步打下基礎。設計的不同之處 在這次的程序設計中,我研究了圖書的一些基本情況,例如,教材名、教材編號、所用冊數、所用班級等的輸入,輸

5、出,同時我還在設計中進行了插入,修改等操作等,讓學習到的知識更加運用到實踐中。第3章 系統詳細設計3.1程序設計流程圖是開始為讀寫的方式打開一個數據文件將文件的內容讀入,并存入新的單鏈表但用目錄菜單這個函數進入while(l)主循環程序輸入0到6中的一個選擇相應的操作輸入是否為0判讀輸入的是什么,調用相應的函數,完成相應功能是否已經存盤調用函數,進行文件寫數據結束是否否主程序流程圖如下3.2功能模塊設計所用數據結構:線性表、查找、排序鏈表:用一組地址任意的存儲單元存放線性表中的數據元素。以元素(數據元素的映象) + 指針(指示后繼元素存儲位置)= 結點(表示數據元素 或 數據元素的映象)以“結

6、點的序列”表示線性表稱作線性鏈表(單鏈表)單鏈表是一種鏈式存取的結構,為找第 i 個數據元素必須先找到第 i-1 個數據元素。因此,查找第 i 個數據元素的基本操作為:移動指針,比較 j 和 i。(1)malloc(size)在內存的動態存儲區申請一個長度為size字節的連續空間。(2)calloc(n,size)在內存的動態存儲區申請n個長度為size字節的連續空間,函數返回值為分配空間的首地址。若此函數未被成功執行,函數返回值為0。(3)free(p)釋放由指針p所指向的存儲單元,而存儲單元的大小是最近一次調用malloc()或calloc()函數時所申請的存儲空間。運用了單鏈表的插入、刪

7、除、排序、修改等一些操作!3.3主要算法描述在這個程序中,我運用了結構體,c語言文件讀寫,刪除,查詢和修改函數。在這個程序中,我使用了while循環,ifelse和選擇語句swicth。我借鑒了一些書上的函數,用來完成某個功能模塊的實現。在這個教材管理系統,只有一些相對簡單的數據結構的知識。只是在c語言的文件上,有一些問題,對這個文件的讀寫上我還有很多的不足。主函數的執行步驟是有很多的缺陷,需要在以后的中逐步的改善一下。第4章 系統使用與測試4.1使用說明本教材管理系統執行的過程是它首先以讀寫的方式打開數據文件,文件默認為在C盤下的people,若該文件不存在,則需要重新輸入文件。當進入教材管

8、理系統的目錄中,按鍵操作,從鍵盤中輸入0到6之間任何按鍵的數值,進行操作,就可檢測所有的程序了。4.2 系統運行結果主菜單顯示運行結果第5章 結論5.1系統中主要的知識點本程序中涉及了結構體,和C語言文件等方面的知識。5.2系統難點以及解決辦法在整個的測試中,開始是遇到了很多的錯誤,起初是一些表達式,語法的錯誤。我進行了修改工作。這些工作是簡單修改。但是在后來操作中又出現了沒對齊的錯誤。我還經常出現字符數組的問題。最后在老師提醒下改正了。5.3 編程總結在這個程序中,我運用了結構體,c語言文件讀寫,刪除,查詢和修改函數。在這個程序中,我使用了while循環,ifelse和選擇語句swicth。

9、我借鑒了一些書上的函數,用來完成某個功能模塊的實現。在這個教材管理系統,只有一些相對簡單的數據結構的知識。只是在c語言的文件上,有一些問題,對這個文件的讀寫上我還有很多的不足。主函數的執行步驟是有很多的缺陷,需要在以后的中逐步的改善一下。5.4系統的分工圖書管理系統管理信息錄入模塊、信息瀏覽模塊、更新記錄模塊、信息查詢模塊。信息錄入模塊又分為從文件中提取和從鍵盤中讀入兩個部分。信息瀏覽模塊分為輸出至屏幕和輸出至文件。更新記錄模塊分為刪除記錄修改記錄。信息查詢模塊分為按圖書號查詢和按學歷查詢。5.5自評成績通過本程序的訓練,可以進一步了解C語言在文件操作有更深刻的了解,掌握單鏈表存儲實現對圖書信

10、息管理的原理,為進一步學習和進步打下基礎。設計的不同之處 在這次的程序設計中,我研究了圖書的一些基本情況,例如,圖書學歷,工資,住址等的輸入,輸出,同時我還在設計中進行了插入,修改等操作等,讓學習到的知識更加運用到實踐中。 在這個教材管理系統,只有一些相對簡單的數據結構的知識。只是在c語言的文件上,有一些問題,對這個文件的讀寫上我還有很多的不足。主函數的執行步驟是有很多的缺陷,需要在以后的中逐步的改善一下。附 錄(1) 基本思想:(2) 圖書信息錄入、圖書信息的查詢、圖書信息的排序、圖書信息的修改、圖書信息的刪除、圖書的借閱、圖書的歸還、退出圖書管理系統。(3) 程序中的主要函數有:void

11、main() /主函數int CreateListR(LinkList *L) /尾插法建表void LocateElem(LinkList *L) /查詢 int Sort(LinkList *L) /遞增有序排序(直接插入排序法)void Display(LinkList *L) /輸出排序結果ModifyList(LinkList *L) /修改int ListDelete(LinkList *L) /刪除 void Borrow(LinkList *L) /借閱void Return(LinkList *L) /歸還/*程序源代碼*/#include <stdio.h>#i

12、nclude <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/定義單鏈表結點類型ElemType data;struct LNode *next; LinkList;void InitList(LinkList *L) /初始化線性表L->next = NULL;int Creat

13、eListR(LinkList *L) /尾插法建表int i, n;LinkList *s, *q, *p;p = L;while (p->next != NULL )p = p->next;printf("請輸入需要錄入的圖書信息的個數:n=");scanf("%d", &n);for (i = 1; i < n + 1; i+) s = (LinkList *) malloc(sizeof(LinkList);printf("書號 書名 作者 出版社名稱 存館數量 定價n");scanf("%

14、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("錄入成功!n");continue;while (q != NULL ) if (strcmp(s->, q->data.nam

15、e) = 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 = q->next;p->next = s;p = s;p->next = NULL;printf("錄入成功!n");return 0;

16、void LocateElem(LinkList *L) /查詢LinkList *p = L->next; /p指向第一個數據結點int c;int x = 0;char name110, author110, press110;printf(" 1 按書名查詢:n");printf(" 2 按作者名查詢:n");printf(" 3 按出版社名稱:n");printf(" 4 返回n");printf(" 請選擇1-4進行操作:n");scanf("%d", &am

17、p;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->) != 0) /查找圖書書名p = p->next;else printf("書號 書名 作者 出版社名稱 存館數量 定價n");pr

18、intf("%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)printf("對不起,不存在此圖書!n");break;case 2:printf("請輸入圖書作者:n");scanf("%s

19、", author1);while (p != NULL ) if (strcmp(author1, p->data.author) != 0) /查找圖書作者p = p->next;else printf("書號 書名 作者 出版社名稱 存館數量 定價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

20、("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, p->data.press) != 0) /查找圖書出版社名稱p = p->next;else printf("書號 書名 作者 出版社名稱 存館數量

21、定價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 && x = 0)printf("對不起!不存在此圖書n");break;case 4:break;int Sort(LinkList *L) /遞增有

22、序排序(直接插入排序法)LinkList *p = L->next, *q, *r; /p指向第一個數據結點if (p != NULL ) /若原單鏈表中有一個或以上的數據結點r = p->next; /r保存*p結點直接后繼結點的指針p->next = NULL; /構造只含一個數據結點的有序表p = r;while (p != NULL ) r = p->next; /r保存*p結點的直接后繼結點的指針q = L;while (q->next != NULL && q->next->data.num < p->data.

23、num)q = q->next; /在有序表中找插入*p的直接前驅結點*q的位置p->next = q->next; /將*p插入到*q之后q->next = p;p = r; /掃描原單鏈表余下的結點return 0;void Display(LinkList *L) /輸出排序結果LinkList *p = L->next;while (p != NULL ) printf("書號 書名 作者 出版社名稱 存館數量 定價n");printf("%d t %s t %st %st%dt %s", p->data.nu

24、m,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("請輸入要修改的圖書的書名:n");scanf("%s", name1);while (p != NULL ) if (strcmp(name1, p->data.

25、name) = 0) /查找所要修改的書名printf("請輸入修改后的信息!n");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);printf("修改成功!n");return 0;p = p->next;print

26、f("不存在此圖書n");return 0;int ListDelete(LinkList *L) /刪除LinkList *p = L->next, *q = L;char name110;if (p != NULL ) printf("請輸入要刪除的書名:");scanf("%s", name1);while (p->next != NULL && strcmp(p->, name1) != 0) p = p->next;q = q->next;if (p->n

27、ext != NULL ) /如果p此時不是最后一個節點,說明此時已經找到書q->next = p->next;printf("刪除成功!n");return 0;if (p->next = NULL && strcmp(name1, p->) != 0) /如果p此時為最后一個結點并且沒有找到與之相符的書名printf("你輸入的書名不存在,請核實后重新輸入!n"); else q->next = NULL;printf("刪除成功!n");return 0;void

28、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;if (p->next = NULL && strcmp(name1, p->) != 0)printf("此圖書不存

29、在!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->next;char name110;printf("輸入歸還書的書名: n");scanf("%s", name1);while (p->next != NULL && strcmp(name1, p->) != 0)p = p->next;if (p->next = NULL && strcmp(name

溫馨提示

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

評論

0/150

提交評論