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

请高手帮忙,不知道那错了!!!!!!
#include<iostream.h>
const int N=5;
struct product
{
int code;
char name[20][N];
int amount;
double price;
int sale;
int stock;
};
struct product pro[N];
void sort(product pro[],int N);
void paixu(struct product pro[],int N);

void main()
{
product pro[N];
int q;
cout<<"code name[20][N] amount price sale stockn";
for(int i=0;i<N;i++)
{
cin>>pro[i].code>>pro[i].name[20]>>pro[i].amount>>pro[i].price>>pro[i].sale;
pro[i].stock=pro[i].amount -pro[i].sale;
}
for(int j=0;j<N;j++)
cout<<pro[j].code<<"t"<<pro[j].name[20][j]<<"t"<<pro[j].amount<<"t"<<pro[j].price<<"t"<<pro[j].sale<<"t"<<pro[j].stock<<endl;

cout<<"1. 按商品库存量排序,请选择:1";

cout<<"2. 按商品代码排序,请选择:2";

cout<< " 3. 按商品代码查询,请选择:3";


cout<<" 4. 按库存量查询,请选择:4";

cout<<"5. 显示商品信息,请选择:5";

cout<<"6. 结束程序,请选择:6";
cin>>q;
if(q=1)
{int n;
int num;
cin>>n;
cin>>num;
sort(pro,n);
cout<<"--------------n";
for(i=0;i<num;i++)
cout<<pro[i].code<<"t"<<pro[i].name[20][i]<<"t"<<pro[i].amount<<"t"<<pro[i].price<<"t"<<pro[i].sale<<"t"<<pro[i].stock<<endl;
}
else if(q=2)
{
sort(pro,N);
cout<<"--------------n";
for(i=0;i<N;i++)
cout<<pro[i].code<<"t"<<pro[i].name[20][i]<<"t"<<pro[i].amount<<"t"<<pro[i].price<<"t"<<pro[i].sale<<"t"<<pro[i].stock<<endl;
}
else if(q=3)
{

}

}
void sort(product pro[],int N)
{
product temp;
product s;
for(int i=0;i<N-1;i++)
{
for(int j=0;j<N-i-1;j++)
{
if(pro[j].stock>pro[j+1].stock)
{
temp=pro[j];
pro[j]=pro[j+1];
pro[j+1]=temp;
}
else if(pro[j].stock=pro[j+1].stock)
{
if(pro[j].sale>pro[j+1].sale)
{
s=pro[j];
pro[j]=pro[j+1];
pro[j+1]=s;
}
}
}

}
void paixu(struct product pro[],int N)
{
product t;
int k;
for(int i=0;i<N-1;i++)
{
k=i;
for(int j=i+1;j<N;j++)
{
if(pro[j].code>pro[j+1].code)
k=j;
t=pro[k];
pro[k]=pro[i];
pro[i]=t;
}

}
}
void search()
{
cout<<"请输入你要找的商品代码/n";
cin>>p;
paixu(pro,N);
int top=pro[0].code,bottom=pro[N-1].code,middle,flag;
while(top<=bottom)
{
middle=pro[(N-1)/2].code;
if(p=middle)
{
flag=1;
break;
}
else
{
if(p>middle)
top=pro[(N-1)/2+1];
else
bottom=pro[(N-1)/2-1];
}
if(flag=0)
cout<<p<<"is not in the array"<<endl;
else
cout<<pro[(N-1)/2].code<<"t"<<pro[(N-1)/2].name[20][(N-1)/2]<<"t"<<pro[(N-1)/2].amount<<"t"<<pro[(N-1)/2].price<<"t"<<pro[(N-1)/2].sale<<"t"<<pro[(N-1)/2].stock<<endl;
}
}
void inquire(product pro[])
{
int i;
for(i=0;i<N;i++)
{
if(pro[i].)
}
}
}

一、题目:设计一个简单的商品管理系统
二、目的与要求
1. 目的
培养学生综合利用C++语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。
2. 基本要求
(1) 要求用C++语言编程,在Visual C++环境下调试完成;
(2) 要求使用结构数组,各个功能分别使用函数来完成。
三、设计方法和基本原理
1.课题功能描述
编写一个简单的商品信息管理的程序,主要完成商品信息的录入、排序、查询和显示功能。
2. 问题详细描述
某超市的电器区有5种商品,每种商品包括以下信息:商品代码(整型),商品名称(字符串),商品数量(整型),单价(双精度),销售量(整型),库存量(=商品数量-销售量,整型),例如:

