雜貨店管理系統(tǒng)_第1頁
雜貨店管理系統(tǒng)_第2頁
雜貨店管理系統(tǒng)_第3頁
雜貨店管理系統(tǒng)_第4頁
雜貨店管理系統(tǒng)_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、 電子科技大學(xué)成都學(xué)院微電子技術(shù)系C語言課程設(shè)計實驗報告冊題 目:雜貨店庫存銷售管理系統(tǒng) 指導(dǎo)教師: 設(shè) 計 者(組長): 趙同學(xué) 設(shè) 計 者(組員1): 李同學(xué) 所屬院系:微電子技術(shù)系 微電子技術(shù)系制2016年 6月1日一、課程設(shè)計的目的1、進一步掌握和利用C語言進行程設(shè)計的能力;2、進一步理解和運用結(jié)構(gòu)化程序設(shè)計的思想和方法;3、初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;4、學(xué)會調(diào)試一個較長程序的基本方法;5、學(xué)會利用流程圖或N-S圖表示算法;6、掌握書寫程序設(shè)計開發(fā)文檔的能力。二、課程設(shè)計的任務(wù)內(nèi)容(一)系統(tǒng)需求分析1. 輸入記錄:將每一個商品的商品名稱、商品ID 號以及商品類型、商品單價

2、、商品數(shù)量的數(shù)據(jù)作為一個記錄。該軟件能建立一個新的數(shù)據(jù)文件或給已建立好的數(shù)據(jù)文件增加記錄。2. 顯示記錄:根據(jù)用戶提供的記錄或者根據(jù)商品名稱顯示一個或幾個商品的各項詳細(xì)記錄。3. 修改記錄:可以對數(shù)據(jù)文件的任意記錄的數(shù)據(jù)進行修改并在修改前后對記錄內(nèi)容進行顯示。4查找記錄:可以對數(shù)據(jù)文件的任意記錄的數(shù)據(jù)進行查找并在查找前后對記錄內(nèi)容進行顯示。5. 刪除記錄:可刪除數(shù)據(jù)文件中的任一記錄。6排序:按貨號排序。7. 統(tǒng)計: (A)統(tǒng)計有多少種商品類型,并計算各項商品類型下的商品數(shù)量和總金額,。(B) 統(tǒng)計符合指定條件(如商品單價在50元以下、50100 元、100元以上) 以內(nèi)的商品數(shù)量以及占總商品數(shù)

3、量的百分比。(C)按貨號或者單價排序形式打印全部商品信息表。8保存數(shù)據(jù)文件以及打開數(shù)據(jù)文件功能。經(jīng)過逐層逐塊、不斷細(xì)化、求精過程,編寫程序并進行測試、驗證,可以逐個模塊地分開調(diào)試,并通過文件包含或用工程文件的形式進行逐步聯(lián)合調(diào)試。三模塊設(shè)計分析(一)系統(tǒng)功能模塊圖歡迎畫面登陸界面主菜單保存與讀取按商品ID號查找修改商品ID號修改商品名稱修改商品數(shù)量修改商品價格修改商品類型找零查詢庫存查詢銷量排行名稱顧客消費排行統(tǒng)計某月生日顧客(二)各個模塊詳細(xì)功能描述1.歡迎界面:有背景音樂和配圖,配圖顏色會隨機變化。2.登陸界面:可以進行背景色的設(shè)置,瀏覽關(guān)于我們的技術(shù)支持信息,可以修改登陸密碼等。3.客戶

