标题:
基于c语言的简易商品信息管理系统程序源码
[打印本页]
作者:
猴子偷桃
时间:
2018-7-18 20:16
标题:
基于c语言的简易商品信息管理系统程序源码
基于c语言的简易管理系统,已用visual c++6.0调试可用
单片机源程序如下:
#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]; //全局定义结构体名称
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\n\n");
PR("\t 1 →重新输入商品信息\n\n");
PR("\t 2 →排序商品信息\n\n");
PR("\t 3 →输入进货信息\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→打开一个文件\n\n");
PR("\t 0 →退出系统\n\n");
PR("\n\n--☆-★--☆-★--☆-☆--★-☆--★-☆--★-");
PR("\n\n");
PR("\t请选择您所要的操作:");
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…………谢谢使用,欢迎再来,再见O(∩_∩)O…………");exit(0);
default: puts("输入错误,请按任意健返回主菜单:\n"); break;
}
system("cls"); /*清屏*/
}
}
void input() /*功能1:重新输入商品信息*/
{
PR("\n\n\t\t请输入需要建立新库存的商品数量:");
SC("%d",&n);
system("cls");
for(i=0;i<n;i++) /*用循环实现输入n个商品*/
{
PR("\n\t 请输入商品的编号:(数字)");
SC("%ld",&goods[i].num);
PR("\n\t 请输入商品的名称:");
SC("%s",goods[i].name);
PR("\n\t 请输入商品的种类:");
SC("%s",goods[i].sort);
PR("\n\t 请输入商品的数量:(数字)");
SC("%d",&goods[i].count);
PR("\n\t 请输入商品的单价:(数字)");
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|★商品类别★ 商品编号 商品名称 商品数量 商品单价|\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|商品类别 商品编号 ★商品名称★ 商品数量 商品单价|\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(goods[i].num>goods[i+1].num) /*按编号由小到大排序*/
{
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|商品类别 ★商品编号★ 商品名称 商品数量 商品单价|\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:进货商品信息*/
{
long temp; /*定义临时变量表示刚进货的商品编号*/
int j;
PR("\n|商品类别 商品编号 商品名称 商品数量 商品单价|\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请输入刚进货的商品编号:");
SC("%ld",&temp);
fflush(stdin);
PR("\n\t请输入刚进货的商品数量:");
SC("%d",&j);
fflush(stdin);
for(i=0;i<n;i++) /*寻找与进货相同的商品信息*/
if(temp==goods[i].num)
goods[i].count=goods[i].count+j; /*更改商品数量*/
PR("\n\tpress any key to continue:");
getch();
PR("\n\t进货后的商品信息:");
PR("\n|商品类别 商品编号 商品名称 商品数量 商品单价|\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; /*临时变量temp:表示刚销售的商品编号*/
PR("\n|\t商品类别 商品编号 商品名称 商品数量 商品单价|\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请输入刚销售的商品编号:");
SC("%ld",&number);
fflush(stdin);
PR("\n\t请输入刚销售的商品数量:");
SC("%d",&sell);
for(i=0;i<n;i++) /*找到刚销售的商品信息*/
{
if(number==goods[i].num)
{
for(;sell>goods[i].count;) /*如果销售额大于库存量,则出现错误提示*/
{
PR("\n\t售出数量大于商品原有数量,请重新输入:");
SC("%d",&sell);
}
goods[i].count=goods[i].count-sell; /*更改商品数量的功能*/
}
}
PR("\n\tpress any key to continue:");
getch();
PR("\n| 销售后商品信息: |");
PR("\n|商品类别 商品编号 商品名称 商品数量 商品单价|\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(); /*声明子函数*/
void delete();
PR("\n\t请选择:1.添加商品信息; 2.删除商品信息;\n");
SC("%d",&k);
switch(k) /*用switch语句实现功能选择*/
{
case 1: add();break;
case 2: delete();break;
}
PR("\n\tPress any key to enter menu");
getch();
main(); /*返回主菜单*/
}
void add() /*添加商品信息*/
{ /*定义子函数*/
PR("\t*请输入所添加商品的商品编号:");
SC("%ld",&goods[n].num);
PR("\n\t请输入所添加商品的名称:");
SC("%s",goods[n].name);
PR("\n\t请输入所添加商品的类别:");
SC("%s",goods[n].sort);
PR("\n\t请输入所添加商品的数量:");
SC("%d",&goods[n].count);
PR("\n\t请输入所添加商品的价格:");
SC("%f",&goods[n].price);
n=n+1;
PR("\n");
return;
}
void delete() /*删除商品信息*/
{ /*定义子函数*/
int temp; /*定义局部变量*/
int j;
PR("\n|\t商品类别 商品编号 商品名称 商品数量 商品单价|\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请输入要删除的商品编号:");
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; /*商品总库存量减少*/
}
}
for(i=0;i<n;i++)
{
PR("删除后的商品信息为:\n");
PR("\n|\t商品类别 商品编号 商品名称 商品数量 商品单价|\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|商品类别 商品编号 商品名称 商品数量 商品单价|\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请输入要修改的商品的编号:");
SC("%d",&temp); /*输入新的商品信息*/
PR("\n");
for(i=0;i<n;i++) /*保存新的商品信息*/
{
if(temp==goods[i].num)
{
PR("\t请输入一个新的的商品编号:");
SC("%ld",&goods[i].num);
PR("\n\t请输入新的商品的名称:");
SC("%s",goods[i].name);
PR("\n\t请输入新的商品的类别:");
SC("%s",goods[i].sort);
PR("\n\t请输入新的商品的数量:");
SC("%d",&goods[i].count);
PR("\n\t请输入新的商品价格:");
SC("%f",&goods[i].price);
PR("\n");
}
}
PR("修改之后的商品信息为:\n");
PR("\n|\t商品类别 商品编号 商品名称 商品数量 商品单价|\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|商品类别 商品编号 商品名称 商品数量 商品单价|\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-按商品编号查询\n2-按商品名查询\n3-按商品类别查询\n4-查需要进货的商品\n");
PR("\n\t请输入数字确定查询方式:");
SC("%d",&k);
switch(k) /*查询方式的选择*/
{
case 1:
PR("\n\t请输入要查询的商品的编号:"); /*按商品编号查询*/
SC("%d",&temp1);
PR("\n|商品类别 商品编号 商品名称 商品数量 商品单价|\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请输入要查询的商品名:"); /*按商品名查询数据*/
SC("%s",temp2);
PR("\n|商品类别 商品编号 商品名称 商品数量 商品单价|\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请输入要查询的商品类别:"); /*按商品类别查询数据*/
SC("%s",temp3);
PR("\n|商品类别 商品编号 商品名称 商品数量 商品单价|\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("请输入进货标准:(标准库存)");
scanf("%d",&a);
for(i=0;i<n;i++) /*查询需要进货的商品名*/
{
if(goods[i].count<a)
PR("\n需要进货的商品名:%s 现有库存量:%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|商品类别 商品编号 商品名称 商品数量 商品单价|\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请输入文件名");
fp=fopen("GOODS.txt","w+"); /*创建并打开一个文件,并得到该文件的地址*/
PR("\n|商品类别 商品编号 商品名称 商品数量 商品单价|\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); /*关闭文件*/
PR("文件已经保存!\n");
getch();
system("cls"); /*清屏*/
main();
}
int open()
{
int number=0;
FILE *fp;
if((fp=fopen("GOODS.txt","r"))==NULL)/*p1是图书管理系统的书籍信息文件指针*/
{
PR("还没有保存过文件呢,朋友\n");
PR("按任意键回到主菜单!\n");
getch();
return(0);
main();
}
else
{
n=0;
fflush(stdin);
PR("文件内容如下:\n\n\n");
PR("\n|商品类别 商品编号 商品名称 商品数量 商品单价|\n");
for (i=0; !feof(fp); i++)
{
fflush(stdin);
/*fscanf(里边必须加\n,否则会有奇怪的一行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();
}
}
复制代码
所有资料51hei提供下载:
基于c语言的简易商品管理系统.rar
(3.27 KB, 下载次数: 10)
2018-7-18 20:15 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1