C语言课程设计仓库管理系统1Word文档下载推荐.docx

上传人:b****6 文档编号:17625809 上传时间:2022-12-07 格式:DOCX 页数:28 大小:309.68KB
下载 相关 举报
C语言课程设计仓库管理系统1Word文档下载推荐.docx_第1页
第1页 / 共28页
C语言课程设计仓库管理系统1Word文档下载推荐.docx_第2页
第2页 / 共28页
C语言课程设计仓库管理系统1Word文档下载推荐.docx_第3页
第3页 / 共28页
C语言课程设计仓库管理系统1Word文档下载推荐.docx_第4页
第4页 / 共28页
C语言课程设计仓库管理系统1Word文档下载推荐.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言课程设计仓库管理系统1Word文档下载推荐.docx

《C语言课程设计仓库管理系统1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言课程设计仓库管理系统1Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。

C语言课程设计仓库管理系统1Word文档下载推荐.docx

返回

输入数字:

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);

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

当前位置:首页 > 高中教育 > 理化生

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

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