4、管理:實現(xiàn)客戶信息的增刪查改。4.商品管理:實現(xiàn)了商品基本信息錄入的增刪查改,還能查看庫存量,此處的庫存量會由于銷售系統(tǒng)部分售出商品而及時更改庫存信息。5.購物結(jié)算:可幫助售貨員進行銷售,具有結(jié)算功能,可實現(xiàn)收銀臺的作用。6.銷售結(jié)算:對銷售量,庫存量,客戶購買需求等進行統(tǒng)計排名,幫助店家進貨時能選擇熱銷商品,同時可以查詢各個月份生日的顧客。(三)功能函數(shù)的調(diào)用關(guān)系圖主函數(shù)歡迎程序登陸程序客戶管理退出程序購物結(jié)算銷售結(jié)算商品管理客戶貢獻排行程序修改客戶程序添加客戶程序刪除客戶程序查詢客戶程序查詢商品程序刪除商品程序修改商品程序添加商品程序查詢某月客戶生日程序銷量排行程序四系統(tǒng)詳細(xì)設(shè)計(請按照功

5、能模塊的劃分,抓圖并搭配相應(yīng)的實現(xiàn)代碼來描述具體的實現(xiàn)。代碼中可以添加必要的注釋)1.歡迎界面:有背景輕音樂,有動態(tài)動畫展示,動畫顏色隨機變化。#ifndef _user_def_H /用戶自定義頭文件user-defined#define _user_def_H#include /支持Sleep函數(shù) #include #include /用于隨機函數(shù)初始化time()void color_back() /設(shè)置文本字符的顏色 int i; srand(unsigned)time(NULL); /初始化時鐘 i=rand()%15; /隨機一個0到14的整數(shù) switch(i) case 0:

6、system(color 07);break; case 1: system(color 08);break; case 2: system(color 09);break; case 3: system(color 0A);break; case 4: system(color 0B);break; case 5: system(color 0C);break; case 6: system(color 0D);break; case 7: system(color 0E);break; case 8: system(color 0F);break; case 9: system(color

7、 01);break; case 10:system(color 02);break; case 11:system(color 03);break; case 12:system(color 04);break; case 13:system(color 05);break; case 14:system(color 06);break; void display_picture() /顯示動畫程序 system(cls); printf(nn); color_back(); /隨機一個文本顏色 Sleep(300); /讓系統(tǒng)暫停300毫秒,1秒 = 1 000 毫秒 printf(tt

8、-n); color_back(); Sleep(300); printf(tt |-|n); color_back(); Sleep(600); printf(tt * * * * * * *n); color_back(); Sleep(600); printf(tt * * * * *n); color_back(); Sleep(900); printf(tt = *= *=n); color_back(); Sleep(900);printf(tt * * *n); color_back(); Sleep(1000);printf(tt * * * *n); color_back()

9、; Sleep(1000);printf(tt * *n); color_back(); Sleep(1200); printf(tt - n); color_back(); Sleep(1300);printf(tt 李&趙 雜貨商店 n); color_back(); Sleep(1300); printf(tt - - n); color_back(); Sleep(600); printf(tt * * * * n); color_back(); Sleep(600); printf(tt * * n); color_back(); Sleep(600); printf(tt * *

10、* *n); color_back(); Sleep(600); printf(tt * * * * n);#endif2.登陸界面:登陸賬號,改變背景色,修改密碼,查看關(guān)于我們的技術(shù)支持,退出系統(tǒng)void main() char choice=5; /存儲判斷的選項 int i; PlaySound (TEXT(C:Users15878Desktopsupermarket洋蔥.wav), NULL, SND_ASYNC | SND_NODEFAULT);/音樂播放 printf(雜貨店管理程序n); system(pause); for(i=0;i= 3)printf(3次密碼錯誤!n);p

