设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 470|回复: 3
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 00:28:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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的错误提示,是不是头文件没有啊,哪个大虾可以帮俺完整一下喃?在线急等.........
2#
发表于 2009-11-4 00:28:27 | 只看该作者
从网上看咯一些论坛,我估计我的线性表的各种操作函数没有写在"list.h"中,但是我试着写咯好几次都没有写对,请各位大虾帮忙写下线性表的各种操作函数.............
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-4 00:28:28 | 只看该作者
代码没仔细看,
标准模板库里已经有了一个list了,你换个类名试试
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-4 00:28:29 | 只看该作者
谢谢提醒,问题已经解决!!!!!!!!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 06:25 , Processed in 0.108868 second(s), 10 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

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