




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、成績南京工程學院課程設計說明書(論文)題 目 商品庫存管理系統(tǒng) 課 程 名 稱 高級語言程序設計(C) 院(系、部、中心) 通信工程 專 業(yè) 多媒體通信 班 級 媒通111 學 生 姓 名 張瑜 學 號 208110515 設 計 地 點 信息樓C216 指 導 教 師 袁璟 設計起止時間:2012年3月5日至2012年3月9日目 錄1課程設計題目12軟件功能描述13軟件總體設計231數(shù)據(jù)結(jié)構(gòu)描述與定義232模塊設計24測試結(jié)果與分析35課程設計總結(jié)3附錄:源程序清單41課程設計題目商品庫存管理系統(tǒng)要求:設計數(shù)據(jù)結(jié)構(gòu) 實現(xiàn)商品的入庫,出庫,查詢等功能,讀/寫文件功能(1, 整個系統(tǒng)均用C語言實
2、現(xiàn);(2, 可以利用數(shù)組、指針、鏈表來實現(xiàn)數(shù)據(jù)結(jié)構(gòu)設計;(3, 管理系統(tǒng)具有輸入、顯示、查詢、刪除、排序、插入、保存、讀取等基本功能;(4, 系統(tǒng)的各個功能模塊都用函數(shù)的形式來表示;(5, 可以將信息保存在文件中;(6, 可以將信息從文件中讀取出來。2軟件功能描述商品庫存管理系統(tǒng)軟件為人們提供了一個對商品價格信息了解,對商品的錄入錄出功能的使用提供了一個很好的平臺。并給人們友好的操作界面,功能需求描述如下:1、 提供系統(tǒng)主控平臺:人們進入系統(tǒng)主控平臺,界面中只顯示其含有的功能供人們選擇。當顧客在系統(tǒng)的提示下輸入選項代碼時,系統(tǒng)會調(diào)用相應的子程序供人們選擇的功能。因此,系統(tǒng)主控平臺應對系統(tǒng)提供的
3、功能用列表的方式清晰的給人們呈現(xiàn),并能正確的接受顧客的輸入。2、 創(chuàng)建商品信息文件:人們根據(jù)提示輸入商品編號、名稱、數(shù)量、保質(zhì)期、生產(chǎn)地、供貨商??梢淮涡暂斎攵鄺l商品信息記錄。系統(tǒng)將商品信息記錄存儲在系統(tǒng)磁盤的文件中,以便進行管理和查找。3、 添加商品信息:可在原有商品信息文件的基礎上增加新的商品信息記錄,并繼續(xù)保存在磁盤中。在增加新信息記錄的過程中,系統(tǒng)同樣會提示人們相應地填入商品的編號、名稱、數(shù)量、保質(zhì)期、生產(chǎn)地、供貨商。4、 刪除商品信息:根據(jù)人們輸入要進行刪除操作的商品的編號,如果在文件中有該商品的信息記錄存在,則將提示人們是否確認將其刪除,若確認,則將該編號所對應的名稱等各種信息在對
4、應文件中加以刪除。如果該商品不存在,則將顯示“該商品不存在!按任意鍵退出”。5、 修改商品信息:提示人們輸入要進行修改操作的商品編號,如果在文件中有該商品的信息記錄存在,則將提示人們輸入該編號的對應的商品編號、名稱、數(shù)量、報質(zhì)期、生產(chǎn)地、提供商等需要修改的選項,并將修改結(jié)果存儲于文件。6、 查詢商品信息:提示人們輸入要查詢的商品信息的編號,如果在磁盤文件中有對應商品信息記錄,則將查詢的商品的信息逐項列出。查詢完畢后可按任意鍵返回主鍵面。7、 顯示商品信息:當人們選擇了顯示商品信息該選項后,系統(tǒng)會自動進入一個界面,一個將之前存儲在這個文件中的所以商品的各項信息都逐個陳列出來的界面。8、 排序全部
5、信息:當人們選擇了排序全部信息該選項后,系統(tǒng)會自動進入一個界面,這個界面中的全部商品信息記錄都按照編號排列(從小到大),以便人們能更直觀的瀏覽到全部的商品信息。3軟件總體設計1、系統(tǒng)模塊結(jié)構(gòu)圖商品庫存管理創(chuàng)建商品信息添加商品信息刪除商品信息修改商品信息查詢商品信息顯示商品信息排序全部信息insert函數(shù)delet函數(shù)Modify函數(shù)find函數(shù)print函數(shù)sort函數(shù)-系統(tǒng)模塊結(jié)構(gòu)圖-開始輸入選項判斷選項2、模塊流程圖輸入操作選項結(jié)束輸出數(shù)據(jù)退出系統(tǒng)排序信息顯示全部信息查詢信息修改信息刪除信息添加信息對已有文件進行操作結(jié)束保存輸入各項信息結(jié)束創(chuàng)建新的商品信息-流程圖-3、程序中各項功能具體定
6、義:Elemsn *creatlink(void)創(chuàng)建鏈表信息void savelink(Elemsn *h)保存鏈表信息Elemsn *readlink(void)讀出已存文件信息Elemsn *insert(Elemsn *head)添加信息Elemsn *delet(Elemsn *p0)刪除信息Elemsn *modify(Elemsn *h)修改信息void find(Elemsn *h)查詢信息void print(Elemsn *p)顯示全部信息Elemsn *sort(Elemsn *head)排序信息4、程序中各項功能描述:一:頭文件,變量定義,函數(shù)的聲明,定義結(jié)構(gòu)體 定義結(jié)
7、構(gòu)體 typedef struct pro 為結(jié)構(gòu)體命名 Elemsn 對系統(tǒng)所使用的變量進行定義,對函數(shù)進行聲明二:商品庫存管理系統(tǒng)主界面設計 聲明函數(shù)void main(),對整個系統(tǒng)進行選擇使用說明三:創(chuàng)建商品庫存信息聲明函數(shù)creatlink(),用Elemsn *creatlink(void)創(chuàng)建鏈表信息四:商品庫存信息的添加聲明void insert()插入商品信息,先通過判斷該商品是否存在,若不存在則繼續(xù)輸入,若是存在則跳出,重新循環(huán)五:保存信息 void savelink()用于保存鏈表信息六:商品庫存信息的刪除聲明void delet()實現(xiàn)商品信息刪除,通過編號對比確定要刪
8、除的信息,然后用后一個替換掉。七:商品庫存信息的修改聲明void modify()為商品信息修改函數(shù),通過switch(n)設定所要修改的項目八:商品信息的查找聲明void find()為查找函數(shù),通過switch(item)設定用編號查找九:顯示全部商品信息 通過void print()函數(shù)輸出商品信息十:商品信息的排序聲明void sort()將錄入商品的編號按升序排列,用的是“冒泡排序法”實現(xiàn)排序31數(shù)據(jù)結(jié)構(gòu)描述與定義1、測量結(jié)構(gòu)體變量的大小# define N sizeof(struct pro)2、商品庫存信息數(shù)據(jù)結(jié)構(gòu)用于存放每個商品的編號、名稱、數(shù)量、保質(zhì)期、提供商和生產(chǎn)地各方面的
9、信息。typedef struct prochar number20;char name20;char amount20;char deadline20;char supply20;char add20;struct pro *next; Elemsn; /為結(jié)構(gòu)體命名/用結(jié)構(gòu)體定義商品信息。由于編號、名稱、價格、數(shù)量等是用于描述一個有機整體商品,為了表明這些字段不是孤立的,而是共同描述一個完整的事物,因此用結(jié)構(gòu)體這種形式來體現(xiàn)。32模塊設計1、模塊描述對若干商品價格,名稱,生產(chǎn)日期等記錄進行創(chuàng)建商品信息文件、增加商品信息、刪除商品信息、修改商品信息、查詢商品信息、顯示商品信息和排序全部信息幾
10、項功能管理。對文件有修改的操作,會將操作結(jié)果保存至文件,對于需要查看結(jié)果的操作,文件中的操作結(jié)果將會顯示于屏幕上。2、模塊設計總體框架圖:商品庫存管理系統(tǒng) 1.添加商品信息 2刪除商品信息3修改商品信息4查詢商品信息5.顯示商品信息6排序全部商品信息3、系統(tǒng)模塊流程圖商品庫存管理創(chuàng)建商品信息添加商品信息刪除商品信息修改商品信息查詢商品信息顯示商品信息排序全部信息-系統(tǒng)模塊結(jié)構(gòu)圖-4測試結(jié)果與分析執(zhí)行效果如下:1、主界面:2、輸入1后編輯的商品信息(創(chuàng)建新文件):3、保存文件后,進入商品庫存管理系統(tǒng):4、執(zhí)行1添加功能:5、執(zhí)行2刪除功能:6、執(zhí)行3修改功能:7、 執(zhí)行4查詢功能:8、 執(zhí)行5顯
11、示功能:9、 執(zhí)行6排序功能:5課程設計總結(jié)經(jīng)過一個禮拜的努力,終于,一個比較完整的小型商品庫存管理系統(tǒng)就創(chuàng)建完畢了。我們組創(chuàng)建的商品庫存管理,系統(tǒng)能實現(xiàn)商品信息的添加,刪除,修改,查詢,顯示,排序等簡單的基本功能。雖然這個課程設計是從寒假就開始準備了,但是說實話,在沒有人能商量的情況下,我對這個課程設計的題目還是一頭霧水的,雖然有上網(wǎng)查找資料并且問了家里有從事編程工作的親戚,但是,我想說請原諒我的遲鈍,因為我還是對課程設計無從下手。來了學校后,因為開學的第三周是課程設計,我特地去問了學姐有關(guān)課程設計的信息,并去圖書館查了大量資料??赡苁怯捎谫Y料的繁多重復吧,我沒辦法從里面理出頭緒,所以我讓組
12、長給我整理了資料,十分感謝我們組的組長,他給我整理的資料很簡練,在后面幾天的編程中,我有不懂并且解決不了的程序問題,他都很耐心的幫我解答,調(diào)試。從這次的課程設計,從組長那里,我想我學到了很多,從第一天的無從下手到最后檢驗是能運行簡單的功能操作,雖然程序還不是很完善,但是我還是感到很開心。老師檢驗的時候,問了我這樣一個問題,她問:你for循環(huán)體在哪里?好吧,我突然感覺很糟糕,因為我只看到一個分號,下面的printf并不是循環(huán)體,可是我不知道該怎么說,我想不起來那個叫什么,我那個程序里的for循環(huán)只是起到一個將信息全部讀完的作用。是的,很糟糕,真是太糟糕了。好吧,我承認,我的基本功真的不扎實。經(jīng)過
13、這次的課程設計,我覺得做一個系統(tǒng)真的需要很好的邏輯能力,并且你的基本功要扎實,不然大小錯誤會不斷。還有我發(fā)現(xiàn)當你只看不做的時候,覺得什么都不會,當你去嘗試了去討論了去做出結(jié)果了,可能結(jié)果不是很如人意,但是你會收獲很多很多。我很幸運我能有這樣一次機會,對老師來說可能做的很糟,但是對我來說已經(jīng)是個很大的突破了,因為我動手做了,動腦想了,還去討論了,可以說是沒什么遺憾了吧,唯一感到很遺憾的是一周的時間真的是太少了。我想在以后在我學習了更多之后,我的程序會更好,到時候我希望自己能獨立寫出一個能運行的系統(tǒng)程序。附錄:源程序清單#include stdio.h#include stdlib.h#inclu
14、de string.h# include conio.h# define N sizeof(struct pro) /測結(jié)構(gòu)體變量的大小/typedef struct prochar number20;char name20;char amount20;char deadline20;char supply20;char add20;struct pro *next;Elemsn; /為結(jié)構(gòu)體命名/Elemsn *creatlink(void) /創(chuàng)建鏈表信息/ Elemsn *p1,*p2,*head; /p1為前驅(qū),p2為后繼/ int i=1; char choice; head=p2=
15、(Elemsn *)malloc(N); head-next=NULL; choice=y; for(i=1;choice=y|choice=Y;i+) p1=(Elemsn *)malloc(N); printf(*nn); printf(請輸入第%d個商品的信息:n,i); printf(編號:); scanf(%s,p1-number); printf(n名稱:); scanf(%s,p1-name); printf(n數(shù)量:); scanf(%s,p1-amount); printf(n保質(zhì)期:); scanf(%s,p1-deadline); printf(n供貨商:); scanf
16、(%s,p1-supply); printf(n出產(chǎn)地:); scanf(%s,p1-add); p2-next=p1; p2=p1; printf(n是否繼續(xù)?(Y/N):); choice=getche(); printf(n); p2-next=NULL; return(head);void savelink(Elemsn *h) /保存鏈表信息/ Elemsn *p; FILE *fp; char fliename20; printf(n請輸入你要保存的文件名:); scanf(%s,fliename); if(fp=fopen(fliename,wt)=NULL) printf(寫文
17、件出錯,按任意鍵退出!); getche(); exit(1); for(p=h-next;p!=NULL;p=p-next) fprintf(fp,%s %s %s %s %s %sn,p-number,p-name,p-amount,p-deadline,p-supply,p-add); /向文件中寫入數(shù)據(jù)/ printf(文件已成功保存,按任意鍵返回!); getche(); fclose(fp);Elemsn *readlink(void) /讀出已保存文件的信息/ Elemsn *head,*p,*q; FILE *fp; char filename20; printf(n請輸入要打
18、開的文件名:); scanf(%s,filename); if(fp=fopen(filename,rt)=NULL) printf(讀文件出錯,按任意鍵退出!); getche(); exit(1); head=q=(Elemsn *)malloc(N); head-next=NULL; while(!feof(fp) p=(Elemsn *)malloc(N); /建立新鏈表,并從文件中讀出數(shù)據(jù)/ fscanf(fp,%s %s %s %s %s %sn,p-number,p-name,p-amount,p-deadline,p-supply,p-add); q-next=p; q=p;
19、q-next=NULL; fclose(fp); printf(文件信息已正確讀出,按任意鍵返回!); getch(); return head;Elemsn *insert(Elemsn *head) /插入信息/ Elemsn *p; p=(Elemsn *)malloc(N); printf(n請輸入要插入商品的信息:n); printf(n編號:); scanf(%s,p-number); printf(n名稱:); scanf(%s,p-name); printf(n數(shù)量:); scanf(%s,p-amount); printf(n保質(zhì)期:); scanf(%s,p-deadlin
20、e); printf(n供貨商:); scanf(%s,p-supply); printf(n出產(chǎn)地:); scanf(%s,p-add); if(head-next!=NULL) p-next=head-next; /插入數(shù)據(jù)操作代碼/ head-next=p; printf(n商品信息插入成功!按任意鍵繼續(xù)!); getche(); return head;Elemsn *delet(Elemsn *p0) /刪除信息/ char num20; Elemsn *p; char choice; if(p0-next=NULL) printf(該商品不存在!按任意鍵退出!); getch();
21、 exit(1); printf(n請輸入要刪除商品的編號:); scanf(%s,num); for(p=p0-next;strcmp(p-number,num)!=0;p0=p,p=p-next) ; /找到要刪除的商品的信息/ printf(你要刪除的信息如下,請確認是否刪除:n); printf(n編號:%s 名稱:%s 數(shù)量:%s 保質(zhì)期:%s 供貨商:%s 出產(chǎn)地:%snn,p-number,p-name,p-amount,p-deadline,p-supply,p-add); printf(n是Y,否N:); /顯示要刪除的商品的信息/ choice=getche(); if(c
22、hoice=Y|choice=y) p0-next=p-next; free(p); printf(n文件刪除成功!); printf(n按任意鍵結(jié)束!); getche(); return p0;Elemsn *modify(Elemsn *h) /修改信息/ char num20; Elemsn *p; char choice; printf(n請輸入要修改商品信息的編號:); scanf(%s,num); for(p=h;strcmp(p-number,num)!=0;p=p-next) ; /找到要修改的商品的信息/ while(1) printf(請輸入修改后商品的信息:n); pr
23、intf(編號:); scanf(%s,p-number); printf(n名稱:); scanf(%s,p-name); printf(n數(shù)量:); scanf(%s,p-amount); printf(n保質(zhì)期:); scanf(%s,p-deadline); printf(n供貨商:); scanf(%s,p-supply); printf(n出產(chǎn)地:); scanf(%s,p-add); printf(修改后商品信息如下:n); printf(n編號:%s 名稱:%s 數(shù)量:%s 保質(zhì)期:%s 供貨商:%s 出產(chǎn)地:%snn,p-number,p-name,p-amount,p-de
24、adline,p-supply,p-add); printf(n確認?是Y否N:); choice=getche(); if(choice=y|choice=Y) break; printf(n修改成功,按任意鍵繼續(xù)!); getche(); return h;void find(Elemsn *h) /查詢信息/ char num20; Elemsn *p; printf(n請輸入你要查找的商品的編號:); scanf(%s,num); for(p=h;strcmp(p-number,num)!=0;p=p-next) ; printf(你查找的商品信息如下:n); printf(n編號:%
25、s 名稱:%s 數(shù)量:%s 保質(zhì)期:%s 供貨商:%s 出產(chǎn)地:%snn,p-number,p-name,p-amount,p-deadline,p-supply,p-add); printf(按任意鍵繼續(xù)!); getche();void print(Elemsn *p) /顯示全部信息/ p=p-next; while(p!=NULL) printf(n編號:%s 名稱:%s 數(shù)量:%s 保質(zhì)期:%s 供貨商:%s 出產(chǎn)地:%sn,p-number,p-name,p-amount,p-deadline,p-supply,p-add); p=p-next; printf(n按任意鍵繼續(xù)!);
26、 getche();Elemsn *sort(Elemsn *head) Elemsn *q,*t,*p; p=head; t=NULL; while(t!=head-next) p=head; q=p-next; while(q-next!=t) if(strcmp(p-next-number,q-next-number)0) /*前結(jié)點和后結(jié)點比較大小*/p-next=q-next; q-next=q-next-next; p-next-next=q; p=p-next; q=p-next; t=q; printf(商品信息排序完畢,按任意鍵繼續(xù)!);getche();print(head); return(head); /*返回頭指針*/ void main() int choice=1,i,ok=1; /choice用于選擇對數(shù)據(jù)執(zhí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Linux系統(tǒng)管理與運用知識試題及答案
- 線下備考與軟件設計師考試的試題及答案
- 行政管理相關(guān)政策試題及答案詳解
- 河北省石家莊市第四十一中學2025年八年級數(shù)學第二學期期末監(jiān)測模擬試題含解析
- 軟件開發(fā)生命周期中的關(guān)鍵環(huán)節(jié)的試題及答案
- 法學概論話語權(quán)探討試題及答案
- 風險管理心理學試題及答案
- 準備2025年VB考試的試題及答案技巧
- 法學概論全面解讀與試題及答案
- 高考數(shù)學復習動態(tài)調(diào)整試題及答案
- 地理信息數(shù)據(jù)處理技能競賽試題
- Unit 4 Healthy food B Lets learn(教學設計)-2024-2025學年人教PEP版(2024)英語三年級下冊
- 2025屆湖南省雅禮中學高三第五次模擬數(shù)學試題
- 煤礦安全績效考核制度1
- 體育教育中的跨學科整合教學研究論文
- 高危藥物外滲處理流程
- 超星爾雅學習通《創(chuàng)新創(chuàng)業(yè)(同濟大學)》2025章節(jié)測試附答案
- 醫(yī)院無線網(wǎng)絡方案
- 水庫安全運行管理防汛知識培訓
- 基于高光譜成像的青稞品種鑒別和特征品質(zhì)無損檢測技術(shù)研究
- 2024年山東省政府采購評審專家考試真題100個題及答案
評論
0/150
提交評論