关键词不能为空

当前您在: 主页 > 英语 >

物品库存管理课程设计报告

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 08:16
tags:

-

2021年2月28日发(作者:revised)



物品库存管理课程设计报告



紫金学院


Visual C++


课程设计



南京理工大学紫金学院


VC++


课程设 计报告











程:



VC++


课程设计





别:



计算机系





级:



计科一班





号:



120601105




名:



付瑞



课题名称:



物品库存管理



起止时间:



2013.11.26~2013.12.11


指导教师:















2013



12




紫金学院


Visual C++


课程设计


2012




计科、网络、软件














1




程序功能介绍



用文件系统实现的物品 库存管理程序。一种商品


的品种里面包括(


<10


个)品牌,以品种为单位,可


以实现商品品种的添加、删除、查找、显示,以 及


商品的进货,出货等功能。




2




课程设计要求



1


)组成商品品种的品牌不限数量,设置一个最


大值(比如


10



,增加一个成员变量指示品牌的 具体


数量。商品品种的数量是每个品牌的数量之和。




2


)设计输出每日进货与出货的统计表,要求 进


货与出货分别为两个文本文件,清单上列有进出货


物的时间、 品种描述,具体品牌的进出货数量,如


果是出货清单,在每笔出货的清单后还要有该次提


取货物的总价格。




1


紫金学院


Visual C++


课程设计


2012




计科、网络、软件




3


)商品品种以品种代码的顺序存放。




3




对课程题目的分析



该设计比较复杂, 要对原程序做较大的修改,首


先是数据的存放形式,因为要求数据按代码的顺序


存放,并且进出货时对数据的各个组成成员都要做


较大的修改。如果要用 文件的形式存放,那么文件


的读写就非常频繁,而且要使用大量的临时文件,

< p>
因此建议使用链表的形式存放数据,在程序开始运


行时读取固定文件中的数 据,程序运行时全部数据


都在内存进行操作。在程序运行结束前再将链表中


的数据存放在原来的文件中,供下次运行程序时读


取。建议首先将文件读取这 部分程序调试好,这样


在调试程序时就不用每次都从键盘输入数据了,可


以节省大量的时间。同时,对链表中结点的操作有


很多典型的程序可以参考,不 同的结点只是数据部


分类型不同,所以只要在上面稍加修改就可以使用。




4




程序设 计和说明(说明算法思想、设计思路,


给出重要的、关键的代码)




1)


类的封装

< br>


由于数据的存放形式使用链表的形式,


所以

< p>


2


紫金学院


Visual C++


课程设计


2012




计科、网络、软件



对于程序的很多操 作实际上都是要求对链表进行一


系列处理。其中吧


Citem< /p>


类作为一个结点,因此包含


了大量对链表进行操作的函数,为了满 足程序的完


整性与可读性,应将对链表操作的所有程序封装在


一 起。





class Brand


//


品牌类



{





......



friend class CItem;


//


定义品种类为友元类



}


;



class CNode


//


结点类



{


......



friend class CList


; //


定义链表类为友元类



}





class coustomer




//


客户类



{





......


};



2


)程序功能菜单的设置




程序主题采用菜单选项的形式,


输入相应的









以< /p>









< p>





3


紫金学院


Visual C++


课程设计


2012




计科、网络、软件



3.4.5.6. 8.9.


项各有一个菜单,分别是:按照商品


品种名称和按照商 品代码进行操作。




*** *****************************************



*











使









< br>统



*



*


*


*


*


*


*



*


*




* *******************************************




详细目录




1.


添加商品品种


2.


显示商


品品种




3.


查询商品


4.


删除商



4



*


设计者



付瑞




*


指导老师



朱俊



紫金学院


Visual C++


课程设计


2012




计科、网络、软件






5.


商品出库


6.


商品进





7.


添加客户


8.


删除客





9.


查询客户


10.


显示客


户资料




0.


退出系统





输入选择


:


int CItem::SetItem(int n)



//


置品种数据,正确返回


1


,当


n



1


时,是新进货物,输出至出清单文件



{



cout<<


输入商品名称


:



Flush(cin);



e(Item_name,20);



cout<<


输入商品代码


:



cin>>Item_code;



cout<<


输入商品颜色


:



Flush(cin);



e(colour,20);


< /p>


cout<<







:







)



cin>>nBrnd;



5


紫金学院


Visual C++


课程设计


2012




计科、网络、软件




//


循环实现品牌数据的输入


,count

< p>
为商品总数