11、rintf(請稍后再次登錄nn);printf(請按任意鍵退出);getch();return -1;return 1;void changepw()struct user info;char pw100=0, pw_confirm100=0;read_data(&info);system(cls);while(1)int i;printf(按1改密碼n按0退出n);scanf(%d, &i);if(i = 0)break;if(i = 1)while(1)printf(請輸入原始密碼n);scanf(%s, pw);if(strcmp(pw, info.pw) != 0)printf(原始密

12、碼錯誤n);continue;printf(請輸入新密碼n);scanf(%s, pw);printf(請再輸一次n);scanf(%s, pw_confirm);if(strcmp(pw, pw_confirm) != 0) int j;printf(兩次密碼不一致!n);while(1)printf(按1再一次改密碼n按2返回上一步n按0退出n);scanf(%d, &j);if(j = 0) return -2;if(j = 1 | j = 2) break;printf(unknown inputn);if(j = 2) break;continue;strcpy(info.pw, p

13、w);write_data(&info);break;elseprintf(unknown input, should be 0/1n);3.主菜單void showMymenue() char choice=5; while(1) system(cls); BreakLine; printf(tt1. 商品管理n); printf(tt2. 客戶管理n); printf(tt3. 購物預(yù)算n); printf(tt4. 銷售預(yù)算n); printf(tt5. 退出系統(tǒng)n); BreakLine; printf(nn請輸入您的選擇(1,2,3,4,5):); choice=getch(); s

14、witch (choice) case1: showGoodsmenue(); break; case2: showCustmenue(); break;case3: showSell(); break;case4: showSales(); break;case5:printf(nn系統(tǒng)安全退出nn);exit(0);break;default: printf(n您的輸入有誤,請檢查后重新輸入n); pcontinue(); 4.商品管理:包括添加商品,修改商品,刪除商品,查詢商品#include #include #include #include #include MyParams.h#

15、include common.h#include Mymenu.h#include Goodsman.hstruct dateint year;int month;int day;struct goods int no; /編碼:char name20; /名稱:struct date scday; /生產(chǎn)期 struct date:表示結(jié)構(gòu)體類型date型 scday變量名 生日:- struct datefloat expenda; /原價:float expendb; /單價:int save; /庫存量int sell; /出售量goods100000; /定義一個全局的結(jié)構(gòu)體數(shù)組 1

16、00000int total;int read_Message()FILE *fp;int i=0;if(fp=fopen(goods.dat,rb)=NULL)printf(n*暫無任何可讀信息,按任意鍵繼續(xù)*);getch();return 0;while(feof(fp)!=1)fread(&goodsi,sizeof(struct goods),1,fp);if(goodsi.no=0)break;elsei+;fclose(fp);return i;void saveall() FILE*fp; int i; if(fp=fopen(goods.dat,wb)=NULL) print

17、f(n無法打開文件n); return; for(i=0;itotal;i+) fwrite(&goodsi,sizeof(struct goods),1,fp); fclose(fp);void addgoods()struct goods newgoods; /新加入的結(jié)構(gòu)體數(shù)組char choice=y; /是否繼續(xù)錄入信息FILE *fp; /文件指針,用它指向一個文件int i=0; /i是一個計數(shù)器,因為文件中最多存1000個數(shù)據(jù) dosystem(cls);printf(n*添加商品信息*n);printf(請輸入商品編碼:);scanf(%d,&newgoods.no); /取

18、地址因為它是一個基本類型的數(shù)據(jù)BreakLine;printf(請輸入商品名稱:);scanf(%s,&); BreakLine;printf(請輸入商品生產(chǎn)期:(格式如下:1999-9-9):);scanf(%d-%d-%d,&newgoods.scday.year,&newgoods.scday.month,&newgoods.scday.day);printf(請輸入商品原價:);scanf(%f,&newgoods.expenda); printf(請輸入商品單價:);scanf(%f,&newgoods.expendb);printf(請輸入商品出售量:);

