资源描述
商品销售管理系统
目录
一、 需求分析、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、2
二、 概要设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、2
三、 详细设计、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、4
四、 调试分析、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、14
五、 用户手册、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、14
六、 测试数据、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、15
七、 附录、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、18
-1-
一、需求分析
商品销售管理程序
商品信息:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD得电视机,带DVD得电视机得售价为普通电视机与DVD单价之与得80%)、商品进货价格、商品销售价格、商品数量、供应商名称等.
记录每一次销售商品得数量与价格,并提供对已售出商品得价格、数量进行统计、排序功能,但允许用户退商品.
(要求:1、源文件采用多文件得工程结构2、数据存储采用文件形式3、标准得C输入输出4、功能完善,适当得注释,5、关于文件得内容需要自学)
二、 概要设计
(一)按系统分析得功能要求将系统划分为以下几个主要功能模块:
1、文件管理
文件打开、关闭:对于刚输入或进行操作后得商品信息,在建立新得商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开与关闭操作。
2、进出货管理
(1)商品进货: 输入数据后商品信息能自动更新进行添加
(2)商品销售: 输入数据后商品信息能自动更新进行减少
3、商品数据管理
(1)增加/删除商品: 添加或删除某条商品得信息
(2)修改商品信息: 对某条商品得信息进行修改
4、浏览商品信息管理
(1)查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询
(2)排序商品信息: 可按商品编号、名称、类别分别排排序
(3)浏览商品信息:可浏览输入、查询或排序后得数据.
(二)本程序结构
(1)结构体设计
struct goods
{ long int num;
char name[20];
char sort[20];
long int count;
long int price;
}goods[200];
(2)各功能函数设计:
void input() /*功能1:输入商品信息*/
—2-
void sequence() /*功能2:排序商品信息*/
void purchase() /*功能3:进货商品信息*/
void sell() /*功能4:销售商品信息*/
void edit() /*功能5:添加或删除商品信息*/
void correct() /*功能6:修改商品信息*/
void search() /*功能7:查询商品信息*/
void scan() /*功能8:浏览商品信息*/
void reserve() /*功能9:保存文件*/
void quit() /*退出系统*/
(3) 主函数设计:
void main ()
{
void input();
void sequence();
void purchase();
void sell();
void edit();
void correct();
void search();
void scan();
void reserve();
lp: for(i=0;i〈1;i++)
scanf(”%d”,&k);
system(”cls");
switch(k) /*用switch语句实现功能选择*/
system("cls”); /*清屏*/
goto lp; /*返回主界面*/
}
三、详细设计
(1)各功能函数:
void input() /*功能1:输入商品信息*/
{
printf("\n 请输入需要建立新库存得商品种类数量:");
scanf(”%d",&n);
system("cls");
printf(”\n …………………………………………………………………………………………………\n");
for(i=0;i<n;i++) /*用循环实现输入n个商品*/
{
printf("\n\t*请输入商品得编号:");
scanf("%ld",&goods[i]、num);
ﻩprintf("\n\t 请输入商品得名称:”);
—3—
scanf(”%s",goods[i]、name);
ﻩprintf("\n\t 请输入商品得种类:");
ﻩscanf(”%s”,goods[i]、sort);
printf("\n\t 请输入商品得数量:”);
scanf("%d",&goods[i]、count);
printf(”\n\t 请输入商品得单价:");
ﻩscanf(”%d”,&goods[i]、price);
printf("\n …………………………………………………………………………………………………\n");
}
printf("\tPlease press any key to continue:");
ﻩgetch();
return; /*返回主界面*/
}
void sequence() /*功能2:排序商品信息*/
{
long temp;
char p1[30],p2[30];
for(k=0;k〈n—1;k++) /*(1): 按编号排序*/
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);
}
printf(”---——-—--———-——-——-——---—----——---—-------——--——-——-—-—-———--—---—-—-—-—-——----—\n");
printf("\n\t\t按商品编号排序后得商品信息\n\n”);
printf(”\t商品编号 商品名称 商品类别 商品数量 商品单价\n"); /*输出排序后商品信息*/
for(i=0;i<n;i++)
{
printf("\t %5ld %5s %5s %5ld %5ld\n",goods[i]、num,goods[i]、name,goods[i]、sort,goods[i]、count,goods[i]、price);
—4—
}
for(k=0;k〈n—1;k++) /*(2): 按商品名称排序*/
for(i=0;i<n-k-1;i++)
if(strcmp(goods[i]、name,goods[i+1]、name)〉0)
{
strcpy(p1,goods[i]、name);
ﻩstrcpy(goods[i]、name,goods[i+1]、name);
ﻩstrcpy(goods[i+1]、name,p1);
temp=goods[i]、num;
ﻩgoods[i]、num=goods[i+1]、num;
goods[i+1]、num=temp;
strcpy(p2,goods[i]、sort);
ﻩstrcpy(goods[i]、sort,goods[i+1]、sort);
strcpy(goods[i+1]、sort,p2);
}
printf(”—---——-—-—-—----———--——---——-—-—--—-----—---—---------—---—-----—-—---—--—--——--\n”);
printf(”\n\t\t按商品名称排序后得商品信息\n");
printf("\n\t商品名称 商品编号 商品类别 商品数量 商品单价\n"); /*输出排序后商品信息*/
for(i=0;i<n;i++)
{ﻩ
printf("\t %5s %5ld %5s %5ld %5ld\n",goods[i]、name,goods[i]、num,goods[i]、sort,goods[i]、count,goods[i]、price);
}
for(k=0;k〈n—1;k++) /*(3): 按商品类别排序*/
for(i=0;i<n-k—1;i++) /*用起泡法排序*/
if(strcmp(goods[i]、sort,goods[i+1]、sort)>0)
{
strcpy(p2,goods[i]、sort);
strcpy(goods[i]、sort,goods[i+1]、sort);
strcpy(goods[i+1]、sort,p2);
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);
}
printf("—---—-—--—--——--——-—---—-—-—---———----——---——-------—--—---—-
—5—
—--—--—-—---—-—-——-”);
printf(”\n\t\t按商品类别排序后得商品信息\n\n");
printf(”\t商品类别 商品编号 商品名称 商品数量 商品单价\n”); /*输出排序后商品信息*/
for(i=0;i〈n;i++)
{
ﻩprintf("\t %5s %5ld %5s %5ld %5ld\n”,goods[i]、sort,goods[i]、num,goods[i]、name,goods[i]、count,goods[i]、price);
}
printf("----—---—-—-—----------—--—---—-—-——-—-—--—-—-—-——-——-------------——----—----———");
printf(”please press any key to continue:");
getch();
return; /*返回主界面*/
}
void purchase() /*功能3:进货商品信息*/
{
long temp; /*定义临时变量表示刚进货得商品编号*/
int j;
printf(”\n\t\5请输入刚进货得商品编号:");
scanf("%ld”,&temp);
printf("\n\t\5请输入刚进货得商品数量:”);
scanf("%d",&j);
printf(”\n\n\n\tpress any key to contiue:”);
getch();
system(”cls");
printf("\n\t输出进货后得商品信息:”);
for(i=0;i<n;i++) /*循环,寻找与进货相同得商品信息*/
if(temp==goods[i]、num)
goods[i]、count=goods[i]、count+j; /*自动更改商品数量*/
printf("\n\t商品编号 商品名 商品类别 商品数量 商品价格");
for(i=0;i<n;i++) /*循环,输出进货后得商品信息*/
{
printf("\n\t %4ld %4s %4s %ld %4ld”,goods[i]、num,goods[i]、name,goods[i]、sort,goods[i]、count,goods[i]、price);
}
printf(”\n\n\t\tPress any key to enter menu:”);
getch(); /*返回功能选择界面*/
return;
}
—6-
void sell() /*功能4:销售商品信息*/
{
long temp; /*定义临时变量temp表示刚销售得商品编号*/
int j;
printf(”\n\t\5请输入刚销售得商品编号:");
scanf("%ld",&temp);
printf("\n\t\5请输入刚销售得商品数量:");
scanf(”%d",&j);
for(i=0;i<n;i++) /*循环,找到刚销售得商品信息*/
{
if(temp==goods[i]、num)
{
for(;j〉goods[i]、count;) /*如果销售额大于库存量,则出现错误提示*/
{
printf("\n\t售出数量大于商品原有数量,出现错误,请重新输入:");
scanf("%d",&j);
}
goods[i]、count=goods[i]、count-j; /*完成自动更改商品数量得功能*/
}
}
printf(”\n\tpress any key to contiue:");
getch();
system(”cls”); /*清屏*/
printf("\n\n *销售后商品信息:");
printf("\n\t商品类别 商品编号 商品名称 商品数量 商品单价\n");
for(i=0;i〈n;i++) /*循环,输出销售后商品信息*/
{
printf("\t %4s %4ld %4s %4ld %4ld\n",goods[i]、sort,goods[i]、num,goods[i]、name,goods[i]、count,goods[i]、price);
}
printf("\n\tPress any key to enter menu:");
getch();
return; /*返回功能选择界面*/
}ﻩ
void edit() /*功能5:添加或删除商品信息*/
{
void add(); /*声明子函数*/
void dele();
-7—
printf("\n\t请选择:1、添加商品信息; 2、删除商品信息;");
printf(”\t*请输入 1或2 继续:”);
ﻩscanf("%d",&k);
switch(k) /*用switch语句实现功能选择*/
{
case 1: add();break;
case 2: dele();break;
}
getch();
return; /*返回主菜单*/
}
void add() /*添加商品信息*/
{ /*定义子函数*/
ﻩprintf("\t*请输入所添加商品得商品编号:");
scanf("%ld”,&goods[n]、num);
printf("\n\t请输入所添加商品得名称:");
scanf("%s",goods[n]、name);
printf("\n\t请输入所添加商品得类别:”);
scanf("%s",goods[n]、sort);
printf(”\n\t请输入所添加商品得数量:");
scanf("%d",&goods[n]、count);
printf(”\n\t请输入所添加商品得价格:”);
scanf("%d",&goods[n]、price);
n=n+1;
printf("\n”);
}
void dele() /*删除商品信息*/
{ /*定义子函数*/
int temp; /*定义局部变量*/
int j;
for(i=0;i<n;i++)
{
printf("\n\t商品编号 商品名 商品类别 商品数量 商品价格”);
printf("\n\t %5ld %5s %5s %5ld %5ld”,goods[i]、num,goods[i]、name,goods[i]、sort,goods[i]、count,goods[i]、price);
printf("\n");
}
printf(”\n”);
printf("\n*请输入要删除得商品编号:”);
scanf(”%ld",&temp);
printf(”\n\n");
—8—
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++)
{
printf("\n\t商品编号 商品名 商品类别 商品数量 商品价格"); /*输出删除后得商品信息*/
ﻩ printf(”\n\t %5ld %5s %5s %5ld %5ld",goods[i]、num,goods[i]、name,goods[i]、sort,goods[i]、count,goods[i]、price);
printf(”\n");
}
printf("Please press any key to continue:");
getch();
return; /*返回主界面*/
}
void correct() /*功能6:修改商品信息*/
{
long temp; /*定义局部变量*/
ﻩprintf(”\n\t请输入要修改得商品得编号:");
scanf("%ld",&temp); /*输入新得商品信息*/
printf("\n");
ﻩfor(i=0;i<n;i++) /*保存新得商品信息*/
{
if(temp==goods[i]、num)
{
printf(”\t请输入一个新得得商品编号:”);
scanf("%ld",&goods[i]、num);
printf("\n\t请输入新得商品得名称:");
scanf("%s",goods[i]、name);
printf(”\n\t请输入新得商品得类别:");
—9—
scanf("%s",goods[i]、sort);
printf("\n\t请输入新得商品得数量:");
scanf("%d”,&goods[i]、count);
printf("\n\t请输入新得商品价格:");
scanf("%d”,&goods[i]、price);
printf("\n");
}
}
for(i=0;i〈n;i++)
{
ﻩ printf("\n\t新得商品名称 商品编号 商品类别 商品数量 商品单价\n”);
ﻩ printf("\t %4s %4ld %4s %4ld %4ld",goods[i]、name,goods[i]、num,goods[i]、sort,goods[i]、count,goods[i]、price);
ﻩ printf(”\n");
}
printf("Please press any key to continue:”); /*返回功能选择界面*/
getch();
return; /*返回主菜单*/
}
void search() /*功能7:查询商品信息*/
{
int k; /*定义局部变量*/
long temp1;
char temp2[30],temp3[20];
printf(”\n\t\5按商品编号查询,请按1\t\t\t\5按商品名查询,请按2\n\t\5按商品类别查询,请按3\t\t\t\5查需要进货得商品,请按4\n”);
printf("\n\n\n\t\t\t请输入数字确定查询方式:”);
scanf("%d”,&k);
printf(”\n");
printf(”Press any key to continue:");
getch();
system("cls");
switch(k) /*实现查询方式得选择*/
{
case 1:
{ printf(”\n\n\n\n\n\t\t请输入要查询得商品得编号:"); /*按商品编号查询*/
ﻩ scanf("%ld”,&temp1);
system("cls”); /*清屏*/
ﻩ for(i=0;i<n;i++)
{
-10-
if(temp1==goods[i]、num)
{
printf("\n");
printf(”\n\t商品编号 商品名 商品类别 商品数量 商品价格”);
printf(”\n\t %5ld %5s %5s %5ld %5ld”,goods[i]、num,goods[i]、name,goods[i]、sort,goods[i]、count,goods[i]、price);
}
}
}break; /*跳出switch语句*/
case 2:
{ printf("\n\n\n\n\n\t\t请输入要查询得商品名:”); /*按商品名查询数据*/
ﻩ scanf(”%s”,temp2);
system("cls");
for(i=0;i〈n;i++)
{
if(strcmp(temp2,goods[i]、name)==0)
{
printf("\n”);
printf(”\n\t商品编号 商品名 商品类别 商品数量 商品价格”);
printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i]、num,goods[i]、name,goods[i]、sort,goods[i]、count,goods[i]、price);
}
}
}break; /*跳出switch语句*/
case 3:
{ printf(”\n\n\n\n\n\t\t请输入要查询得商品类别:"); /*按商品类别查询数据*/
ﻩ scanf(”%s",temp3);
system("cls”);
for(i=0;i<n;i++)
{
if(strcmp(temp3,goods[i]、sort)==0)
{
printf(”\n");
printf("\n\t商品编号 商品名 商品类别 商品数量 商品价格”);
ﻩ printf("\n\t %5ld %5s %5s %5ld %5ld”,goods[i]、num,goods[i]、name,goods[i]、sort,goods[i]、count,goods[i] — 11 —
、price);
}
}
}break; /*跳出switch语句*/
case 4:
{ int a=50;
for(i=0;i〈n;i++) /*查询需要进货得商品名*/
ﻩ {
ﻩ if(goods[i]、count<a)
printf("\n\t\t\4需要进货得商品名:%s 现有库存量:%ld\n",goods[i]、name,goods[i]、count);
}
}break; /*跳出switch语句*/
}
printf(”\n\n\t\tPress any key to enter menu:”);
getch();
return; /*返回主界面*/
}
void scan() /*功能8:浏览商品信息*/
{
printf(”\n\t浏览输入得商品信息,请按1\n\n\t浏览查询得商品信息,请按2\n\n\t浏览排序后商品信息,请按3\n");
ﻩprintf("请选择:”);
scanf("%d",&k);
switch(k)
{
case 1:
{ printf("\t\t\t浏览输入得商品信息\n");
printf("\t商品编号 商品名 商品类别 商品数量 商品价格\n");/*输出浏览商品信息*/
for(i=0;i<n;i++)
{
printf(”\t%5ld %5s %5s %5ld %ld”,goods[i]、num,goods[i]、name,goods[i]、sort,goods[i]、count,goods[i]、price);
printf("\n”);
}
printf("Press any key to enter menu:");
getch();
return;
} break; /*跳出switch语句*/
case 2:
{ printf(”\t\t\t浏览查询得商品信息\n");
—12—
ﻩ printf("\t商品编号 商品名 商品类别 商品数量 商品价格\n");/*输出浏览商品信息*/
ﻩ for(i=0;i〈n;i++)
ﻩ {
printf(”\t%5ld %5s %5s %5ld %ld”,goods[i]、num,goods[i]、name,goods[i]、sort,goods[i]、count,goods[i]、price);
printf(”\n”);
}
printf(”\nPress any key to enter menu:");
getch();
return;
ﻩ } break; /*跳出switch语句*/
case 3:
{ printf("\t\t\t浏览按商品编号排序得商品信息\n");
ﻩ printf(”\t商品编号 商品名 商品类别 商品数量 商品价格\n”);/*输出浏览商品信息*/
for(i=0;i〈n;i++)
{
ﻩ printf(”\t%5ld %5s %5s %5ld %ld",goods[i]、num,goods[i]、name,goods[i]、sort,goods[i]、count,goods[i]、price);
printf("\n");
}
printf("\nPress any key to enter menu:");
getch();
return; /*返回主界面*/
} break; /*跳出switch语句*/
}
}
void reserve() /*功能9:保存文件*/
{
ﻩFILE *fp;
char ]; /*用来存放文件保存路径以及文件名*/
system(”cls"); /*清屏*/
printf(”\n\t*请输入文件路径及文件名:”);
scanf("%s”,file);
fp=fopen("file”,"w+"); /*创建并打开一个文件,并得到该文件得地址*/
fprintf(fp,"商品编号\t商品名 \t商品类别\t商品数量\t商品价格\n");
prin
展开阅读全文