C++语言课程设计方案仓库管理系统_第1页
C++语言课程设计方案仓库管理系统_第2页
C++语言课程设计方案仓库管理系统_第3页
C++语言课程设计方案仓库管理系统_第4页
C++语言课程设计方案仓库管理系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录TOC\o"1—3”\h\z\u_Toc272696907"2需求分析 5本系统是一个针对企业商品的仓库管理的软件,我们需要做到的是让企业能够更好的对旗下的仓库进行记录,汇总查询,以及掌握商品的供销商的信息记录。 53系统设计 6HYPERLINK\l”_Toc272696911”4系统测试 14HYPERLINK\l”_Toc272696912"参考文献 19Stock。h”classInventory{public: Stock*pHead;//定义一个头结点 intcount;//定义数量 Inventory();//构造函数 ~Inventory();//析构函数 intSave(charfileName[]);//保存全部项目信息到文件 intLoad(charfileName[]);//从文件中读取项目信息 voidMenu();//处理项目信息模块菜单private: friendclassOutStocks;//声明友元类 voidDisplay(); voidAddStock(Stock*);//添加一个项目 voidAddStocks();//添加多个项目 intMenuSelect();//显示和处理项目信息模块菜单};头文件:Stock.h:#pragmaonceclassStock{protected: intprice;//单价 intamount;//数量 charnum[20];//编号 charname[20];//品名public: Stock(void);//构造函数 Stock*next;//定义next指针 voidSetNum(char[]);//声明初始化编号函数 char*GetNum();//获得编号函数 voidSetName(char[]);//初始化名称函数 char*GetName();//获得名称函数 voidSetPrice(int);//声明初始化价格函数 intGetPrice();//获得价格函数 voidSetAmount(int);//初始化数量函数 intGetAmount();//获得数量函数 voidInput(char*a);//声明输入函数 voidAdd(int);//声明添加函数 voidOut(int);//声明出库函数 voidUpdate();//声明更新函数 voidDisplay();//声明打印函数};Inventory.cpp:#include"Search.h”#include<fstream>#include〈iomanip〉#include<iostream〉usingnamespacestd;externSearchSearch;//寻找Search的定义Inventory::Inventory(){ count=0; pHead=newStock();//给头结点安排储存空间 pHead->next=NULL;//头结点的下一个节点置空}Inventory::~Inventory()//析构函数{ //要将全部节点释放掉 Stock*pCurrent;//定义一个当前指针 pCurrent=pHead;//把头结点赋给当前指针 while(pCurrent—〉next!=NULL)//当当前指针指向的下一个节点不为空 { pHead=pHead->next;//头结点后移一个单位 free(pCurrent);//释放当前节点 pCurrent=pHead;//头结点赋给当前指针 } free(pCurrent);//释放当前节点}voidInventory::AddStock(Stock*pCurrent){ charn[5]; while(pCurrent->next!=NULL)//当pCurrent下一个节点不为空 pCurrent=pCurrent—〉next;//pCurrent结点后移一个单位 cout〈〈”\t\t编号:”; cin〉〉n; pCurrent-〉Input(n);//调用输入函数 pCurrent—〉next=newStock();//给pCurrent下一个结点安排储存空间 pCurrent=pCurrent—>next;//pCurrent结点后移一个单位 pCurrent-〉next=NULL;//pCurrent下一个节点为空 count++;}voidInventory::AddStocks(){ intn; cout〈<"\n\t\t请输入入库项目数量:”; cin>>n; getchar();//消除回车符 if(n<1) return; Stock*pCurrent; pCurrent=pHead;//把头结点赋给当前指针 for(inti=1;i〈=n;i++) { cout〈<"\n\t\t”<〈i〈<”:”<<endl; AddStock(pCurrent); } system("pause”);}voidInventory::Display(){ if(count==0) { system("cls"); cout<<”\n\n\n\t\t无物品记录。\n\n\t\t"; system("pause”); return; } system("cls”); cout<<"库存物品共”〈〈count〈〈"项:”;cout<<”\n┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n”; cout〈〈"┃序号编号品名单价数量总价┃\n"; cout<<"┠─────────────────────────────────────┨\n"; cout<〈"┃┃\n"; Stock*pCurrent; pCurrent=pHead;//把头结点赋给当前指针 for(inti=1;pCurrent—>next!=NULL;i++) { cout<〈”┃"<〈setfill(’0’)〈<setw(3)<〈i〈〈’\t’; pCurrent->Display();//调用打印函数 cout〈〈”┃"〈<endl; pCurrent=pCurrent—〉next;//pCurrent结点后移一个单位 } cout<<"┃┃\n”; cout〈<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n”; system(”pause");}intInventory::Save(charfileName[]){ ofstreamoFile(fileName,ios::out|ios::binary);//二进制方式写入文件 if(!oFile) { cout<<”\t\t文件“"<〈fileName<<””打开失败!"〈〈endl; return0; } oFile.write((char*)&count,sizeof(int)); Stock*pCurrent; pCurrent=pHead;//把头结点赋给当前指针 while(pCurrent!=NULL)//pCurrent指针不为空 { oFile。write((char*)pCurrent,sizeof(*pCurrent)); pCurrent=pCurrent—〉next;//pCurrent结点后移一个单位 } oFile.close();//别忘了关闭文件流 return1;}intInventory::Load(charfileName[]){ ifstreamiFile(fileName,ios::in|ios::binary); if(!iFile) { cout〈〈”\t\t文件“”〈<fileName〈<"”打开失败!”〈〈endl; return0; } iFile.read((char*)&count,sizeof(int)); if(iFile.peek()!=EOF)//文件内容不为空 { //第一个节点需单独读取 pHead=newStock(); iFile.read((char*)pHead,sizeof(*pHead)); } else { pHead=NULL;//头结点为空 return1; } Stock*pCurrent; pCurrent=pHead;//把头结点赋给当前指针 while(iFile。peek()!=EOF)//后续节点循环读取 { pCurrent—〉next=newStock();//给pCurrent下一个结点安排储存空间 iFile.read((char*)&(*(pCurrent—〉next)),sizeof(*(pCurrent-〉next))); pCurrent=pCurrent-〉next;//pCurrent结点后移一个单位 } pCurrent->next=NULL; iFile。close();//别忘了关闭文件流 return1;}intInventory::MenuSelect(){ chars[5]; intcn; system(”cls”);cout<<”\n┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n”; cout<〈”┠─────────────物品信息管理───ver0.9测试版────┨\n”; cout<〈”┃┃\n”; cout〈<”┃1.增加项目┃\n”; cout<〈"┃2。显示全部项目┃\n"; cout<〈”┃3。查找项目信息┃\n”; cout〈<"┃4.修改项目信息┃\n”; cout〈<"┃5。删除项目信息┃\n”; cout<〈”┃┃\n"; cout<<"┃6。保存库存记录┃\n"; cout<〈"┃7。读取库存记录┃\n"; cout<〈"┃0.返回┃\n”; cout<〈”┃┃\n"; cout<〈"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"; cout<<"\n”; cout<<"\t\t请按键选择选择:"; for(;;) { gets_s(s); cn=atoi(s); if(cn>7) cout<<"\n\t\t输入错误,请按名目选择:”; else break; } returncn;}voidInventory::Menu(){ for(;;) { switch(MenuSelect()) { case1: AddStocks();//调用增加函数 break; case2: Display();//调用打印函数 break; case3: ::Search。Menu(1);//调用查找函数 break; case4: ::Search。UpdateMenu(1); break; case5: ::Search.DeleteMenu(1); break; case6: if(Save(”Stock.data”)) cout〈<”\t\t项目信息保存成功!\n"<〈endl; else cout〈〈"\t\t项目信息保存失败!\n”<〈endl; system(”pause”); break; case7: if(Load("Stock。data”)) cout<〈"\t\t项目信息读取成功!\n"<<endl; else cout<〈”\t\t项目信息读取失败!\n"<〈endl; system(”pause"); break; case0: return; } }}Stock.cpp:#include”Stock.h”#include〈iomanip〉#include〈iostream〉usingnamespacestd;Stock::Stock(void){ amount=0; next=NULL;}voidStock::SetNum(charn[]){ strcpy_s(num,n);}char*Stock::GetNum(){ returnnum;}voidStock::SetName(charn[]){ strcpy_s(name,n);}char*Stock::GetName(){ returnname;}voidStock::SetPrice(intn){ price=n;}intStock::GetPrice(){ returnprice;}voidStock:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论