商品信息列表
商品代码 商品名称 商品单价 商品数量 销售量 库存量
10120 Haier Conditioner 2998 120 20
11254 IPOD MP3 1250 245 32
10564 Sega HardDisk 655 100 55
15826 IBM Laptop 8188 80 15
18257 Sony DC 3588 150 29
要求编写多个函数分别实现下列功能,而后在main函数中进行调用。
(1) 输入函数:从键盘输入这些商品的代码,名称,数量,单价,销售量信息,而后自动计算其库存量。
(2) 排序函数1:将商品按照商品的库存量进行升序排序,若库存量相同则按照销售量升序排序。
(3) 排序函数2:将商品按照代码进行升序排序。
(4) 查询函数1:按商品代码查询用户指定的商品信息。在主函数中给出查询结果,若找到则输出该商品的信息,如找不到,则给出相应的提示信息,而后可多次查询也可退出程序的运行。
(5) 查询函数2:按库存量进行查询用户指定的商品信息。查询结果的处理同查询函数1。
(6) 输出函数:输出某个商品的信息。
(7) 程序运行结果:
请输入5种商品的信息:(由用户输入)
code name price amount sales
10120 Haier Conditioner 2998 120 20
11254 IPOD MP3 1250 245 32
10564 Sega HardDisk 655 100 55
15826 IBM Laptop 8188 80 15
18257 Sony DC 3588 150 29
*************************************
1. 按库存量排序,请选择:1
2. 按商品代码排序,请选择:2
3. 按商品代码查询,请选择:3
4. 按库存量查询,请选择:4
5. 显示商品信息,请选择:5
6. 结束程序,请选择:6
*************************************
请选择: (用户可根据菜单项进行选择)
3. 问题的解决方案
根据问题的描述,可以按照程序要求的功能采用结构化的设计思想。
(1) 使用结构体类型存储商品的各种信息。
(2) 利用菜单使用户选择各个功能模块,例如:
1. 按商品库存量排序,请选择:1
2. 按商品代码排序,请选择:2
3. 按商品代码查询,请选择:3
4. 按库存量查询,请选择:4
5. 显示商品信息,请选择:5
6. 结束程序,请选择:6
而后可根据不同的选项进入到不同的功能模块进行执行。执行完某个功能后,重新显示该菜单,因此可将此菜单的显示放置到循环结构中。
(3) 在排序过程中,结构数组元素的交换可以整体进行,无需每个成员之间进行互换;两个排序请分别使用冒泡法和选择法。
(4) 查询时请分别使用折半查找法和顺序查找法进行查找,注意折半查找法是对有序数组的操作。
四、主要技术问题的描述
根据三的分析,主要问题在于:
(1)结构体的构造(struct PRODUCT)
商品代码(int code)、商品名称(char name[20]) ,商品数量(int amount) ,单价(double price)销售量(int sales),商品的库存量(int stock)。
(2)排序
在进行完结构数组中某个成员的比较后,不是某个成员的互换,而是结构体数组元素之间的互换。例如结构体数组元素pro[j]和pro[k]的互换:
t=pro[j]; pro[j]=pro[j+1]; pro[j+1]=t;
(3)各个函数的参数传递问题
实参应为结构数组名,形参为结构体指针或者结构体数组。如输入函数:
void input(PRODUCT *p) //结构体指针作为形参
{…
}
函数调用时:input(pro); // pro 为结构体数组名
五、创新要求
在基本要求达到后,进行创新设计:
(1)使用多文件,即主函数和各个函数分别存放在不同的.cpp文件中,在头文件中进行函数原型声明。
(2)对程序功能进行拓展,使其更加实用。例如,找到指定商品后进行删除,或将新商品信息插入到原数组中。统

请高手帮忙,不知道那错了!!!!!!
#include<iostream.h>
const int N=5;
struct product
{
int code;
char name[20][N];
int amount;
double price;
int sale;
int stock;
};
struct product pro[N];
void sort(product pro[],int N);
void paixu(struct product pro[],int N);

