您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么用C語言實(shí)現(xiàn)商品銷售系統(tǒng)”,在日常操作中,相信很多人在怎么用C語言實(shí)現(xiàn)商品銷售系統(tǒng)問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”怎么用C語言實(shí)現(xiàn)商品銷售系統(tǒng)”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
#include<stdio.h> //頭文件 #include<string.h> //頭文件 #include<stdlib.h> //頭文件 #define M 100 //貨物種類 #define N 100 //顧客數(shù)目 struct goods //單個(gè)貨物信息格式 { int number; //產(chǎn)品編號(hào) char name[20]; //產(chǎn)品名稱 int price1; //進(jìn)價(jià)(或利潤) int price2; //售價(jià) int amount; //數(shù)量 }; struct orderlist //訂單格式 { struct goods L[M]; }; struct customer //客戶信息內(nèi)容和格式 { char name[20]; //姓名 char password[6]; //服務(wù)密碼 int count; //訂單號(hào) }; struct customer khl[N]; //所有客戶信息 struct goods base[M]; //庫存信息 struct orderlist odl[10*N];//訂單表 struct goods lackl[M]; //缺貨表 struct goods suml[M+1]; //銷售報(bào)表 int PP=0; //訂單編號(hào) int QQ=0; //客戶編號(hào) int goodssum=0; //貨物總數(shù) int main() //主函數(shù)開始!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! { int SysUseWay(); //系統(tǒng)使用說明函數(shù)聲明 int chushihua(); //系統(tǒng)初始化函數(shù)聲明 int welcome(); //歡迎界面函數(shù)聲明 int kh(); //客戶函數(shù)聲明 int buyer(); //采購部函數(shù)聲明 int manager(); //公司經(jīng)理函數(shù)聲明 int goodbye(); //歡送函數(shù)聲明 int n,m=9; //變量聲明 SysUseWay(); //系統(tǒng)使用說明書 chushihua(); //系統(tǒng)初始化 while(m==9) //循環(huán)三岔口 { welcome(); //歡迎界面 scanf("%d",&n); switch(n) //各奔東西 { case 0 : ;break; case 1 : kh(); break; //客戶之家 case 2 : buyer(); break; //采購之家 case 3 : manager(); break; //經(jīng)理之家 default : printf("輸入錯(cuò)誤!請(qǐng)退出重從新輸入"); } if(n==0) break; printf(" 繼續(xù)進(jìn)入主界面請(qǐng)按 9 退出請(qǐng)按0\n"); scanf("%d",&m); } goodbye(); //歡送界面 return 0; } //主函數(shù)結(jié)束!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! int SysUseWay() //系統(tǒng)使用說明書函數(shù)定義 { FILE *fp; fp=fopen("D://商品銷售系統(tǒng)使用說明書.txt","w"); fprintf(fp," 商品銷售系統(tǒng)使用說明書\n"); fprintf(fp," 作者 盧孟江 學(xué)號(hào) 13091012 西安電子科技大學(xué)軟件學(xué)院130911班 2010年10月6日\n"); fprintf(fp," 本銷售系統(tǒng)僅是一個(gè)銷售部門管理系統(tǒng)的的簡單模型,功能少,不太穩(wěn)定,不太安全。\n"); fprintf(fp," 主要分為三個(gè)模塊??蛻?-銷售部門--公司經(jīng)理。\n"); fprintf(fp," 1--客戶??蛻糁饕峭ㄟ^該系統(tǒng)進(jìn)行訂貨。進(jìn)入系統(tǒng)后,需要注冊(cè),登陸。系統(tǒng)會(huì)自主分配\n"); fprintf(fp,"一個(gè)服務(wù)編號(hào)給客戶,由客戶自己設(shè)定密碼。訂購之后,可以登錄查詢自己的訂貨情況.不足之處\n"); fprintf(fp,"在于該系統(tǒng)是一次性的---關(guān)閉系統(tǒng)之后,系統(tǒng)會(huì)丟失一切數(shù)據(jù)。這涉及數(shù)據(jù)庫的知識(shí),恕我現(xiàn)在\n"); fprintf(fp,"無能為力。還有,每一個(gè)服務(wù)編號(hào)只能對(duì)應(yīng)一個(gè)訂貨單,即客戶每定一次貨就得重新注冊(cè)一次,否\n"); fprintf(fp,"則就會(huì)覆蓋以前的數(shù)據(jù)。\n"); fprintf(fp," 2--采購部門。主管倉庫,查看處理缺貨,進(jìn)貨。使用該系統(tǒng)前,首先必須由采購部門建立倉\n"); fprintf(fp,"庫。填寫貨物名稱,進(jìn)價(jià),售價(jià),庫存數(shù)量。貨物編號(hào)由系統(tǒng)自主按序分配。接下來,采購部門需\n"); fprintf(fp,"要經(jīng)常查看是否缺貨。及時(shí)進(jìn)貨。\n"); fprintf(fp," 3--經(jīng)理只需要抽時(shí)間查看一下銷售報(bào)表。了解每一種貨物的銷售情況,以及總的銷售利潤。\n"); fprintf(fp,"\n"); fprintf(fp," 謹(jǐn)以此紀(jì)念我碌碌無為的大一。\n"); fclose(fp); printf("................................................................................\n"); printf("本系統(tǒng)使用說明書詳見于您的計(jì)算機(jī)D盤“商品銷售系統(tǒng)使用說明書.txt”文件。歡迎查閱 \n"); printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); return 0; } int welcome() //歡迎界面函數(shù)定義 { printf("................................................................................\n"); printf("\n"); printf(" ~~~~~~~~歡迎使用商品銷售系統(tǒng)~~~~~~~~\n"); printf("\n"); printf("..............................................................................\n"); printf(" 公司客戶請(qǐng)按 1\n"); printf("\n"); printf("..............................................................................\n"); printf(" 采購人員請(qǐng)按 2\n"); printf("\n"); printf("...............................................................................\n"); printf(" 公司經(jīng)理請(qǐng)按 3\n"); printf("\n"); printf("................................................................................"); printf(" 退出主界面請(qǐng)按 0\n"); printf("\n"); printf("\n"); printf("................................................................................\n"); return 0; } int chushihua() //初始化函數(shù) { int i=0,j=0; for(i=0;i<M;i++) { suml[i].number=lackl[i].number=base[i].number=-1; base[i].amount=0; base[i].price1=base[i].price2=0; lackl[i].amount=0; suml[i].price1=0; suml[i].amount=0; } suml[M].price1=0; for(i=0;i<N;i++) khl[i].count=-1; for(i=0;i<10*N;i++) { for(j=0;j<M;j++) { odl[i].L[j].number=j; odl[i].L[j].amount=0; odl[i].L[j].price1=base[j].price1; odl[i].L[j].price2=base[j].price2; } } return 0; } int goodbye() //歡送界面函數(shù)定義 { printf(" ~~~~感謝您使用商品銷售系統(tǒng)~~~~\n"); printf(".........................................................................\n"); printf("作者 盧孟江 學(xué)號(hào) 13091012 軟件學(xué)院 130911班\n"); printf(".........................................................................\n"); printf("\n"); printf(".........................................................................\n"); printf("由于時(shí)間倉促,能力有限,系統(tǒng)不是很完美,如有問題敬請(qǐng)?jiān)?。歡迎垂詢15109281415\n"); printf(".........................................................................\n"); return 0; } int buyer() //采購函數(shù) { int welcomebuyer(); //歡迎函數(shù) int buildbaser(); //倉庫建設(shè) int solvelack(); //查詢?nèi)必浨闆r int chackbase(); //查詢倉庫情況 int n; int m=9; while(m==9) //循環(huán)三岔口 { welcomebuyer(); //歡迎歡迎 scanf("%d",&n); //各奔東西 switch(n) { case 0 : ;break; //退出 case 1: solvelack();break; //查缺貨 case 2: buildbaser();break; //建設(shè)倉庫 case 3: chackbase();break; //檢查倉庫 default :printf("輸入錯(cuò)誤!\n"); } if(n==0) break; printf(" 繼續(xù)采購請(qǐng)按 9 否則請(qǐng)按0\n"); scanf("%d",&m); } return 0; } int welcomebuyer() { printf("................................................................................\n"); printf("\n"); printf(" ~~~~~~~~歡迎來到采購之家~~~~~~~~\n"); printf("\n"); printf("..............................................................................\n"); printf(" 處理缺貨 請(qǐng)按 1\n"); printf("\n"); printf("..............................................................................\n"); printf(" 進(jìn)貨 請(qǐng)按 2\n"); printf("\n"); printf("...............................................................................\n"); printf(" 查詢當(dāng)前存貨情況 請(qǐng)按 3\n"); printf("\n"); printf("................................................................................"); printf(" 退出采購 請(qǐng)按 0\n"); printf("\n"); printf("\n"); printf("................................................................................\n"); return 0; } int buildbaser() //采購函數(shù)--進(jìn)貨函數(shù) { int i=0; printf(" 若想停止進(jìn)貨,請(qǐng)?jiān)谪浳飻?shù)量上輸入 0\n\n"); for(i=0;i<M;i++) { printf("\n貨物名稱:"); scanf("%s",base[i].name); base[i].number=i; printf("\n貨物數(shù)量:"); scanf("%d",&base[i].amount); if(base[i].amount<=0){ base[i].amount=0; break; } goodssum+=base[i].amount; printf("\n貨物進(jìn)價(jià):"); scanf("%d",&base[i].price1); printf("\n貨物售價(jià):"); scanf("%d",&base[i].price2); } return 0; } int chackbase() //采購函數(shù)---查詢當(dāng)前存貨函數(shù) { int i=0; printf("................................................................................\n"); if(goodssum==0) { printf(" 倉庫沒貨!!! 請(qǐng)采購部門及時(shí)進(jìn)貨!!!\n"); return 0; } for(i=0;i<M;i++) { if(base[i].amount>0){ printf("................................................................................\n"); printf("貨物編號(hào) 貨物名稱 貨物數(shù)量 進(jìn)價(jià) 售價(jià)\n"); printf(" %3d %-20s %6d %6d %6d \n",base[i].number,base[i].name,base[i].amount,base[i].price1,base[i].price2); printf("................................................................................\n"); } else continue; } printf("................................................................................\n"); return 0; } int solvelack() //采購函數(shù)--處理缺貨函數(shù) { int i=0,k=0; int printlack(); //采購函數(shù)--處理缺貨函數(shù)--查看函數(shù)聲明 int supplement(); //采購函數(shù)--處理缺貨函數(shù)--添貨函數(shù)聲明 printlack(); //查看是否缺貨 printf(" 如果需要進(jìn)貨,請(qǐng)按1 ; 否則,請(qǐng)按0 \n"); scanf("%d",&k); switch(k) { case 1:supplement();break; case 0:;break; default :printf("輸入錯(cuò)誤!\n"); } return 0; } int printlack() //采購函數(shù)--處理缺貨函數(shù)--查看函數(shù)定義 { int i=0,count=0; if(goodssum==0){ printf(" !!!倉庫沒貨!!!請(qǐng)采購人員及時(shí)進(jìn)貨!!!\n"); return 0; } printf("................................................................................\n"); for(i=0;i<M;i++) { if(lackl[i].amount==0){ count++; continue; } else{ printf("................................................................................\n"); printf("貨物編號(hào) 貨物名稱 缺貨數(shù)量\n"); printf(" %3d %-20s %6d \n",lackl[i].number,base[i].name,lackl[i].amount); } } printf("................................................................................\n"); if(count==M) printf(" ~~~不缺~~~貨物充足~~~\n"); else printf(" 缺! 缺! 缺!\n"); return 0; } int supplement() //采購函數(shù)--處理缺貨函數(shù)--添貨函數(shù)定義 { int i=0,j=1; int printlack(); printlack(); printf(" 若想停止進(jìn)貨,請(qǐng)?jiān)谪浳飻?shù)量上輸入0\n"); while(j>0) { printf("產(chǎn)品編號(hào)\n"); scanf("%d",&i); while(i>=M){ printf("此貨物不存在,請(qǐng)重新輸入\n"); scanf("%d",&i);} base[i].number=i; printf("產(chǎn)品名稱:\n"); scanf("%s",base[i].name); printf("進(jìn)貨數(shù)量:\n"); scanf("%d",&j); if(j>0){ base[i].amount+=j; goodssum+=j; } else break; printf("\n貨物進(jìn)價(jià):"); scanf("%d",&base[i].price1); printf("\n貨物售價(jià):"); scanf("%d",&base[i].price2); } return 0; } int kh() //客戶函數(shù) { int login(); //客戶函數(shù)--登陸函數(shù)聲明 int registe(); //客戶函數(shù)--注冊(cè)函數(shù)聲明 int welcomekh(); //客戶函數(shù)--歡迎函數(shù)聲明 int searchkh(int falg); //客戶函數(shù)--查詢訂貨情況的函數(shù)聲明 int order(int falg); //客戶函數(shù)--訂貨函數(shù)聲明 int i,k=0,flag=0; int n=9,m=9; welcomekh(); //歡迎歡迎 while(m==9) //登陸?注冊(cè)循環(huán)二岔路 { printf(" 登陸請(qǐng)按1, 注冊(cè)請(qǐng)按2, 否則請(qǐng)按 0\n"); scanf("%d",&i); switch(i) { case 0 : ;break; case 1 : flag=login(); break; case 2 : registe(); break; default :printf("輸入錯(cuò)誤!\n"); } if(i==0) break; printf(" 登陸或注冊(cè)請(qǐng)按 9 否則請(qǐng)按0\n"); scanf("%d",&m); } while(n==9) //訂購?查詢循環(huán)二岔路 { printf(" 查詢請(qǐng)按 1, 訂購請(qǐng)按 2, 否則請(qǐng)按 0\n"); scanf("%d",&i); switch(i) { case 0 : ;break; case 1 : searchkh(flag); break; case 2 : order(flag); break; default :printf("輸入錯(cuò)誤!\n"); } if(i==0) break; printf(" 繼續(xù)查詢或訂購請(qǐng)按 9 否則請(qǐng)按0\n"); scanf("%d",&n); } return 0; } int welcomekh() //客戶函數(shù)---歡迎函數(shù)定義 { printf("................................................................................\n"); printf("\n"); printf(" ~~~~~~~~歡迎來到客戶之家~~~~~~~~\n"); printf("\n"); printf("..............................................................................\n"); return 0; } int login() //客戶函數(shù)---登陸函數(shù)定義 { int n,count=0; char password[6]; printf("-------------------請(qǐng)輸入服務(wù)編號(hào)-----------------------\n"); scanf("%d",&n); printf("-------------------請(qǐng)輸入六位密碼-----------------------\n"); scanf("%s",password); while(strcmp(password,khl[n].password)) { printf("~~~~~~~~~~~~~~~請(qǐng)重新輸入六位密碼~~~~~~~~~~~~~~~~~~~~\n"); printf("\n"); printf(" 退出登陸,請(qǐng)輸入123456\n"); scanf("%s",password); if(!strcmp(password,"123456")) break; } if(!strcmp(password,"123456")) return 0; else return n; } int registe() //客戶函數(shù)---注冊(cè)函數(shù)定義 { printf("~~~~~~~~~~~~~~~~~~~~~~~~~您的服務(wù)編號(hào)是: %d ,請(qǐng)你一定要記牢您! ~~~~~~~~~~~~~~~~~~~~~~~~~\n",QQ); printf("\n"); printf("~~~~~~~~~~~~~~~~~~~~~~~~~請(qǐng)輸入您的用戶名:~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\n"); scanf("%s",khl[QQ].name); printf("~~~~~~~~~~~~~~~~~~~~~~~~~請(qǐng)輸入六位密碼:~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\n"); scanf("%s",khl[QQ].password); QQ++; return 0; } int searchkh(int flag) //客戶函數(shù)---查詢函數(shù)定義 { int n,i=0; n=flag; printf("................................................................................\n"); printf(" Hello %s 您的服務(wù)編號(hào)是: %d\n",khl[n].name,n); printf("................................................................................\n"); if(khl[n].count!=-1){ for(i=0;i<M;i++){ if(odl[khl[n].count].L[i].amount==0) i++; else{ printf("................................................................................\n"); printf("貨物編號(hào) 貨物名稱 訂貨數(shù)量 單價(jià)\n"); printf(" %3d %-20s %6d %6d\n",base[i].number,base[i].name,odl[khl[n].count].L[i].amount,base[i].price2); printf("................................................................................\n"); } } } else{ printf("\n"); printf("................................................................................\n"); printf(" 您當(dāng)前沒有訂貨。 \n"); printf("................................................................................\n"); } printf("................................................................................\n"); return 0; } int order(int flag) //客戶函數(shù)---訂購函數(shù) { int i=0,k=0,m=0,n=0,count=0; printf("\n"); n=flag; printf("貨物編號(hào) 貨物名稱 售價(jià)\n"); printf("\n"); for(i=0;i<M;i++){ if(base[i].number==-1){ count++; continue;} else printf(" %3d %-20s %6d\n",base[i].number,base[i].name,base[i].price2); } if(count==M) { printf("倉庫現(xiàn)在沒貨,請(qǐng)稍后再來。麻煩您通知采購部門及時(shí)補(bǔ)貨。。。謝謝。。。\n"); return 0; } printf("請(qǐng)輸入產(chǎn)品編號(hào)和數(shù)量,若想結(jié)束,在訂購數(shù)量上輸入 0 \n"); printf("產(chǎn)品編號(hào)\n"); scanf("%d",&k); while((k>=M)||(base[k].number==-1)){ printf("此貨物不存在,請(qǐng)重新輸入\n"); scanf("%d",&k);} printf("數(shù)量\n"); scanf("%d",&m); while(m>0) { if(base[k].amount<m) { odl[PP].L[k].amount=base[k].amount; base[k].amount=0; printf("存貨不足,缺 %d 個(gè),先賣給您%d個(gè),剩下的請(qǐng)您稍后重新注冊(cè)服務(wù)編號(hào)再預(yù)定!同時(shí)麻煩您通知采購部門及時(shí)補(bǔ)貨。。。謝謝。。。\n",odl[PP].L[k].amount-base[k].amount,base[k].amount); lackl[k].amount+=(m-base[k].amount); } else{ odl[PP].L[k].amount=m; base[k].amount-=m; } goodssum-=odl[PP].L[k].amount; suml[k].price1+=(odl[PP].L[k].amount*(base[k].price2-base[k].price1)); suml[M].price1+=suml[k].price1; suml[k].amount+=odl[PP].L[k].amount; printf("產(chǎn)品編號(hào)\n"); scanf("%d",&k); while((k>=M)||(base[k].number==-1)){ printf("此貨物不存在,請(qǐng)重新輸入\n"); scanf("%d",&k);} printf("訂購數(shù)量\n"); scanf("%d",&m); } khl[n].count=PP; PP++; return 0; } int manager() //經(jīng)理函數(shù)定義 { int i=0; for(i=0;i<M;i++) { if(suml[i].amount==0) i++; else{ printf("................................................................................\n"); printf("貨物編號(hào) 貨物名稱 該貨物利潤\n"); printf(" %3d %-20s %6d \n",suml[i].number,base[i].name,suml[i].price1); printf("................................................................................\n"); } } printf("\n--------------------總貨量為 %d 個(gè)-----------------------------\n",goodssum); printf("\n--------------------總利潤為 %d 美元-----------------------------\n",suml[M].price1); return 0; }
到此,關(guān)于“怎么用C語言實(shí)現(xiàn)商品銷售系統(tǒng)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。