C語言課程設(shè)計《商品銷售管理系統(tǒng)》_第1頁
C語言課程設(shè)計《商品銷售管理系統(tǒng)》_第2頁
C語言課程設(shè)計《商品銷售管理系統(tǒng)》_第3頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、商品銷售管理系統(tǒng)目錄一、需求分析 2二、概要設(shè)計 2三、詳細(xì)設(shè)計 4四、調(diào)試分析 14五、用戶手冊 14六、測試數(shù)據(jù) 15七、附錄 18一、需求分析商品銷售管理程序商品信息:商品編號、商品名稱、商品類別普通電視機、DVD帶DVD的電視機,帶DVD的電視機的售價為普通電視機和 DVD單價之和的80%、商品 進(jìn)貨價格、商品銷售價格、商品數(shù)量、供應(yīng)商名稱等。記錄每一次銷售商品的數(shù)量和價格,并提供對已售出商品的價格、數(shù)量進(jìn) 行統(tǒng)計、排序功能,但允許用戶退商品。要求: 1. 源文件采用多文件的工程結(jié)構(gòu) 2. 數(shù)據(jù)存儲采用文件形式 3. 標(biāo)準(zhǔn)的 C 輸入輸出 4. 功能完善,適當(dāng)?shù)淖⑨專?5. 關(guān)于文件的

2、內(nèi)容需要自學(xué)、二、概要設(shè)計( 一)按系統(tǒng)分析的功能要求將系統(tǒng)劃分為以下幾個主要功能模塊:1 、文件管理 文件翻開、關(guān)閉:對于剛輸入或進(jìn)行操作后的商品信息,在建立新的商 品庫存量后,可以把其保存在一個文件中,并對該文件可進(jìn)行翻開和關(guān)閉操 作。2、進(jìn)出貨管理(1) 商品進(jìn)貨 : 輸入數(shù)據(jù)后商品信息能自動更新進(jìn)行添加(2) 商品銷售 : 輸入數(shù)據(jù)后商品信息能自動更新進(jìn)行減少3、商品數(shù)據(jù)管理(1) 增加/ 刪除商品 : 添加或刪除某條商品的信息(2) 修改商品信息 : 對某條商品的信息進(jìn)行修改4、瀏覽商品信息管理(1) 查詢商品信息:可分別按商品編號、名稱、類別或需要進(jìn)貨商品查詢(2) 排序商品信息

3、: 可按商品編號、名稱、類別分別排排序(3) 瀏覽商品信息:可瀏覽輸入、查詢或排序后的數(shù)據(jù)。 二、本程序結(jié)構(gòu) 1、結(jié)構(gòu)體設(shè)計struct goods long int num;char name20;char sort20;long int count;long int price; goods200;(2) 各功能函數(shù)設(shè)計:void input() /* 功能 1:輸入商品信息 */2void sequence() /*功能 2:排序商品信息 */void purchase() /*功能 3:進(jìn)貨商品信息 */void sell() /* void edit() /* void correc

4、t() /* void search() /*void scan() /* void reserve() /* void quit() /* (3) 主函數(shù)設(shè)計:功能 4:銷售商品信息 */功能 5:添加或刪除商品信息 */ 功能 6:修改商品信息 */ 功能 7:查詢商品信息 */ 功能 8:瀏覽商品信息 */ 功能 9:保存文件 */ 退出系統(tǒng) */void main ()void input(); void sequence(); void purchase(); void sell(); void edit(); void correct(); void search(); void

5、scan(); void reserve();lp: for(i=0;i<1;i+)scanf("%d",&k);system("cls");switch(k) /* 用 switch 語句實現(xiàn)功能選擇 */ system("cls"); /* 清屏 */ goto lp; /* 返回主界面 */三、詳細(xì)設(shè)計(1) 各功能函數(shù):void input() /*功能 1 :輸入商品信息 */printf("n 請輸入需要建立新庫存的商品種類數(shù)量 :");scanf("%d",&

6、n);system("cls");prin tf("n n");for(i=0;i<n;i+) /*用循環(huán)實現(xiàn)輸入 n 個商品 */printf("nt*請輸入商品的編號 :");scanf("%ld",&goodsi.num);printf("nt請輸入商品的名稱 :");scanf("%s",);printf("nt 請輸入商品的種類 :"); scanf("%s",goodsi.sort);pr

