找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 474|回复: 3

[求助]线性表管理商品库存表的代码问题

[复制链接]
发表于 2009-11-4 00:28:26 | 显示全部楼层 |阅读模式 IP:江苏扬州
#include<iostream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<string.h>
#include<fstream.h>
const int maxsize=10;
struct goods //商品纪录类型
{
char code[5]; //商品代号
char name[15]; //商品名称
int minq; //商品库存量
int curq; //当前库存量
};
typedef goods elemtype;
struct List{
elemtype list[maxsize];
int size;
};
int operator ==(const elemtype& e1,const elemtype& e2)
{
return (strcmp(e1.code,e2.code) ==0);
}
int operator <(const elemtype& e1,const elemtype& e2)
{
return (strcmp(e1.code,e2.code) ==-1);
}
ostream& operator <<(ostream& ostr,const elemtype& x)
{
ostr<<x.code<<setw(12)<<x.name<<setw(4)<<x.minq<<setw(4)<<x.curq<<endl;
return ostr;
}
#include"list.h"
void setupgoodslist(list&l, char*fname)
{
ifstream ifstr(fname,ios::in|ios::nocreate);
if(!ifstr){
cerr<<"file 'goods'not found!"<<endl;
exit(1);
}
goods g;
while(ifstr>>g.code){
ifstr>>g.name>>g.minq>>g.curq;
insertrear(l,g);
}
ifstr.close();
}
void writegoodsfile(char*fname, list&l)
{
ofstream ofstr(fname);
if(!ofstr){
cerr<<"file'good'no create!"<<endl;
exit(1);}
goods g;
int n=listsize(l);
for(int i=1;i<=n;i++){
g=getelem(l,i);
ofstr<<g.code<<" "<<g.name<<" "<<g.minq<<" "<<g.curq<<endl;
}
ofstr.close();
}
void main()
{
list l2; //说明一个线性表l2
initlist(l2); //初始化l2
setupgoodslist(l2,"a:goods.dat"); //把文件"a:goods.dat"中的记录顺序读到线性表l2中
int i,flag=1;
while(flag) //当flag为真时执行循环
{
cout<<"1 打印整个库存表"<<endl;
cout<<"2 修改库存表中的记录"<<endl;
cout<<"3 删除库存表中的记录"<<endl;
cout<<"4 对库存表排序"<<endl;
cout<<"5 结束处理过程"<<endl;
cout<<"输入你的选择";
cin>>i:
while(i<1||i>5){
cout<<"请重新输入选择(1~5):";
cin>>i;
}
cout<<endl;
switch(i)
{
case 1: //打印
traverselist(l2);
break;
case 2: //修改
goods.g;
int x;
cout<<"输入待修改的商品代号:";
cin>>g.code;
if(find(l2,g)){
cout<<"输入该商品的修正量:";
cin>>x;
g.curq+=x;
update(l2,g);
}
else
{
cout<<"输入新商品记录的其余字段的内容:"<<endl;
cin>>g.name>>g.minq>>g.curq:
insertrear(l2,g);
}
break;
case 3: //删除
cout<<"输入待删商品的商品代号:"
cin>>g.code:
delete(l2,g);
break;
case 4: //排序
sort(l2);
break;
case 5: //结束
cout<<"本次处理结束,再见!"<<endl;
flag=0;
}
}
writegoodsfile("a:goods.dat",l2); //把处理后的线性表重新写回到原文件中
}


上面的代码俺在编译时出现list.h的错误提示,是不是头文件没有啊,哪个大虾可以帮俺完整一下喃?在线急等.........
发表于 2009-11-4 00:28:27 | 显示全部楼层 IP:江苏扬州
从网上看咯一些论坛,我估计我的线性表的各种操作函数没有写在"list.h"中,但是我试着写咯好几次都没有写对,请各位大虾帮忙写下线性表的各种操作函数.............
回复

使用道具 举报

发表于 2009-11-4 00:28:28 | 显示全部楼层 IP:江苏扬州
代码没仔细看,
标准模板库里已经有了一个list了,你换个类名试试
回复

使用道具 举报

发表于 2009-11-4 00:28:29 | 显示全部楼层 IP:江苏扬州
谢谢提醒,问题已经解决!!!!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 21:27 , Processed in 0.181753 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表