版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 高級(jí)語言程序設(shè)計(jì)(1)課程設(shè)計(jì)</p><p><b> 1.程序設(shè)計(jì)說明書</b></p><p> 【設(shè)計(jì)題目】大學(xué)生超市商品信息管理系統(tǒng)</p><p><b> 【問題描述】</b></p><p> 大學(xué)生超市有N種商品,每種商品的信息用該軟件通過鍵盤敲入并以
2、文本文件方式存放在磁盤,內(nèi)容為五列:商品編號(hào)、商品名稱、商品產(chǎn)地、商品數(shù)量、商品單價(jià)。編寫一個(gè)程序,管理超市物品信息情況。</p><p><b> 【軟件功能】</b></p><p> 1. 通過此軟件可以直接錄入每種商品的信息并將其自動(dòng)保存到磁盤上;</p><p> 2. 可以對(duì)已錄入每種商品的信息進(jìn)行修改,并且修改完成后會(huì)將更改
3、后的信息情況自動(dòng)保存到原磁盤文件中;</p><p> 3. 可以進(jìn)行商品信息查詢以及瀏覽。</p><p><b> 【算法思想】</b></p><p> 構(gòu)造一個(gè)結(jié)構(gòu)體類型,其成員包括五項(xiàng):3個(gè)字符型數(shù)組,分別存放商品編號(hào)、商品名稱、商品產(chǎn)地;1個(gè)整型變量,存放商品數(shù)量;1個(gè)浮點(diǎn)型變量,存放商品單價(jià)。錄入各商品信息時(shí),通過循環(huán)語句將
4、商品信息輸入到結(jié)構(gòu)體中并寫入文本文件中,并存入磁盤。修改各物品信息時(shí),先將文件讀出到結(jié)構(gòu)體中,通過字符的比較查找所修改的商品所在處,如果沒有找到則輸出警告語句,找到后則通過輸入輸出函數(shù)進(jìn)行修改,并將修改過后的各個(gè)商品信息寫入文本文件中,并存入磁盤。 商品信息瀏覽時(shí),先將文件讀出到結(jié)構(gòu)體中,如果文件不存在則輸出警告語句,否則通過循環(huán)語句和輸出函數(shù)將結(jié)果顯示在屏幕上。</p><p> 商品信息查詢時(shí),先將文件讀出
5、到結(jié)構(gòu)體中,如果文件不存在則輸出警告語句,否則通過輸入函數(shù)直接輸入商品貨號(hào),通過條件語句找出該商品貨號(hào)信息并將輸出結(jié)果顯示在屏幕上。</p><p> 【模塊劃分及調(diào)用關(guān)系】</p><p> main 函數(shù)分別調(diào)用: input(); //新購物品錄入</p><p> correct(); //物品信息修改</p>
6、<p> lookup(); //物品信息查詢</p><p> scan(); //物品信息瀏覽</p><p> quit(); //程序退出</p><p> input 函數(shù)調(diào)用: save(); //數(shù)據(jù)存儲(chǔ)</p><p> correct
7、 函數(shù)調(diào)用: save(); //數(shù)據(jù)存儲(chǔ)</p><p> scan 函數(shù)調(diào)用: readfile(); //讀文件</p><p><b> 【模塊流程圖】</b></p><p><b> main函數(shù)</b></p><p><b>
8、 input函數(shù)</b></p><p><b> correct函數(shù)</b></p><p><b> lookup函數(shù)</b></p><p><b> scan函數(shù)</b></p><p><b> quit函數(shù)</b></
9、p><p><b> 【程序使用方法】</b></p><p> ?。?)執(zhí)行程序,按照界面提示進(jìn)行選擇。輸入 “1”,進(jìn)入商品添加。</p><p> ?。?)按照程序提示,分別輸入商品編號(hào)、商品名稱、商品產(chǎn)地、商品數(shù)量、商品價(jià)格。(注:這里默認(rèn)為有3個(gè)物品,可以通過宏定義進(jìn)行修改。)</p><p> ?。?)輸入成功
10、后,自動(dòng)返回主界面。輸入“4”,進(jìn)入商品信息瀏覽,程序自動(dòng)將各商品信息情況輸出到屏幕上。</p><p> ?。?)瀏覽成功后,自動(dòng)返回主界面。輸入“2”,進(jìn)入商品信息修改,按照提示進(jìn)行輸入。</p><p> (5)輸入成功后,自動(dòng)返回主界面。輸入“3”,進(jìn)入商品物品信息查詢,按照提示進(jìn)行輸入,程序?qū)⒁樵兊纳唐沸畔⑶闆r輸出到屏幕上。</p><p> ?。?)
11、查詢成功后,自動(dòng)返回主界面。輸入“5”,進(jìn)入程序退出,輸入“Y”退出程序,輸入“N”返回主界面。</p><p> 2.程序上機(jī)調(diào)試報(bào)告</p><p> 【語法錯(cuò)誤及其排除】</p><p> 調(diào)用fscanf()函數(shù)時(shí),忘記前面的文件指針;</p><p> If(strcmp(s1,s2)),少了括號(hào);</p>&
12、lt;p> ?。?)調(diào)用scanf()函數(shù)時(shí),字符型變量應(yīng)直接用數(shù)組名。</p><p> 【算法錯(cuò)誤及其排除】</p><p> (1)在結(jié)束一次循環(huán)時(shí)使用了break語句,終止了循環(huán)導(dǎo)致錯(cuò)誤,應(yīng)該使用continue語句;</p><p> ?。?)商品信息查詢時(shí),輸入商品編號(hào)id然后通過循環(huán)比較字符串是否相等,最后當(dāng)m==N-1時(shí),找不到對(duì)應(yīng)的id,
13、而不是m==N。</p><p><b> 3.程序測(cè)試結(jié)果</b></p><p><b> 【測(cè)試數(shù)據(jù)】</b></p><p> 001 山椒鳳爪 重慶 120 1.2</p><p> 002 脈動(dòng)飲料 北京 52 3.5&l
14、t;/p><p> 003 阿爾卑斯 上海 260 10.5</p><p><b> 【輸出結(jié)果】</b></p><p><b> 【收獲及體會(huì)】</b></p><p> 通過這次的課程設(shè)計(jì),一方面:在不斷的修改,編譯過程使我對(duì)c語言的一些語法規(guī)則更加深刻的理解與
15、認(rèn)識(shí),在這過程中也鍛煉了自己的邏輯思維,更是提高了自己做事的嚴(yán)謹(jǐn)性;另一方面:這次也是理論應(yīng)用于實(shí)踐的一次踐行,真正做到學(xué)有所用,對(duì)于word文檔的制作也是次練習(xí)。也相信經(jīng)過這次的課程設(shè)計(jì),自己在以后的學(xué)習(xí)生活中對(duì)待問題會(huì)更加的嚴(yán)謹(jǐn),也會(huì)更加注重理論應(yīng)用實(shí)際。</p><p><b> 源程序代碼</b></p><p> #include "stdio
16、.h" //預(yù)編譯命令</p><p> #include "stdlib.h" //預(yù)編譯命令</p><p> #include "string.h" //預(yù)編譯命令</p><p> #define N 3</p><p> struct information
17、 //定義商品信息的結(jié)構(gòu)體</p><p><b> {</b></p><p> char id[20]; //商品編號(hào)</p><p> char name[20]; //商品名稱</p><p> char produce[20]; //商品產(chǎn)地</p>
18、;<p> int num; //商品數(shù)量</p><p> float price; //商品價(jià)格</p><p> } goods[N];</p><p> /*******************************************************************/&
19、lt;/p><p> void save() //創(chuàng)建商品信息的文件 </p><p><b> {</b></p><p><b> int i;</b></p><p><b> FILE *fp;</b></p><p> i
20、f((fp=fopen("E:\\商品信息.txt","w"))==NULL)</p><p><b> {</b></p><p> printf("無法建立文件!請(qǐng)檢查是否E盤不存在!\n");</p><p> exit(0); //如果建立失敗,輸出警告信息,并自動(dòng)關(guān)
21、閉程序</p><p><b> } </b></p><p> for(i=0;i<N;i++)</p><p> fprintf(fp,"%-10s\t%-10s\t%-10s\t%-6d\t\t%-6f\n",goods[i].id,goods[i].name,goods[i].produce,g
22、oods[i].num,goods[i].price);//寫入文件</p><p> fclose(fp); //關(guān)閉文件,防止數(shù)據(jù)丟失</p><p><b> }</b></p><p> /***************************************************************/<
23、/p><p> void input() //商品信息錄入</p><p><b> {</b></p><p> void main();//對(duì)主函數(shù)進(jìn)行聲明</p><p><b> int i;</b></p><p><b> FILE *fp;
24、</b></p><p> if((fp=fopen("E:\\商品信息.txt","w"))==NULL)</p><p><b> {</b></p><p> printf("無法建立文件!請(qǐng)檢查是否E盤不存在!\n");</p><p&g
25、t;<b> exit(0); </b></p><p><b> }</b></p><p> /*如果建立文件成功,則提示輸入商品信息*/</p><p> printf("============* 商品信息錄入 *==================\n");</p>
26、<p> printf("請(qǐng)輸入:\n\t\t商品編號(hào) 商品名稱 商品產(chǎn)地 商品數(shù)量 商品價(jià)格\n");</p><p> for(i=0;i<N;i++) scanf("%s%s%s%d%f",goods[i].id,goods[i].name,goods[i].produce,&goods[i].num,&goods[i]
27、.price); //輸入值到結(jié)構(gòu)體中</p><p><b> save();</b></p><p> printf("\n文件保存成功!系統(tǒng)返回主菜單....\n\n");</p><p> main();//返回主函數(shù)</p><p><b> }</b&g
28、t;</p><p> /*******************************************************************/</p><p> void correct() //商品信息修改</p><p><b> {</b></p><p> void main()
29、; //對(duì)主函數(shù)進(jìn)行聲明</p><p><b> int i,k;</b></p><p> char id[20]; //定義要修改的物品信息</p><p> char name[20]; </p><p> char produce[20]; </p><p> i
30、nt num; </p><p> float price; </p><p> FILE *fp=fopen("E:\\商品信息.txt","r");</p><p> if((fp=fopen("E:\\商品信息.txt","r"))==NULL)<
31、;/p><p><b> {</b></p><p> printf("無法打開文件!請(qǐng)檢查文件是否存在!\n\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p&g
32、t; for(i=0;i<N;i++) fscanf(fp,"%s%s%s%d%f",goods[i].id,goods[i].name,goods[i].produce,&goods[i].num,&goods[i].price);</p><p> printf("==============* 商品信息修改 *==============\
33、n");</p><p> printf("請(qǐng)輸入所修改的商品編號(hào):");</p><p> scanf("%s",id);</p><p> for(i=0;i<N;i++)</p><p><b> {</b></p><p>
34、<b> k=i;</b></p><p> /*使用strcmp函數(shù)將輸入的編號(hào)與已錄入的編號(hào)比較*/</p><p> if(strcmp(goods[i].id,id)==0) </p><p><b> {</b></p><p> printf("請(qǐng)輸入更改后
35、的信息:\n\t\t商品名稱 商品產(chǎn)地 商品數(shù)量 商品價(jià)格\n");</p><p> scanf("%s%s%d%f",name,produce,&num,&price);</p><p> strcpy(goods[i].name,name); //用修改后的信息覆蓋錯(cuò)誤信息</p><p> strcpy(
36、goods[i].produce,produce);</p><p> goods[i].num=num;</p><p> goods[i].price=price;</p><p> save(); //調(diào)用save函數(shù)</p><p> printf("\n修改成功!系統(tǒng)自動(dòng)返回主菜單....\n\n&q
37、uot;);</p><p> break; //如果修改成功則中斷循環(huán),并輸出警告信息</p><p><b> }</b></p><p> else if(k==N-1)</p><p> printf("信息不存在或輸入有誤!系統(tǒng)返回主菜單....\n\n"); <
38、;/p><p> else continue;//如果在一次循環(huán)中沒找到信息,則中斷此次循環(huán)</p><p><b> }</b></p><p> fclose(fp); //關(guān)閉文件,防止數(shù)據(jù)丟失</p><p> main(); //返回主函數(shù)&l
39、t;/p><p><b> }</b></p><p> /*******************************************************************/</p><p> int M; //定義全局變量</p><p> void readfile() //讀文件&
40、lt;/p><p><b> {</b></p><p> struct information product; //定義結(jié)構(gòu)體變量</p><p><b> FILE *fp;</b></p><p><b> M=0;</b></p><p&
41、gt; if((fp=fopen("E:\\商品信息.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("無法打開文件!請(qǐng)檢查文件是否存在!\n\n");</p><p><b> exit(0);</b&
42、gt;</p><p><b> } </b></p><p> while(!feof(fp)) //當(dāng)未到文件末尾時(shí)進(jìn)行循環(huán)</p><p><b> {</b></p><p> fscanf(fp,"%s%s%s%d%f",product.id,product
43、.name,product.produce,&product.num,&product.price);</p><p><b> M++;</b></p><p><b> } </b></p><p><b> }</b></p><p> /****
44、***************************************************************/</p><p> void lookup() //商品信息查詢</p><p><b> {</b></p><p> void main();</p><p><b>
45、 int i,m;</b></p><p> char id[20];</p><p> FILE *fp=fopen("E:\\商品信息.txt","r");</p><p> if((fp=fopen("E:\\商品信息.txt","r"))==NULL)<
46、;/p><p><b> {</b></p><p> printf("無法打開文件!請(qǐng)檢查文件是否存在!\n\n");</p><p> exit(0); //如果打開失敗,輸出警告信息,并自動(dòng)關(guān)閉程序</p><p><b> }</b></p>
47、<p> for(i=0;i<N;i++) fscanf(fp,"%s%s%s%d%f",goods[i].id,goods[i].name,goods[i].produce,&goods[i].num,&goods[i].price);</p><p> printf("==============* 商品信息查詢 *===========
48、========\n");</p><p> printf("請(qǐng)輸入所查詢的商品編號(hào):");</p><p> scanf("%s",id);</p><p> for(i=0;i<N;i++)</p><p><b> {</b></p>
49、<p><b> m=i;</b></p><p> if(strcmp(goods[i].id,id)==0)//使用strcmp函數(shù)進(jìn)行字符串的比較</p><p><b> {</b></p><p> printf("\n\n商品編號(hào)\t商品名稱\t商品產(chǎn)地\t商品數(shù)量\t商品價(jià)
50、格\n"); printf("%-10s\t%-10s\t%-10s\t%-6d\t\t%-6f\n",goods[i].id,goods[i].name,goods[i].produce,goods[i].num,goods[i].price);</p><p> printf("\n查詢成功!系統(tǒng)自動(dòng)返回主菜單....\n\n");</p>&
51、lt;p><b> break; </b></p><p><b> }</b></p><p><b> else </b></p><p> if(m==N-1)</p><p> printf("信息不存在或輸入有誤!系統(tǒng)返回主菜單....\n\
52、n");</p><p> else continue;</p><p><b> }</b></p><p> fclose(fp); //關(guān)閉文件,防止數(shù)據(jù)丟失</p><p> main(); //返回主函數(shù)</p><p><b> }</b
53、></p><p> /******************************************************************/</p><p> void scan() //商品信息瀏覽</p><p><b> {</b></p><p> void main();&l
54、t;/p><p><b> int i;</b></p><p> FILE *fp=fopen("E:\\商品信息.txt","r");</p><p> if((fp=fopen("E:\\商品信息.txt","r"))==NULL)</p>
55、<p><b> {</b></p><p> printf("無法打開文件!請(qǐng)檢查文件是否存在!\n\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b>
56、 else</b></p><p><b> {</b></p><p> readfile();</p><p> printf("==========* 商品信息瀏覽 *==============\n");</p><p> printf("\n\n商品編碼\t商
57、品名稱\t商品產(chǎn)地\t商品數(shù)量\t商品價(jià)格\n");</p><p> for(i=0;i<M-1;i++)//讀出文件內(nèi)容,并輸出內(nèi)容到屏幕上</p><p><b> { </b></p><p> fscanf(fp,"%s%s%s%d%f",goods[i].id,goods[i].n
58、ame,goods[i].produce,&goods[i].num,&goods[i].price); printf("%-10s\t%-10s\t%-10s\t%-6d\t\t%-6f\n",goods[i].id,goods[i].name,goods[i].produce,goods[i].num,goods[i].price);</p><p><
59、;b> }</b></p><p><b> }</b></p><p> fclose(fp); //關(guān)閉文件,防止數(shù)據(jù)丟失</p><p> main(); //返回主函數(shù)</p><p><b> }</b></p><p>
60、/******************************************************************/</p><p> void quit() //退出程序</p><p><b> {</b></p><p> void main();</p><p><b>
61、char ch;</b></p><p> printf("\t\t您確定要退出系統(tǒng)嗎?\n");</p><p> printf("\t\tY->退出程序 N->返回主菜單");</p><p> Cycle: //語句標(biāo)號(hào)</p><p> ch=getcha
62、r();</p><p> if(ch=='Y'||ch=='y')</p><p><b> {</b></p><p> printf("系統(tǒng)退出,歡迎再次使用!\n\n"); //退出程序</p><p><b> return;</b&g
63、t;</p><p><b> }</b></p><p><b> else </b></p><p> if(ch=='N'||ch=='n') </p><p> main();//返回主函數(shù)</p><p><
64、b> else</b></p><p> goto Cycle;</p><p><b> }</b></p><p> /*******************************************************************/</p><p> void
65、 main() //功能與操作的界面提示</p><p><b> { </b></p><p> int choice;</p><p> printf("\t\t\t++++++++++++++++++++++++++++++++++++++++++++\n");</p><p>
66、 printf("\t\t\t| |\n");</p><p> printf("\t\t\t| Wlecome to Product Information System|\n");</p><p> printf("\t\t\t|
67、 |\n");</p><p> printf("\t\t\t++++++++++++++++++++++++++++++++++++++++++++\n");</p><p> printf("\t\t\t| 1.信息錄入
68、 |\n");</p><p> printf("\t\t\t| 2.信息修改 |\n");</p><p> printf("\t\t\t| 3.信息查詢 |\n");</p><p>
69、 printf("\t\t\t| 4.信息瀏覽 |\n");</p><p> printf("\t\t\t| 5.退出系統(tǒng) |\n");</p><p> printf("\t\t\t+++++++++++++++
70、+++++++++++++++++++++++++++++\n");</p><p> printf(" Please Input Your choose:");</p><p> scanf("%d",&choice);</p><p> switch(choice)</p>&l
71、t;p><b> {</b></p><p> case 1:input(); break;</p><p> case 2:correct(); break;</p><p> case 3:lookup(); reak;</p><p> case 4:scan();
72、 break;</p><p> case 5:quit(); break;</p><p> default :{ printf("輸入無效,請(qǐng)重新輸入您的選擇!\n"); main();}</p><p><b> }</b></p><p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小型商品信息管理系統(tǒng)課程設(shè)計(jì)
- c語言課程設(shè)計(jì)-商場(chǎng)商品信息管理系統(tǒng)
- 商品信息管理課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)-商場(chǎng)商品信息管理系統(tǒng)
- 超市商品信息管理系統(tǒng)系統(tǒng)畢業(yè)論文
- 商品信息管理系統(tǒng)
- net課程設(shè)計(jì)--大學(xué)生信息管理系統(tǒng)
- 小型商品信息管理系統(tǒng)課程設(shè)計(jì)任務(wù)計(jì)劃表.docx
- 超市信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 超市會(huì)員信息管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--超市信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)----學(xué)生信息管理系統(tǒng)
- 課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生信息管理系統(tǒng)
- 商品信息管理系統(tǒng)e-r圖
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生信息管理系統(tǒng) 課程設(shè)計(jì)
- 課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論