長(zhǎng)江大學(xué)工程技術(shù)學(xué)院C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告.doc
《長(zhǎng)江大學(xué)工程技術(shù)學(xué)院C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《長(zhǎng)江大學(xué)工程技術(shù)學(xué)院C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告.doc(8頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
長(zhǎng)江大學(xué)工程技術(shù)學(xué)院C語(yǔ)言課程設(shè)計(jì)實(shí)習(xí)報(bào)告 學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì) 學(xué)生姓名:熊奇 學(xué)號(hào):201160255 序號(hào):36 專業(yè)班級(jí):測(cè)控61101 指導(dǎo)老師:孟憲婷 報(bào)告日期:2012年7月6日 第一部分 課程設(shè)計(jì)的題目與要求 1、問(wèn)題的提出內(nèi)容:1)怎樣查詢及顯示庫(kù)存物品信息?2)怎樣按不同方式將庫(kù)存物品信息排序?3)怎樣統(tǒng)計(jì)各物品總價(jià),以及計(jì)算所有物品的總價(jià)?4)如何才能實(shí)現(xiàn)商品的出庫(kù)?5)如何修改庫(kù)存物品信息?2、功能要求內(nèi)容:(1)對(duì)倉(cāng)庫(kù)中庫(kù)存的物品信息實(shí)現(xiàn)查詢和顯示功能:a)按物品名查詢?cè)撐锲返脑敿?xì)信息。b)查詢庫(kù)存數(shù)量不足的物品(庫(kù)存數(shù)量=30)。c)顯示全部物品信息。將滿足查詢條件的商品顯示在屏幕上。(2)對(duì)物品信息實(shí)現(xiàn)排序功能a)按商品名排序。b)按商品的分類排序。將排序后的結(jié)果顯示在屏幕上。要求至少實(shí)現(xiàn)一種排序方式。 (3)統(tǒng)計(jì)倉(cāng)庫(kù)中所有物品的總價(jià)。用C語(yǔ)言創(chuàng)建一個(gè)數(shù)據(jù)文件,用該文件來(lái)存放統(tǒng)計(jì)后的結(jié)果。(4)實(shí)現(xiàn)物品的出庫(kù)。當(dāng)要求從倉(cāng)庫(kù)中提取某種物品時(shí),先查詢?cè)撐锲返膸?kù)存數(shù)量是否滿足所購(gòu)要求。若滿足,則允許出庫(kù),此時(shí)要將物品出庫(kù)信息寫入物品出庫(kù)信息文件中。并修改物品的庫(kù)存信息。 (5)實(shí)現(xiàn)物品庫(kù)存信息的修改功能。先查詢出要修改的記錄,然后選擇要修改的字段名,并輸入新的字段信息。將新的字段信息寫入文件中。本功能為選做內(nèi)容。 第二部分 課程設(shè)計(jì)題目功能1. 系統(tǒng)功能模塊版圖設(shè)計(jì)內(nèi)容:程序設(shè)計(jì)模塊圖輸出主操作頁(yè)面功能1功能2功能3功能4功能5開(kāi)始查詢庫(kù)存數(shù)量不足的物品統(tǒng)計(jì)所有物品的總價(jià)按物品分類排序顯示物品信息按物品排序顯示全部物品信息顯示全部物品信息實(shí)現(xiàn)物品的出庫(kù)修改商品名修改商品類型修改商品價(jià)格修改商品數(shù)量修改某商品全部?jī)?nèi)容按物品名查詢?cè)撐锲返脑敿?xì)2.數(shù)據(jù)結(jié)構(gòu)說(shuō)明內(nèi)容:聲明數(shù)據(jù)類型、程序中使用的各變量的類型及作用#include /*頭文件*/#define N 8 /*帶參數(shù)的宏定義*/#include #include #include /*有助于后面調(diào)用時(shí)間函數(shù)*/struct store /*定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量*/ double total;/*用來(lái)存放給各物品的總價(jià)*/char name30;char type10; float price;int num; storeN,temp;/*temp中間變量,用來(lái)交換結(jié)構(gòu)體中數(shù)組的位置*/char str1100; /*main函數(shù)中定義字符數(shù)組來(lái)存放文件中第一行字符*/void detail(char *p1) /*指針變量p1得到main函數(shù)中str1傳來(lái)的字符串*/char str100/*用來(lái)判斷輸入的字符串在庫(kù)存中是否存在*/FILE *fp1; /*定義文件指針變量*/double s=0; /*將所有商品累加的和賦給s*/char str110,str210;/* void changeall()函數(shù)中str1和str2得到的字符串分別復(fù)制給結(jié)構(gòu)體數(shù)組中的某一元素*/ int k,m; /* void changeall()函數(shù)中n和m得到的數(shù)字分別賦給結(jié)構(gòu)體數(shù)組中的某一元素*/ char str1100/*void out(char *p6)函數(shù)中的str1得到系統(tǒng)的時(shí)間與日期*/ void out(char *p6)/*形參為指向字符型的指針變量*/一、內(nèi)容:模塊功能說(shuō)明1)菜單的編程和調(diào)用void main() /*主函數(shù)*/void main() /*主函數(shù)*/ int n,i; char str1100;FILE *fp1; /*定義文件指針變量*/ if(fp1=fopen(CK0136_store.txt,r)=0) /*判斷文件是否能打開(kāi)*/printf(Cannot open file!n);exit(0); /*表示正常退出該系統(tǒng)*/ fgets(str1,100,fp1); for(i=0;iN;i+) /*用循環(huán)從文件中讀出其中的數(shù)據(jù)并給每行數(shù)組中的元素賦值*/ fscanf(fp1,%s%s%f%dn,storei.name,storei.type,&storei.price,&storei.num);/*字符串?dāng)?shù)組前面不能加取地址符號(hào)*/ fclose(fp1); /*關(guān)閉打開(kāi)的文件*/ loop: printf(*n); printf(*n);printf( 小型倉(cāng)庫(kù)管理系統(tǒng) n); printf(*n);printf(*n); printf(*n);printf( 1、按物品名查詢?cè)撐锲返脑敿?xì) n); printf( 2、查詢庫(kù)存數(shù)量不足的物品(庫(kù)存數(shù)量=30) n);printf( 3、顯示全部物品信息。 n);printf( 4、按物品排序顯示全部物品信息。 n);printf( 5、按物品分類排序顯示全部物品信息。 n); printf( 6、統(tǒng)計(jì)所有物品的總價(jià)。 n); printf( 7、實(shí)現(xiàn)物品的出庫(kù)。 n); printf( 8、實(shí)現(xiàn)物品庫(kù)存信息的修改功能。 n); printf( 9、退出。 n); printf(*n); printf(*nn); printf(-n); printf(請(qǐng)從條件1、2、3、4、5、6、7、8、9中選擇一個(gè)滿足您所需的條件n); printf(-n); printf(請(qǐng)輸入正確的操作編號(hào):); scanf(%d,&n); printf(-n); if(n=9) exit(0);switch(n) /*選擇使用不同的函數(shù)來(lái)實(shí)現(xiàn)不同的功能*/ case 1 : detail(str1);break;/*調(diào)用前面已定義的函數(shù);數(shù)組名str作為實(shí)參*/ case 2 : lack(str1);break;/*break的作用是強(qiáng)制地跳出switch語(yǔ)句體*/ case 3 : all(str1);break; case 4 : ad(str1);break; case 5 : td(str1);break; case 6 : ap();break; case 7 : out(str1);break; case 8 : change();break; default:printf(您輸入的不正確 !nn); /*若沒(méi)按要求輸入條件,就執(zhí)行此語(yǔ)句*/ goto loop;/*若沒(méi)按要求輸入條件,則轉(zhuǎn)移至loop構(gòu)成循環(huán);否則不執(zhí)行g(shù)oto語(yǔ)2).從文件中讀出庫(kù)存信息以及將文件寫進(jìn)結(jié)構(gòu)體main() /*文件讀取庫(kù)存數(shù)據(jù)*/ FILE *fp1; /*定義文件指針變量*/ if(fp1=fopen(DX0102_store.txt,r)=0) /*判斷文件是否能打開(kāi)*/printf(Cannot open file!n);exit(0); /*表示正常退出該系統(tǒng)*/ fgets(str1,100,fp1); for(i=0;iN;i+) /*用循環(huán)從文件中讀出其中的數(shù)據(jù)并給每行數(shù)組中的元素賦值*/fscanf(fp1,%s%s%f%dn,storei.name,storei.type,&storei.price,&storei.num);/*字符串?dāng)?shù)組前面不能加取地址符號(hào)*/fclose(fp1); /*關(guān)閉打開(kāi)的文件*/3).實(shí)現(xiàn)函數(shù)功能的思路:a. void main() 通過(guò)顯示一個(gè)主菜單選項(xiàng),選擇其中的條件實(shí)現(xiàn)不同的功能,當(dāng)用戶如入的條件不滿足顯示的條件時(shí),吸取先提醒用戶輸錯(cuò),然后使用goto語(yǔ)句跳轉(zhuǎn)到loop處,請(qǐng)用戶再次輸入正確的條件。b. void detail(char *p1) /*查詢所需要的商品名*/當(dāng)用戶錯(cuò)選擇執(zhí)行這函數(shù)時(shí)可以選擇返回到主顯示頁(yè)面也可以繼續(xù)查詢物品的詳情,通過(guò)實(shí)參傳址使形參得到主函數(shù)中的得到的字符串。先判斷庫(kù)存中是否有該商品,有的話則輸出該商品的所有信息,否則,查詢不到該商品。c. void lack(char *p2) /*查詢庫(kù)存數(shù)量少于30的物品*/在執(zhí)行此函數(shù)之時(shí)用戶可以選擇查詢與返回。首先找到所查物品數(shù)量不足的位置,然后顯示在屏幕上,用戶可以選擇退出與返回主顯示菜單。d. void all(char *p3) /*顯示全部物品信息*/在執(zhí)行此函數(shù)之時(shí)用戶可以選擇顯示與返回。用循環(huán)將結(jié)構(gòu)體中的所有元素都顯示出來(lái),在現(xiàn)實(shí)物品信息之前,將指針變量p3的得到的字符串先顯示出來(lái)。e. void ad(char *p4) /*按物品名稱排序顯示全部物品信息*/用選擇法依次找出字符串較小的元素,并將其按由小到大的順序排列。用循環(huán)與if語(yǔ)句結(jié)合,找出每次循環(huán)中最小的字符串。再用循環(huán)顯示出重新排序的商品信息。f. void td(char *p5)函數(shù) /*按物品分類排序顯示全部物品信息*/思路同e所述的類似。g. void ap() /*所有物品的總價(jià)*/先定義文件指針變量,然后用fopen()函數(shù)打開(kāi)文件指針變量所指向的文件,接著用循環(huán)計(jì)算出各物品的總價(jià),再用循環(huán)將不同商品的總價(jià)寫入到文件,以及累加所有商品的總價(jià),寫入到文件。再將所有的不同商品名及總價(jià)以及所有商品的總價(jià)顯示出來(lái)。最后用戶可以選擇返回主顯示頁(yè)面以及退出。h. void out(char *p6) /*商品出庫(kù)*/先判斷庫(kù)存中是否有該商品,有的話,再判斷該商品在庫(kù)存中足不足,足夠的話,可以輸入要出庫(kù)的商品數(shù)量,接下來(lái)將出庫(kù)前后有關(guān)該商品的全部信息寫入文件指針變量所指向的文件中,以及將出庫(kù)的日期與時(shí)間也寫到文件中,方便用戶對(duì)比前后該商品的有關(guān)信息。之后用戶可以選擇繼續(xù)查詢或返回主顯示頁(yè)面。否則,查詢不到該商品,不過(guò)用戶可以選擇繼續(xù)出庫(kù)其他商品,可以選擇返回主顯示頁(yè)面以及退出。i. void change() /*修改商品的信息*/ 用switch()語(yǔ)句讓用戶自行選擇修改商品的哪些類容,然后調(diào)用不同修改功能的函數(shù),達(dá)到用戶的修改目的。 j. void changename() /*更改商品的名稱*/當(dāng)用戶選擇執(zhí)行此修改功能的時(shí)候,先判斷庫(kù)存中是否有該商品,有的話,提醒用戶輸入新名稱將其給一個(gè)數(shù)組,讓后再用strcpy()語(yǔ)句將數(shù)組中的字符串復(fù)制給要修改的商品名,讓后再將更新后的內(nèi)容寫到文件中,之后用戶可以選擇繼續(xù)修改或返回主顯示頁(yè)面或退出。否則提醒用戶該商品不存在,進(jìn)而執(zhí)行其它的語(yǔ)句。k. void changetype() /*改變商品的類型*/方法同j所述的相同。l. void changeprice() /*改變物品的價(jià)格*/總體方法與i所述的相同,但此處不需要用strcpy()語(yǔ)句,直接可以將要改的價(jià)格賦給要修改的商品名價(jià)格。m. void changenum()/*改變物品的庫(kù)存數(shù)量*/方法與i所述的相同。n. void changeall() /*修改該商品的全部信息*/方法是將j和l所述的方法結(jié)合起來(lái)就可以實(shí)現(xiàn)某商品的全部信息。四. 測(cè)試與調(diào)試內(nèi)容:列出你的測(cè)試數(shù)據(jù)(原始數(shù)據(jù)文件)及測(cè)試結(jié)果庫(kù)存信息文件出庫(kù)信息文件功能1 測(cè)試結(jié)果a. 按物品名查詢- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 長(zhǎng)江大學(xué) 工程技術(shù) 學(xué)院 語(yǔ)言 課程設(shè)計(jì) 實(shí)習(xí) 報(bào)告
鏈接地址:http://appdesigncorp.com/p-9081190.html