第三方物流管理信息系统C++Word下载.docx

上传人:b****7 文档编号:22089302 上传时间:2023-02-02 格式:DOCX 页数:17 大小:18.08KB
下载 相关 举报
第三方物流管理信息系统C++Word下载.docx_第1页
第1页 / 共17页
第三方物流管理信息系统C++Word下载.docx_第2页
第2页 / 共17页
第三方物流管理信息系统C++Word下载.docx_第3页
第3页 / 共17页
第三方物流管理信息系统C++Word下载.docx_第4页
第4页 / 共17页
第三方物流管理信息系统C++Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

第三方物流管理信息系统C++Word下载.docx

《第三方物流管理信息系统C++Word下载.docx》由会员分享,可在线阅读,更多相关《第三方物流管理信息系统C++Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

第三方物流管理信息系统C++Word下载.docx

voidInsert();

//进货,插入结点

voidFindByNO();

//根据型号查找(结果不止一个,所以用void)

voidFindByName();

//根据名称查找(同上)

voidFindByBrand();

//根据品牌查找(同上)

boolDelete();

//提货,删除结点

boolModify();

//修改信息

voidPrintList()const;

//遍历单链表,按序号依次输出各元素

voidDataResume();

//**数据恢复**

~ProductList();

//析构函数

voidmenu()

cout<

<

"

----------------------交运0902---------------------------------------\n"

***************************第三方物流管理系统***************************\n"

----------------------------------------------------------------------\n"

从下面的功能中选择一个!

\n"

--------------------------------------------------------------\n"

*******显示与查询**************增删改**************其他*******\n"

1.显示全部产品信息5.进货(插入结点)8.存盘\n"

2.按型号查询6.提货(删除结点)9.营业结束(存盘退出)\n"

3.按名称查询7.修改产品信息a.数据恢复\n"

4.按品牌查询0.退出(不存盘)\n"

----------------------------------------------------------------------\n\n"

;

}

////主程序

intmain()

ProductListpl;

\t\t欢迎使用第三方物流管理系统\n"

\t1.开始营业\n\t2.退出\n请选择:

stringchoice;

while

(1)

cin>

>

choice;

if(choice[0]=='

2'

)exit(0);

elseif(choice[0]!

='

1'

)cout<

此序号不存在,请重新输入!

else

pl.ReadFile();

//读入文件

请按回车继续..."

getchar();

system("

cls"

);

//清屏

menu();

//显示菜单

请输入序号:

//选择

switch(choice[0])

case'

:

pl.PrintList();

break;

//显示全部产品信息

pl.FindByNO();

//按型号查询

3'

pl.FindByName();

//按名称查询

4'

pl.FindByBrand();

//按品牌查询

5'

pl.Insert();

//进货(插入结点)

6'

pl.Delete();

//提货(删除结点)

7'

pl.Modify();

//修改产品信息

8'

pl.WriteFile();

//存盘

9'

{pl.WriteFile();

谢谢使用!

exit(0);

}//营业结束(存盘退出)

a'

{pl.DataResume();

}//数据恢复

0'

{cout<

}//退出(不存盘)

default:

请选择:

////**在单链表中有序插入结点**//

voidProductList:

InitInsert(ProductNode*s)

ProductNode*f=first;

ProductNode*p=first->

next;

while(p&

&

p->

Price<

s->

Price)//f结点始终为p结点的前趋结点,退出循环时,s应插入f结点后

f=p;

p=p->

next=f->

f->

next=s;

////**营业开始,读入文件**//

ReadFile()

