|
#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的错误提示,是不是头文件没有啊,哪个大虾可以帮俺完整一下喃?在线急等......... |
|