版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 建筑材料貨存管理系統(tǒng)</p><p><b> 課程設計報告</b></p><p><b> 功能描述</b></p><p> 此貨存管理系統(tǒng)主要利用單鏈表實現(xiàn),由如下七個功能模塊實現(xiàn):</p><p> 1、讀取記錄:以只讀方式打開文件,方便當前內(nèi)容已存入文件時的
2、處理,以免出現(xiàn)重復。</p><p> 2、保存記錄模塊:保存你所輸入的貨物信息。</p><p> 3、添加記錄模塊:添加貨物(名稱、品牌、價格、數(shù)量、日期)。</p><p> 4、刪除記錄模塊:刪除某項貨物的數(shù)據(jù)。</p><p> 5、查詢記錄模塊:查詢某項貨物的數(shù)據(jù)。</p><p> 6、更改記錄
3、模塊:修改某項貨物的數(shù)據(jù)。</p><p> 7、統(tǒng)計功能模塊:統(tǒng)計貨物花費金額。(該功能模塊下又有子菜單,由四個功能模塊實現(xiàn))。</p><p><b> 二、總體設計</b></p><p><b> 1、功能模塊設計</b></p><p> ?。?)主函數(shù)執(zhí)行流程</p>
4、<p> 進入主菜單,利用開關(guān)(switch)分支,很據(jù)條件的取值來選擇其中的一個分支。進入所選分支后,調(diào)用相應的函數(shù)來執(zhí)行菜單任務。</p><p><b> (2)讀取記錄模塊</b></p><p> 由if語句判斷該文件是否存在,若不存在,由printf提示“打開文件失敗”;若存在,用當型循環(huán)語句(while)先判斷是否清除記錄,再利用whi
5、le循環(huán)語句讀取文件。</p><p><b> ?。?)保存記錄模塊</b></p><p> 首先由if 語句判斷是否有記錄錄入,若無,則由printf“提示尚未錄入任何記錄”,同時已只寫方式打開文件并清空文件內(nèi)容,提示“保存失敗”;若存在,將鏈表內(nèi)容逐條寫入文件中,提示“寫入文件成功!”。</p><p><b> ?。?)添
6、加記錄模塊</b></p><p> 首先提示“要添加記錄條數(shù):”,利用for循環(huán)逐個添加貨物記錄,其中包括名稱、品牌、價格、數(shù)量、日期。</p><p><b> ?。?)刪除記錄模塊</b></p><p> 首先提示“請輸入要刪除記錄的編號:”,進入while循環(huán)語句,先由if條件語句判斷輸入記錄編號是否與記錄相符,若相符
7、則顯示該條記錄信息并提示用戶“是否確認刪除?(y/n):”,若選擇“y”,則提示“刪除成功”;反之提示“放棄刪除”。</p><p><b> (6)查詢記錄模塊</b></p><p> 先由if語句判斷是否存在記錄,若無則提示“尚未錄入任何記錄!”;若有則進入while循環(huán),循環(huán)中同樣利用菜單選擇,由switch來執(zhí)行。其中包含findall()和findso
8、me()兩個調(diào)用函數(shù)。</p><p><b> (7)更改記錄模塊</b></p><p> 首先提示“請輸入查詢材料的編號:”,進入while循環(huán)語句,用if語句進行判斷,若與錄入記錄材料編號相符,則顯示該材料的原信息并提示“請輸入你所修改的新信息:”,依次輸入更改后的信息即可;若不相符,則提示“無該項記錄!”。</p><p><
9、;b> ?。?)統(tǒng)計記錄模塊</b></p><p> 先由if語句判斷是否存在記錄,若無則提示“尚未錄入任何記錄!”;若有則進入while循環(huán),接著該模塊利用一個子菜單及switch分支來執(zhí)行任務。其中包含tongji_all()、tongji_name()、tongji_pinpai()、tongji_date()調(diào)用函數(shù)來分別實現(xiàn)統(tǒng)計所有材料資金、按名稱統(tǒng)計資金、按品牌統(tǒng)計資金、按日期統(tǒng)
10、計資金的功能。</p><p><b> 三、數(shù)據(jù)結(jié)構(gòu)設計</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é)點指針</p><p> linklist *end = NULL;//尾節(jié)點指針</p><p> int Number=1;//編號</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> ⑴程序預處理</b></p><p> 包括加載頭文件,定義結(jié)構(gòu)體、常量和變量,并對它們進行
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) 計
25、 功 能 * \n");</p><p> printf(" * 0. 退 出 系 統(tǒng) * \n");</p><p> printf(" * ------------------
26、------------------------------------- * \n");</p><p> printf(" 請輸入你要進行的操作:");</p><p> printf(" ***********************************************************\n\
27、n\n");</p><p> printf("\t\t ********09級給水排水班*********** \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("輸入錯誤,請重新選擇!\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) 計 功 能 * \n");</p><p> printf(" * 0. 退 出 系 統(tǒng)
39、 * \n");</p><p> printf(" * ------------------------------------------------------- * \n");</p><p> printf(" 請輸入你要進行的操作:");<
40、/p><p> printf(" ***********************************************************\n\n\n");</p><p> printf("\t\t ********09級給水排水班*********** \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)計讀取記錄條數(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("當前已有記錄,打開文件時是否清除?(y/n)\n");//方便
47、當前內(nèi)容已存入文件時的處理,以免出現(xiàn)重復</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é)點開始釋放所有鏈表節(jié)點的空間</p>
49、<p> Number=1;//重置編號</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é)點</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é)點的下一節(jié)點指針指向p中數(shù)據(jù),再將尾節(jié)點后移</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)//未錄入記錄時的處理</
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> }//第一個節(jié)點的處理</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> }//每添加一個節(jié)點,尾指針后移</p><p> printf("
68、;本條記錄編號:%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("請輸入價格:");</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é)點的上一個節(jié)點,m記錄刪除節(jié)點的下一個節(jié)點</p><p> int number;</p><p><b> p=head;</b></p&
74、gt;<p><b> q=NULL;</b></p><p> printf("請輸入要刪除記錄的編號:");</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("要刪除的記錄為:\n");</p>
76、<p> printf("編號:%d,名稱:%s,品牌:%s,價格:%d,數(shù)量:%d,日期:%s\n",p->number,p->name,p->pinpai,p->price,p->count,p->date);</p><p> printf("是否確認刪除?(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é)點的處理</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的上一個節(jié)
80、點的末尾指針指向p的下一個節(jié)點過后再釋放p</p><p> while(m != NULL)//m為刪除節(jié)點之后的節(jié)點指針,當其不為空時,將后面節(jié)點的編號減1</p><p><b> {</b></p><p> m->number--;</p><p> m=m->next;</p>
81、<p><b> }</b></p><p> Number--;//記錄的總編號數(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("無該項記錄!\n");//若有記錄,在while循環(huán)中會自動結(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("輸入錯誤,請重新選擇!\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é)點</p><p> while(p!=NULL)</p><p><b> {</b></p><p&g
96、t; printf("編號:%d,名稱:%s,品牌:%s,價格:%d,數(shù)量:%d,日期:%s\n",p->number,p->name,p->pinpai,p->price,p->count,p->date);</p><p> p=p->next;//將P指向下一個節(jié)點</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;//標記是否有找到相關(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("編號:%d,名稱:%s,品牌:%s,價格:%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("請輸入要修改記錄的編號:");</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("編號:%d,名稱:%s,品牌:%s,價格:%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("請輸入價格:");</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("無該項記錄!\n");</p><p> printf("按任意鍵返回。\n");</p><p><b> getch();</b></p><p> system("cls");</p><p><b>
113、 }</b></p><p><b> 統(tǒng)計資金函數(shù)</b></p><p> void tongji()//統(tǒng)計函數(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)計 ************
117、******\n");</p><p> printf(" *************************菜單********************************\n");</p><p> printf(" * ===============================================
118、========== * \n");</p><p> printf(" * 1. 統(tǒng)計所有材料資金 * \n");</p><p> printf(" * 2. 按名稱統(tǒng)計資金
119、 * \n");</p><p> printf(" * 3. 按品牌統(tǒng)計資金 * \n");</p><p> printf(" * 4. 按日期統(tǒng)計資金
120、 * \n");</p><p> printf(" * 0. 退出查詢系統(tǒng) * \n");</p><p> printf(" * ----------------------------------------
121、----------------- * \n");</p><p> printf(" 請輸入統(tǒng)計內(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("輸入錯誤,請重新選擇!\n");</p><p><b> }</b&
124、gt;</p><p><b> }</b></p><p><b> }</b></p><p> void tongji_all()//統(tǒng)計所有材料資金</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;//標記是否有找到相關(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)計材料的
129、名稱:");</p><p> scanf("%s",name);</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if((strcmp(name,p->name)) == 0)//該條記錄與輸入名稱相同,將該項記錄的
130、資金計入</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//有該材料記錄時,輸出統(tǒng)計出的金額</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;//標記是否有找到相關(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)計的品牌:");</p><p> scanf("%s",pinpai);</p><p> while(p!=NULL)</p><p
136、><b> {</b></p><p> if((strcmp(pinpai,p->pinpai)) == 0)//該條記錄與輸入品牌相同,將該項記錄的資金計入</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//有該品牌記錄時,輸出統(tǒng)計出的金額</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、標記是否有找到相關(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)計的日期:")
142、;</p><p> scanf("%s",date);</p><p> while(p!=NULL)</p><p><b> {</b></p><p> if((strcmp(date,p->date)) == 0)//該條記錄與輸入日期相同,將該項記錄的資金計入</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//有該日期記錄時,輸出統(tǒng)計出的金額</p><p><b> {</b></p><p> printf(" %s 當天所花資金為:%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> 六、運行結(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑材料課程設計1
- 數(shù)據(jù)庫課程設計--貨存控制系統(tǒng)
- 藥品存銷信息管理系統(tǒng)-課程設計報告
- 課程設計報告--商品進銷存管理系統(tǒng)
- 《道路建筑材料》課程設計及教學模式改革
- 數(shù)據(jù)庫課程設計--- 百貨進銷存信息管理系統(tǒng)
- 課程名稱建筑材料及構(gòu)造課程代碼3085,4126
- java課程設計簡單計算器和學生信息管理系統(tǒng)設計(含完整代碼)
- 某商店進銷存管理系統(tǒng)-課程設計報告
- 進銷存管理信息系統(tǒng)課程設計報告
- 進銷存管理系統(tǒng)課程設計
- 課程設計---進銷存管理系統(tǒng)設計
- 超市進銷存系統(tǒng)課程設計報告
- 超市進銷存管理系統(tǒng)課程設計實驗報告
- 數(shù)據(jù)庫課程設計—企業(yè)工資管理系統(tǒng)(java版+完整代碼)
- java畫圖板課程設計報告只有報告沒有完整源代碼
- 建筑材料采購與管理分析
- 超市進銷存管理系統(tǒng)課程設計
- java 圖書館管理系統(tǒng)(附全代碼)課程設計報告
- 文件系統(tǒng)-課程設計報告附源代碼
評論
0/150
提交評論