| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 840 人关注过本帖
标题:商品管理系统中的一个小问题.
取消只看楼主 加入收藏
DoubleJ
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-3-23
收藏
 问题点数:0 回复次数:1 
商品管理系统中的一个小问题.

#include<stdio.h>
#include<stdlib.h>
struct spType
{
int bianhao;
char name[50];
float jinjia;
float shoujia;
int kuchun;
};
void chaxun(struct spType,int);//查询
int xiaoshou(struct spType,int);//销售
void luru(struct spType );//录入
void paishu(struct spType,int);//排序
int ruku(struct spType,int);//入库

void luru(struct spType a)//录入商品
{
printf("编号:");
scanf("%d",&a.bianhao);
printf("名称:");
scanf(" %s",a.name);
printf("进价:");
scanf("%f",&a.jinjia);
printf("售价:");
scanf("%f",&a.shoujia);
printf("数量:");
scanf("%d",&a.kuchun);
}
void paishu(struct spType a[],int n)//按商品编号排序
{
struct spType temp;
int i,j;
for(i=1;i<=n;i++)
for(j=0;j<n+1-i;j++)
if(a[j].bianhao>a[j+1].bianhao)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}

int xiaoshou(struct spType a[],int n)//销售商品
{
printf("请输入售出商品编号:");
int num;
scanf("%d",&num);
printf("请输入数量:");
int num2;
scanf("%d",&num2);
for (int i=0;i<=n;i++)
{
if(a[i].bianhao==num&&a[i].kuchun==num2)//库存等于销量就买完了
for (int j=i;j<n;j++)
{
a[j]=a[j+1];
return n-1;
}
else if(a[i].bianhao==num&&a[i].kuchun>num2)//如果库存大于销量,减少库存
{
a[i].kuchun-=num2;
return n;
}
}
if(i==n+1)
{
printf("商品无库存或库存不足!");
return n;
}
}
void chaxun(struct spType a[],int n)//查询商品
{
printf("目前仓库内有货的商品有%d种\n",n+1);
printf("请输入要查询的编号:");
int num;
scanf("%d",&num);
for(int i=0;i<=n;i++)
if(a[i].bianhao==num)
break;
printf("\n商品的名称:%s\n库存为:%d\n",a[i].name,a[i].kuchun);
}

int ruku(struct spType a[],int n)//入库
{
luru(a[n+1]);//调用录入函数把录入结果放在N后面
paishu(a,n+1);//调用排序函数,重新排序
return n+1;
}


void main()
{
struct spType shangping[100];//定义结构体变量
while(1)
{
printf("\n*****************************");
printf("\n********商品管理系统*********");
printf("\n**1-初始化(录入) **");
printf("\n**2-查询库存 **");
printf("\n**3-销售 **");
printf("\n**4-入库 **");
printf("\n**0-退出 **");
printf("\n*****************************");
printf("\n注意:请先初始化!");
printf("\n请选择:");
int chiose;
scanf("%d",&chiose);
int count;//用count计算shangping的下标,即商品的种类
switch(chiose)
{
case 1://录入
{
int i;
for(i=0;1;i++)
{
luru(shangping[i]);//每次luru()对shangping的一个元素进行修改
printf("继续吗?(y or n):");
fflush(stdin);
char ch=getchar();
if(ch=='N'||ch=='n')
break;
}
count=i;
paishu(shangping,count);//录入完后对库存进行排序
break;
}
case 2://查询
{
chaxun(shangping,count);
break;
}
case 3://销售
{
count=xiaoshou(shangping,count);
break;
}
case 4://入库
{
count=ruku(shangping,count);
break;
}
case 0://退出
{
exit(0);
}
default:
{
printf("输入错误!");
}
}
}

}

搜索更多相关主题的帖子: int struct spType 商品 void 
2006-04-27 02:47
DoubleJ
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-3-23
收藏
得分:0 

编译没有错误.运行时出现异常错误....
   郁闷中.
 有老大跟我看看吗? 

2006-04-27 02:48
快速回复:商品管理系统中的一个小问题.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024725 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved