关键词不能为空

当前您在: 主页 > 英语 >

C物品库存管理

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

-

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








信息技术系课程设计报告





























物品库存管理






























09































计算机应用


















































指导老师
































评语

















得分



































指导老师签名:











O



O


年十一月三十日







实验内容



1


.程序功能介绍


< br>用文件系统实现的物品库存管理程序。一种商品的品种里面包括三个品牌,以


品种 为单位,可以实现商品品种的添加、删除、查找、显示等功能。



2


.课程设计要求









1


)组成 商品品种的品牌不限数量,设置一个最大值(比如


10



,增加一


个成员变量指示品牌的具体数量。商品品种的数量是每个品牌 的数量之和。





2


)设计输出每日进货与出货的统计表,要求进货与出货分别为两个文< /p>


本文件,清单上列有进出货物的时间、品种描述,具体品牌的进出货数量,如果是


出货清单,在每笔出货的清单后还要有该次提取货物的总价格。





3


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



3


.程序设计思想










该设计 比较复杂,要对原程序做较大的修改,首先是数据的存放形式,


因为要求数据按代码的顺 序存放,并且进出货时对数据的各个组成成员都要做较大


的修改。如果要用文件的形式存 放,那么文件的读写就非常频繁,而且要使用大量


的临时文件,因此建议使用链表的形式 存放数据,在程序开始运行时读取固定文件


中的数据,程序运行时全部数据都在内存进行 操作。在程序运行结束前再将链表中


的数据存放在原来的文件中,供下次运行程序时读取 。建议首先将文件读取这部分


程序调试好,这样在调试程序时就不用每次都从键盘输入数 据了,可以节省大量的


时间。同时,对链表中结点的操作有很多典型的程序可以参考,不 同的结点只是数


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





1)


类的封装




由 于数据的存放形式使用链表的形式,所以对于程序的很多操作实际上都


是要求对链表进行 一系列处理。


其中吧


Citem


类作为 一个结点,


因此包含了大量对链


表进行操作的函数,为了满足程 序的完整性与可读性,应将对链表操作的所有程序


封装在一起。



class Brand ....


friend class CItem; ....


friend


class


CList; 3.4.5.


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


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



&


物品库存管理系统


&


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


1.


添加商品品种



2.


显示商品品种



3.


查询商品



4.


删除商品



5.


商品出库



6.


商品进库



0.


退出系统



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



4

< br>.设计中所负责的部分


————


商品的出库与入库部分< /p>



int CItem::SetItem(int n) rnd_name,20);




c out<<


输入品牌代码


:




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)




{





cout<<


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


.





getch();





exit(1);




}




timer=time(NULL);




file<




file<<

品种



代码



颜色





file<




file<<


品牌

< br>


代码



数量



价格






for(int i=0;i




{










file<






<








}




file<<




();



}





return 1;



}






此函数的两个功能:第一个是在添加商品时从键盘输入商品的各种数据,调用这个


功能时利用


n


的缺省值,在调用时不给


n


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


种,那么也要从键盘输入这个品种的各种数据,这部分与第一个功能相同,但是进


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


n


设置为


1


,函数在运行时增加一个


判断语句,若

< p>
n



1


时,将所键入的数 据输出至进货清单。




void CItem::Show()rnd_name<<






<








}




cout<<




system(




cout<<





}



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


InModify()


的函数类似 。因为是库中的商品


出货,所以商品品种必须存在,若不存在,则输出提示信息,出货失 败。还有一种


可能是商品品种曾经存在,但已经全部出完了,这时,该品种的各种数据还 存在,


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


提示信息,出货失败。在出货成功结束时同样要将本品种的各种品牌的出货数据输


出到出货清单中。同样,该函数也是对链表中所存在的结点的数据部分的修改。



void CItem::OutModify();




exit(1);



}










for(int i=0;i




uantity;



}



cout<<


品牌

< br>


代码



数量



价格




