C语言—商品销售系统
生活随笔
收集整理的這篇文章主要介紹了
C语言—商品销售系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h> //頭文件
#include<string.h> //頭文件
#include<stdlib.h> //頭文件
#define M 100 //貨物種類
#define N 100 //顧客數目
struct goods //單個貨物信息格式
{int number; //產品編號char name[20]; //產品名稱int price1; //進價(或利潤)int price2; //售價int amount; //數量
};
struct orderlist //訂單格式
{struct goods L[M];
};
struct customer //客戶信息內容和格式
{char name[20]; //姓名char password[6]; //服務密碼int count; //訂單號
};
struct customer khl[N]; //所有客戶信息
struct goods base[M]; //庫存信息
struct orderlist odl[10 * N];//訂單表
struct goods lackl[M]; //缺貨表
struct goods suml[M + 1]; //銷售報表
int PP = 0; //訂單編號
int QQ = 0; //客戶編號
int goodssum = 0; //貨物總數int main() //主函數開始!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{int SysUseWay(); //系統使用說明函數聲明int chushihua(); //系統初始化函數聲明int welcome(); //歡迎界面函數聲明int kh(); //客戶函數聲明int buyer(); //采購部函數聲明int manager(); //公司經理函數聲明int goodbye(); //歡送函數聲明int n, m = 9; //變量聲明SysUseWay(); //系統使用說明書chushihua(); //系統初始化while (m == 9) //循環三岔口{welcome(); //歡迎界面scanf("%d", &n);switch (n) //各奔東西{case 0:; break;case 1: kh(); break; //客戶之家case 2: buyer(); break; //采購之家case 3: manager(); break; //經理之家default: printf("輸入錯誤!請退出重從新輸入");}if (n == 0)break;printf(" 繼續進入主界面請按 9 退出請按0\n");scanf("%d", &m);}goodbye(); //歡送界面return 0;
} //主函數結束!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!int SysUseWay() //系統使用說明書函數定義
{FILE *fp;fp = fopen("D://商品銷售系統使用說明書.txt", "w");fprintf(fp, " 商品銷售系統使用說明書\n");fprintf(fp, " 學生 張三 學號 415091012 計算機科學學院計科系01班 2018年3月3日\n");fprintf(fp, " 本銷售系統僅是一個銷售部門管理系統的的簡單模型,功能少,不太穩定,不太安全。\n");fprintf(fp, " 主要分為三個模塊。客戶--銷售部門--公司經理。\n");fprintf(fp, " 1--客戶。客戶主要是通過該系統進行訂貨。進入系統后,需要注冊,登陸。系統會自主分配\n");fprintf(fp, "一個服務編號給客戶,由客戶自己設定密碼。訂購之后,可以登錄查詢自己的訂貨情況.不足之處\n");fprintf(fp, "在于該系統是一次性的---關閉系統之后,系統會丟失一切數據。這涉及數據庫的知識,恕我現在\n");fprintf(fp, "無能為力。還有,每一個服務編號只能對應一個訂貨單,即客戶每定一次貨就得重新注冊一次,否\n");fprintf(fp, "則就會覆蓋以前的數據。\n");fprintf(fp, " 2--采購部門。主管倉庫,查看處理缺貨,進貨。使用該系統前,首先必須由采購部門建立倉\n");fprintf(fp, "庫。填寫貨物名稱,進價,售價,庫存數量。貨物編號由系統自主按序分配。接下來,采購部門需\n");fprintf(fp, "要經常查看是否缺貨。及時進貨。\n");fprintf(fp, " 3--經理只需要抽時間查看一下銷售報表。了解每一種貨物的銷售情況,以及總的銷售利潤。\n");fprintf(fp, "\n");fprintf(fp, " 謹以此紀念我碌碌無為的大一。\n");fclose(fp);printf("................................................................................\n");printf("本系統使用說明書詳見于您的計算機D盤“商品銷售系統使用說明書.txt”文件。歡迎查閱 \n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");return 0;
}int welcome() //歡迎界面函數定義
{printf("................................................................................\n");printf("\n");printf(" ~~~~~~~~歡迎使用商品銷售系統~~~~~~~~\n");printf("\n");printf("..............................................................................\n");printf(" 公司客戶請按 1\n");printf("\n");printf("..............................................................................\n");printf(" 采購人員請按 2\n");printf("\n");printf("...............................................................................\n");printf(" 公司經理請按 3\n");printf("\n");printf("................................................................................");printf(" 退出主界面請按 0\n");printf("\n");printf("\n");printf("................................................................................\n");return 0;
}int chushihua() //初始化函數
{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() //歡送界面函數定義
{printf(" ~~~~感謝您使用商品銷售系統~~~~\n");printf(".........................................................................\n");printf("作者 盧孟江 學號 13091012 軟件學院 130911班\n");printf(".........................................................................\n");printf("\n");printf(".........................................................................\n");printf("由于時間倉促,能力有限,系統不是很完美,如有問題敬請原諒。歡迎垂詢15109281415\n");printf(".........................................................................\n");return 0;
}
int buyer() //采購函數
{int welcomebuyer(); //歡迎函數int buildbaser(); //倉庫建設int solvelack(); //查詢缺貨情況int chackbase(); //查詢倉庫情況int n;int m = 9;while (m == 9) //循環三岔口{welcomebuyer(); //歡迎歡迎scanf("%d", &n); //各奔東西switch (n){case 0:; break; //退出case 1: solvelack(); break; //查缺貨case 2: buildbaser(); break; //建設倉庫case 3: chackbase(); break; //檢查倉庫default:printf("輸入錯誤!\n");}if (n == 0)break;printf(" 繼續采購請按 9 否則請按0\n");scanf("%d", &m);}return 0;
}int welcomebuyer()
{printf("................................................................................\n");printf("\n");printf(" ~~~~~~~~歡迎來到采購之家~~~~~~~~\n");printf("\n");printf("..............................................................................\n");printf(" 處理缺貨 請按 1\n");printf("\n");printf("..............................................................................\n");printf(" 進貨 請按 2\n");printf("\n");printf("...............................................................................\n");printf(" 查詢當前存貨情況 請按 3\n");printf("\n");printf("................................................................................");printf(" 退出采購 請按 0\n");printf("\n");printf("\n");printf("................................................................................\n");return 0;
}int buildbaser() //采購函數--進貨函數
{int i = 0;printf(" 若想停止進貨,請在貨物數量上輸入 0\n\n");for (i = 0; i<M; i++){printf("\n貨物名稱:");scanf("%s", base[i].name);base[i].number = i;printf("\n貨物數量:");scanf("%d", &base[i].amount);if (base[i].amount <= 0){base[i].amount = 0;break;}goodssum += base[i].amount;printf("\n貨物進價:");scanf("%d", &base[i].price1);printf("\n貨物售價:");scanf("%d", &base[i].price2);}return 0;
}int chackbase() //采購函數---查詢當前存貨函數
{int i = 0;printf("................................................................................\n");if (goodssum == 0){printf(" 倉庫沒貨!!! 請采購部門及時進貨!!!\n");return 0;}for (i = 0; i<M; i++){if (base[i].amount>0){printf("................................................................................\n");printf("貨物編號 貨物名稱 貨物數量 進價 售價\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");}elsecontinue;}printf("................................................................................\n");return 0;
}int solvelack() //采購函數--處理缺貨函數
{int i = 0, k = 0;int printlack(); //采購函數--處理缺貨函數--查看函數聲明int supplement(); //采購函數--處理缺貨函數--添貨函數聲明printlack(); //查看是否缺貨printf(" 如果需要進貨,請按1 ; 否則,請按0 \n");scanf("%d", &k);switch (k){case 1:supplement(); break;case 0:; break;default:printf("輸入錯誤!\n");}return 0;
}
int printlack() //采購函數--處理缺貨函數--查看函數定義
{int i = 0, count = 0;if (goodssum == 0){printf(" !!!倉庫沒貨!!!請采購人員及時進貨!!!\n");return 0;}printf("................................................................................\n");for (i = 0; i<M; i++){if (lackl[i].amount == 0){count++;continue;}else{printf("................................................................................\n");printf("貨物編號 貨物名稱 缺貨數量\n");printf(" %3d %-20s %6d \n", lackl[i].number, base[i].name, lackl[i].amount);}}printf("................................................................................\n");if (count == M)printf(" ~~~不缺~~~貨物充足~~~\n");elseprintf(" 缺! 缺! 缺!\n");return 0;
}
int supplement() //采購函數--處理缺貨函數--添貨函數定義
{int i = 0, j = 1;int printlack();printlack();printf(" 若想停止進貨,請在貨物數量上輸入0\n");while (j>0){printf("產品編號\n");scanf("%d", &i);while (i >= M){printf("此貨物不存在,請重新輸入\n");scanf("%d", &i);}base[i].number = i;printf("產品名稱:\n");scanf("%s", base[i].name);printf("進貨數量:\n");scanf("%d", &j);if (j>0){base[i].amount += j;goodssum += j;}elsebreak;printf("\n貨物進價:");scanf("%d", &base[i].price1);printf("\n貨物售價:");scanf("%d", &base[i].price2);}return 0;
}int kh() //客戶函數
{int login(); //客戶函數--登陸函數聲明int registe(); //客戶函數--注冊函數聲明int welcomekh(); //客戶函數--歡迎函數聲明int searchkh(int falg); //客戶函數--查詢訂貨情況的函數聲明int order(int falg); //客戶函數--訂貨函數聲明int i, k = 0, flag = 0;int n = 9, m = 9;welcomekh(); //歡迎歡迎while (m == 9) //登陸?注冊循環二岔路{printf(" 登陸請按1, 注冊請按2, 否則請按 0\n");scanf("%d", &i);switch (i){case 0:; break;case 1: flag = login(); break;case 2: registe(); break;default:printf("輸入錯誤!\n");}if (i == 0)break;printf(" 登陸或注冊請按 9 否則請按0\n");scanf("%d", &m);}while (n == 9) //訂購?查詢循環二岔路{printf(" 查詢請按 1, 訂購請按 2, 否則請按 0\n");scanf("%d", &i);switch (i){case 0:; break;case 1: searchkh(flag); break;case 2: order(flag); break;default:printf("輸入錯誤!\n");}if (i == 0)break;printf(" 繼續查詢或訂購請按 9 否則請按0\n");scanf("%d", &n);}return 0;
}int welcomekh() //客戶函數---歡迎函數定義
{printf("................................................................................\n");printf("\n");printf(" ~~~~~~~~歡迎來到客戶之家~~~~~~~~\n");printf("\n");printf("..............................................................................\n");return 0;
}int login() //客戶函數---登陸函數定義
{int n, count = 0;char password[6];printf("-------------------請輸入服務編號-----------------------\n");scanf("%d", &n);printf("-------------------請輸入六位密碼-----------------------\n");scanf("%s", password);while (strcmp(password, khl[n].password)){printf("~~~~~~~~~~~~~~~請重新輸入六位密碼~~~~~~~~~~~~~~~~~~~~\n");printf("\n");printf(" 退出登陸,請輸入123456\n");scanf("%s", password);if (!strcmp(password, "123456"))break;}if (!strcmp(password, "123456"))return 0;elsereturn n;
}int registe() //客戶函數---注冊函數定義
{printf("~~~~~~~~~~~~~~~~~~~~~~~~~您的服務編號是: %d ,請你一定要記牢您! ~~~~~~~~~~~~~~~~~~~~~~~~~\n", QQ);printf("\n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~請輸入您的用戶名:~~~~~~~~~~~~~~~~~~~~~~~~\n");printf("\n");scanf("%s", khl[QQ].name);printf("~~~~~~~~~~~~~~~~~~~~~~~~~請輸入六位密碼:~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf("\n");scanf("%s", khl[QQ].password);QQ++;return 0;
}int searchkh(int flag) //客戶函數---查詢函數定義
{int n, i = 0;n = flag;printf("................................................................................\n");printf(" Hello %s 您的服務編號是: %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("貨物編號 貨物名稱 訂貨數量 單價\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(" 您當前沒有訂貨。 \n");printf("................................................................................\n");}printf("................................................................................\n");return 0;
}int order(int flag) //客戶函數---訂購函數
{int i = 0, k = 0, m = 0, n = 0, count = 0;printf("\n");n = flag;printf("貨物編號 貨物名稱 售價\n");printf("\n");for (i = 0; i<M; i++){if (base[i].number == -1){count++;continue;}elseprintf(" %3d %-20s %6d\n", base[i].number, base[i].name, base[i].price2);}if (count == M){printf("倉庫現在沒貨,請稍后再來。麻煩您通知采購部門及時補貨。。。謝謝。。。\n");return 0;}printf("請輸入產品編號和數量,若想結束,在訂購數量上輸入 0 \n");printf("產品編號\n");scanf("%d", &k);while ((k >= M) || (base[k].number == -1)){printf("此貨物不存在,請重新輸入\n");scanf("%d", &k);}printf("數量\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 個,先賣給您%d個,剩下的請您稍后重新注冊服務編號再預定!同時麻煩您通知采購部門及時補貨。。。謝謝。。。\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("產品編號\n");scanf("%d", &k);while ((k >= M) || (base[k].number == -1)){printf("此貨物不存在,請重新輸入\n");scanf("%d", &k);}printf("訂購數量\n");scanf("%d", &m);}khl[n].count = PP;PP++;return 0;
}int manager() //經理函數定義
{int i = 0;for (i = 0; i<M; i++){if (suml[i].amount == 0)i++;else{printf("................................................................................\n");printf("貨物編號 貨物名稱 該貨物利潤\n");printf(" %3d %-20s %6d \n", suml[i].number, base[i].name, suml[i].price1);printf("................................................................................\n");}}printf("\n--------------------總貨量為 %d 個-----------------------------\n", goodssum);printf("\n--------------------總利潤為 %d 美元-----------------------------\n", suml[M].price1);return 0;
}
總結
以上是生活随笔為你收集整理的C语言—商品销售系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP集成开发环境EasyEclipse
- 下一篇: 基于matlab的三相逆变器,基于mat