版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 建筑材料貨存管理系統(tǒng)</p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 功能描述</b></p><p> 此貨存管理系統(tǒng)主要利用單鏈表實(shí)現(xiàn),由如下七個(gè)功能模塊實(shí)現(xiàn):</p><p> 1、讀取記錄:以只讀方式打開文件,方便當(dāng)前內(nèi)容已存入文件時(shí)的
2、處理,以免出現(xiàn)重復(fù)。</p><p> 2、保存記錄模塊:保存你所輸入的貨物信息。</p><p> 3、添加記錄模塊:添加貨物(名稱、品牌、價(jià)格、數(shù)量、日期)。</p><p> 4、刪除記錄模塊:刪除某項(xiàng)貨物的數(shù)據(jù)。</p><p> 5、查詢記錄模塊:查詢某項(xiàng)貨物的數(shù)據(jù)。</p><p> 6、更改記錄
3、模塊:修改某項(xiàng)貨物的數(shù)據(jù)。</p><p> 7、統(tǒng)計(jì)功能模塊:統(tǒng)計(jì)貨物花費(fèi)金額。(該功能模塊下又有子菜單,由四個(gè)功能模塊實(shí)現(xiàn))。</p><p><b> 二、總體設(shè)計(jì)</b></p><p><b> 1、功能模塊設(shè)計(jì)</b></p><p> ?。?)主函數(shù)執(zhí)行流程</p>
4、<p> 進(jìn)入主菜單,利用開關(guān)(switch)分支,很據(jù)條件的取值來選擇其中的一個(gè)分支。進(jìn)入所選分支后,調(diào)用相應(yīng)的函數(shù)來執(zhí)行菜單任務(wù)。</p><p><b> ?。?)讀取記錄模塊</b></p><p> 由if語句判斷該文件是否存在,若不存在,由printf提示“打開文件失敗”;若存在,用當(dāng)型循環(huán)語句(while)先判斷是否清除記錄,再利用whi
5、le循環(huán)語句讀取文件。</p><p><b> (3)保存記錄模塊</b></p><p> 首先由if 語句判斷是否有記錄錄入,若無,則由printf“提示尚未錄入任何記錄”,同時(shí)已只寫方式打開文件并清空文件內(nèi)容,提示“保存失敗”;若存在,將鏈表內(nèi)容逐條寫入文件中,提示“寫入文件成功!”。</p><p><b> (4)添
6、加記錄模塊</b></p><p> 首先提示“要添加記錄條數(shù):”,利用for循環(huán)逐個(gè)添加貨物記錄,其中包括名稱、品牌、價(jià)格、數(shù)量、日期。</p><p><b> ?。?)刪除記錄模塊</b></p><p> 首先提示“請輸入要?jiǎng)h除記錄的編號(hào):”,進(jìn)入while循環(huán)語句,先由if條件語句判斷輸入記錄編號(hào)是否與記錄相符,若相符
7、則顯示該條記錄信息并提示用戶“是否確認(rèn)刪除?(y/n):”,若選擇“y”,則提示“刪除成功”;反之提示“放棄刪除”。</p><p><b> ?。?)查詢記錄模塊</b></p><p> 先由if語句判斷是否存在記錄,若無則提示“尚未錄入任何記錄!”;若有則進(jìn)入while循環(huán),循環(huán)中同樣利用菜單選擇,由switch來執(zhí)行。其中包含findall()和findso
8、me()兩個(gè)調(diào)用函數(shù)。</p><p><b> ?。?)更改記錄模塊</b></p><p> 首先提示“請輸入查詢材料的編號(hào):”,進(jìn)入while循環(huán)語句,用if語句進(jìn)行判斷,若與錄入記錄材料編號(hào)相符,則顯示該材料的原信息并提示“請輸入你所修改的新信息:”,依次輸入更改后的信息即可;若不相符,則提示“無該項(xiàng)記錄!”。</p><p><
9、;b> ?。?)統(tǒng)計(jì)記錄模塊</b></p><p> 先由if語句判斷是否存在記錄,若無則提示“尚未錄入任何記錄!”;若有則進(jìn)入while循環(huán),接著該模塊利用一個(gè)子菜單及switch分支來執(zhí)行任務(wù)。其中包含tongji_all()、tongji_name()、tongji_pinpai()、tongji_date()調(diào)用函數(shù)來分別實(shí)現(xiàn)統(tǒng)計(jì)所有材料資金、按名稱統(tǒng)計(jì)資金、按品牌統(tǒng)計(jì)資金、按日期統(tǒng)
10、計(jì)資金的功能。</p><p><b> 三、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p> 1、建筑材料貨存信息結(jié)構(gòu)體</p><p> typedef struct node//結(jié)構(gòu)體定義</p><p><b> {</b></p><p> int number;&
11、lt;/p><p> char name[20];</p><p> char pinpai[20];</p><p> int price;</p><p> int count;</p><p> char date[20];</p><p> struct node *next;&
12、lt;/p><p> }linklist;</p><p> linklist *head = NULL;//頭結(jié)點(diǎn)指針</p><p> linklist *end = NULL;//尾節(jié)點(diǎn)指針</p><p> int Number=1;//編號(hào)</p><p><b> 四、函數(shù)功能
13、描述</b></p><p> 1、read_file()</p><p> 函數(shù)原型:read_file()</p><p><b> 參數(shù)含義:無參數(shù)</b></p><p> 2、write_file()</p><p> 函數(shù)原型:write_file()</p
14、><p><b> 參數(shù)含義:無參數(shù)</b></p><p><b> 3、add()</b></p><p> 函數(shù)原型:add()</p><p><b> 參數(shù)含義:無參數(shù)</b></p><p><b> 4、delet()<
15、;/b></p><p> 函數(shù)原型:delet()</p><p><b> 參數(shù)含義:無參數(shù)</b></p><p><b> 5、find()</b></p><p> 函數(shù)原型:find()</p><p><b> 參數(shù)含義:無參數(shù)&l
16、t;/b></p><p> 6、change()</p><p> 函數(shù)原型:change()</p><p><b> 參數(shù)含義:無參數(shù)</b></p><p> 7、tongji()</p><p> 函數(shù)原型:tongji()</p><p><
17、;b> 參數(shù)含義:無參數(shù)</b></p><p><b> 五、程序?qū)崿F(xiàn)</b></p><p><b> 1、源代碼分析</b></p><p><b> ?、懦绦蝾A(yù)處理</b></p><p> 包括加載頭文件,定義結(jié)構(gòu)體、常量和變量,并對(duì)它們進(jìn)行
18、初始化工作。</p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<conio.h></p><p> #include<string.h></p><p> ?、浦骱瘮?shù)m
19、ain()</p><p> void main()//主函數(shù)</p><p><b> { </b></p><p><b> char a;</b></p><p><b> while(1)</b></p><p> { syste
20、m("color 0b");</p><p> printf(" *************** 建 筑 材 料 管 理 系 統(tǒng) *******************\n\n");</p><p> printf(" *********************菜 單***************
21、************\n\n");</p><p> printf(" * ======================================================= * \n");</p><p> printf(" * 1. 讀 取 記 錄
22、 * \n");</p><p> printf(" * 2. 保 存 記 錄 * \n");</p><p> printf(" * 3. 添 加 記 錄
23、 * \n");</p><p> printf(" * 4. 刪 除 記 錄 * \n");</p><p> printf(" * 5. 查 詢 記 錄
24、 * \n");</p><p> printf(" * 6. 更 改 記 錄 * \n");</p><p> printf(" * 7. 統(tǒng) 計(jì)
25、 功 能 * \n");</p><p> printf(" * 0. 退 出 系 統(tǒng) * \n");</p><p> printf(" * ------------------
26、------------------------------------- * \n");</p><p> printf(" 請輸入你要進(jìn)行的操作:");</p><p> printf(" ***********************************************************\n\
27、n\n");</p><p> printf("\t\t ********09級(jí)給水排水班*********** \n");</p><p> printf("\t\t * 劉楊 (0905205009) * \n");<
28、/p><p> printf("\t\t * 任靜 (0905205018) * \n");</p><p> printf("\t\t * 劉衛(wèi)平(0905205007) * \n");</p><p> print
29、f(" *********************●●歡迎使用●●**********************");</p><p> a=getch();</p><p> system("cls");</p><p><b> switch(a)</b></p>&l
30、t;p><b> {</b></p><p> case '1': read_file();break;</p><p> case '2': write_file(); break;</p><p> case '3': add();break;</p><p&
31、gt; case '4': delet();break;</p><p> case '5': find();break;</p><p> case '6': change();break;</p><p> case '7': tongji();break;</p><p
32、> case '0':printf("\n 感謝使用建筑材料管理系統(tǒng)\n 按任意鍵退出......\n");return;break;</p><p> default:printf("輸入錯(cuò)誤,請重新選擇!\n\n");</p><p><b> }</b></p>
33、;<p><b> }</b></p><p><b> }</b></p><p><b> ?、侵鞑藛谓缑?lt;/b></p><p> 、printf(" *************** 建 筑 材 料 管 理 系 統(tǒng) ******************
34、*\n\n");</p><p> printf(" *********************菜 單***************************\n\n");</p><p> printf(" * ================================================
35、======= * \n");</p><p> printf(" * 1. 讀 取 記 錄 * \n");</p><p> printf(" * 2. 保 存 記 錄
36、 * \n");</p><p> printf(" * 3. 添 加 記 錄 * \n");</p><p> printf(" * 4. 刪 除 記 錄
37、 * \n");</p><p> printf(" * 5. 查 詢 記 錄 * \n");</p><p> printf(" * 6. 更 改 記 錄
38、 * \n");</p><p> printf(" * 7. 統(tǒng) 計(jì) 功 能 * \n");</p><p> printf(" * 0. 退 出 系 統(tǒng)
39、 * \n");</p><p> printf(" * ------------------------------------------------------- * \n");</p><p> printf(" 請輸入你要進(jìn)行的操作:");<
40、/p><p> printf(" ***********************************************************\n\n\n");</p><p> printf("\t\t ********09級(jí)給水排水班*********** \n");
41、</p><p> printf("\t\t * 劉楊 (0905205009) * \n");</p><p> printf("\t\t * 任靜 (0905205018) * \n");</p><p> p
42、rintf("\t\t * 劉衛(wèi)平(0905205007) * \n");</p><p> printf(" *********************●●歡迎使用●●**********************");</p><p><b> (3)調(diào)用函數(shù)<
43、/b></p><p><b> 讀取記錄函數(shù)</b></p><p> void read_file()//文件讀取</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p>
44、linklist *p,*q;</p><p> int i=0;//統(tǒng)計(jì)讀取記錄條數(shù)</p><p><b> char a;</b></p><p> if((fp=fopen("建筑材料記錄.txt","r"))==NULL)//以只讀方式打開文件,該文件必須已經(jīng)存在</p>
45、<p><b> {</b></p><p> printf("\n打開文件失敗!按任意鍵返回。\n");</p><p><b> getch();</b></p><p> system("cls");</p><p><b&g
46、t; return;</b></p><p><b> }</b></p><p> if(head != NULL)</p><p><b> {</b></p><p> printf("當(dāng)前已有記錄,打開文件時(shí)是否清除?(y/n)\n");//方便
47、當(dāng)前內(nèi)容已存入文件時(shí)的處理,以免出現(xiàn)重復(fù)</p><p> a=getch();</p><p> if(a=='y' || a=='Y')</p><p><b> {</b></p><p> while(head!=NULL)</p><p>&
48、lt;b> {</b></p><p><b> q=head;</b></p><p> head=head->next;</p><p><b> free(q);</b></p><p> }//從頭結(jié)點(diǎn)開始釋放所有鏈表節(jié)點(diǎn)的空間</p>
49、<p> Number=1;//重置編號(hào)</p><p> printf("清除記錄成功,按任意鍵繼續(xù)讀取文件。\n");</p><p><b> getch();</b></p><p><b> }</b></p><p> system("
50、;cls");</p><p><b> }</b></p><p> p=(linklist*)malloc(sizeof(linklist));//p先申請空間,再讀取文件中內(nèi)容放入p中</p><p> while((fscanf(fp,"%20s %20s %10d %10d %20s\n",p-
51、>name,p->pinpai,&p->price,&p->count,p->date))!=EOF)</p><p><b> {</b></p><p> p->number=Number;</p><p> if(head==NULL)</p><p>&l
52、t;b> {</b></p><p> head=p;//將p中數(shù)據(jù)作為頭結(jié)點(diǎn)</p><p> head->next=NULL;</p><p><b> end=head;</b></p><p><b> }</b></p><p>
53、;<b> else</b></p><p><b> {</b></p><p> end->next=p;</p><p> end=end->next;//使尾節(jié)點(diǎn)的下一節(jié)點(diǎn)指針指向p中數(shù)據(jù),再將尾節(jié)點(diǎn)后移</p><p> end->next=NULL;&
54、lt;/p><p><b> }</b></p><p> p=(linklist*)malloc(sizeof(linklist));</p><p><b> Number++;</b></p><p><b> i++;</b></p><p>
55、;<b> }</b></p><p> free(p);//因最后一次讀取的內(nèi)容為EOF,所以釋放該空間</p><p> fclose(fp);</p><p> printf("文件讀取成功,共添加%d條記錄,按任意鍵返回主菜單。\n",i);</p><p><b>
56、 getch();</b></p><p> system("cls");</p><p><b> }</b></p><p><b> 保存記錄函數(shù)</b></p><p> void write_file()//文件寫入</p>&
57、lt;p><b> {</b></p><p><b> FILE *fp;</b></p><p> linklist *p;</p><p><b> p=head;</b></p><p> if(head==NULL)//未錄入記錄時(shí)的處理</
58、p><p><b> {</b></p><p> printf("\t尚未錄入任何記錄!按任意鍵返回主菜單。");</p><p><b> getch();</b></p><p> system("cls");</p><p>
59、;<b> return;</b></p><p><b> }</b></p><p> if((fp=fopen("建筑材料記錄.txt","w"))==NULL)//已只寫方式打開文件并清空文件內(nèi)容</p><p><b> {</b><
60、/p><p> printf("保存失敗!\n");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> while(p != NULL)&l
61、t;/p><p><b> {</b></p><p> fprintf(fp,"%20s %20s %10d %10d %20s\n",p->name,p->pinpai,p->price,p->count,p->date);</p><p> p=p->next;</p>
62、<p> }//將鏈表內(nèi)容逐條寫入文件中</p><p> printf("寫入文件成功!\n");</p><p><b> }</b></p><p> fclose(fp);</p><p> printf("按任意鍵返回主菜單。\n");<
63、;/p><p><b> getch();</b></p><p> system("cls");</p><p><b> }</b></p><p><b> 添加記錄函數(shù)</b></p><p> void add()
64、//添加函數(shù)</p><p><b> {</b></p><p><b> int n,i;</b></p><p> printf("要添加記錄條數(shù):");</p><p> scanf("%d",&n);</p><
65、p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> if(head==NULL)</p><p><b> {</b></p><p> head=(linklist*)malloc(sizeof(linklist));</p&
66、gt;<p> head->next=NULL;</p><p><b> end=head;</b></p><p> }//第一個(gè)節(jié)點(diǎn)的處理</p><p><b> else</b></p><p><b> {</b></p>
67、;<p> end->next=(linklist*)malloc(sizeof(linklist));</p><p> end=end->next;</p><p> end->next=NULL;</p><p> }//每添加一個(gè)節(jié)點(diǎn),尾指針后移</p><p> printf("
68、;本條記錄編號(hào):%d\n",Number);</p><p> end->number=Number;</p><p> printf("請輸入名稱:");</p><p> scanf("%s",end->name);</p><p> printf("請輸入品
69、牌:");</p><p> scanf("%s",end->pinpai);</p><p> printf("請輸入價(jià)格:");</p><p> scanf("%d",&end->price);</p><p> printf("
70、請輸入數(shù)量:");</p><p> scanf("%d",&end->count);</p><p> printf("請輸入日期:");</p><p> scanf("%s",end->date);</p><p><b> Nu
71、mber++;</b></p><p> system("cls");</p><p> printf("第%d條記錄添加成功!\n",i+1);</p><p><b> }</b></p><p> printf("按任意鍵返回主菜單。\n&quo
72、t;);</p><p><b> getch();</b></p><p> system("cls");</p><p><b> }</b></p><p><b> 刪除記錄函數(shù)</b></p><p> void
73、delet()//刪除函數(shù)</p><p><b> {</b></p><p> linklist *p,*q,*m;//q記錄刪除節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn),m記錄刪除節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)</p><p> int number;</p><p><b> p=head;</b></p&
74、gt;<p><b> q=NULL;</b></p><p> printf("請輸入要?jiǎng)h除記錄的編號(hào):");</p><p> scanf("%d",&number);</p><p> while(p!=NULL)</p><p><b&g
75、t; {</b></p><p> if(number == p->number)</p><p><b> {</b></p><p><b> char c;</b></p><p> printf("要?jiǎng)h除的記錄為:\n");</p>
76、<p> printf("編號(hào):%d,名稱:%s,品牌:%s,價(jià)格:%d,數(shù)量:%d,日期:%s\n",p->number,p->name,p->pinpai,p->price,p->count,p->date);</p><p> printf("是否確認(rèn)刪除?(y/n):\n");</p><p&
77、gt; c=getch();</p><p> system("cls");</p><p> if(c=='y' || c=='Y')</p><p><b> {</b></p><p> if(p==head)</p><p>&
78、lt;b> {</b></p><p> head=head->next;</p><p> m=p->next;</p><p><b> free(p);</b></p><p> }//刪除頭結(jié)點(diǎn)的處理</p><p><b> els
79、e</b></p><p><b> {</b></p><p> q->next=p->next;</p><p> m=p->next;</p><p><b> free(p);</b></p><p> }//將p的上一個(gè)節(jié)
80、點(diǎn)的末尾指針指向p的下一個(gè)節(jié)點(diǎn)過后再釋放p</p><p> while(m != NULL)//m為刪除節(jié)點(diǎn)之后的節(jié)點(diǎn)指針,當(dāng)其不為空時(shí),將后面節(jié)點(diǎn)的編號(hào)減1</p><p><b> {</b></p><p> m->number--;</p><p> m=m->next;</p>
81、<p><b> }</b></p><p> Number--;//記錄的總編號(hào)數(shù)減1</p><p> printf("刪除成功!\n");</p><p><b> }</b></p><p><b> else</b>
82、</p><p><b> {</b></p><p> printf("放棄刪除。\n");</p><p><b> }</b></p><p> printf("按任意鍵返回。\n");</p><p><b>
83、 getch();</b></p><p> system("cls");</p><p><b> return;</b></p><p><b> }</b></p><p><b> q=p;</b></p><
84、;p> p=p->next;</p><p><b> }</b></p><p> printf("無該項(xiàng)記錄!\n");//若有記錄,在while循環(huán)中會(huì)自動(dòng)結(jié)束此函數(shù)</p><p> printf("按任意鍵返回。\n");</p><p><
85、b> getch();</b></p><p> system("cls");</p><p><b> }</b></p><p><b> 查詢記錄函數(shù)</b></p><p> void find()//查詢函數(shù)</p>&l
86、t;p><b> {</b></p><p><b> char a;</b></p><p> void findall();</p><p> void findsome();</p><p> if(head==NULL)</p><p><b&g
87、t; {</b></p><p> printf("\t尚未錄入任何記錄!按任意鍵返回主菜單。");</p><p><b> getch();</b></p><p> system("cls");</p><p><b> return;<
88、/b></p><p><b> }</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> printf("\n *************** 查詢 ****
89、**************\n");</p><p> printf(" *************************菜單********************************\n");</p><p> printf(" * =======================================
90、================== * \n");</p><p> printf(" * 1. 查詢所有記錄 * \n");</p><p> printf(" * 2. 按名稱查詢記錄
91、 * \n");</p><p> printf(" * 0. 退出查詢系統(tǒng) * \n");</p><p> printf(" * --------------------------------------
92、------------------- * \n");</p><p> printf(" 請輸入查詢的方式:");</p><p> a=getch();</p><p> system("cls");</p><p><b> switch(a)</b>
93、;</p><p><b> {</b></p><p> case '0':return;break;</p><p> case '1':findall();break;</p><p> case '2':findsome();break;</p>
94、<p> default:printf("輸入錯(cuò)誤,請重新選擇!\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void findall(
95、)</p><p><b> {</b></p><p> linklist *p;</p><p> p=head;//使P指向頭結(jié)點(diǎn)</p><p> while(p!=NULL)</p><p><b> {</b></p><p&g
96、t; printf("編號(hào):%d,名稱:%s,品牌:%s,價(jià)格:%d,數(shù)量:%d,日期:%s\n",p->number,p->name,p->pinpai,p->price,p->count,p->date);</p><p> p=p->next;//將P指向下一個(gè)節(jié)點(diǎn)</p><p><b> }<
97、;/b></p><p> printf("按任意鍵返回。\n");</p><p><b> getch();</b></p><p> system("cls");</p><p><b> }</b></p><p>
98、; void findsome()</p><p><b> {</b></p><p> int n=0;//標(biāo)記是否有找到相關(guān)內(nèi)容</p><p> linklist *p;</p><p> char name[20];</p><p><b> p=head;&l
99、t;/b></p><p> printf("請輸入查詢材料的名稱:");</p><p> scanf("%s",name);</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if((
100、strcmp(name,p->name)) == 0)</p><p><b> {</b></p><p> if(n==0)//第一次查到相關(guān)內(nèi)容</p><p><b> {</b></p><p> printf("你要查詢的記錄為:\n");</
101、p><p><b> }</b></p><p> printf("編號(hào):%d,名稱:%s,品牌:%s,價(jià)格:%d,數(shù)量:%d,日期:%s\n",p->number,p->name,p->pinpai,p->price,p->count,p->date);</p><p><b>
102、; n=1;</b></p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p><b> if(n==0)</b></p><p><b>
103、 {</b></p><p> printf("無所查詢的記錄!\n");</p><p><b> }</b></p><p> printf("按任意鍵返回。\n");</p><p><b> getch();</b></p&g
104、t;<p> system("cls");</p><p><b> }</b></p><p><b> 記錄更改函數(shù)</b></p><p> void change()//修改函數(shù)</p><p><b> {</b>&l
105、t;/p><p> linklist *p;</p><p> int number;</p><p><b> p=head;</b></p><p> printf("請輸入要修改記錄的編號(hào):");</p><p> scanf("%d",&
106、;number);</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(number == p->number)</p><p><b> {</b></p><p> printf("原記錄
107、為:\n");</p><p> printf("編號(hào):%d,名稱:%s,品牌:%s,價(jià)格:%d,數(shù)量:%d,日期:%s\n",p->number,p->name,p->pinpai,p->price,p->count,p->date);</p><p> printf("請輸入你所修改的新信息:\n"
108、;);</p><p> printf("請輸入名稱:");</p><p> scanf("%s",p->name);</p><p> printf("請輸入品牌:");</p><p> scanf("%s",p->pinpai);<
109、;/p><p> printf("請輸入價(jià)格:");</p><p> scanf("%d",&p->price);</p><p> printf("請輸入數(shù)量:");</p><p> scanf("%d",&p->count)
110、;</p><p> printf("請輸入日期:");</p><p> scanf("%s",p->date);</p><p> printf("按任意鍵返回。\n");</p><p><b> getch();</b></p>
111、<p> system("cls");</p><p><b> return;</b></p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p>
112、<p> printf("無該項(xiàng)記錄!\n");</p><p> printf("按任意鍵返回。\n");</p><p><b> getch();</b></p><p> system("cls");</p><p><b>
113、 }</b></p><p><b> 統(tǒng)計(jì)資金函數(shù)</b></p><p> void tongji()//統(tǒng)計(jì)函數(shù)</p><p><b> {</b></p><p><b> char a;</b></p><p>
114、 void tongji_all();</p><p> void tongji_name();</p><p> void tongji_pinpai();</p><p> void tongji_date();</p><p> if(head==NULL)</p><p><b> {<
115、;/b></p><p> printf("\t尚未錄入任何記錄!按任意鍵返回主菜單。");</p><p><b> getch();</b></p><p> system("cls");</p><p><b> return;</b>&l
116、t;/p><p><b> }</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> printf("\n *************** 統(tǒng)計(jì) ************
117、******\n");</p><p> printf(" *************************菜單********************************\n");</p><p> printf(" * ===============================================
118、========== * \n");</p><p> printf(" * 1. 統(tǒng)計(jì)所有材料資金 * \n");</p><p> printf(" * 2. 按名稱統(tǒng)計(jì)資金
119、 * \n");</p><p> printf(" * 3. 按品牌統(tǒng)計(jì)資金 * \n");</p><p> printf(" * 4. 按日期統(tǒng)計(jì)資金
120、 * \n");</p><p> printf(" * 0. 退出查詢系統(tǒng) * \n");</p><p> printf(" * ----------------------------------------
121、----------------- * \n");</p><p> printf(" 請輸入統(tǒng)計(jì)內(nèi)容:");</p><p> a=getch();</p><p> system("cls");</p><p><b> switch(a)</b>&l
122、t;/p><p><b> {</b></p><p> case '0':return;break;</p><p> case '1':tongji_all();break;</p><p> case '2':tongji_name();break;</p&
123、gt;<p> case '3':tongji_pinpai();break;</p><p> case '4':tongji_date();break;</p><p> default:printf("輸入錯(cuò)誤,請重新選擇!\n");</p><p><b> }</b&
124、gt;</p><p><b> }</b></p><p><b> }</b></p><p> void tongji_all()//統(tǒng)計(jì)所有材料資金</p><p><b> {</b></p><p> linklist *p;&
125、lt;/p><p> int money=0;</p><p> p=head;</p><p> while(p!=NULL)</p><p><b> {</b></p><p> money=money+p->price*p->count;</p>&l
126、t;p> p=p->next;</p><p><b> }</b></p><p> printf("所有材料所花的資金為:%d。\n",money);</p><p> printf("按任意鍵返回。\n");</p><p><b> g
127、etch();</b></p><p> system("cls");</p><p><b> }</b></p><p> void tongji_name()</p><p><b> {</b></p><p> int n=
128、0;//標(biāo)記是否有找到相關(guān)內(nèi)容</p><p> int money=0;</p><p> linklist *p;</p><p> char name[20];</p><p><b> p=head;</b></p><p> printf("請輸入需統(tǒng)計(jì)材料的
129、名稱:");</p><p> scanf("%s",name);</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if((strcmp(name,p->name)) == 0)//該條記錄與輸入名稱相同,將該項(xiàng)記錄的
130、資金計(jì)入</p><p><b> {</b></p><p> money=money+p->price*p->count;</p><p><b> n=1;</b></p><p><b> }</b></p><p> p=
131、p->next;</p><p><b> }</b></p><p><b> if(n==0)</b></p><p><b> {</b></p><p> printf("尚未錄入該材料的任何記錄!\n");</p>&l
132、t;p><b> }</b></p><p> else//有該材料記錄時(shí),輸出統(tǒng)計(jì)出的金額</p><p><b> {</b></p><p> printf("材料 %s 目前所花資金為:%d\n",name,money);</p><p><b&g
133、t; }</b></p><p> printf("按任意鍵返回。\n");</p><p><b> getch();</b></p><p> system("cls");</p><p><b> }</b></p>
134、<p> void tongji_pinpai()</p><p><b> {</b></p><p> int n=0;//標(biāo)記是否有找到相關(guān)內(nèi)容</p><p> int money=0;</p><p> linklist *p;</p><p> char
135、pinpai[20];</p><p><b> p=head;</b></p><p> printf("請輸入需統(tǒng)計(jì)的品牌:");</p><p> scanf("%s",pinpai);</p><p> while(p!=NULL)</p><p
136、><b> {</b></p><p> if((strcmp(pinpai,p->pinpai)) == 0)//該條記錄與輸入品牌相同,將該項(xiàng)記錄的資金計(jì)入</p><p><b> {</b></p><p> money=money+p->price*p->count;</
137、p><p><b> n=1;</b></p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p><b> if(n==0)</b></p&
138、gt;<p><b> {</b></p><p> printf("尚未錄入該品牌的任何記錄!\n");</p><p><b> }</b></p><p> else//有該品牌記錄時(shí),輸出統(tǒng)計(jì)出的金額</p><p><b> {&l
139、t;/b></p><p> printf("品牌 %s 目前所花資金為:%d\n",pinpai,money);</p><p><b> }</b></p><p> printf("按任意鍵返回。\n");</p><p><b> getch();&
140、lt;/b></p><p> system("cls");</p><p><b> }</b></p><p> void tongji_date()</p><p><b> {</b></p><p> int n=0;//
141、標(biāo)記是否有找到相關(guān)內(nèi)容</p><p> int money=0;</p><p> linklist *p;</p><p> char date[20];</p><p><b> p=head;</b></p><p> printf("請輸入需統(tǒng)計(jì)的日期:")
142、;</p><p> scanf("%s",date);</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if((strcmp(date,p->date)) == 0)//該條記錄與輸入日期相同,將該項(xiàng)記錄的資金計(jì)入</p
143、><p><b> {</b></p><p> money=money+p->price*p->count;</p><p><b> n=1;</b></p><p><b> }</b></p><p> p=p->next
144、;</p><p><b> }</b></p><p><b> if(n==0)</b></p><p><b> {</b></p><p> printf("尚未錄入該日期的任何記錄!\n");</p><p><
145、;b> }</b></p><p> else//有該日期記錄時(shí),輸出統(tǒng)計(jì)出的金額</p><p><b> {</b></p><p> printf(" %s 當(dāng)天所花資金為:%d\n",date,money);</p><p><b> }</b&
146、gt;</p><p> printf("按任意鍵返回。\n");</p><p><b> getch();</b></p><p> system("cls");</p><p><b> }</b></p><p><
147、;b> 六、運(yùn)行結(jié)果</b></p><p><b> 1、 主界面</b></p><p> 建筑材料庫存管理系統(tǒng)</p><p><b> 2、讀取記錄</b></p><p><b> 3、保存記錄</b></p><p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑材料課程設(shè)計(jì)1
- 數(shù)據(jù)庫課程設(shè)計(jì)--貨存控制系統(tǒng)
- 藥品存銷信息管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--商品進(jìn)銷存管理系統(tǒng)
- 《道路建筑材料》課程設(shè)計(jì)及教學(xué)模式改革
- 數(shù)據(jù)庫課程設(shè)計(jì)--- 百貨進(jìn)銷存信息管理系統(tǒng)
- 課程名稱建筑材料及構(gòu)造課程代碼3085,4126
- java課程設(shè)計(jì)簡單計(jì)算器和學(xué)生信息管理系統(tǒng)設(shè)計(jì)(含完整代碼)
- 某商店進(jìn)銷存管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- 進(jìn)銷存管理信息系統(tǒng)課程設(shè)計(jì)報(bào)告
- 進(jìn)銷存管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)---進(jìn)銷存管理系統(tǒng)設(shè)計(jì)
- 超市進(jìn)銷存系統(tǒng)課程設(shè)計(jì)報(bào)告
- 超市進(jìn)銷存管理系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 數(shù)據(jù)庫課程設(shè)計(jì)—企業(yè)工資管理系統(tǒng)(java版+完整代碼)
- java畫圖板課程設(shè)計(jì)報(bào)告只有報(bào)告沒有完整源代碼
- 建筑材料采購與管理分析
- 超市進(jìn)銷存管理系統(tǒng)課程設(shè)計(jì)
- java 圖書館管理系統(tǒng)(附全代碼)課程設(shè)計(jì)報(bào)告
- 文件系統(tǒng)-課程設(shè)計(jì)報(bào)告附源代碼
評(píng)論
0/150
提交評(píng)論