for(i=0;i



{




cout<













































<


}


cout<<


cout<<


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


0


退出


.n


cin>>choice;


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


{



cout<<

< br>输入商品数量


:



cin>>count;



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



{



< /p>


cout<<


库存不足,重新输入


:




cin>>count;



}



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



cout<<


出货成功,按


0


退出或按数字继续出货


.n

< br>


cin>>choice;


}


ofstream file(


出货清单


.txt



if(!file)



{




cout<<

错误,不能打开文件


.




getch();




exit(1);



}


timer=time(NULL);


file<


file<<< /p>


品种



代码



颜色



file<


file<<


品牌



代码



价格



出 货量



for(i=0;i


{



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



{




price=chuhuo*brnd[i].brnd_price;




file<





<



}


}


file<<


总价格为


:


delete []num;



();


}


InModify


()同样也与进货功能有关。因为所进的品种可能是也有的品种,只


是增加其中的数量而已。所以,在输入进货品种或品种代码时要判断是否是库中已


有的品种,若是就调用这个函数,只从键盘输入具体的品牌数量或新增品牌数据即


可,而不用在键入品种的各种数据,同时,新键入的各种数据也输出到进货清单。

实际上该函数是对链表中所存在的结点的数据部分的修改。此函数先判断出货量是


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



库存不足,重新输入



。如果小于的话将会继续


程序,通过


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


把 原有量减去省下剩余量。




void CItem::InModify()uantity;



}



while(n)



{




co ut<<


输入品牌名称


:




Flush(cin);




(name,20);




for(int i=0;i




{





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





cou t<<


输入品牌代码


:





cin>>brnd[nBrnd].Brand_code;





cou t<<


输入数量


:





cin>>brnd[nBrnd].quantity;





cout<<

输入价格


:





cin>>brnd[nBrnd].brnd_price;





quantity+=brnd[nBrnd].quantity;





nBrnd++;












































}







cout<<


继续进货


:y/n



cin>>choice;



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




n=1;



else n=0;




}



ofstream file(


进货清单


.txt



if(!file)



{




cout<<

错误,不能打开文件


.




getch();




exit(1);



}


timer=time(NULL);


file<


file<<< /p>


品种



代码



颜色



file<


file<<


品牌



代码



价格



进 货量



for(i=0;i


{





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



{







file<





<



}


}


if(nBrnd>prenBrnd)


{



for(i=prenBrnd;i



{




file<





<



}


}



file<<



delete []num;



();


}


5.


课程设计遇到的技术问题与解决思路




1.


在实际操作中,可能会因错误而 输入错误的字符,这时可能会对程序的正常


运行造成影响,


所以 必须刷新输入流清除储存器中的数据,


经过翻阅


C


语言方面的资


料发现使用以下函数就可实现。



inline istream & Flush(istream & stream)


{



();



int chars_to_skip=()->in_avail();



return (chars_to_skip);


}


2.


怎样实现按任意键回到主菜单。



为了 使程序的可读性和使用的方便性更好,设计程序时,打算增加此功能。在


设计过程中,试 图通过一段程序实现,但始终都要输入一个字符后按回车键才行,


表面上已经实现了此功 能,但其实并没有达到预期的效果。过了几天,在网上查找


相关资料,终于在别人设计的 一个小程序里面找到代码,原来只需要在利用库函数


里面的一函数


system()



当然这里要包含头文件,


程序中加入


system(



pause



)


即可

< br>达到要求。



3.


为保证程序界 面的美观,如何清屏?



在图书馆查阅了有关方面的书籍和文献 ,


利用网络资源,


使用函数


syste m(


即可。






程序完整代码



#include<>


#include<>


#include<>


#include<>


#include<>


#include<>


#include<>


#include<>


#include<> rnd_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)




{





cout<<


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


.





getch();





exit(1);




}




timer=time(NULL);




file<




file<<

品种



代码



颜色





file<




file<<


品牌

< br>


代码



数量



价格






for(int i=0;i




{










file<






<








}




file<<




();



}





return 1;


}



void CItem::Show()rnd_name<<






<








}




cout<<

-


-


-


-


-


-


-


-



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

C物品库存管理的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文