1、 返回输入数字:3查找菜单此模块是帮助仓库管理员查找仓库所有商品信息。模块四:修改项目信息4修改菜单此模块是帮助仓库管理员修改仓库商品信息。模块五:删除项目信息5删除菜单此模块是帮助仓库管理员删除仓库里的错误商品信息。3.2类、函数及说明class Inventorypublic: Stock *pHead; /定义一个头结点 int count;/定义数量 Inventory();/构造函数 Inventory();/析构函数 int Save(char fileName);/保存所有项目信息到文件 int Load(char fileName);/从文件中读取项目信息 void Menu(
2、);/处理项目信息模块菜单private: friend class OutStocks;/声明友元类 void Display(); void AddStock(Stock*);/添加一个项目 void AddStocks();/添加多个项目 int MenuSelect();/显示和处理项目信息模块菜单;class Stockprotected: int price;/单价 int amount;/数量 char num20;/编号 char name20;/品名 Stock(void); Stock *next;/定义next指针 void SetNum(char);/声明初始化编号函数
3、 char* GetNum();/获得编号函数 void SetName(char);/初始化名称函数 char *GetName();/获得名称函数 void SetPrice(int);/声明初始化价格函数 int GetPrice();/获得价格函数 void SetAmount(int);/初始化数量函数 int GetAmount();/获得数量函数 void Input(char* a);/声明输入函数 void Add(int);/声明添加函数 void Out(int);/声明出库函数 void Update();/声明更新函数/声明打印函数4 系统测试2首先增加项目:然后显示
4、全部项目:然后查找(例如按品名查找和按单价查找):然后是修改(例如按编号或者总价修改:然后删除操作(例如按数量和编号删除):5 心得体会通过两周的课程设计使我对C+有了更深刻的认识,不仅学习到了基本的理论知识,还了解到了C+语言程序设计的思想,这些知识都为我的课程设计和进一步的学习打下了坚实的基础。关于库存管理系统的课程设计,一方面是为了检查这一个学期来计算机语言及链表的学习成果,另一方面也是为了让我们进一步掌握和熟练地运用它,与此同时,也能够让我们认清自己在C+学习方面的不足之处和薄弱环节,并加以弥补和巩固。通过对库存管理系统的程序设计,进一步的巩固了用C+语言编写程序的能力,并且利于更好的
5、掌握C+语言!在为期近两周的C+课程设计中,我加强了对C+程序设计这门课程的认识,并且复习了自己以前学习到的知识,自己的逻辑思考能力也提高不少。这些都使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。最重要的还是激发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序。整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识。像库存管理系统这样的应用程序的设计和创建,经历了平时在课堂和考试中不会出现的难题和考验。而这些问题,又都是课本上很少提到的、更深一
6、层的实践与知识相结合的问题,这并不是我们平时只靠课本,就可以轻易解决的。刚开始我们的程序缺乏实际应用意义,在屠老师的指导下,我们更深刻的知道了一个库存管理系统应该具备的内容,比如出入库,库存信息,供销商信息等等。所以,这次课程设计锻炼了我们面对难题,学会根据客户需求解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。特别是对于链表的运用。当然,屠老师的指导和同学的帮助也是不可忽视的,他们给了我许多提示和帮助,教会了我编译复杂程序的方法。总而言之,这次C+程序设计实践让我收获很大。参考文献1 数据结构(C语言版)清华大学出版社2 C语言课程设计(第2版)电子工业出版社3 XX-C+课程
7、设计吧附录 源程序头文件:Inventory.h#pragma once#include Stock.hStock.h:Inventory.cpp:Search.h#include iomanipiostreamusing namespace std;extern Search Search;/寻找Search的定义Inventory:Inventory() count=0; pHead = new Stock();/给头结点分配储存空间 pHead-next = NULL;/头结点的下一个节点置空Inventory()/析构函数 /要将所有节点释放掉 Stock *pCurrent;/定义一
8、个当前指针 pCurrent=pHead;/把头结点赋给当前指针 while(pCurrent-next != NULL)/当当前指针指向的下一个节点不为空 pHead = pHead-next;/头结点后移一个单位 free(pCurrent);/释放当前节点 pCurrent = pHead;/头结点赋给当前指针 free(pCurrent);void Inventory:AddStock(Stock *pCurrent) char n5;= NULL)/ 当pCurrent下一个节点不为空 pCurrent = pCurrent- /pCurrent结点后移一个单位 coutn; pCu
9、rrent-Input(n);/调用输入函数next = new Stock();/给pCurrent下一个结点分配储存空间 pCurrent = pCurrent- / pCurrent下一个节点为空 count+;AddStocks() int n;ntt请输入入库项目数量: getchar();/消除回车符 if(n1) return; pCurrent = pHead; /把头结点赋给当前指针 for( int i=1;i=n;i+ ) coutnttendl; AddStock(pCurrent); system(pause);Display() if(count=0) system
10、(clsnnntt无物品记录。nntt库存物品共countnext!=NULL;i+)setfill(0)setw(3)Display();/调用打印函数 pCurrent=pCurrent-nint Inventory:Save(char fileName) ofstream oFile(fileName,ios:out|ios:binary);/ 二进制方式写入文件 if(!oFile)tt文件“fileNamenext),sizeof(*(pCurrent-next); /pCurrent结点后移一个单位 iFile.close();MenuSelect() char s5; int c
11、n;物 品 信 息 管 理ver0.9测试版n 1. 增 加 项 目 n 2. 显 示 全 部 项 目 n 3. 查 找 项 目 信 息 n 4. 修 改 项 目 信 息 n 5. 删 除 项 目 信 息 n 6. 保 存 库 存 记 录 n 7. 读 取 库 存 记 录 n 0. 返 回 nntt请按键选择选择: for(;) gets_s(s); cn=atoi(s); if(cn7) coutntt输入错误,请按目录选择: else break; return cn;Menu() switch(MenuSelect() case 1: AddStocks();/调用增加函数 case 2
12、: Display(); case 3: :Search.Menu(1);/调用查找函数 case 4:Search.UpdateMenu(1); case 5:Search.DeleteMenu(1); case 6: if(Save(Stock.data) couttt项目信息保存成功! elsett项目信息保存失败! system( case 7: if(Load(tt项目信息读取成功!tt项目信息读取失败! case 0: return; Stock.cpp:Stock:Stock(void) amount=0; next = NULL;void Stock:SetNum(char n
13、) strcpy_s(num,n);char* Stock:GetNum() return num;SetName(char n) strcpy_s(name,n);GetName() return name;SetPrice(int n) price = n;int Stock:GetPrice() return price;SetAmount(int n) amount=n;GetAmount() return amount;Input(char* a) char ch10; SetNum(a);tt品 名:ch; SetName(ch);tt单 价: SetPrice(n);Add(int n) amount+=n;Out(int n) amount-=n;Update() cin.getline(ch,n SetNum(ch);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1