7、intf("nt 請輸入商品的數(shù)量 :"); scanf("%d",&goodsi.count);printf("nt 請輸入商品的單價 :");scanf("%d",&goodsi.price);prin tf("n n"); printf("tPlease press any key to continue:"); getch();return; /* 返回主界面 */void sequence() /*功能 2:排序商品信息 */long temp;ch

8、ar p130,p230;for(k=0;k<n-1;k+) /*(1):按編號排序 */for(i=0;i<n-k-1;i+) /*用起泡法排序 */if(goodsi.num>goodsi+1.num) /*按編號由小到大排序 */temp=goodsi.num; goodsi.num=goodsi+1.num;goodsi+1.num=temp; strcpy(p1,); strcpy(,goodsi+1.name);strcpy(goodsi+1.name,p1); strcpy(p2,goodsi.sort);strcpy

9、(goodsi.sort,goodsi+1.sort); strcpy(goodsi+1.sort,p2);printf("n");printf("ntt按商品編號排序后的商品信息 nn");printf("t 商品編號 商品名稱 商品類別商品數(shù)量商品單價 n"); /* 輸出排序后商品信息 */for(i=0;i<n;i+)printf("t %5ld %5s%5s %5ld %5ldn",goodsi.num,,goodsi.sort,goodsi.count,goodsi.pric

10、e)4for(k=0;k<n-1;k+) /*(2): 按商品名稱排序 */ for(i=0;i<n-k-1;i+) if(strcmp(,goodsi+1.name)>0)strcpy(p1,); strcpy(,goodsi+1.name); strcpy(goodsi+1.name,p1);temp=goodsi.num; goodsi.num=goodsi+1.num; goodsi+1.num=temp;strcpy(p2,goodsi.sort); strcpy(goodsi.sort,goodsi

11、+1.sort); strcpy(goodsi+1.sort,p2);printf("n");商品數(shù)量printf("ntt 按商品名稱排序后的商品信息 n"); printf("nt 商品名稱 商品編號 商品類別 商品單價 n"); /* 輸出排序后商品信息 */for(i=0;i<n;i+)printf("t %5s %5ld %5s %5ld %5ldn",goods ,goodsi.num,goodsi.sort,goodsi.count,goodsi.price);for(k=0;k&l

12、t;n-1;k+) /*(3): 按商品類別排序 */ for(i=0;i<n-k-1;i+) /* 用起泡法排序 */ if(strcmp(goodsi.sort,goodsi+1.sort)>0)strcpy(p2,goodsi.sort); strcpy(goodsi.sort,goodsi+1.sort); strcpy(goodsi+1.sort,p2);temp=goodsi.num; goodsi.num=goodsi+1.num;goodsi+1.num=temp;strcpy(p1,); strcpy(,goodsi+1

13、.name); strcpy(goodsi+1.name,p1);printf("");商品數(shù)量printf"ntt 按商品類別排序后的商品信息 nn" printf"t 商品類別 商品編號 商品名稱 商品單價 n" /* 輸出排序后商品信息 */fori=0;i<n;i+printf("t %5s %5ld %5s %5ld %5ldn",goodsi.sort,goodsi.num,,goodsi.count,goodsi.price)printf("");pri

14、ntf("please press any key to continue:");getch();void purchase() /* long temp; /* int j; printf("nt5return; /* 返回主界面 */功能 3:進(jìn)貨商品信息 */*/定義臨時變量表示剛進(jìn)貨的商品編號請輸入剛進(jìn)貨的商品編號 :"scanf("%ld",&temp);printf("nt5 請輸入剛進(jìn)貨的商品數(shù)量 :");scanf("%d",&j);printf("nn

15、ntpress any key to contiue:"); getch();system("cls");*/商品價printf("nt 輸出進(jìn)貨后的商品信息: "); for(i=0;i<n;i+) /* 循環(huán),尋找與進(jìn)貨相同的商品信息 */ if(temp=goodsi.num)goodsi.count=goodsi.count+j; /* 自動更改商品數(shù)量 printf("nt 商品編號 商品名 商品類別 商品數(shù)量 格");for(i=0;i<n;i+) /* 循環(huán),輸出進(jìn)貨后的商品信息 */ printf

16、("nt %4ld %4s %4s %ld %4ld",goodsi .num,,goodsi.sort,goodsi.count,goodsi.price);printf("nnttPress any key to enter menu:"); getch(); /* 返回功能選擇界面 */ return; 6void sell() /*功能4:銷售商品信息 */long temp; /* 定義臨時變量 temp 表示剛銷售的商品編號 */ int j;printf("nt5請輸入剛銷售的商品編號 :");sc

17、anf("%ld",&temp);printf("nt5請輸入剛銷售的商品數(shù)量 :");scanf("%d",&j);for(i=0;i<n;i+) /* 循環(huán),找到剛銷售的商品信息 */if(temp=goodsi.num)for(;j>goodsi.count;) /* 如果銷售額大于庫存量,那么出現(xiàn)錯誤 提示 */printf("nt 售出數(shù)量大于商品原有數(shù)量,出現(xiàn)錯誤,請重新輸 入:");scanf("%d",&j);goodsi.count=good

18、si.count-j; /* 完成自動更改商品數(shù)量的 功能*/printf("ntpress any key to contiue:"); getch();system("cls"); /*清屏 */printf("nn * 銷售后商品信息: "); printf("nt 商品類別 商品編號 商品名稱 商品數(shù)量 商品單價 n");for(i=0;i<n;i+) /* 循環(huán),輸出銷售后商品信息 */ printf("t %4s %4ld %4s %4ld %4ldn",goodsi.sort

19、,goodsi.num,,goodsi.count,goodsi.price );printf("ntPress any key to enter menu:");getch();return; /* 返回功能選擇界面 */void edit() /*功能 5:添加或刪除商品信息 */void add(); /* 聲明子函數(shù) */void dele();7printf("nt請選擇: 1.添加商品信息; 2. 刪除商品信息; ");printf("t* 請輸入 1 或 2 繼續(xù): ");scanf("%

20、d",&k);switch(k) /* 用 switch 語句實現(xiàn)功能選擇 */case 1: add();break;case 2: dele();break;getch();return; /* 返回主菜單 */void add() /* 添加商品信息 */ /* 定義子函數(shù) */ printf("t* 請輸入所添加商品的商品編號 :");scanf("%ld",&goodsn.num);printf("nt請輸入所添加商品的名稱 :");scanf("%s",)

21、;printf("nt請輸入所添加商品的類別 :");scanf("%s",goodsn.sort);printf("nt請輸入所添加商品的數(shù)量 :");scanf("%d",&goodsn.count);printf("nt請輸入所添加商品的價格 :");scanf("%d",&goodsn.price);n=n+1;printf("n");void dele() /*刪除商品信息 */ /*定義子函數(shù) */int temp; /* 定義

22、局部變量 */int j;for(i=0;i<n;i+)商品printf("nt 商品編號 商品名 商品類別 商品數(shù)量 價格");printf("nt %5ld %5s %5s %5ld %5ld",good si.num,,goodsi.sort,goodsi.count,goodsi.price);printf("n");printf("n");printf("n* 請輸入要刪除的商品編號 :");scanf("%ld",&temp);

23、printf("nn");8for(i=0;i<n;i+)if(temp=goodsi.num)for(j=i;j<n;j+)goodsj.num=goodsj+1.num; strcpy(,goodsj+1.name); strcpy(goodsj.sort,goodsj+1.sort); goodsj.count=goodsj+1.count; goodsj.price=goodsj+1.price;n=n-1; /* 商品總庫存量減少 */ for(i=0;i<n;i+)商品價printf("nt 商品編號 商品名 商

24、品類別 商品數(shù)量 格 "); /* 輸出刪除后的商品信息 */ printf("nt %5ld %5s %5s %5ld %5ld",good si.num,,goodsi.sort,goodsi.count,goodsi.price);printf("n");printf("Please press any key to continue:");getch();void correct() /* long temp; /*printf("ntreturn; /* 返回主界面 */功能 6:修

25、改商品信息 */定義局部變量 */ 請輸入要修改的商品的編號 :");scanf("%ld",&temp); /* 輸入新的商品信息 */printf("n");for(i=0;i<n;i+) /* 保存新的商品信息 */ if(temp=goodsi.num)printf("t請輸入一個新的的商品編號 :");scanf("%ld",&goodsi.num);printf("nt 請輸入新的商品的名稱 :");scanf("%s",goods

26、);printf("nt 請輸入新的商品的類別 :");9 scanf("%s",goodsi.sort);printf("nt請輸入新的商品的數(shù)量 :");scanf("%d",&goodsi.count);printf("nt請輸入新的商品價格 :");scanf("%d",&goodsi.price);printf("n"); for(i=0;i<n;i+)printf("nt 新的商品名稱 商品編號 商品

27、類別 商品數(shù)量 商品單價 n");printf("t %4s %4ld %4s %4ld %4ld",,goodsi.num,goodsi.sort,goodsi.count,goods i.price);printf("n");printf("Please press any key to continue:"); /*返回功能選擇界面 */getch();return; /* 返回主菜單 */void search() /*功能 7 :查詢商品信息 */int k; /* 定義局部變量 */long

28、 temp1;char temp230,temp320;printf("nt5 按商品編號查詢 , 請按 1ttt5 按商品名查詢 , 請按 2nt5 按商品類別查詢 , 請按 3ttt5 查需要進(jìn)貨的商品 , 請按 4n");printf("nnnttt 請輸入數(shù)字確定查詢方式 :"); scanf("%d",&k);printf("n");printf("Press any key to continue:"); getch();system("cls");swi

29、tch(k) /* 實現(xiàn)查詢方式的選擇 */case 1: printf("nnnnntt 請輸入要查詢的商品的編號 :"); /* 按商品編 號查詢 */scanf("%ld",&temp1);system("cls"); /*清屏 */for(i=0;i<n;i+) 10 if(temp1=goodsi.num)printf("n");printf("nt 商品編號 商品名 商品類別 商品數(shù)量 商品價格 ");printf("nt %5ld %5s %5s %5ld

30、%5ld",goodsi .num,,goodsi.sort,goodsi.count,goodsi.price);break; /* 跳出 switch 語句 */case 2: printf("nnnnntt 請輸入要查詢的商品名 :"); /* 按商品名查 詢數(shù)據(jù) */scanf("%s",temp2);system("cls");for(i=0;i<n;i+)if(strcmp(temp2,)=0)printf("n");printf("

31、nt 商品編號 商品名 商品類別 商品數(shù)量 商品價格 ");printf("nt %5ld %5s %5s %5ld %5ld",goodsi .num,,goodsi.sort,goodsi.count,goodsi.price);break; /* 跳出 switch 語句 */case 3: printf("nnnnntt 請輸入要查詢的商品類別 :"); /* 按商品 類別查詢數(shù)據(jù) */scanf("%s",temp3);system("cls"); for(i=0;i<

32、;n;i+)if(strcmp(temp3,goodsi.sort)=0) printf("n"); printf("nt 商品編號 商品名 商品類別 商品數(shù)量商品價格 ");printf("nt %5ld %5s %5s %5ld %5ld",goodsi.num,,goodsi.sort,goodsi.count,goodsi 11 .price); int a=50;for(i=0;i<n;i+) /*if(goodsi.count<a) printf("ntt4break; /* 跳

33、出 switch 語句 */ case 4:查詢需要進(jìn)貨的商品名 */需要進(jìn)貨的商品名 :%s 現(xiàn)有庫存 量: %ldn",,goodsi.count);跳出 switch 語句 */ break; /* printf("nnttPress any key to enter menu:");getch(); return; /* void scan() /*返回主界面 */功能 8:瀏覽商品信息 */printf("nt 瀏覽輸入的商品信息 ,請按 1nnt 瀏覽查詢的商品信息 , 請 按 2nnt 瀏覽排序后商品信息 , 請按 3

34、n");printf(" 請選擇: ");scanf("%d",&k);switch(k)case 1: printf("ttt printf("t瀏覽輸入的商品信息 n");商品編號 商品名 商品類別 商品數(shù)量 商品價格 n");/* 輸出瀏覽商品信息 */ for(i=0;i<n;i+) printf("t%5ld %5s %5s %5ld %ld",goodsi.num ,,goodsi.sort,goodsi.count,goodsi.pri

35、ce);printf("n"); printf("Press any key to enter menu:"); getch();return; break; /* 跳出 switch 語句 */case 2: printf("ttt瀏覽查詢的商品信息 n");12printf("t 商品編號 商品名 商品類別 商品數(shù)量 商品價 格 n");/* 輸出瀏覽商品信息 */for(i=0;i<n;i+)printf("t%5ld %5s %5s %5ld %ld",goodsi .num,go

36、,goodsi.sort,goodsi.count,goodsi.price);printf("n");printf("nPress any key to enter menu:");getch();return; break; /* 跳出 switch 語句 */case 3: printf("ttt瀏覽按商品編號排序的商品信息 n");printf("t 商品編號 商品名 商品類別 商品數(shù)量 商品價 格 n");/* 輸出瀏覽商品信息 */for(i=0;i<n;i+)%ld"

37、,goodsi.numprintf("t%5ld %5s %5s %5ld ,,goodsi.sort,goodsi.count,goodsi.price);printf("n");printf("nPress any key to enter menu:");返回主界面 */ 跳出 switch 語句 */功能 9:保存文件 */getch(); return; /* break; /* void reserve() /*FILE *fp;char file15; /*用來存放文件保存路徑以及文件名 */system(&

38、quot;cls"); /*清屏 */printf"nt* 請輸入文件路徑及文件名 :"*/scanf("%s",file);fp=fopen("file","w+"); /*創(chuàng)立并翻開一個文件,并得到該文件的地址fprintf(fp," 商品編號 t 商品名 t 商品類別 t 商品數(shù)量 t 商品價格 n"); printf(" 商品編號 t 商品名 t 商品類別 t 商品數(shù)量 t 商品價格 n");for(i=0;i<n;i+)13 fprintf(fp,&

39、quot;%ldtt%stt%stt%dtt%dn",goodsi.num,,goodsi.sort,goodsi.count,goodsi.price);printf("%ldtt%stt%stt%dtt%dn",goodsi.num,,goodsi.sort,goodsi.count,goodsi.price);fclose(fp); /* 關(guān)閉文件 */printf(" 文件已經(jīng)保存 !n");getch();system("cls"); /*清屏 */void quit()

40、 /* 退出系統(tǒng) */exit(0);四、調(diào)試手冊(1) 、sp.c(225) : warning C4013: 'add' undefined; assuming extern returning int add() 函數(shù)聲明錯誤。(2) 、 sp.c(265) : error C2143: syntax error : missing '' before ')'。(3) 、 sp.c(78) : warning C4013: 'getch' undefined; assuming extern returning int 。五

41、、用戶手冊1、本程序的運行環(huán)境為 windows XP 操作系統(tǒng),執(zhí)行文件為 sp.exe ; 2、進(jìn)入演示程序后,即顯示對話形式的提示操作過程:如:第一項:1輸入商品信息 在選擇一欄輸入: 1即顯示商品編號、商品名、商品種類、數(shù)量、單價的商品信息,依次輸入所需添加的數(shù)據(jù)。添加商品完畢,選擇:2排序商品信息。選擇:3輸入進(jìn)貨信息。選擇:4輸入銷售信息。選擇:5增加或刪除商品選擇:6修改商品信息。選擇:7查詢商品信息。選擇:8瀏覽商品信息。選擇:9保存商品信息。選擇:0退出系統(tǒng)。Enter 退出添加。六、測試數(shù)據(jù)進(jìn)入演示程序后,即顯示對話形式的提示操作過程:商品銷售管理系統(tǒng)輸入商品信息f排序商品信息j修改商品信息一輸入進(jìn)貨信息-輸入銷售信息増加卅餘商品f查詢商品信息一瀏覓商品信息f保存商品信息選擇:1輸入相應(yīng)提示的商品信息珀M輸入商品的編號=1001請輸入商品的名稱;FTU請輸入商品的種類:putongdi*nshiji請輸入商品的數(shù)量 請輸入商品的單價二圏郵選擇:2對商品信息進(jìn)行排序商品編可100110021003商品名稱PTUDUDGTU商品類別商品數(shù)量putongdianshiji dud££dvd+pti>90商品單價26 2888 19996499按商品名稱

溫馨提示

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

評論

0/150

提交評論