void main()
{
product pro[N];
int q;
cout<<"code name[20][N] amount price sale stockn";
for(int i=0;i<N;i++)
{
cin>>pro[i].code>>pro[i].name[20]>>pro[i].amount>>pro[i].price>>pro[i].sale;
pro[i].stock=pro[i].amount -pro[i].sale;
}
for(int j=0;j<N;j++)
cout<<pro[j].code<<"t"<<pro[j].name[20][j]<<"t"<<pro[j].amount<<"t"<<pro[j].price<<"t"<<pro[j].sale<<"t"<<pro[j].stock<<endl;

cout<<"1. 按商品库存量排序,请选择:1";

cout<<"2. 按商品代码排序,请选择:2";

cout<< " 3. 按商品代码查询,请选择:3";


cout<<" 4. 按库存量查询,请选择:4";

cout<<"5. 显示商品信息,请选择:5";

cout<<"6. 结束程序,请选择:6";
cin>>q;
if(q=1)
{int n;
int num;
cin>>n;
cin>>num;
sort(pro,n);
cout<<"--------------n";
for(i=0;i<num;i++)
cout<<pro[i].code<<"t"<<pro[i].name[20][i]<<"t"<<pro[i].amount<<"t"<<pro[i].price<<"t"<<pro[i].sale<<"t"<<pro[i].stock<<endl;
}
else if(q=2)
{
sort(pro,N);
cout<<"--------------n";
for(i=0;i<N;i++)
cout<<pro[i].code<<"t"<<pro[i].name[20][i]<<"t"<<pro[i].amount<<"t"<<pro[i].price<<"t"<<pro[i].sale<<"t"<<pro[i].stock<<endl;
}
else if(q=3)
{

}

}
void sort(product pro[],int N)
{
product temp;
product s;
for(int i=0;i<N-1;i++)
{
for(int j=0;j<N-i-1;j++)
{
if(pro[j].stock>pro[j+1].stock)
{
temp=pro[j];
pro[j]=pro[j+1];
pro[j+1]=temp;
}
else if(pro[j].stock=pro[j+1].stock)
{
if(pro[j].sale>pro[j+1].sale)
{
s=pro[j];
pro[j]=pro[j+1];
pro[j+1]=s;
}
}
}

}
void paixu(struct product pro[],int N)
{
product t;
int k;
for(int i=0;i<N-1;i++)
{
k=i;
for(int j=i+1;j<N;j++)
{
if(pro[j].code>pro[j+1].code)
k=j;
t=pro[k];
pro[k]=pro[i];
pro[i]=t;
}

}
}
void search()
{
cout<<"请输入你要找的商品代码/n";
cin>>p;
paixu(pro,N);
int top=pro[0].code,bottom=pro[N-1].code,middle,flag;
while(top<=bottom)
{
middle=pro[(N-1)/2].code;
if(p=middle)
{
flag=1;
break;
}
else
{
if(p>middle)
top=pro[(N-1)/2+1];
else
bottom=pro[(N-1)/2-1];
}
if(flag=0)
cout<<p<<"is not in the array"<<endl;
else
cout<<pro[(N-1)/2].code<<"t"<<pro[(N-1)/2].name[20][(N-1)/2]<<"t"<<pro[(N-1)/2].amount<<"t"<<pro[(N-1)/2].price<<"t"<<pro[(N-1)/2].sale<<"t"<<pro[(N-1)/2].stock<<endl;
}
}
void inquire(product pro[])
{
int i;
for(i=0;i<N;i++)
{
if(pro[i].)
}
}
}

一、题目:设计一个简单的商品管理系统
二、目的与要求
1. 目的
培养学生综合利用C++语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。
2. 基本要求
(1) 要求用C++语言编程,在Visual C++环境下调试完成;
(2) 要求使用结构数组,各个功能分别使用函数来完成。
三、设计方法和基本原理
1.课题功能描述
编写一个简单的商品信息管理的程序,主要完成商品信息的录入、排序、查询和显示功能。
2. 问题详细描述
某超市的电器区有5种商品,每种商品包括以下信息:商品代码(整型),商品名称(字符串),商品数量(整型),单价(双精度),销售量(整型),库存量(=商品数量-销售量,整型),例如:

