|
基于c語(yǔ)言的簡(jiǎn)易管理系統(tǒng),已用visual c++6.0調(diào)試可用
單片機(jī)源程序如下:
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <conio.h>
- #define PR printf
- #define SC scanf
- struct goods
- {
- int num;
- char name[20];
- char sort[20];
- int count;
- float price;
- }goods[100]; //全局定義結(jié)構(gòu)體名稱
- int k,n,i;
- void input();
- void sequence();
- void purchase();
- void sell();
- void edit();
- void correct();
- void search();
- void scan();
- void reserve();
- int open();
- void main ()
- {
- i=1;
- while(i) /*菜單選擇界面*/
- {
- system("color F0");
- PR("\n\n--★-☆--★-☆--☆-★--☆-★--☆-☆--★-\n");
- PR("\n\t\t\t 商品信息管理系統(tǒng)\t\n\n");
- PR("\t 1 →重新輸入商品信息\n\n");
- PR("\t 2 →排序商品信息\n\n");
- PR("\t 3 →輸入進(jìn)貨信息\n\n");
- PR("\t 4 →輸入銷售信息\n\n");
- PR("\t 5 →增加/刪除商品\n\n");
- PR("\t 6 →修改商品信息\n\n");
- PR("\t 7 →查詢商品信息\n\n");
- PR("\t 8 →瀏覽商品信息\n\n");
- PR("\t 9 →保存商品信息\n\n");
- PR("\t 10→打開一個(gè)文件\n\n");
- PR("\t 0 →退出系統(tǒng)\n\n");
- PR("\n\n--☆-★--☆-★--☆-☆--★-☆--★-☆--★-");
- PR("\n\n");
- PR("\t請(qǐng)選擇您所要的操作:");
- fflush(stdin);
- SC("%d",&k);
- system("cls");
- switch(k)
- {
- case 1: input();break;
- case 2: sequence();break;
- case 3: purchase();break;
- case 4: sell();break;
- case 5: edit();break;
- case 6: correct();break;
- case 7: search();break;
- case 8: scan();break;
- case 9: reserve();break;
- case 10: open();break;
- case 0: PR("\n\n\t…………謝謝使用,歡迎再來(lái),再見O(∩_∩)O…………");exit(0);
- default: puts("輸入錯(cuò)誤,請(qǐng)按任意健返回主菜單:\n"); break;
- }
- system("cls"); /*清屏*/
- }
- }
- void input() /*功能1:重新輸入商品信息*/
- {
- PR("\n\n\t\t請(qǐng)輸入需要建立新庫(kù)存的商品數(shù)量:");
- SC("%d",&n);
- system("cls");
- for(i=0;i<n;i++) /*用循環(huán)實(shí)現(xiàn)輸入n個(gè)商品*/
- {
- PR("\n\t 請(qǐng)輸入商品的編號(hào):(數(shù)字)");
- SC("%ld",&goods[i].num);
- PR("\n\t 請(qǐng)輸入商品的名稱:");
- SC("%s",goods[i].name);
- PR("\n\t 請(qǐng)輸入商品的種類:");
- SC("%s",goods[i].sort);
- PR("\n\t 請(qǐng)輸入商品的數(shù)量:(數(shù)字)");
- SC("%d",&goods[i].count);
- PR("\n\t 請(qǐng)輸入商品的單價(jià):(數(shù)字)");
- SC("%f",&goods[i].price);
- PR("\n …………………………………………………………………………………………………\n");
- }
- PR("\tPlease press any key to continue");
- getch();
- main();
- }
- void sequence() /*功能2:排序商品信息*/
- {
- int temp;
- float temptemp;
- char p1[30],p2[30];
- for(k=0;k<n-1;k++) /*按商品類別排序*/
- for(i=0;i<n-k-1;i++) /*冒泡排序*/
- if(strcmp(goods[i].sort,goods[i+1].sort)>0) /*按商品類別首字母由小到大排序*/
- {
- temp=goods[i].num;
- goods[i].num=goods[i+1].num;
- goods[i+1].num=temp;
- strcpy(p1,goods[i].name);
- strcpy(goods[i].name,goods[i+1].name);
- strcpy(goods[i+1].name,p1);
- strcpy(p2,goods[i].sort);
- strcpy(goods[i].sort,goods[i+1].sort);
- strcpy(goods[i+1].sort,p2);
- temp=goods[i].count;
- goods[i].count=goods[i+1].count;
- goods[i+1].count=temp;
- temptemp=goods[i].price;
- goods[i].price=goods[i+1].price;
- goods[i+1].price=temptemp;
- }
- PR("--------------------------------------------------------------------------------");
- PR("\n\t\t按商品類別排序后的商品信息\n\n");
- PR("\n|★商品類別★ 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- for(k=0;k<n-1;k++) /*按商品名稱排序*/
- for(i=0;i<n-k-1;i++) /*冒泡排序*/
- if(strcmp(goods[i].name,goods[i+1].name)>0) /*按商品首字母由小到大排序*/
- {
- temp=goods[i].num;
- goods[i].num=goods[i+1].num;
- goods[i+1].num=temp;
- strcpy(p1,goods[i].name);
- strcpy(goods[i].name,goods[i+1].name);
- strcpy(goods[i+1].name,p1);
- strcpy(p2,goods[i].sort);
- strcpy(goods[i].sort,goods[i+1].sort);
- strcpy(goods[i+1].sort,p2);
- temp=goods[i].count;
- goods[i].count=goods[i+1].count;
- goods[i+1].count=temp;
- temptemp=goods[i].price;
- goods[i].price=goods[i+1].price;
- goods[i+1].price=temptemp;
- }
- PR("--------------------------------------------------------------------------------");
- PR("\n\t\t按商品名稱排序后的商品信息\n");
- PR("\n|商品類別 商品編號(hào) ★商品名稱★ 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- for(k=0;k<n-1;k++) /*按編號(hào)排序*/
- for(i=0;i<n-k-1;i++) /*冒泡排序*/
- if(goods[i].num>goods[i+1].num) /*按編號(hào)由小到大排序*/
- {
- temp=goods[i].num;
- goods[i].num=goods[i+1].num;
- goods[i+1].num=temp;
- strcpy(p1,goods[i].name);
- strcpy(goods[i].name,goods[i+1].name);
- strcpy(goods[i+1].name,p1);
- strcpy(p2,goods[i].sort);
- strcpy(goods[i].sort,goods[i+1].sort);
- strcpy(goods[i+1].sort,p2);
- temp=goods[i].count;
- goods[i].count=goods[i+1].count;
- goods[i+1].count=temp;
- temptemp=goods[i].price;
- goods[i].price=goods[i+1].price;
- goods[i+1].price=temptemp;
- }
- PR("--------------------------------------------------------------------------------");
- PR("\n\t\t按商品編號(hào)排序后的商品信息\n\n");
- PR("\n|商品類別 ★商品編號(hào)★ 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
-
- PR("--------------------------------------------------------------------------------\n");
- PR("please press any key to continue");
- getch();
- main();
- }
- void purchase() /*功能3:進(jìn)貨商品信息*/
- {
- long temp; /*定義臨時(shí)變量表示剛進(jìn)貨的商品編號(hào)*/
- int j;
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- PR("\n\t請(qǐng)輸入剛進(jìn)貨的商品編號(hào):");
- SC("%ld",&temp);
- fflush(stdin);
- PR("\n\t請(qǐng)輸入剛進(jìn)貨的商品數(shù)量:");
- SC("%d",&j);
- fflush(stdin);
- for(i=0;i<n;i++) /*尋找與進(jìn)貨相同的商品信息*/
- if(temp==goods[i].num)
- goods[i].count=goods[i].count+j; /*更改商品數(shù)量*/
- PR("\n\tpress any key to continue:");
- getch();
- PR("\n\t進(jìn)貨后的商品信息:");
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- PR("\n\n\t\tPress any key to enter menu");
- getch();
- main();
- }
- void sell() /*功能4:銷售商品信息*/
- {
- int number,sell; /*臨時(shí)變量temp:表示剛銷售的商品編號(hào)*/
- PR("\n|\t商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- PR("\n\t請(qǐng)輸入剛銷售的商品編號(hào):");
- SC("%ld",&number);
- fflush(stdin);
- PR("\n\t請(qǐng)輸入剛銷售的商品數(shù)量:");
- SC("%d",&sell);
- for(i=0;i<n;i++) /*找到剛銷售的商品信息*/
- {
- if(number==goods[i].num)
- {
- for(;sell>goods[i].count;) /*如果銷售額大于庫(kù)存量,則出現(xiàn)錯(cuò)誤提示*/
- {
- PR("\n\t售出數(shù)量大于商品原有數(shù)量,請(qǐng)重新輸入:");
- SC("%d",&sell);
- }
- goods[i].count=goods[i].count-sell; /*更改商品數(shù)量的功能*/
- }
- }
- PR("\n\tpress any key to continue:");
- getch();
- PR("\n| 銷售后商品信息: |");
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- PR("\n\tPress any key to enter menu");
- getch();
- main(); /*返回功能選擇界面*/
- }
- void edit() /*功能5:添加或刪除商品信息*/
- {
- void add(); /*聲明子函數(shù)*/
- void delete();
- PR("\n\t請(qǐng)選擇:1.添加商品信息; 2.刪除商品信息;\n");
- SC("%d",&k);
- switch(k) /*用switch語(yǔ)句實(shí)現(xiàn)功能選擇*/
- {
- case 1: add();break;
- case 2: delete();break;
- }
- PR("\n\tPress any key to enter menu");
- getch();
- main(); /*返回主菜單*/
- }
- void add() /*添加商品信息*/
- { /*定義子函數(shù)*/
- PR("\t*請(qǐng)輸入所添加商品的商品編號(hào):");
- SC("%ld",&goods[n].num);
- PR("\n\t請(qǐng)輸入所添加商品的名稱:");
- SC("%s",goods[n].name);
- PR("\n\t請(qǐng)輸入所添加商品的類別:");
- SC("%s",goods[n].sort);
- PR("\n\t請(qǐng)輸入所添加商品的數(shù)量:");
- SC("%d",&goods[n].count);
- PR("\n\t請(qǐng)輸入所添加商品的價(jià)格:");
- SC("%f",&goods[n].price);
- n=n+1;
- PR("\n");
- return;
- }
-
- void delete() /*刪除商品信息*/
- { /*定義子函數(shù)*/
- int temp; /*定義局部變量*/
- int j;
- PR("\n|\t商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- PR("\n請(qǐng)輸入要?jiǎng)h除的商品編號(hào):");
- SC("%d",&temp);
- PR("\n\n");
- for(i=0;i<n;i++)
- {
- if(temp==goods[i].num)
- {
- for(j=i;j<n;j++) /*全部前移覆蓋一位*/
- {
- goods[j].num=goods[j+1].num;
- strcpy(goods[j].name,goods[j+1].name);
- strcpy(goods[j].sort,goods[j+1].sort);
- goods[j].count=goods[j+1].count;
- goods[j].price=goods[j+1].price;
- }
- n=n-1; /*商品總庫(kù)存量減少*/
- }
- }
- for(i=0;i<n;i++)
- {
- PR("刪除后的商品信息為:\n");
- PR("\n|\t商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- }
- return; /*返回主界面*/
- }
- void correct() /*功能6:修改商品信息*/
- {
- int temp; /*定義局部變量*/
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- PR("\t請(qǐng)輸入要修改的商品的編號(hào):");
- SC("%d",&temp); /*輸入新的商品信息*/
- PR("\n");
- for(i=0;i<n;i++) /*保存新的商品信息*/
- {
- if(temp==goods[i].num)
- {
- PR("\t請(qǐng)輸入一個(gè)新的的商品編號(hào):");
- SC("%ld",&goods[i].num);
- PR("\n\t請(qǐng)輸入新的商品的名稱:");
- SC("%s",goods[i].name);
- PR("\n\t請(qǐng)輸入新的商品的類別:");
- SC("%s",goods[i].sort);
- PR("\n\t請(qǐng)輸入新的商品的數(shù)量:");
- SC("%d",&goods[i].count);
- PR("\n\t請(qǐng)輸入新的商品價(jià)格:");
- SC("%f",&goods[i].price);
- PR("\n");
- }
- }
- PR("修改之后的商品信息為:\n");
- PR("\n|\t商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- PR("Please press any key to continue"); /*返回功能選擇界面*/
- getch();
- main(); /*返回主菜單*/
- }
- void search() /*功能7:查詢商品信息*/
- {
- int a; /*定義局部變量*/
- int temp1;
- char temp2[30],temp3[20];
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- PR("\n1-按商品編號(hào)查詢\n2-按商品名查詢\n3-按商品類別查詢\n4-查需要進(jìn)貨的商品\n");
- PR("\n\t請(qǐng)輸入數(shù)字確定查詢方式:");
- SC("%d",&k);
- switch(k) /*查詢方式的選擇*/
- {
- case 1:
- PR("\n\t請(qǐng)輸入要查詢的商品的編號(hào):"); /*按商品編號(hào)查詢*/
- SC("%d",&temp1);
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- if(temp1==goods[i].num)
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- break;
- case 2:
- PR("\n\t請(qǐng)輸入要查詢的商品名:"); /*按商品名查詢數(shù)據(jù)*/
- SC("%s",temp2);
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- if(strcmp(temp2,goods[i].name)==0)
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- break;
- case 3:
- PR("\n\t請(qǐng)輸入要查詢的商品類別:"); /*按商品類別查詢數(shù)據(jù)*/
- SC("%s",temp3);
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- if(strcmp(temp3,goods[i].sort)==0)
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- break;
- case 4:
- printf("請(qǐng)輸入進(jìn)貨標(biāo)準(zhǔn):(標(biāo)準(zhǔn)庫(kù)存)");
- scanf("%d",&a);
- for(i=0;i<n;i++) /*查詢需要進(jìn)貨的商品名*/
- {
- if(goods[i].count<a)
- PR("\n需要進(jìn)貨的商品名:%s 現(xiàn)有庫(kù)存量:%d\n",goods[i].name,goods[i].count);
- }
- break;
- }
- PR("\n\n\tPress any key to enter menu");
- getch();
- main();
- }
- void scan() /*功能8:瀏覽商品信息*/
- {
- PR("\t\t\t瀏覽輸入的商品信息\n");
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- PR("Press any key to enter menu");
- getch();
- main();
- }
- void reserve() /*功能9:保存文件*/
- {
- FILE *fp;
- system("cls"); /*清屏*/
- PR("\n\t請(qǐng)輸入文件名");
- fp=fopen("GOODS.txt","w+"); /*創(chuàng)建并打開一個(gè)文件,并得到該文件的地址*/
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for(i=0;i<n;i++)
- {
- fprintf(fp,"%10s %5d %10s %5d %6.2f\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- }
- fclose(fp); /*關(guān)閉文件*/
- PR("文件已經(jīng)保存!\n");
- getch();
- system("cls"); /*清屏*/
- main();
- }
- int open()
- {
- int number=0;
- FILE *fp;
- if((fp=fopen("GOODS.txt","r"))==NULL)/*p1是圖書管理系統(tǒng)的書籍信息文件指針*/
- {
- PR("還沒有保存過文件呢,朋友\n");
- PR("按任意鍵回到主菜單!\n");
- getch();
- return(0);
- main();
- }
- else
- {
- n=0;
- fflush(stdin);
- PR("文件內(nèi)容如下:\n\n\n");
- PR("\n|商品類別 商品編號(hào) 商品名稱 商品數(shù)量 商品單價(jià)|\n");
- for (i=0; !feof(fp); i++)
- {
- fflush(stdin);
- /*fscanf(里邊必須加\n,否則會(huì)有奇怪的一行0)*/
- fscanf(fp,"%s %d %s %5d %f\n",goods[i].sort,&goods[i].num,goods[i].name,&goods[i].count,&goods[i].price);
- PR("|%-10s %5d %10s %5d %6.2f |\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);
- n++;
- }
- fclose(fp);
- printf("按任意鍵回到主菜單!\n\n");
- getch();
- return(n);
- main();
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
基于c語(yǔ)言的簡(jiǎn)易商品管理系統(tǒng).rar
(3.27 KB, 下載次數(shù): 10)
2018-7-18 20:15 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|