ifstreamfin("

product.txt"

//输入文件流对象

if(fin.fail()){cout<

product.txt文件读入错误!

请按回车键退出..."

stringoneline;

//文件的一行

ProductNode*r=first;

while(getline(fin,oneline))//当文件没有结束,读一行

istringstreamsin(oneline);

//字符串流

ProductNode*s=newProductNode;

sin>

NO>

Name>

Brand>

Price>

Quantity;

InitInsert(s);

}

voidProductList:

PrintList()const

{

cout<

产品信息如下:

型号"

\t\t"

名称"

品牌"

单价"

数量"

endl;

ProductNode*p=first->

while(p)

NO<

Name<

Brand<

Quantity<

p=p->

WriteFile()

ofstreamfout("

//输出文件流对象

fout<

\t"

ofstreamfout2("

diary.txt"

//清空日志文件

存盘成功!

ProductList:

~ProductList()

ProductNode*p=first;

ProductNode*q;

while(p)//释放单链表的每一个结点的存储空间

q=p;

//暂存被释放结点

//工作指针p指向被释放结点的下一个结点,使单链表不断开

deleteq;

FindByNO()

boolflag=false;

//假定没有此产品

输入产品型号:

cin>

NO;

ProductNode*p;

for(p=first->

p;

next)

if(p->

NO==NO)

if(flag==false)//只输出一次标题

查询结果如下:

flag=true;

//存在产品

if(flag==false)cout<

无此产品!

FindByName()

//假定没有

输入产品名称:

Name;

Name==Name)

if(flag==false)

FindByBrand()

输入产品品牌:

Brand;

Brand==Brand)

Insert()

PrintList();

请输入产品信息插入(输入产品型号时输入z并按回车返回)\n"

产品型号:

if(NO[0]=='

z'

)return;

s->

NO=NO;

产品名称:

产品品牌:

//工作指针p初始化

while(p&

!

(p->

NO==s->

NO&

Name==s->

Name&

Brand==s->

Brand))//查找结点

if(p)//此类产品存在

此类产品存在!

输入进货数量\n"

产品数量:

if(s->

=0){cout<

数据错误!

return;

p->

Quantity+=s->

Price=p->

Price;

//便于修改日志文件

else//此类产品不存在

产品单价:

ios:

app);

//向日志文件中添加记录

进货"

修改成功\n"

////**提货,数量减少or删除结点**//

boolProductList:

Delete()

输入卖出产品的信息!

stringNO,Name,Brand;

输入型号:

(输入z返回)"

)returnfalse;

ProductNode*f=first;

NO==NO&

Name==Name&

Brand==Brand))//查找结点

f=p;

if(!

p)//产品不存在

此产品不存在!

returnfalse;

else//产品存在

intPrice=p->

//修改日志用,因为p结点要被删除

输入提货数量:

while(Quantity>

Quantity){cout<

输入的数量超出库存量,请重新输入!

if(Quantity<

Quantity)p->

Quantity-=Quantity;

else//数量相等,删除结点

f->

next=p->

deletep;

此产品被删除!

提货"

returntrue;

////**数据恢复(读取日志文件进行相应操作)**//

DataResume()

ifstreamfin("

stringType;

//进货or提货

stringoneline;

while(getline(fin,oneline))//当文件没有结束,读一行

Type>

if(Type=="

{

Brand))//查找第i个结点

if(p)p->

//此类产品存在

elseInitInsert(s);

//此类产品不存在

Brand))//查找第i-1个结点

if(p)//产品存在

Quantity-=s->

elseif(s->

Quantity==p->

Quantity)//数量相等,删除结点

}

数据恢复成功\n"

//**修改产品信息**//

Modify()

输入要修改的产品信息!

(输入'

返回)"

p)//结点p不存在

else//结点p存在

fout<

intPrice,Quantity;

此产品信息如下:

型号:

\n名称:

\n品牌:

\n单价:

\n数量:

输入新型号:

(输入z不变)"

if(NO[0]!

)p->

输入新名称:

if(Name[0]!

Name=Name;

输入新品牌:

if(Brand[0]!

Brand=Brand;

输入新单价:

(输入0不变)"

if(Price!

=0)p->

Price=Price;

输入新数量:

if(Quantity!

Quantity=Quantity;

//向日志文件中添加记录

////按单价顺序调整记录顺序

if(!

(Price==0||(Price>

=f->

Price&

next==NULL||Price<

=p->

next->

Price))))//需要调整

{//单价没有改变or单价>

前一个结点的单价(包括头结点)并且单价<

后一个结点的单价(包括后一个结点为空)

//先删除p

InitInsert(p);

//再按单价顺序插入p

修改成功!

////判断密码//

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1