商品信息列表
商品代码 商品名称 商品单价 商品数量 销售量 库存量
10120 Haier Conditioner 2998 120 20
11254 IPOD MP3 1250 245 32
10564 Sega HardDisk 655 100 55
15826 IBM Laptop 8188 80 15
18257 Sony DC 3588 150 29
要求编写多个函数分别实现下列功能,而后在main函数中进行调用。
(1) 输入函数:从键盘输入这些商品的代码,名称,数量,单价,销售量信息,而后自动计算其库存量。
(2) 排序函数1:将商品按照商品的库存量进行升序排序,若库存量相同则按照销售量升序排序。
(3) 排序函数2:将商品按照代码进行升序排序。
(4) 查询函数1:按商品代码查询用户指定的商品信息。在主函数中给出查询结果,若找到则输出该商品的信息,如找不到,则给出相应的提示信息,而后可多次查询也可退出程序的运行。
(5) 查询函数2:按库存量进行查询用户指定的商品信息。查询结果的处理同查询函数1。
(6) 输出函数:输出某个商品的信息。
(7) 程序运行结果:
请输入5种商品的信息:(由用户输入)
code name price amount sales
10120 Haier Conditioner 2998 120 20
11254 IPOD MP3 1250 245 32
10564 Sega HardDisk 655 100 55
15826 IBM Laptop 8188 80 15
18257 Sony DC 3588 150 29
*************************************
1. 按库存量排序,请选择:1
2. 按商品代码排序,请选择:2
3. 按商品代码查询,请选择:3
4. 按库存量查询,请选择:4
5. 显示商品信息,请选择:5
6. 结束程序,请选择:6
*************************************
请选择: (用户可根据菜单项进行选择)
3. 问题的解决方案
根据问题的描述,可以按照程序要求的功能采用结构化的设计思想。
(1) 使用结构体类型存储商品的各种信息。
(2) 利用菜单使用户选择各个功能模块,例如:
1. 按商品库存量排序,请选择:1
2. 按商品代码排序,请选择:2
3. 按商品代码查询,请选择:3
4. 按库存量查询,请选择:4
5. 显示商品信息,请选择:5
6. 结束程序,请选择:6
而后可根据不同的选项进入到不同的功能模块进行执行。执行完某个功能后,重新显示该菜单,因此可将此菜单的显示放置到循环结构中。
(3) 在排序过程中,结构数组元素的交换可以整体进行,无需每个成员之间进行互换;两个排序请分别使用冒泡法和选择法。
(4) 查询时请分别使用折半查找法和顺序查找法进行查找,注意折半查找法是对有序数组的操作。
四、主要技术问题的描述
根据三的分析,主要问题在于:
(1)结构体的构造(struct PRODUCT)
商品代码(int code)、商品名称(char name[20]) ,商品数量(int amount) ,单价(double price)销售量(int sales),商品的库存量(int stock)。
(2)排序
在进行完结构数组中某个成员的比较后,不是某个成员的互换,而是结构体数组元素之间的互换。例如结构体数组元素pro[j]和pro[k]的互换:
t=pro[j]; pro[j]=pro[j+1]; pro[j+1]=t;
(3)各个函数的参数传递问题
实参应为结构数组名,形参为结构体指针或者结构体数组。如输入函数:
void input(PRODUCT *p) //结构体指针作为形参
{…
}
函数调用时:input(pro); // pro 为结构体数组名
五、创新要求
在基本要求达到后,进行创新设计:
(1)使用多文件,即主函数和各个函数分别存放在不同的.cpp文件中,在头文件中进行函数原型声明。
(2)对程序功能进行拓展,使其更加实用。例如,找到指定商品后进行删除,或将新商品信息插入到原数组中。

搜索更多相关主题的帖子: 商品 系统 请求 管理 设计 
2007-06-29 14:08
kfiuggt
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-5-8
收藏
得分:0 
我也想知道哪里出错了
2007-07-01 22:43
快速回复:请求设计一个商品管理系统
数据加载中...
 
   



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

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