19、scanf(%d,&newgoods.sell);printf(請輸入商品庫存量:);scanf(%d,&newgoods.save);/以上完成了輸入客戶信息的操作; /將newcust結(jié)構(gòu)體中的數(shù)據(jù)保存到一個磁盤文件中if(fp=fopen(goods.dat,ab)=NULL)printf(無法打開文件); return; /如果打得開文件 /要保存數(shù)據(jù)的地址 這個數(shù)據(jù)類型的長度 幾個數(shù)組文件指針fwrite(&newgoods,sizeof(struct goods),1,fp);fclose(fp); /重新確認(rèn)是否繼續(xù)錄入printf(n還要繼續(xù);錄入商品信息嗎?(y/n);cho

20、ice=getch();while(choice=y);void delgoods()int i,j;int todelno;char choice=n;system(cls);total=read_Message();printf(n請輸入你要刪除的商品的編碼:);scanf(%d,&todelno);for(i=0;itotal;i+)if(todelno=goodsi.no)break; /如果,沒有找到要刪除的商品if(i=total)printf(n沒有找到您想刪除的商品n);printf(n按任意鍵繼續(xù)n);getch();return; printf(親愛的管理員,刪除后無法恢復(fù)

21、,您確定要刪除嗎?(y/n);choice=getch();if(choice=n)printf(n放棄刪除,返回上一級n);printf(n按任意鍵繼續(xù)n);getch();return;for(j=i;jtotal;j+)goodsj=goodsj+1;total-=1;saveall();printf(n刪除商品數(shù)據(jù)成功n);pcontinue();getch();void updategoods()int i,r;int todelno;/struct goods gx; char choice=n;system(cls);total=read_Message();printf(n請輸

22、入你要更新的商品的編號:);scanf(%d,&todelno);for(i=0;i0)printf(n*顯示所有商品信息*n);printf(n編號t名稱t生產(chǎn)期tt原價t單價t出售量t庫存量n);for(i=0;itotal;i+)c=goodsi;printf(n%dt%st%d-%d-%dt%.2ft%.2ft%dt%dtn,c.no,,c.scday.year,c.scday.month,c.scday.day,c.expenda,c.expendb,c.sell,c.save);BreakLine;else printf(n*系統(tǒng)中暫無任何商品信息*n);printf(

23、n按任意鍵繼續(xù)n);getch();5.客戶管理:包括客戶信息的增添,刪除,修改,與查詢#include #include #include #include #include MyParams.h#include common.h#include Mymenu.h#include CustMan.hint read_message(); struct dataint year;int month;int day; ;struct custint no; /編號char name20; /名字double expenditure; /總花費char tel20; /電話號碼struct dat

24、a birthday; /生日cust1000; /最多存1000個客戶信息int total; /現(xiàn)在cust.dat文件中總的紀(jì)錄條數(shù)void saveAll() FILE*fp;int i;if(fp=fopen(cust.dat,wb)=NULL)printf(n無法打開文件n);return;for(i=0;i0) printf(n*顯示所有客戶信息*n); printf(n 編號 tt 姓名 tt消費 tt 電話 ttt 生日); for(i=0;itotal;i+) c=custi; printf(n%dtt%stt%.2ftt%stt%d-%d-%dttn,c.no,c.nam

25、e,c.expenditure,c.tel,c.birthday); printf(n); else printf(n*系統(tǒng)中暫無任何客戶信息*); pcontinue();void updatecust() int i,q; int toupdateno; /要更新的編號 int j; system(cls); total=read_message(); / 讀出信息 printf(n請輸入您要更新的客戶編號:); scanf(%d,&toupdateno); /查找 for(i=0;itotal;i+) if(toupdateno=custi.no) break; /i里面記錄了要更新的客

26、戶的索引 if(i=total) printf(n沒有找到要更新的客戶n);printf(按任意鍵繼續(xù)n);getch();return; printf(n*請更新用戶信息*n); printf(n*請選擇更新項目*n); printf( 1.客戶姓名n); printf( 2.客戶電話n); printf( 3.客戶生日n); printf( 4.返回上級n); BreakLine; while(1) printf(請輸入選擇項目:); scanf(%d,&q); switch(q) case 1:printf(請輸入客戶姓名:); scanf(%s,);break; /*printf(請輸入客戶消費:); scanf(%d,&custi.expenditure);*/ case 2:printf(請輸客戶電話:); scanf(%s,custi.tel);break; case 3:printf(請輸入客戶的生日(格式:1999-9-9):); scanf(%d-%d-%d,&custi.birthday.year,&custi.birthday.month,&

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論