溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用C語言實(shí)現(xiàn)商品銷售系統(tǒng)

發(fā)布時(shí)間:2021-08-27 18:33:20 來源:億速云 閱讀:176 作者:chen 欄目:編程語言

這篇文章主要介紹“怎么用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í)用的文章!

向AI問一下細(xì)節(jié)

免責(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)容。

AI