C语言课程设计仓库管理系统1Word文档下载推荐.docx
- 文档编号:17625809
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:28
- 大小:309.68KB
C语言课程设计仓库管理系统1Word文档下载推荐.docx
《C语言课程设计仓库管理系统1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计仓库管理系统1Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
返回
输入数字:
3
查找菜单
此模块是帮助仓库管理员查找仓库所有商品信息。
模块四:
修改项目信息
4
修改菜单
此模块是帮助仓库管理员修改仓库商品信息。
模块五:
删除项目信息
5
删除菜单
此模块是帮助仓库管理员删除仓库里的错误商品信息。
3.2类、函数及说明
classInventory
{
public:
Stock*pHead;
//定义一个头结点
intcount;
//定义数量
Inventory();
//构造函数
~Inventory();
//析构函数
intSave(charfileName[]);
//保存所有项目信息到文件
intLoad(charfileName[]);
//从文件中读取项目信息
voidMenu();
//处理项目信息模块菜单
private:
friendclassOutStocks;
//声明友元类
voidDisplay();
voidAddStock(Stock*);
//添加一个项目
voidAddStocks();
//添加多个项目
intMenuSelect();
//显示和处理项目信息模块菜单
};
classStock
protected:
intprice;
//单价
intamount;
//数量
charnum[20];
//编号
charname[20];
//品名
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();
//声明更新函数
//声明打印函数
4系统测试
2
首先增加项目:
然后显示全部项目:
然后查找(例如按品名查找和按单价查找):
然后是修改(例如按编号或者总价修改:
然后删除操作(例如按数量和编号删除):
5心得体会
通过两周的课程设计使我对C++有了更深刻的认识,不仅学习到了基本的理论知识,还了解到了C++语言程序设计的思想,这些知识都为我的课程设计和进一步的学习打下了坚实的基础。
关于库存管理系统的课程设计,一方面是为了检查这一个学期来计算机语言及链表的学习成果,另一方面也是为了让我们进一步掌握和熟练地运用它,与此同时,也能够让我们认清自己在C++学习方面的不足之处和薄弱环节,并加以弥补和巩固。
通过对库存管理系统的程序设计,进一步的巩固了用C++语言编写程序的能力,并且利于更好的掌握C++语言!
在为期近两周的C++课程设计中,我加强了对C++程序设计这门课程的认识,并且复习了自己以前学习到的知识,自己的逻辑思考能力也提高不少。
这些都使得我对计算机语言的学习有了更深入的认识!
总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。
最重要的还是激发了我编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序。
整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识。
像库存管理系统这样的应用程序的设计和创建,经历了平时在课堂和考试中不会出现的难题和考验。
而这些问题,又都是课本上很少提到的、更深一层的实践与知识相结合的问题,这并不是我们平时只靠课本,就可以轻易解决的。
刚开始我们的程序缺乏实际应用意义,在屠老师的指导下,我们更深刻的知道了一个库存管理系统应该具备的内容,比如出入库,库存信息,供销商信息等等。
所以,这次课程设计锻炼了我们面对难题,学会根据客户需求解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。
特别是对于链表的运用。
当然,屠老师的指导和同学的帮助也是不可忽视的,他们给了我许多提示和帮助,教会了我编译复杂程序的方法。
总而言之,这次C++程序设计实践让我收获很大。
参考文献
[1]数据结构(C语言版)清华大学出版社
[2]C语言课程设计(第2版)电子工业出版社
[3]XX-C++课程设计吧
附录源程序
头文件:
Inventory.h
#pragmaonce
#include"
Stock.h"
Stock.h:
Inventory.cpp:
Search.h"
#include<
fstream>
iomanip>
iostream>
usingnamespacestd;
externSearchSearch;
//寻找Search的定义
Inventory:
:
Inventory()
count=0;
pHead=newStock();
//给头结点分配储存空间
pHead->
next=NULL;
//头结点的下一个节点置空
}
~Inventory()//析构函数
//要将所有节点释放掉
Stock*pCurrent;
//定义一个当前指针
pCurrent=pHead;
//把头结点赋给当前指针
while(pCurrent->
next!
=NULL)//当当前指针指向的下一个节点不为空
{
pHead=pHead->
next;
//头结点后移一个单位
free(pCurrent);
//释放当前节点
pCurrent=pHead;
//头结点赋给当前指针
}
free(pCurrent);
voidInventory:
AddStock(Stock*pCurrent)
charn[5];
=NULL)//当pCurrent下一个节点不为空
pCurrent=pCurrent->
//pCurrent结点后移一个单位
cout<
<
"
\t\t编号:
;
cin>
>
n;
pCurrent->
Input(n);
//调用输入函数
next=newStock();
//给pCurrent下一个结点分配储存空间
pCurrent=pCurrent->
//pCurrent下一个节点为空
count++;
AddStocks()
intn;
\n\t\t请输入入库项目数量:
getchar();
//消除回车符
if(n<
1)
return;
pCurrent=pHead;
//把头结点赋给当前指针
for(inti=1;
i<
=n;
i++)
cout<
\n\t\t"
endl;
AddStock(pCurrent);
system("
pause"
);
Display()
if(count==0)
system("
cls"
\n\n\n\t\t无物品记录。
\n\n\t\t"
库存物品共"
count<
项:
\n┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"
┃序号编号品名单价数量总价┃\n"
┠─────────────────────────────────────┨\n"
┃┃\n"
for(inti=1;
pCurrent->
next!
=NULL;
i++)
┃"
setfill('
0'
)<
setw(3)<
'
\t'
pCurrent->
Display();
//调用打印函数
┃"
pCurrent=pCurrent->
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"
intInventory:
Save(charfileName[])
ofstreamoFile(fileName,ios:
out|ios:
binary);
//二进制方式写入文件
if(!
oFile)
\t\t文件“"
fileName<
”打开失败!
return0;
oFile.write((char*)&
count,sizeof(int));
while(pCurrent!
=NULL)//pCurrent指针不为空
oFile.write((char*)pCurrent,sizeof(*pCurrent));
oFile.close();
//别忘了关闭文件流
return1;
Load(charfileName[])
ifstreamiFile(fileName,ios:
in|ios:
iFile)
iFile.read((char*)&
if(iFile.peek()!
=EOF)//文件内容不为空
//第一个节点需单独读取
pHead=newStock();
iFile.read((char*)pHead,sizeof(*pHead));
else
pHead=NULL;
//头结点为空
return1;
while(iFile.peek()!
=EOF)//后续节点循环读取
iFile.read((char*)&
(*(pCurrent->
next)),sizeof(*(pCurrent->
next)));
//pCurrent结点后移一个单位
iFile.close();
MenuSelect()
chars[5];
intcn;
┠─────────────物品信息管理───ver0.9测试版────┨\n"
┃1.增加项目┃\n"
┃2.显示全部项目┃\n"
┃3.查找项目信息┃\n"
┃4.修改项目信息┃\n"
┃5.删除项目信息┃\n"
┃6.保存库存记录┃\n"
┃7.读取库存记录┃\n"
┃0.返回┃\n"
\n"
\t\t请按键选择选择:
for(;
)
gets_s(s);
cn=atoi(s);
if(cn>
7)
cout<
\n\t\t输入错误,请按目录选择:
else
break;
returncn;
Menu()
switch(MenuSelect())
{
case1:
AddStocks();
//调用增加函数
case2:
Display();
case3:
:
Search.Menu
(1);
//调用查找函数
case4:
Search.UpdateMenu
(1);
case5:
Search.DeleteMenu
(1);
case6:
if(Save("
Stock.data"
))
cout<
\t\t项目信息保存成功!
else
\t\t项目信息保存失败!
system("
case7:
if(Load("
\t\t项目信息读取成功!
\t\t项目信息读取失败!
case0:
return;
}
Stock.cpp:
Stock:
Stock(void)
amount=0;
next=NULL;
voidStock:
SetNum(charn[])
strcpy_s(num,n);
char*Stock:
GetNum()
returnnum;
SetName(charn[])
strcpy_s(name,n);
GetName()
returnname;
SetPrice(intn)
price=n;
intStock:
GetPrice()
returnprice;
SetAmount(intn)
amount=n;
GetAmount()
returnamount;
Input(char*a)
charch[10];
SetNum(a);
\t\t品名:
ch;
SetName(ch);
\t\t单价:
SetPrice(n);
Add(intn)
amount+=n;
Out(intn)
amount-=n;
Update()
cin.getline(ch,'
\n'
SetNum(ch);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 仓库 管理 系统