for(int i=0,count=0;i



{



< /p>


cout<<


输入品牌


< br>的数据


n



< br>cout<<


输入品牌名称


:




Flush(cin);




e(brnd[i].brnd_name,20);




cout<<

输入品牌代码


:




cin>>brnd[i].Brand_code;




cout<<


输入数量


:




cin>>brnd[i].quantity;




cout<<


输入价格


:




cin>>brnd[i].brnd_price;




count+=brnd[i].quantity;



}



quantity=count;



if(n==1)



{




ofstream


file(





.txt




if(!file)




{




6


紫金学院


Visual C++


课程设计


2012




计科、网络、软件






cout<<

错误,不能打开文件


.





getch();





exit(1);




}




timer=time(NULL);




file<




file<<


品种

< br>


代码



颜色





file<


our<<




file<<


品牌



代码



数量



价格

< p>




for(int i=0;i




{




< /p>


file<


code <<






<


< br>



}



7


紫金学院


Visual C++


课程设计


2012




计科、网络、软件





file<<




();



}



return 1;


}



此函数的两个功能:第一个是在添加商品时从键盘


输入商品的各 种数据,调用这个功能时利用


n


的缺省


值,在调用时不给


n


赋值;第二个是在进货时如果进

< p>
的是新的品种,那么也要从键盘输入这个品种的各


种数据,这部分与第一个 功能相同,但是进货要输


出进货清单,所以进货功能调用该函数时


n


设置为


1



函数在运行时增加一个判断语句,若


n


1


时,将所


键入的数据输出至进货清单。

< br>


void CItem::Show()//


显示品种数据



{




co ut<<


品种



代码







cout<


lour<<




cout<<


品牌



代码






价格




8


紫金学院


Visual C++


课程设计


2012




计科、网络、软件





for(int i=0;i




{





cout<


_code<<






<





}




cout<<




system(




cout<<


}


< br>这个函数也是与出货功能有关,与


InModify()



函数类似。因为是库中的商品出货,所以商品品种


必须存在, 若不存在,则输出提示信息,出货失败。


还有一种可能是商品品种曾经存在,但已经全部 出


完了,这时,该品种的各种数据还存在,只是数量


为零。所以 ,在函数开始执行时要判断库存量是否


为零,若为零,则输出提示信息,出货失败。在出


货成功结束时同样要将本品种的各种品牌的出货数



9


紫金学院


Visual C++


课程设计


2012




计科、网络、软件



据输出到出货清单 中。同样,该函数也是对链表中


所存在的结点的数据部分的修改。



void CItem::OutModify()//


出 货,修改结点中的数


据部分



{



int choice,count,chuhuo,price=0;


//chuhuo


为出货量,


price

< br>为总价格




int *num;



num=new int[nBrnd];



if(quantity==0)



{




co ut<<


数量为


0.




exit(1);



}





for(int i=0;i




//


储存原来的数量




{




num[i]=brnd[i].quantity;



}



cout<<

< br>品牌



代码



数量



价格




for(i=0;i



{



10


紫金学院


Visual C++


课程设计


2012




计科、网络、软件





cout<


nd[i] .Brand_code<<




< /p>


<



}



cout<<



cout<<


输入数字选择出货商品或按


0


退出


.n



cin>>choice;



while(choice>=1&&choice<=nBrnd)



{



< /p>


cout<<


输入商品数量


:

< p>



cin>>count;




while(count>brnd[choice-1].quantity)




{





cout<<

库存不足,重新输入


:





cin>>count;




}




brnd[choice-1].quantity-=count;




cout<<

出货成功,按


0


退出或按数字继续出



.n



11


紫金学院


Visual C++


课程设计


2012




计科、网络、软件





cin>>choice;



}



ofstream file(


出货清单


.txt




if(!file)




{





cout<<


错误,不能打开文件< /p>


.





getch();





exit(1);




}



timer=time(NULL);



file<



file<<












file<


olour<<



fil e<<











出货量




for(i=0;i



{




if(chuhuo=num[i]-brnd[i].quantity)




{





price=chuhuo*brnd[i].brnd_price;



12


紫金学院


Visual C++


课程设计


2012




计科、网络、软件






file<


code<<






<




}



}



file<<


总价格为


:



delete []num;



();


}


InModify


()同样也与进货功能有关。因为所进


的品 种可能是也有的品种,只是增加其中的数量而


已。所以,在输入进货品种或品种代码时要 判断是


否是库中已有的品种,若是就调用这个函数,只从


键盘输 入具体的品牌数量或新增品牌数据即可,而


不用在键入品种的各种数据,同时,新键入的 各种


数据也输出到进货清单。实际上该函数是对链表中


所存在的 结点的数据部分的修改。此函数先判断出


货量是不是大于库存量,如果大于将显示“库存 不


足,重新输入”。如果小于的话将会继续程序,通



brnd[choice-1].quantity-=count;








13


紫金学院


Visual C++


课程设计


2012




计科、网络、软件



去省下剩余量。



void CIte m::InModify()//


已有商品,


再次进货,



改结点中的数据部分



{



char name[20];



char choice;



int count,jinhuo=0;



int prenBrnd=nBrnd;




//


原先品牌数




int n=1;




//


用于判断是否继续进货




int flag=0;




//


用于判断是否新品牌




int * num;



num=new int[prenBrnd];



for(int i=0;i




//


储存原来的数量




{




num[i]=brnd[i].quantity;



}



while(n)



{



< /p>


cout<<


输入品牌名称


:

< p>



Flush(cin);




e(name,20);




for(int i=0;i



14


紫金学院


Visual C++


课程设计


2012




计科、网络、软件





{





if(strcmp(brnd[i].brnd_name,name)==0)




{





cout<<

输入进货数量


:





cin>>count;





brnd[i].quantity+=count;





quantity+=count;





flag=1;





break;




}



}



if(flag==0)



{




strcpy(brnd[nBrnd].brnd_name,name);




cout<<

输入品牌代码


:




cin>>brnd[nBrnd].Brand_code;




cout<<

输入数量


:




cin>>brnd[nBrnd].quantity;




cout<<


输入价格


:




cin>>brnd[nBrnd].brnd_price;




quantity+=brnd[nBrnd].quantity;




nBrnd++;


15























紫金学院


Visual C++


课程设计


2012




计科、网络、软件





}




cout<<


继续进货


:y/n




cin>>choice;




if(choice=='y'||choice=='Y')





n=1;




else n=0;



}



ofstream file(


进货清单


.txt




if(!file)




{





cout<<


错误,不能打开文件< /p>


.





getch();





exit(1);




}



timer=time(NULL);



file<



file<<












file<


olour<<



fil e<<











进货量




16

-


-


-


-


-


-


-


-



本文更新与2021-02-28 08:16,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/679825.html

物品库存管理课程设计报告的相关文章