版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 學(xué) 院: 專 業(yè): 姓 名: 學(xué) 號: 指導(dǎo)老師: 目錄一題目要求3二需求分析3三總體設(shè)計4四詳細(xì)設(shè)計4 4.1 主函數(shù) 4 4.2各功能模塊設(shè)計5 4.2.1信息輸入模塊5 4.2.2 信息查找模塊6 4.2.3 新物資入庫模塊8 4.2.4 領(lǐng)料模塊8 4.2.5 打印功能模塊8 4.2.6采用文件來存儲數(shù)據(jù)信息9五上機(jī)操作10六總結(jié)13附錄 14物資管理系統(tǒng)一 題目要求請設(shè)計一個物資管理系統(tǒng),要求主程序中應(yīng)提供文字交互菜單界面,要求包含以下幾個功能模塊: 信息輸入模塊input():建立物資管理數(shù)據(jù)總文件,完成對物資原庫存信息的錄入,并存放到指定文件中(pro.dat) 信息查找模塊s
2、earch():采用如下方式進(jìn)行查找,若找到,則輸出該物資的相關(guān)信息;沒有則給出提示信息。()按產(chǎn)品名稱查詢()進(jìn)貨日期查詢并統(tǒng)計。()按產(chǎn)品名稱和規(guī)格查詢并統(tǒng)計。 新物資入庫模塊insert():在原數(shù)據(jù)文件中插入新物資的信息。 領(lǐng)料模塊lend():查找所領(lǐng)取物資的信息,滿足領(lǐng)料的要求,請登記領(lǐng)取物資名稱,日期,數(shù)量(領(lǐng)料后修改) 打印功能模塊printf()(1)打印領(lǐng)料單()打印物資庫存清單?!咎崾尽拷⑷缦陆Y(jié)構(gòu)體:struct dateint year ;int month ; int day;struct productchar p_name20;物資名稱long int p_nu
3、m7;物資編號char size4;物資規(guī)格struct date in date;進(jìn)貨日期 long int max_s;最大庫存量long int min_s;最小庫存量long int real_s;實(shí)際庫存量struct product*next;結(jié)點(diǎn)指針struct l_prochar p_name 20;物資名稱 struct date l_date;領(lǐng)料日期 long int total ;領(lǐng)料數(shù)量 struct l_pro*next;結(jié)點(diǎn)指針;二 需求分析根據(jù)題目要求,由于物資信息是存放在文件中,所以提供文件的輸入,輸出等操作在程序中需要瀏覽物資的需要瀏覽物資信息,應(yīng)提供顯示,
4、查找等操作;另外還應(yīng)提供鍵盤選擇菜單實(shí)現(xiàn)功能選擇。三 總統(tǒng)設(shè)計根據(jù)上面的分析及題目要求可以分為以下六個模塊。物資管理系統(tǒng)商品種類輸入商品查詢模塊商品信息輸入商品領(lǐng)取模塊打印商品信息系統(tǒng)推出 圖(1)系統(tǒng)模塊圖四 詳細(xì)設(shè)計(1)主函數(shù):主函數(shù)一般是設(shè)計簡潔,只提供輸入,處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。其中流程圖如圖(2) menu() /*主函數(shù)*/ int n,w1;do puts(ttt*menu*nn); puts(ttt 1.enter new datann);/*輸入數(shù)據(jù)*/ puts(ttt 2.search menunn);/*查找信息*/ puts(ttt
5、 3.insert new datann);/*插入新數(shù)據(jù)*/ puts(ttt 4.lend datann);/*領(lǐng)料數(shù)據(jù)*/ puts(ttt 5.print datann);/*打印*/ puts(ttt 6.exit);/*退出*/ puts(nttt*n); printf(please choose the number 1-6: bb); scanf(%d,&n); if(n6) w1=1;getchar(); else w1=0; while(w1=1);switch(n) case 1:enter();break; case 2:search();break; case 3:i
6、nsert();break; 輸入n,判斷m 是否是1到6?開始 case 4:lend();break; case 5:print();break; n case 6:exit(0); y顯示一系列功能選項(xiàng)main() menu();根據(jù)n值調(diào)用各功能模塊函數(shù) 結(jié)束 (2)各功能模塊設(shè)計 圖(2)主函數(shù)流程圖1信息輸入模塊:主要是為了輸入商品類型,名稱,數(shù)量,型號,日期,最大,最小,真實(shí)庫存量,并存放在指定的文件(pro.dat)中。enter()/*信息輸入模塊*/開始int i,n; printf(nhow many products do you want to input(0-%d)
7、?:,n-1); scanf(%d,&n);輸入用戶要輸入學(xué)生記錄的個數(shù)n printf(nenter data now!nn); for(i=0;in;i+) printf(please input the %dth products data:n,i+1);i從0到n1調(diào)用輸入函數(shù)input(i) input(i); if(i!=0)save(n); printf_back();i!=0嗎?yninput(int i) printf(nname(1-20letter):);返回主菜單 scanf(%s,&proi.p_name);保存調(diào)用函數(shù)save(n) printf(nnumber(1
8、-7letter):); scanf(%d,&proi.p_num); printf(nsize(1-4letter):);結(jié)束 scanf(%s,&proi.size); printf(ndate(*.*.*):); 圖(3)信息輸入模塊 scanf(%d.%d.%d,&proi.in_date.year,&proi.in_date.month,&proi.in_date.day); printf(min_s real_s max_s:); scanf(%d %d %d,&proi.min_s,&proi.real_s,&proi.max_s);printf_data(int i) prin
9、tf(nnametnumttsizetdatettmin real maxn);printf(%st%dtt%st%d.%d.%dt%d-%d-%d,proi.p_name,proi.p_num,proi.size,proi.in_date.year,proi.in_date.month,proi.in_date.day,proi.min_s,proi.real_s,proi.max_s);printf_back()printf(nnsuccessful!nttthank you!n); getch(); menu(); 2查詢模塊search()/*信息查找模塊*/int n,w2; do
10、puts(ttt*search menu*nn); puts(ttt1.search by name); puts(ttt2.search by data); puts(ttt3.search by name and size); puts(ttt4.exit); puts(nttt*n); printf(choose the number to search 1-4: bb);開始 scanf(%d,&n); if(n4) w2=1;getchar();選擇查詢模式:1。按名稱查找2。按日期查找3。按名稱和規(guī)格查找 else w2=0; while(w2=1); switch(n) case
11、 1:search_by_name();break; case 2:search_by_date();break; case 3:search_by_nameandsize();break; 是否找到 case 4:getch();menu(); yn提示沒有找到顯示找到的記錄search_by_name()/*按名稱查找*/int j,n,m=0;char a20; n=load(); printf(ninput the products namenname:);結(jié)束 scanf(%s,a); for(j=0;jn;j+)圖(4)查找模塊 if(strcmp(a,proj.p_name)=0
12、) m+; printf_data(j); printf(nthis is the %dth product you have searched!,m);getch();menu();struct s_date/*按日期查找*/int year; int month; int day;s;search_by_date()int j,n,m=0; n=load(); printf(ninput the date(*.*.*)ndate:); scanf(%d.%d.%d,&s.year,&s.month,&s.day); for(j=0;jn;j+)if(s.year=proj.in_date.
13、year)&(s.month=proj.in_date.month)&(s.day=proj.in_date.day) m+; printf_data(j); printf(nthis is the %dth product you have searched!,m);getch();menu();search_by_nameandsize()/*按名稱和規(guī)格查找*/int j,n,m=0;char a20,b4; n=load(); printf(ninput the products namenname:); scanf(%s,a); printf(ninput the products
14、sizensize:); scanf(%s,b); for(j=0;jn;j+) if(strcmp(a,proj.p_name)=0)&(strcmp(b,proj.size)=0) m+; printf_data(j); printf(nthis is the %dth product you have searched!,m);getch();開始menu();調(diào)用加載函數(shù)n=load()并計算可以記錄個數(shù)n3新物資入庫模塊 insert()/*新物資入庫模塊*/int n,c;輸入新入庫物資的信息 n=load(); puts(ninput one data:n); do是否保存 in
15、put(n); printf_data(n);yn printf(nnare you sure?n1).suren2).cancel and againn3).back without save bb);是否重新輸入 scanf(%d,&c);ny結(jié)束 if(c=1)save(n+1);printf_back(); else if(c=3)menu(); while(c=2);min_s,&proi.real_s,&proi.max_s); 圖(5)新物資入庫模塊4.領(lǐng)料模塊lend()/*領(lǐng)料模塊*/int j,n; n=load(); printf(nplease check the pr
16、oducts data you lend!); printf(nname(1-20letter) size(1-4letter) date amountn);scanf(%s%s%d.%d.%d%d,&check.p_name,&check.size,&check.l_date.year,&check.l_date.month,&check.l_date.day,&check.total); for(j=0;jn;j+)if(strcmp(check.p_name,proj.p_name)=0)&(strcmp(check.size,proj.size)=0)&(check.l_date.ye
17、ar=proj.in_date.year)&(check.l_date.month=proj.in_date.month)&(check.l_date.day=proj.in_date.day)&(check.total=proj.real_s) proj.real_s-=check.total; save(proj.real_s); printf_data(j); printf_back(); else printf(erro!);5打印模塊print()/*打印模塊*/int i,n; n=load(); for(i=0;in;i+) printf_data(i); getch(); me
18、nu();6.采用文件來存儲數(shù)據(jù)信息#includesave(int n) file*fp; int k; if(fp=fopen(pro.dat,wb)=null) printf(ncannot open file!n); return null; for(k=0;kn;k+) if(prok.real_s!=0) if(fwrite(&prok,sizeof(struct product),1,fp)!=1) printf(文件書寫錯誤!n); fclose(fp);load() file*fp; int k; if(fp=fopen(pro.dat,rb)=null) printf(n不
19、能打開文件!n); return null; for(k=0;!feof(fp);k+) fread(&prok,sizeof(struct product),1,fp); fclose(fp); return(k-1);五 上機(jī)操作圖(6)物資管理系統(tǒng)菜單圖(7)輸入兩組數(shù)據(jù)圖(8)查詢菜單圖(9)按名稱查詢圖(10)按進(jìn)貨日期查詢圖(11)按名稱和規(guī)格查詢圖(12)新物資入庫模塊圖(13)領(lǐng)料模塊圖(14)打印模塊六總結(jié)在學(xué)習(xí)c語言這門課時,由于是第一次接觸計算機(jī)的課程,而且這門課本來就很抽象,因此,上課時就覺得聽不懂.上程序設(shè)計課時也是一知半解,加上設(shè)計課的時間短,所以自己也沒有什么進(jìn)步
20、。老師布置課程設(shè)計后,通過不斷的學(xué)習(xí)與實(shí)踐,慢慢有了一些進(jìn)步,自己在綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的方面有了很大的提高。當(dāng)今科學(xué)技術(shù)發(fā)展日新日異,計算機(jī)應(yīng)用在生活中更是無處不在。作為一個大學(xué)來說掌握計算機(jī)技術(shù)是十分重要的?;仡欉@次的課程設(shè)計,我感慨良多。從題目到編程,再從編程到調(diào)試,我學(xué)到很多很多的的東西,通過這次課程設(shè)計,我懂得了學(xué)習(xí)計算機(jī)靠的是大量的上機(jī)編程調(diào)試,從中才可以不斷提高編程水平。在設(shè)計的過程中,我遇到了很多問題,這畢竟第一次做的,難免會遇到過各種各樣的問題,比如說結(jié)構(gòu)體、調(diào)試不成功 我很高興在我遇到困難的時候,同學(xué)們給了我很多的幫助,可以這么說,
21、沒有同學(xué)們,我現(xiàn)在肯定還沒有完成這次課程設(shè)計。在設(shè)計中遇到了很多編程問題,在同學(xué)的幫助下,最后都迎刃而解。最后,我要再次對各位同學(xué)和曹弘老師說一聲,謝謝大家的幫助,謝謝!附錄:源程序#include#include#define n 100struct dateint year; int month; int day;struct productchar p_name20;/*物資名稱*/ long int p_num7;/*物資編號*/ char size4;/*物資規(guī)格*/ struct date in_date;/*進(jìn)貨日期*/ long int max_s;/*最大庫存量*/ long
22、 int min_s;/*最小庫存量*/ long int real_s;/*實(shí)際庫存量*/ struct product *next;/*結(jié)點(diǎn)指針*/pron;menu() /*主函數(shù)*/ int n,w1; do puts(ttt*menu*nn); puts(ttt 1.enter new datann);/*輸入數(shù)據(jù)*/ puts(ttt 2.search menunn);/*查找信息*/ puts(ttt 3.insert new datann);/*插入新數(shù)據(jù)*/ puts(ttt 4.lend datann);/*領(lǐng)料數(shù)據(jù)*/ puts(ttt 5.print datann);/
23、*打印*/ puts(ttt 6.exit);/*退出*/ puts(nttt*n); printf(please choose the number 1-6: bb); scanf(%d,&n); if(n6) w1=1;getchar(); else w1=0; while(w1=1);switch(n) case 1:enter();break; case 2:search();break; case 3:insert();break; case 4:lend();break; case 5:print();break; case 6:exit(0); main() menu();ent
24、er()/*信息輸入模塊*/int i,n; printf(nhow many products do you want to input(0-%d)?:,n-1); scanf(%d,&n); printf(nenter data now!nn); for(i=0;in;i+) printf(please input the %dth products data:n,i+1); input(i); if(i!=0)save(n); printf_back();search()/*信息查找模塊*/int n,w2; do puts(ttt*search menu*nn); puts(ttt1.
25、search by name); puts(ttt2.search by data); puts(ttt3.search by name and size); puts(ttt4.exit); puts(nttt*n); printf(choose the number to search 1-4: bb); scanf(%d,&n); if(n4) w2=1;getchar(); else w2=0; while(w2=1); switch(n) case 1:search_by_name();break; case 2:search_by_date();break; case 3:sear
26、ch_by_nameandsize();break; case 4:getch();menu(); search_by_name()/*按名稱查找*/int j,n,m=0;char a20; n=load(); printf(ninput the products namenname:); scanf(%s,a); for(j=0;jn;j+) if(strcmp(a,proj.p_name)=0) m+; printf_data(j); printf(nthis is the %dth product you have searched!,m);getch();menu();struct
27、s_date/*按日期查找*/int year; int month; int day;s;search_by_date()int j,n,m=0; n=load(); printf(ninput the date(*.*.*)ndate:); scanf(%d.%d.%d,&s.year,&s.month,&s.day); for(j=0;jn;j+)if(s.year=proj.in_date.year)&(s.month=proj.in_date.month)&(s.day=proj.in_date.day) m+; printf_data(j); printf(nthis is the
28、 %dth product you have searched!,m);getch();menu();search_by_nameandsize()/*按名稱和規(guī)格查找*/int j,n,m=0;char a20,b4; n=load(); printf(ninput the products namenname:); scanf(%s,a); printf(ninput the products sizensize:); scanf(%s,b); for(j=0;jn;j+) if(strcmp(a,proj.p_name)=0)&(strcmp(b,proj.size)=0) m+; pr
29、intf_data(j); printf(nthis is the %dth product you have searched!,m);getch();menu();insert()/*新物資入庫模塊*/int n,c; n=load(); puts(ninput one data:n); do input(n); printf_data(n); printf(nnare you sure?n1).suren2).cancel and againn3).back without save bb); scanf(%d,&c); if(c=1)save(n+1);printf_back(); e
30、lse if(c=3)menu(); while(c=2);struct l_prochar p_name20; char size4; struct date l_date; long int total; struct l_pro *next;check;lend()/*領(lǐng)料模塊*/int j,n; n=load(); printf(nplease check the products data you lend!); printf(nname(1-20letter) size(1-4letter) date amountn);scanf(%s%s%d.%d.%d%d,&check.p_n
31、ame,&check.size,&check.l_date.year,&check.l_date.month,&check.l_date.day,&check.total); for(j=0;jn;j+)if(strcmp(check.p_name,proj.p_name)=0)&(strcmp(check.size,proj.size)=0)&(check.l_date.year=proj.in_date.year)&(check.l_date.month=proj.in_date.month)&(check.l_date.day=proj.in_date.day)&(check.total=proj.real_s) proj.real_s-=check.total; save(proj.real_s); printf_data(j); printf_back(); else printf(erro!);print()/*打印模塊*/int i,n; n=load(); for(i=0;in;i+) printf_data(i); getch(); menu();#includesave(int n) /*保存函數(shù),保存
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全國大學(xué)生廣告藝術(shù)大賽作品欣賞
- 《設(shè)立糧食倉庫的戰(zhàn)》課件
- 山東省濟(jì)寧市鄒城市2025屆高三第五次模擬考試語文試卷含解析
- 陜西省西安市碑林區(qū)鐵一中學(xué)2025屆高考數(shù)學(xué)三模試卷含解析
- 吉林省汪清縣六中2025屆高考數(shù)學(xué)三模試卷含解析
- 測量學(xué)基礎(chǔ)常識100個知識點(diǎn)
- 2025屆四川省會理縣第一中學(xué)高三沖刺模擬英語試卷含解析
- 甘肅省天水市甘谷縣第一中學(xué)2025屆高三第五次模擬考試英語試卷含解析
- 現(xiàn)代學(xué)徒制課題:中國特色學(xué)徒制實(shí)施現(xiàn)狀調(diào)查研究(附:研究思路模板、可修改技術(shù)路線圖)
- 《信使的信號通路》課件
- 公墓管理制度模板
- 補(bǔ)簽考勤管理制度
- 30萬噸級原油碼頭工程施工組織設(shè)計(沉箱重力墩式棧橋碼頭)
- 地力培肥合同協(xié)議書
- 第七單元《條形統(tǒng)計圖》(教案)-2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
- 2024年秋新人教版七年級上冊生物課件 第四章 生物分類的方法 第二節(jié) 從種到界
- 2024年廣東省廣州市市中考英語試卷真題(含答案)
- (施工方案)交通標(biāo)線及交通設(shè)施施工方案
- 盤扣支模架工程監(jiān)理細(xì)則
- 城鄉(xiāng)歷史文化保護(hù)傳承體系綜合管理平臺方案
- 2024年4月全國自學(xué)考試高級財務(wù)會計真題試題及答案
評論
0/150
提交評論