当前位置:文档之家› C++物品库存管理系统

C++物品库存管理系统

C++物品库存管理系统
C++物品库存管理系统

实验容

1.程序功能介绍

用文件系统实现的物品库存管理程序。一种商品的品种里面包括三个品牌,以品种为单位,可以实现商品品种的添加、删除、查找、显示等功能。

2.课程设计要求

(1)组成商品品种的品牌不限数量,设置一个最大值(比如10),增加一个成员变量指示品牌的具体数量。商品品种的数量是每个品牌的数量之和。

(2)设计输出每日进货与出货的统计表,要求进货与出货分别为两个文本文件,清单上列有进出货物的时间、品种描述,具体品牌的进出货数量,如果是出货清单,在每笔出货的清单后还要有该次提取货物的总价格。

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

3.程序设计思想

该设计比较复杂,要对原程序做较大的修改,首先是数据的存放形式,因为要求数据按代码的顺序存放,并且进出货时对数据的各个组成成员都要做较大的修改。如果要用文件的形式存放,那么文件的读写就非常频繁,而且要使用大量的临时文件,因此建议使用链表的形式存放数据,在程序开始运行时读取固定文件中的数据,程序运行时全部数据都在存进行操作。在程序运行结束前再将链表中的数据存放在原来的文件中,供下次运行程序时读取。建议首先将文件读取这部分程序调试好,这样在调试程序时就不用每次都从键盘输入数据了,可以节省大量的时间。同时,对链表中结点的操作有很多典型的程序可以参考,不同的结点只是数据部分类型不同,所以只要在上面稍加修改就可以使用。

(1)类的封装

由于数据的存放形式使用链表的形式,所以对于程序的很多操作实际上都是要求对链表进行一系列处理。其中吧Citem类作为一个结点,因此包含了大量对链表进行操作的函数,为了满足程序的完整性与可读性,应将对链表操作的所有程序封装在一起。

class Brand //品牌类

{

......

friend class CItem; //定义品种类为友元类

};

class CNode //结点类

{ ......

friend class CList; //定义链表类为友元类

};

注:省略部分详见源程序代码及课程设计教材提示部分

(2)程序功能菜单的设置

程序主题采用菜单选项的形式,输入相应的菜单选项后程序可以反复运行,而其中还要求3.4.5.6.项各有一个菜单,分别是:按照商品品种名称和按照商品代码进行操作。

&物品库存管理系统&

1.添加商品品种

2.显示商品品种

3.查询商品

4.删除商品

5.商品出库

6.商品进库

0.退出系统

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

4.设计中所负责的部分————商品的出库与入库部分

int CItem::SetItem(int n) //置品种数据,正确返回1,当n为1时,是新进货物,输出至出清单文件{

cout<<"\n输入商品名称:";

Flush(cin);

cin.getline(Item_name,20);

cout<<"\n输入商品代码:";

cin>>Item_code;

cout<<"\n输入商品颜色:";

Flush(cin);

cin.getline(colour,20);

cout<<"\n输入品牌数:"<<"(不超过"<

cin>>nBrnd;

//循环实现品牌数据的输入,count为商品总数

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

{

cout<<"\n输入品牌"<

cout<<"\n输入品牌名称:";

Flush(cin);

cin.getline(brnd[i].brnd_name,20);

cout<<"\n输入品牌代码:";

cin>>brnd[i].Brand_code;

cout<<"\n输入数量:";

cin>>brnd[i].quantity;

cout<<"\n输入价格:";

cin>>brnd[i].brnd_price;

count+=brnd[i].quantity;

quantity=count;

if(n==1)

{

ofstream file("进货清单.txt",ios::out|ios::ate);

if(!file)

{

cout<<"错误,不能打开文件.";

getch();

exit(1);

}

timer=time(NULL);

file<

file<<"品种"<<"\t"<<"代码"<<"\t"<<"颜色"<<"\n";

file<

file<<"品牌"<<"\t"<<"代码"<<"\t"<<"数量"<<"\t"<<"价格"<<"\n";

for(int i=0;i

{file<

file<<"\n";

file.close();

}

return 1;

}

此函数的两个功能:第一个是在添加商品时从键盘输入商品的各种数据,调用这个功能时利用n的缺省值,在调用时不给n 赋值;第二个是在进货时如果进的是新的品种,那么也要从键盘输入这个品种的各种数据,这部分与第一个功能相同,但是进货要输出进货清单,所以进货功能调用该函数时n设置为1,函数在运行时增加一个判断语句,若n为1时,将所键入的数据输出至进货清单。

void CItem::Show()//显示品种数据

{

cout<<"品种"<<"\t"<<"代码"<<"\t"<<"颜色"<<"\n";

cout<

cout<<"品牌"<<"\t"<<"代码"<<"\t"<<"数量"<<"\t"<<"价格"<<"\n";

for(int i=0;i

cout<

}

cout<<"\n\n"<

system("pause");

cout<<"\n";

}

这个函数也是与出货功能有关,与InModify()的函数类似。因为是库中的商品出货,所以商品品种必须存在,若不存在,则输出提示信息,出货失败。还有一种可能是商品品种曾经存在,但已经全部出完了,这时,该品种的各种数据还存在,只是数量为零。所以,在函数开始执行时要判断库存量是否为零,若为零,则输出提示信息,出货失败。在出货成功结束时同样要将本品种的各种品牌的出货数据输出到出货清单中。同样,该函数也是对链表中所存在的结点的数据部分的修改。

void CItem::OutModify()//出货,修改结点中的数据部分

{

int choice,count,chuhuo,price=0;

//chuhuo为出货量,price为总价格

int *num;

num=new int[nBrnd];

if(quantity==0)

{ cout<<"数量为0.";

exit(1);}

for(int i=0;i

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

cout<<"品牌"<<"\t"<<"代码"<<"\t"<<"数量"<<"\t"<<"价格"<<"\n";

for(i=0;i

{

cout<

<

}

cout<<"\n\n";

cin>>choice;

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

{

cout<<"输入商品数量:";

cin>>count;

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

{

cout<<"库存不足,重新输入:";

cin>>count;

}

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

cout<<"出货成功,按0退出或按数字继续出货.\n";

cin>>choice;

}

ofstream file("出货清单.txt",ios::out|ios::ate);

if(!file)

{

cout<<"错误,不能打开文件.";

getch();

exit(1);

}

timer=time(NULL);

file<

file<<"品种"<<"\t"<<"代码"<<"\t"<<"颜色

file<

file<<"品牌"<<"\t"<<"代码"<<"\t"<<"价格"<<"\t"<<"出货量"<<"\n";

for(i=0;i

{

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

{

price=chuhuo*brnd[i].brnd_price;

file<

<

}

}

file<<"总价格为:"<

delete []num;

file.close();

}

InModify()同样也与进货功能有关。因为所进的品种可能是也有的品种,只是增加其中的数量而已。所以,在输入进货品种或品种代码时要判断是否是库中已有的品种,若是就调用这个函数,只从键盘输入具体的品牌数量或新增品牌数据即可,而不用在键入品种的各种数据,同时,新键入的各种数据也输出到进货清单。实际上该函数是对链表中所存在的结点的数据部分的修改。此函数先判断出货量是不是大于库存量,如果大于将显示“库存不足,重新输入”。如果小于的话将会继续程序,通过brnd[choice-1].quantity-=count;把原有量减去省下剩余量。

void CItem::InModify()//已有商品,再次进货,修改结点中的数据部分

{

char name[20];

char choice;

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)

{ cout<<"\n\n输入品牌名称:";

Flush(cin);

cin.getline(name,20);

for(int i=0;i

{

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

{

cout<<"\n\n输入进货数量:";

cin>>count;

brnd[i].quantity+=count;

quantity+=count;

flag=1;

break;

}

}

if(flag==0)

{

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

cout<<"\n输入品牌代码:";

cin>>brnd[nBrnd].Brand_code;

cout<<"\n输入数量:";

cin>>brnd[nBrnd].quantity;

cout<<"\n输入价格:";

cin>>brnd[nBrnd].brnd_price;

quantity+=brnd[nBrnd].quantity;

}

cout<<"\n继续进货:y/n ";

cin>>choice;

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

n=1;

else n=0;

}

Ofstream file("进货清单.txt",ios::out|ios::ate);

if(!file)

{

cout<<"错误,不能打开文件.";

getch();

exit(1);

}

timer=time(NULL);

file<

file<<"品种"<<"\t"<<"代码"<<"\t"<<"颜色"<<"\n";

file<

file<<"品牌"<<"\t"<<"代码"<<"\t"<<"价格"<<"\t"<<"进货量"<<"\n";

for(i=0;i

{

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

{

file<

<

}

}

if(nBrnd>prenBrnd)

{

for(i=prenBrnd;i

{

file<

<

}

}

file<<"\n\n";

delete []num;

file.close();

}

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

1.在实际操作中,可能会因错误而输入错误的字符,这时可能会对程序的正常运行造成影响,所以必须刷新输入流清除储存器中的数据,经过翻阅C语言方面的资料发现使用以下函数就可实现。

inline istream & Flush(istream & stream)

{

stream.clear();

int chars_to_skip=stream.rdbuf()->in_avail();

return stream.ignore(chars_to_skip);

}

为了使程序的可读性和使用的方便性更好,设计程序时,打算增加此功能。在设计过程中,试图通过一段程序实现,但始终都要输入一个字符后按回车键才行,表面上已经实现了此功能,但其实并没有达到预期的效果。过了几天,在网上查找相关资料,终于在别人设计的一个小程序里面找到代码,原来只需要在利用库函数里面的一函数system(),当然这里要包含头文件dos.h,程序中加入system(“pause”)即可达到要求。

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

在图书馆查阅了有关方面的书籍和文献,利用网络资源,使用函数system("cls")即可。

程序完整代码

#include

#include

#include

#include

#include

#include

#include

#include

#include //exit(1)

time_t timer;

inline istream & Flush(istream & stream) //清除储存器中数据

{

stream.clear();

int chars_to_skip=stream.rdbuf()->in_avail();

return stream.ignore(chars_to_skip);

}

#define MAX 10 //运用宏定义,规定品牌数最大为10

class Brand //品牌类

{

private:

char brnd_name[20]; //品牌名称

int Brand_code; //品牌代号

float brnd_price; //价格

public:

Brand(){quantity=0;strcpy(brnd_name,"0");}

friend class CItem; //定义友元类

};

Class CItem //品种类

{

private:

char Item_name[10]; //品种名称

int Item_code; //品种代号

char colour[10]; //颜色

int quantity; //数量

Brand brnd[MAX]; //最多MAX个品牌

int nBrnd; //品牌的数量(

CItem(){ strcpy(Item_name,"\0");quantity=0; nBrnd=0;} //缺省构造函数

CItem(char

*name){strcpy(Item_name,name);Item_code=0;}

//用品种名称构造

CItem(int

code){Item_code=code;strcpy(Item_name,"\0");}

//用品种代码构造

//置品种数据,正确返回1,当n为1时,是新进货物,输出至出清单文件

char * GetItemName(){return Item_name;} //返回品种名

int GetItemCode(){return Item_code;} //返回品种代码

int Compare(CItem &);

//比较品种名称,供查找用,比较结果为1,0

int CompareCode(CItem &);

//比较品种代码,比较结果为1,0

void Show();

//显示品种数据

void OutModify();

//出货,修改结点中的数据部分

void InModify(); //已有商品,再次进货,修改结点中的数据部分

};

int CItem::Compare(CItem & pitem) //比较品种名称,供查找用,比较结果为1,0

{

int n;

n=strcmp(Item_name,pitem.Item_name);//两个字符串相等,n=0

if(n!=0) return 0;

else return 1;

}

int CItem::CompareCode(CItem & pitem) //比较品种代码,比较结果为1,0

{

return (Item_code==pitem.Item_code);

}

int CItem::SetItem(int n) //置品种数据,正确返回1,当n为1时,是新进货物,输出至出清单文件{ cout<<"\n输入商品名称:";

cin.getline(Item_name,20);

cout<<"\n输入商品代码:";

cin>>Item_code;

cout<<"\n输入商品颜色:";

Flush(cin);

cin.getline(colour,20);

cout<<"\n输入品牌数:"<<"(不超过"<

cin>>nBrnd;

//循环实现品牌数据的输入,count为商品总数

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

{

cout<<"\n输入品牌"<

cout<<"\n输入品牌名称:";

Flush(cin);

cin.getline(brnd[i].brnd_name,20);

cout<<"\n输入品牌代码:";

cin>>brnd[i].Brand_code;

cout<<"\n输入数量:";

cin>>brnd[i].quantity;

cout<<"\n输入价格:";

cin>>brnd[i].brnd_price;

count+=brnd[i].quantity;

}

quantity=count;

if(n==1)

{

ofstream file("进货清单.txt",ios::out|ios::ate);

if(!file)

{

cout<<"错误,不能打开文件.";

getch();

exit(1);

}

timer=time(NULL);

file<

色"<<"\n";

file<

file<<"品牌"<<"\t"<<"代码"<<"\t"<<"数量"<<"\t"<<"价格"<<"\n";

for(int i=0;i

{ file<

}

file<<"\n";

file.close();

}

return 1;

}

void CItem::Show()//显示品种数据

{

cout<<"品种"<<"\t"<<"代码"<<"\t"<<"颜色"<<"\n";

cout<

cout<<"品牌"<<"\t"<<"代码"<<"\t"<<"数量"<<"\t"<<"价格"<<"\n";

for(int i=0;i

{ cout<

}

cout<<"\n\n"<

system("pause");

cout<<"\n";

} void CItem::OutModify()//出货,修改结点中的数据部分{

int choice,count,chuhuo,price=0;

//chuhuo为出货量,price为总价格

int *num;

num=new int[nBrnd];

if(quantity==0)

{

cout<<"数量为0.";

exit(1);

}

for(int i=0;i

{

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

}

cout<<"品牌"<<"\t"<<"代码"<<"\t"<<"数量"<<"\t"<<"价格"<<"\n";

for(i=0;i

{

cout<

<

}

cout<<"\n\n";

cout<<"输入数字选择出货商品或按0退出.\n";

cin>>choice;

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

{

cout<<"输入商品数量:";

cin>>count;

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

{

cout<<"库存不足,重新输入:";

}

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

cout<<"出货成功,按0退出或按数字继续出货.\n";

cin>>choice;

}

ofstream file("出货清单.txt",ios::out|ios::ate);

if(!file)

{

cout<<"错误,不能打开文件.";

getch();

exit(1);

}

timer=time(NULL);

file<

file<<"品种"<<"\t"<<"代码"<<"\t"<<"颜色"<<"\n";

file<

file<<"品牌"<<"\t"<<"代码"<<"\t"<<"价格"<<"\t"<<"出货量"<<"\n";

for(i=0;i

{

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

{

price=chuhuo*brnd[i].brnd_price;

file<

<

}

}

file<<"总价格为:"<

delete []num;

file.close();

}

void CItem::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)

{

cout<<"\n\n输入品牌名称:";

Flush(cin);

cin.getline(name,20);

for(int i=0;i

{

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

{

cout<<"\n\n输入进货数量:";

cin>>count;

brnd[i].quantity+=count;

quantity+=count;

flag=1;

break;

}

}

if(flag==0)

{

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

cout<<"\n输入品牌代码:";

cin>>brnd[nBrnd].Brand_code;

cout<<"\n输入数量:";

cin>>brnd[nBrnd].quantity;

cout<<"\n输入价格:";

cin>>brnd[nBrnd].brnd_price;

quantity+=brnd[nBrnd].quantity;

nBrnd++;

}

cout<<"\n继续进货:y/n ";

cin>>choice;

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

n=1;

else n=0;

}

ofstream file("进货清单.txt",ios::out|ios::ate);

if(!file)

{

cout<<"错误,不能打开文件.";

getch();

exit(1);

}

timer=time(NULL);

file<

file<<"品种"<<"\t"<<"代码"<<"\t"<<"颜色"<<"\n";

file<

file<<"品牌"<<"\t"<<"代码"<<"\t"<<"价格"<<"\t"<<"进货量"<<"\n";

for(i=0;i

{

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

{

file<

<

}

}

if(nBrnd>prenBrnd)

{

for(i=prenBrnd;i

{

file<

<

}

}

file<<"\n\n";

delete []num;

file.close();

}

class CNode //结点类

{

private:

CNode * pNext; //指向链表下一结点的指针

CItem * pData; //用于指向数据类的指针

CNode(){ pData=0;pNext=0;} //结点构造函数

CNode(CNode &node) //用于拷贝的构造函数

{

pData=node.pData;

pNext=node.pNext;

}

void InputData(CItem *pSal){ pData=pSal; } //输入数据

void ShowNode(){ pData->Show(); } //输出结点中的数据

CItem * GetData(){ return pData;}//返回下一结点的指针

friend class CList; //定义链表类为友元类

};

class CList //定义链表类

{

protected:

CNode * pHead; //链表头结点指针public:

CList(){ pHead=0; }

~CList(){ DeleteList(); }

void AddNode(CNode * pnode); //首部添加结点

CNode * DeleteNode(CNode *); //删除一个指定的结点,返回该结点的指针

CNode * LookUp(CItem &); /*查找一个指定的数据,返回该数据所在结点在链表中的指针,若未找

到返回0 */

void ShowList(); //打印整个链表

void DeleteList(); //删除整个链表

//返回链表首结点

CNode * GetListNextNode(CNode *);

//返回链表指定结点的下一个结点

void Insert(CNode *); //按代码的顺序插入一个结点

};

void CList::AddNode(CNode *pnode)//首部添加结点

{

if(pHead==0)

{

pHead=pnode;

pnode->pNext=0;

}

else

{

pnode->pNext=pHead;

pHead=pnode;

}

}

CNode * CList::DeleteNode(CNode *pnode)//删除一个指定的结点,返回该结点的指针

{

if(pnode==pHead)//删除的结点是链表的首结点

{

pHead=pnode->pNext;

pnode->pNext=0;

}

else

{

CNode *p=pHead;

while(p->pNext!=pnode)

p=p->pNext;

p->pNext=pnode->pNext;//删除结点后将

pnode->pNext=0;

}

return(pnode);

}

CNode * CList::LookUp(CItem &pitem)/*查找一个指定的数据,返回该数据所在结点在链表中的指针,若未找到返回0 */

{

CNode * pn=pHead;

if(pitem.GetItemCode()==0)

{

while(pn)

{

if(pn->pData->Compare(pitem)) return pn;//按品种名称查找

pn=pn->pNext;

}

}

else

{

while(pn)

{

if(pn->pData->CompareCode(pitem)) return pn;//按品种代码查找

pn=pn->pNext;

}

}

return 0;

}

void CList::ShowList()//打印整个链表

{

CNode * p=pHead;

while(p)

{

p->pData->Show();

}

}

void CList::DeleteList()//删除整个链表

{

CNode * p,* q;

p=pHead;

while(p)

{

delete p->pData;

q=p;

p=p->pNext;

delete q;

}

}

CNode * CList::GetListNextNode(CNode *pnode)//返回链表指定结点的下一个结点

{

return pnode->pNext;

}

void CList::Insert(CNode * pnode)//按代码的顺序插入一个结点

{

CNode * p1,* p2;

if(pHead==0)

{

pHead=pnode;

pnode->pNext=0;

}

else

if(pHead->pData->GetItemCode()>=pnode->pData->GetItemCode())

{

pnode->pNext=pHead;

pHead=pnode;

else

{

p2=p1=pHead;

while(p2->pNext&&p2->pData->GetItemCode() pData->GetItemCode())

{

p1=p2;

p2=p2->pNext;

}

if(p2->pData->GetItemCode()pData-> GetItemCode())

{

p2->pNext=pnode;

pnode->pNext=0;

}

else

{

pnode->pNext=p2;

p1->pNext=pnode;

}

}

}

void main()

{

int choice;

CList list;

CItem *p;

CNode *pn;

char name[20]; //按商品名称操作时用于输入名称

int code; //按商品代码操作时用于输入代码

ifstream

infile("TIS.txt",ios::in|ios::nocreate|ios::binary);

if(!infile)

{

cout<<"数据文件不存在.\n"<

system("pause");

system("cls");

}

else

{

CItem pitem;

infile.read(reinterpret_cast

*>(&pitem),sizeof(CItem));

while(! infile.eof())

{

p=new CItem;

*p=pitem;

pn=new CNode;

pn->InputData(p);

list.Insert(pn);

infile.read(reinterpret_cast(&pitem),sizeof(CItem));

}

}

infile.close();

do

{

cout<<"\n\t &物品库存管理系统& ";

cout<<"\n***************************************** *****";

cout<<"\n\n2. 显示商品品种";

cout<<"\n\n3. 查询商品";

cout<<"\n\n4. 删除商品";

cout<<"\n\n5. 商品出库";

cout<<"\n\n6. 商品进库";

cout<<"\n\n0. 退出系统";

cout<<"\n***************************************** *****";

cout<<"\n\n输入选择: ";

Flush(cin);

cin.getline(str,20);

choice=atoi(str);

switch(choice)

{

case 1: //添加商品品种

system("cls");

p=new CItem;

p->SetItem();

pn=new CNode;

pn->InputData(p);

list.Insert(pn);

system("cls");

break;

case 2: //显示商品品种

system("cls");

pn=list.GetListHead();

if(pn==0)

{

cout<<"无库存."<

system("cls");

}

else

{

list.ShowList();

system("cls");

break;

case 3: //查询商品

system("cls");

cout<<"\n\n1. 按商品品种名称查询商品";

cout<<"\n\n2. 按商品品种代码查询商品";

cout<<"\n\n0. 退出";

cout<<"\n\n输入选择: ";

cin>>choice;

if(choice==1)

{

cout<<"\n\n输入品种名称:\n";

Flush(cin);

cin.getline(name,20);

p=new CItem(name);

pn=list.LookUp(*p);

if(pn) pn->GetData()->Show();

else

{

cout<<"\n没找到商品\n\n"<

system("pause");

}

delete p;

}

if(choice==2)

{

cout<<"\n\n输入品种代码:\n";

cin>>code;

int n;

n=code;

p=new CItem(n);

pn=list.LookUp(*p);

else

{

cout<<"\n没找到商品\n\n"<

system("pause");

}

delete p;

}

system("cls");

break;

case 4: //删除商品

system("cls");

cout<<"\n\n1. 按商品品种名称删除商品";

cout<<"\n\n2. 按商品品种代码删除商品";

cout<<"\n\n0. 退出";

cout<<"\n\n输入选择: ";

cin>>choice;

if(choice==1)

{

cout<<"\n\n输入品种名称:\n";

Flush(cin);

cin.getline(name,20);

p=new CItem(name);

pn=list.LookUp(*p);

if(pn) list.DeleteNode(pn);

else

{

cout<<"\n没找到商品\n\n"<

system("pause");

}

delete p;

}

if(choice==2)

cout<<"\n\n输入品种代码:\n";

cin>>code;

p=new CItem(code);

pn=list.LookUp(*p);

if(pn) list.DeleteNode(pn);

else

{

cout<<"\n没找到商品\n\n"<

system("pause");

}

delete p;

}

system("cls");

break;

case 5: //商品出库

system("cls");

cout<<"\n\n1. 按商品品种名称进行商品出库";

cout<<"\n\n2. 按商品品种代码进行商品出库";

cout<<"\n\n0. 退出";

cout<<"\n\n输入选择: ";

cin>>choice;

if(choice==1)

{cout<<"\n\n输入品种名称:\n";

Flush(cin);

cin.getline(name,20);

p=new CItem(name);

pn=list.LookUp(*p);

if(pn)

pn->GetData()->OutModify();

else

{ cout<<"\n没找到商品\n\n"<

system("pause");}

delete p;

if(choice==2)

{

cout<<"\n\n输入品种代码:\n";

cin>>code;

p=new CItem(code);

pn=list.LookUp(*p);

if(pn)

pn->GetData()->OutModify();

else

{

cout<<"\n没找到商品\n\n"<

system("pause");

}

delete p;

}

system("cls");

break;

case 6: //商品进库

system("cls");

cout<<"\n\n1. 按商品品种名称进行商品进库";

cout<<"\n\n2. 按商品品种代码进行商品进库";

cout<<"\n\n0. 退出";

cout<<"\n\n输入选择: ";

cin>>choice;

if(choice==1)

{

cout<<"\n\n输入品种名称:\n";

Flush(cin);

cin.getline(name,20);

p=new CItem(name);

pn=list.LookUp(*p);

if(pn) else{cout<<"\n没找到商品\n\n"<

system("pause");}

delete p;}

if(choice==2)

{cout<<"\n\n输入品种代码:\n";

cin>>code;

p=new CItem(code);

pn=list.LookUp(*p);

if(pn) pn->GetData()->InModify();

else {cout<<"\n没找到商品\n\n"<

system("pause");}

delete p;

}

system("cls");

break;

case 0: //退出系统

break;

default:

cout<<"选择错误!\n"<

system("pause");

system("cls");

}

}while(choice!=0);

ofstream outfile("TIS.txt",ios::binary);

if(!outfile)

{

cout<<"错误,不能打开文件";

getch();

exit(1);

}

pn=list.GetListHead();

while(pn)

{

p=pn->GetData();

outfile.write(reinterpret_cast(p),sizeof(CItem));

pn=list.GetListNextNode(pn);

outfile.close(); }

库存管理信息系统报告

目录 一、可行性分析 (2) 1、管理上的可行性 (2) 2、经济上的可行性 (2) 3、技术上的可行性 (2) 二、系统分析部分 (3) 1、功能分析图 (3) 2、业务流程图 (4) 3、数据流程图 (4) 4、数据字典 (5) 5、数据加工处理的描述 (5) 6、管理信息系统流程设想图(新系统模型) (7) 三、系统设计部分 (8) 1、功能结构图设计 (8) 2、新系统信息处理流程设计 (8) 3、输出设计(主要指打印输出设计) (10) 4、存储文件格式设计(数据库结构设计) (10) 5、输入设计(主要指数据录入卡设计) (10) 6、代码设计(职工证号和部门代号等) (10) 3-6工资管理信息系统数据库设计 (10) 7、程序设计说明书 (15) 四、系统实施部分 (16) 1、程序框图 (16) 2、源程序 (16) 3、模拟运行数据 (16) 4、打印报表 (16) 1-5表如下: (16) 5、系统使用说明书 (24) 五、参考文献 (28) 六、心得体会 (28)

产品库存管理信息系统 一、可行性分析 1、管理上的可行性 该系统可以提高管理工作的质量和效率,主要表现在以下几个方面: (1)实现库存管理的“动态”化,能及时地提供库存商品动态信息,配以库存报警功能,在库存过高或过低时,都给予提示。 (2)强大的统计分析功能,利用计算机工具以各种方式统计出销售等情况,以便于整体营销策略的调整。 (3)方便的查询功能,能快速实现对各种商品的入库、销售及库存情况的查询。 (4)系统的开发与使用与现行的管理制度没有冲突,而且现在员工通过培训可以很容易掌握和使用系统。 2、经济上的可行性 由于本库存管理系统所要求的硬件(计算机及相关硬件)和软件环境(Visual Basic6.0+SQL Server 2000),市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对用户不会造成过重的经济负担。而一旦此系统投入使用,不仅可以减少库存的工作强度,提高工作效率,而且方便了库存对信息的管理,延续了传统的管理模式,极大限度地方便了库存管理人员,而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本系统的开发成本,所以从经济方面讲开发此系统是可行的。 3、技术上的可行性 技术上的可行性分析要考虑现有技术条件能否顺利完成开发工作及将来要采用的硬 件和软件技术能否满足用户提出的要求(如计算机的容量、速度等)。 本系统采用Visual Basic6.0作为系统应用程序开发工具,采用SQL Server 2000建立数据库,并通过Visual Basic6.0中的ADO控件使两者进行连接从而进行系统软件开发。Visual Basic6.0不仅能帮助软件开发者提高软件开发的质量和效率,缩短开发周期,而且还具备强大的数据库管理功能,完全能够满足本系统的开发需求。此外,从开发人员

库存管理系统设计实现

库存管理信息系统 说明:这里给出一个库存管理信息系统开发的实例,目的是使大家进一步深入了解开发任何一个管理信息系统必须经历的主要过程,以及在开发过程的各个阶段上开发者应当完成的各项工作内容和应当提交的书面成果。学习重点放在系统分析、系统设计实际过程、方法及内容。 一、某厂产品库存管理系统简介 某厂是我国东北地区一家生产照明灯的老企业,每年工业产值在四千万元左右。该厂目前生产的产品如表l所示。 表1 某厂产品品种规格、单价及定额储备

工厂的产品仓库管理组隶属于销售科领导,由七名职工组成,主要负责产品的出入库管理、库存帐务管理和统计报表,并且应当随时向上级部门和领导提供库存查询信息。为了防止超储造成产品库存积压,同时也为了避免产品库存数量不足而影响市场需求,库存管理组还应该经常提供库存报警数据(与储备定额相比较的超储数量或不足数量)。 产品入库管理的过程是,各生产车间随时将制造出来的产品连同填写好的入库单(入库小票)一起送至仓库。仓库人员首先进行检验,一是抽检产品的质量是否合格,二是核对产品的实物数量和规格等是否与入库单上的数据相符,当然还要校核入库单上的产品代码。检验合格的产品立即进行产品入库处理,同时登记产品入库流水帐。检验不合格的产品要及时退回车间。 产品出库管理的过程是,仓库保管员根据销售科开出的有效产品出库单(出库小票)及时付货,并判明是零售出库还是成批销售出库,以便及时登记相应的产品出库流水帐。 平均看来,仓库每天要核收三十笔入库处理,而各种出库处理约五十笔。每天出入库处理结束后,记帐员就根据入库流水帐和出库流水帐按产品及规格分别进行累计,以便将本日内发生的累计数填入库存台帐。 产品入库单如表2所示,出库单如表3所示,入库流水帐如表4所示,出库流水帐如表5和表6所示,而库存台帐帐页如表7所示。 产品库存的收发存月报表是根据库存台帐制作出来的。产品库存查询是通过翻阅几本帐之后实现的。目前库存报警功能尚未实现。

【数据结构】超市商品库存信息管理系统

东北大学信息科学与工程学院 数据结构课程设计报告题目超市商品库存信息管理系统课题组长宋振 课题组成员常玉颖于红爽 专业名称计算机科学与技术 班级计1307 指导教师杨雷 2015 年1月

课程设计任务书

目录 1 课题概述 (4) 1.1 课题任务 (4) 1.2 课题原理 (4) 1.3 相关知识 (4) 2 需求分析 (5) 2.1 课题调研 (5) 2.2 用户需求分析 (5) 3 方案设计 (5) 3.1 总体功能设计 (5) 3.2 数据结构设计 (10) 3.3 函数原型设计 (11) 3.4 主算法设计 (12) 3.5 用户界面设计 (14) 4 方案实现 (15) 4.1 开发环境与工具 (15) 4.2 程序设计关键技术 (16) 4.3 个人设计实现(按组员分工) 4.3.1 宋振设计实现 (17) 4.3.2 常玉颖设计实现 (17) 4.3.3于红爽设计实现 (17) 5 测试与调试 (23) 5.1 个人测试(按组员分工) (23) 5.1.1 宋振测试 (23) 5.1.2 常玉颖测试 (23) 5.1.3 于红爽测试 (23)

5.2 组装与系统测试 (33) 5.3 系统运行 (36) 6 课题总结 (39) 6.1 课题评价 (39) 6.2 团队协作 (40) 6.3 团队协作 (41) 6.4 个人设计小结(按组员分工) (42) 6.4.1宋振设计小结 (42) 6.4.2 常玉颖设计小结 (42) 6.4.3 于红爽设计小结 (42) 7 附录A 课题任务分工 (50) A-1 课题程序设计分工 (50) A-2 课题报告分工 (51) 附录B 课题设计文档(光盘) (52) B-1课程设计报告(电子版) (52) B-2源程序代码(*.H,*.CPP) (52) B-3工程与可执行文件) (52) B-4屏幕演示录像文件(可选) (52) 附录C 用户操作手册(可选) (53) C.1 运行环境说明 (53) C.2 操作说明 (54)

公司库存管理系统.doc

数据库课程设计 题目公司库存管理系统 系(部) 电子与信息工程系 班级10级计本班 姓名朱蒙 学号2010222201 指导教师方昕 2013年1 月4日

数据库课程设计任务书

姓名:朱蒙学号:2010222201 公司库存管理系统 朱蒙 安康学院计算机科学与技术10级陕西安康 725000 摘要:本文根据以下要求入手,对库存管理系统进行设计。基本要求与功能是实现仓储信息数据包括与出入库有关的数据的管理与操作处理;基于SQL Server2000数据库系统的数据管理;基础数据操作,入库信息,出库信息,以及有关用户提出的对库存信息的查询等等。数据的输入与输出处理流程都依靠数据库的支持。 关键字:SQL Server2000;数据库;仓库管理;仓库管理系统 1 系统概述 1.1 系统开发背景 企业的仓库物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计报表繁多,因此仓库的仓库管理必须编制一套仓库管理信息系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。 传统的商品由进货到发货,要经过若干环节,多次账面转抄,由于物品繁多,规格型号的标识繁多,加之业务人员素质的因素,易造成仓库供应效率低下,影响生产.;由于库房与管理部门之间存在信息难以交流。供应业务员、仓库保管员、计划员和有关领导相互之间信息流通困难,使得仓库供应效率低下,造成库存积压。使库存储备很大,影响资金周转。另外,使得仓库的管理数据的汇总,以及信息的传递困难;手抄的,手工作业容易造成失误,同时每月向上级单位所报报表需耗费相当大的人力资源进行大量数据计算,这将影响数据的准确率和效率,从而造成不必要的损失和浪费 根据当前的企业管理体制,一般的仓库管理系统,总是根据所掌握的物资类别,相应分成几个科室来进行物资的计划,订货,核销托收,验收入库,根据企业各个部门的需求来发送物资设备,并随时按期进行仓库盘点,作台帐,根据企业领导和自身管理的需要按月、季度、年度进行统计分析,产生相应报表。为了加强关键物资、设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际纤毫定额的比较,进行定额管理,使得资金使用合理,物资设备的储备最佳。 仓库的仓库管理是整个物资供应管理系统的核心。因此有必要开发一套独立的仓库管理系统来提高企业工作效率,而所使用的这套仓库管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的仓库费用、适时适量的仓库数量,使企业生产活动效率最大

商品仓库管理系统(数据库设计)

数据库原理课程设计仓库管理系统

第一章绪论 课题背景介绍 1.1.1课题开发背景 商品库存管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以商品库存管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理仓库中的各种物资设备,这种管理方式存在着许多缺点,如:效率低、另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对物资信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套商品库存管理软件成为很有必要的事情。 1.1.2课题开发意义 大多数库存管理理论认为,库存是物理上和逻辑上库房库位的所有有形和无形物料极其价值的总和,具体包括成品、原材料、在制品、在途品、生产前物料、备品备件等。虽然持有一些库存是必要的,过量的库存却非但没有用处而且占用了资金。占用的资金对于公司发展、新产品开发等都是非常需要的;减少资金占用还可以大大减少来自银行贷款的利息和风险。对那些采购量特别大、采购件市场价格有波动的物料库存,加强库存管理效果更为明显。因此,平衡公司库存投资与其它资金需求至关重要。 随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。面对庞大的产品信息量,如何有效地管理库存产品,对这些企业来说是非常重要的,库存管理的重点是销售信息能否及时反馈,从而确保企业运行效益。而库存管理又涉及入库、出库的产品、操作人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分

库存管理信息系统的分析

库存管理信息系统的分 析 Corporation standardization office #QS8QHH-HHGX8Q8-GNHHJ8

附件: 库存管理信息系统的分析、设计和实施 说明:本例时间较早,开发工具选用。在学习过程中,可以现有的硬件和软件环境进行系统再开发实现,学习重点放在在系统分析、系统设计实际过程、方法及内容。 这里给出一个库存管理信息系统开发的实例,目的是使大家进一步深入了解开发任何一个管理信息系统必须经历的主要过程,以及在开发过程的各个阶段上开发者应当完成的各项工作内容和应当提交的书面成果。 一、某厂产品库存管理系统简介 某厂是我国东北地区一家生产照明灯的老企业,每年工业产值在四千万元左右。该厂目前生产的产品如表l所示。 表1 某厂产品品种规格、单价及定额储备 工厂的产品仓库管理组隶属于销售科领导,由七名职工组成,主要负责产品的出入库管理、库存帐务管理和统计报表,并且应当随时向上级部门和领导提供库存查询信息。为了防止超储造成产品库存积压,同时也为了避免产品库

存数量不足而影响市场需求,库存管理组还应该经常提供库存报警数据(与储备定额相比较的超储数量或不足数量)。 产品入库管理的过程是,各生产车间随时将制造出来的产品连同填写好的入库单(入库小票)一起送至仓库。仓库人员首先进行检验,一是抽检产品的质量是否合格,二是核对产品的实物数量和规格等是否与入库单上的数据相符,当然还要校核入库单上的产品代码。检验合格的产品立即进行产品入库处理,同时登记产品入库流水帐。检验不合格的产品要及时退回车间。 产品出库管理的过程是,仓库保管员根据销售科开出的有效产品出库单(出库小票)及时付货,并判明是零售出库还是成批销售出库,以便及时登记相应的产品出库流水帐。 平均看来,仓库每天要核收三十笔入库处理,而各种出库处理约五十笔。每天出入库处理结束后,记帐员就根据入库流水帐和出库流水帐按产品及规格分别进行累计,以便将本日内发生的累计数填入库存台帐。 产品入库单如表2所示,出库单如表3所示,入库流水帐如表4所示,出库流水帐如表5和表6所示,而库存台帐帐页如表7所示。 产品库存的收发存月报表是根据库存台帐制作出来的。产品库存查询是通过翻阅几本帐之后实现的。目前库存报警功能尚未实现。 “√”

超市商品管理信息系统数据库设计样本

二、需求分析: (一)重要目的 为了大大提高超市运作效率,减少经营成本,提高效益,以及提高超市管理水平。依照超市需要,对其进行规范化管理,因而需要一套合理管理体系。 (二)功能分析 1、录入产品信息,并对其进行分类,可以对既有产品信息进行维护、当产生了新产品后,可以录入新产品信息; 2、可以输入员工、供应商有关信息并能对其更新; 3、在收银处,随时录入商品出货信息(涉及产品编号、出货单价、出货数量、员工编号等),及时更新数据库数据; 4、从供应商处进货后,及时录入产品进货信息(涉及产品编号、进货单价、进货数量、供应商编号等); 5、录入产品原始库存,并可以依照产品进货、出货信息进行库存管理、更新; 6、可随时查询产品信息、出货信息、进货信息(如月出货报表),并可以打印输出; 7、可以依照出货、进货表中数据自动计算出每种产品当天库存,并可以实现当前库存查询; 8、在需要时生成商品库存状况报告,实时报告商品库存状况:库存量局限性(不大于某一自定数量)时,可生成缺货报告,并提供商品种类,来源等信息,以便采购人员进行商品采购;库存量超额(不

不大于某一自定数量)时,可生成超额库存报告,以便管理人员进行产品组合协调; 9、商品出货达到一定数量时,可将此类商品信息及出货进货信息打印输出,可以提示畅销产品和滞销产品种类,并提供商品库存信息用于市场导购和商品采购指引。 (三)数据定义 图1.1 E-R图

(四)系统设计 1、商品管理:录入既有商品有关信息,如生产日期、保质期、进货价格、出货价格等,并将其进行分类,以便查询、维护、更新; 2、进货管理:录入进货有关信息,并进行查询、更新,可打印输出; 3、出货管理:记录出货有关信息,并进行查询、更新,可打印输出; 4、库存管理:依照进货、出货信息自动计算库存量,并存储商品库存信息,且可以随时打印输出需要产品库存信息; 5、员工信息管理:员工基本信息创立、更新、查询; 6、供应商信息管理:供应商基本信息创立、更新、查询。

库存信息管理系统报告

课程设计课程名称物流管理信息系统课程设计_ 题目名称库存信息管理系统 学生学院管理学院 2013年 7月 3日 广东工业大学课程设计任务书 一、课程设计的内容 本课程设计要采用本课程中学习的物流管理信息系统的相关理论,运用其基本思 路与主要图表工具完成“车辆租赁管理系统”。完成LMIS的功能流程设计、界面设计、 数据库设计,最后运用Visual FoxPro实现该系统,并运行、评价、改进之;在此基础 上严格按课程设计教学大纲所附报告提纲撰写课程设计报告。通过本课程设计进一步领 会LMIS在物流管理工作中的作用,并领会LMIS开发的基本方法。 二、课程设计的要求与数据 结合所学物流管理知识,在借鉴课堂教学案例、浏览物流企业或者企业物流部门管 理工作相关文献,或者观察身边企业的物流活动,以了解其信息管理工作流程。在此基 础上,完成信息需求分析、数据库概念设计、逻辑设计、物理设计,实现完成该业务的 物流管理信息系统,并运行、评价改进之,最后要写出课程设计报告。 三、课程设计应完成的工作 要求学生按照《物流管理信息系统课程设计》教学大纲完成一个数据库应用系统,

并撰写相应的课程设计报告,主要内容包括: 概述:系统的基本任务,主要业务,开发目标 1.需求分析 2.流程设计 3.界面设计 4.数据库设计 5.数据库应用系统的实现 6.数据库应用系统运行 四、课程设计进程安排 序号设计各阶段内容地点起止日期 1(1)教师说明课程设计的内容、任务、要求,讲 解课程设计的步骤,指导学生自学教材,完成 选题和资料准备。D区30318周星期一 2(2)学生完成业务需求分析、流程设计、界面设 计宿舍 18周星期二 -星期四 3(3)学生当面汇报前期工作,教师指出存在的问 题。D区30318周星期五 3(4)学生修改界面设计和流程,并完成数据库设 计宿舍18周周末 4学生汇报修改后的界面设计以及数据库设计,教师 指出存在的问题。D区30319周周一 5学生根据老师意见进一步修改数据库设计,完成程 序设计,并撰写报告。宿舍19周 6学生当面演示系统功能,并提交报告。D区30319周周五 五、应收集的资料及主要参考文献 [1] 刘瑞新、文成林、汪远征. Visual Foxpro程序设计教程,北京:机械工业出版社,2000年10月。 [2] 王珊. 数据库系统简明教程,北京:高等教育出版社, 2004年9月。 [3] 刘鲁. 信息系统设计原理与应用,北京:北京航空航天大学出版社,1995年3月。 [4] 蔡淑琴主编,《物流信息系统》,中国物资出版社,2002年出版 [5]林自葵主编,《物流信息系统》,清华大学出版社,北京交通大学出版社,2004年联合出版 [6]蔡淑琴,夏火松编着,《物流信息与信息系统》,电子工业出版社,2005年出版 报告目录 一、背景介绍..........................................

库存管理信息系统简述

库存经管信息系统 说明:这里给出一个库存经管信息系统开发的实例,目的是使大家进一步深入了解开发任何一个经管信息系统必须经历的主要过程,以及在开发过程的各个阶段上开发者应当完成的各项工作内容和应当提交的书面成果。学习重点放在系统分析、系统设计实际过程、方法及内容。 一、某厂产品库存经管系统简介 某厂是我国东北地区一家生产照明灯的老企业,每年工业产值在四千万元左右。该厂目前生产的产品如表l所示。 表1 某厂产品品种规格、单价及定额储备

工厂的产品仓库经管组隶属于销售科领导,由七名职工组成,主要负责产品的出入库经管、库存帐务经管和统计报表,并且应当随时向上级部门和领导提供库存查询信息。为了防止超储造成产品库存积压,同时也为了避免产品库存数量不足而影响市场需求,库存经管组还应该经常提供库存报警数据(与储备定额相比较的超储数量或不足数量)。 产品入库经管的过程是,各生产车间随时将制造出来的产品连同填写好的入库单(入库小票)一起送至仓库。仓库人员首先进行检验,一是抽检产品的质量是否合格,二是核对产品的实物数量和规格等是否与入库单上的数据相符,当然还要校核入库单上的产品代码。检验合格的产品立即进行产品入库处理,同时登记产品入库流水帐。检验不合格的产品要及时退回车间。 产品出库经管的过程是,仓库保管员根据销售科开出的有效产品出库单(出库小票)及时付货,并判明是零售出库还是成批销售出库,以便及时登记相应的产品出库流水帐。 平均看来,仓库每天要核收三十笔入库处理,而各种出库处理约五十笔。每天出入库处理结束后,记帐员就根据入库流水帐和出库流水帐按产品及规格分别进行累计,以便将本日内发生的累计数填入库存台帐。 产品入库单如表2所示,出库单如表3所示,入库流水帐如表4所示,出库流水帐如表5和表6所示,而库存台帐帐页如表7所示。 产品库存的收发存月报表是根据库存台帐制作出来的。产品库存查询是通过翻阅几本帐之后实现的。目前库存报警功能尚未实现。 注:批发出库时在备注栏的批发[ ]处划“√”,否则在零售[ ]处划“√”

库存管理信息系统

超市库存管理信息系统分析与设计 摘要 超市库存管理在欧美等国已实行多年,如今,在像中国这样的发展中国家也迅速地得到了推广。它最主要的特点是能够实时和准确地反映店内的销售情况,以便为超市管理者提供决策信息支持。超市库存管理的内容就是商品的入库、出库和库存管理,它是商品管理的中间环节。用数据描叙货物的收入、发出和储存的状态,实际反映了商品在超市内流动的客观过程,库存管理和商品管理的其他环节都有直接联系。可以说它在商品配送管理中起着枢纽和基础的重要作用。有效的库存管理,可降低运营成本,进而提高商品周转率,这样才能减少因风险造成的损失,从而使利润达到最高点。一个超市的库存,也就代表了这个超市的大部分资产总额。如何将这些静态的资产以最快的速度流转,这就是库存管理的目的。一个好的超市,并不是只有畅销的商品就行了。因为畅销的可能都是固定的某些商品,而有些商品可能进了超市后,就无人问津,这样不仅使这些商品占据了库房空间,而且也积了大量的资金,使得资金运转相当的困难。要改善库存周转率不高的状况,就必须先从了解超市目前的库存情况开始,而要了解库存的情况,就可以利用信息系统来进行管理,从而进一步的提高库存管理的效率。 通过信息系统的查询可以方便的找出目前最畅销和滞销的商品,然后再利用各种行销方法,将滞销的商品销售出去,这样就可以避免超市因为滞销而造成的损坏、过期和资金积压等问题。我所设计的超市库存管理系统由库存商品信息模块、库存商品供货商模块、库存管理员模块和进货信息模块,库存盘点信息模块和更新库存数据模块组成,它们分别实现商品信息管理,商品供货商管理,商品进货管理,库存盘点管理和更新库存管理的功能。

商品信息管理系统设计报告样本

商品信息管理系统设计报告 xxxxxxxx 目录 一.运行环境 二.系统的基本框架介绍 三.系统结构图 四.项目概述 1.项目设计的主要内容 2.数据库设计 3.程序中包含的主要框架 4.界面设计 五.系统的调试过程 六.总结

一.运行环境 服务器: CPU: PIII 500以上; 内存: 512M以上; 硬盘: 15G以上; 支持软件: Win /XP, tomcat5.0, Myeclipse 8.6 数据库系统: Access ; 界面美化: Dreamweaver 二.系统的基本框架介绍 (一)前台实现的功能 1.普通用户的登录 2.普通用户查看个人信息 3.商品信息的搜索 4.实现购物车功能模块 5.用户注销 (二)后台管理实现的功能 1.对用户信息的管理( 查询, 添加, 删除, 修改) 2.对商品信息的管理( 查询, 添加, 删除, 修改) 3.对商品信息的管理( 查询, 添加, 删除, 修改) 4.管理员注销 三.系统结构图 说明: 普通用户能够登录到前台进行购物, 管理员经过登录能够进入后台进行管理。

四. 项目概述 1. 项目设计的主要内容 数据库设计、 编码设计、 界面设计、 系统调试与维护 2. 数据库设计 2.1 每张表的定义 productInfo 表: 其中p_id 为主键。 userInfo 表: 其中u_id 为主键。 退出系统

customerInfo表: 其中c_id为主键。 2.2每张表的数据 productInfo表 userInfo表:

userInfo表: 3.程序中包含的主要框架内容 3.1Package Package 的名字应该都是由一个小写单词组成。 包名: package com.pmis.dao package com.pmis.db package com.pmis.entity package com.pmis.servlet 3. 2 com.pmis.dao CustomerInfoDAO.java ProductInfoDAO.java UserInfoDAO.java

管理信息系统实验报告小型超市库存管理系统设计

《管理信息系统》 实验报告 学院:经济管理学院 小型超市管理信息系统开发设计 一、实验目的 1、能够正确运用《管理信息系统》课程的基本理论和知识,结合本课题,复习、巩固、提高数据库方案设计、论证和分析方法,掌握管理信息系统开发的步骤,熟悉常用开发软件与辅助工具,根据小型超市系统的特点,实现系统。 2、熟悉业务流程图、数据流程图、数据字典的绘制。 3、熟悉代码设计、数据存储设计、输入输出设计等环节,并编制相应的文档。 4、熟悉关系数据库规范化设计理论,根据实验要求设计并建立科学合理的数据库,正确建立数据库中表与表之间的关系。 5、进一步树立正确的系统设计、实施思想,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力。 二、实验环境 充分利用现有的设备,采用VB6.0 作为开发工具,利用ACCESS 数据库建立一个高效、准确、操作方便,具有专业的查询、更新及统计功能的微机管理信息系统,以满足工作人

员进行综合的、模糊的查询及更新要求,从而更加方便的管理库存物品。该系统的开发与建立会极大程度提高管理人员、工作人员的工作效率。 Win7平台 Access2000,2G内存,320G外存。 三、实验步骤 1、系统项目概述 1.1开发背景 信息化的发展已经对我们的日常生活产生了积极的影响,并逐渐成为人们管理日常工作的重要手段。在对信息加工的基础上充分利用信息,会给我们的生活带来巨大的好处。在我国加入WTO后,商品零售业首当其中成为面临严峻挑战的行业。面对乐购、家乐福、麦德隆等超市巨头气势汹汹的扩张步伐,发挥自身优势、不断提升竞争力,是各超市高层最为关注的问题。我国的超市产业飞速发展,现代超市的经营模式更为复杂,旧的管理体制已经无法适应超市的发展,这就迫切的需要引进新的管理技术。并且保持在同行业竞争中“低价格、高质量”的竞争优势是十分必要的。 我超市作为规模疾速扩大的超市,数据和业务也随之越来越庞大。面对当前激烈的市场竞争,我超市决定利用高效的计算机系统,将超市的库存管理与计算机结合起来,依靠现代化的计算机信息处理技术来管理超市的库存。根据超市物品的库存情况及市场的需求情况,制定商品采购计划,避免不必要的人员浪费及产品积压。既节省了大量的人力、物力,又能够快速反映出商品的进、销、存等状况和各种反馈信息分析,降低成本,使管理人员快速对市场的变化做出相应的决策,以求对超市库存管理更加科学、简洁与实用。 1.2 现行运营状况存在的问题 1.2.1 商品销售相关信息反馈不及时,预测不准确 销售商品的信息反馈不及时与预测不准确导致存货结构、周期不合理,给企业造成了大量多余的物流成本。商品信息反馈包括两个方面:一方面是指商品的销售,另一方面是指供应商提供商品信息。

库存管理系统数据库设计

库存管理系统数据库设计 系统需求分析: 入库管理: 供货单位将货物连同填好的入库单一起送到仓库,仓库管理员将验收货物,首先将货物的代码、类型、规格和数量与入库单进行核对,在核对无误后将货物按名称分类入库,并填写货物入库登记表。 出库管理: 提货单位向仓库保管员出示出库单,仓库保管员根据有效产品出库单及时付货,取货人员将货物与出库单核对无误后,提取货物,同时把出库单交给仓库保管员,仓库保管员则按照出库单登记货物的出库信息。 库存管理: 每天入库、出库处理结束后,仓库管理员将根据入库登记表和出库登记表对货物分别进行累计,并将累计结果填入库存台账; 数据流图

数据字典 1.数据项 入库单号 数据项名:入库单号 说明:标识货物的入库登记表 类型:CHAR 长度:10 别名:空 取值范围:(10000000000,9999999999)2.数据结构

?入库单 数据结构名:入库单 说明:入库货物的入库单号,入库产品代码、货物类型、规格和数量。 组成:入库单号,入库产品代码、货物类型、规格和数量 3.数据流 ?入库登记 数据流名:入库登记 说明:货物连同填好的入库单一起送到仓库时,仓库管理员依据入库单验收产品,在核对无误后将产品按名称分类入库,同时对入库的货物做登记,以便于仓库的管理。 数据流来源:仓库管理员 数据流去向:货物 数据结构:入库登记表 数据结构名:入库登记表 说明:入库货物的入库单号,入库产品代码,入库数量, 入库时间等 组成:入库日期、入库单号、货物编码、数量、进货价、 总额、已付货款、供货单位编码、供货单位、经办人编 码、经办人、增值税率、备注 4.数据存储

产品库存管理信息系统设计课程

目录 一、可行性分析 (3) 1、管理上的可行性 (3) 2、经济上的可行性 (4) 3、技术上的可行性 (4) 二、系统分析部分 (5) 1、功能分析图 (5) 2、业务流程图 (6) 3、数据流程图 (7) 4、数据字典 (7) 5、数据加工处理的描述 (8) 6、管理信息系统流程设想图(新系统模型) (11) 三、系统设计部分 (11) 1、功能结构图设计 (11) 2、新系统信息处理流程设计 (12) 3、输出设计(主要指打印输出设计) (16) 4、存储文件格式设计(数据库结构设计) (16)

5、输入设计(主要指数据录入卡设计) (16) 6、代码设计(职工证号和部门代号等) (16) 3-6工资管理信息系统数据库设计 (16) 7、程序设计说明书 (22) 四、系统实施部分 (24) 1、程序框图 (24) 2、源程序 (24) 3、模拟运行数据 (24) 4、打印报表 (24) 1-5表如下: (24) 5、系统使用说明书 (36) 五、参考文献 (40) 六、心得体会 (41)

产品库存管理信息系统 一、可行性分析 1、管理上的可行性 该系统可以提高管理工作的质量和效率,主要表现在以下几个方面: (1)实现库存管理的“动态”化,能及时地提供库存商品动态信息,配以库存报警功能,在库存过高或过低时,都给予提示。 (2)强大的统计分析功能,利用计算机工具以各种方式统计出销售等情况,以便于整体营销策略的调整。 (3)方便的查询功能,能快速实现对各种商品的入库、销售及库存情况的查询。 (4)系统的开发与使用与现行的管理制度没有冲突,而且现在员工通过培训可以很容易掌握和使用系统。

库存管理信息系统的分析与设计

管理信息系统开发示例——库存管理信息系统的分析与设计1.问题的提出 (1)开发背景 XX厂是我国的一家老加工企业,随着改革的深入和经济的发展,该厂的生产任务日益繁重,从而对库存管理的要求也更加严格。在传统的手工管理时期,一种物品由进货到发货,要经过若干环节,且由于物品的规格型号繁多,加之业务人员素质较低等因素,造成物品供应效率低下,严重的影响了企业的正常生产。同时由于库房与管理部门之间的信息交流困难,造成库存严重积压,极大的影响了企业的资金周转速度,另外也使得物资管理、数据汇总成为了一大难题。 当今该厂的竞争压力越来越大,企业要想生存,就必须在各个方面加强管理,并要求企业有更高的信息化集成,能够对企业的整体资源进行集成管理。现代企业都意识到,企业的竞争是综合实力的竞争,要求企业有更强的资金实力,更快的市场响应速度。这就要求企业各部门之间统一计划,协调生产步骤,汇总信息,调配集团内部资源,实现既要独立,又要统一的资源共享管理。随着信息技术的发展,该厂为了提高库存周转率,加快资金周转速度,决定开发“库存管理信息系统”。 (2)项目目标 充分利用现有的设备,采用VB6.0作为开发工具,利用ACCESS数据库建立一个高效、准确、操作方便,具有专业的查询、更新及统计功能的微机管理信息系统,以满足工作人员进行综合的、模糊的查询及更新要求,从而更加方便的管理库存物品。该系统的开发与建立会极大程度提高管理人员、工作人员的工作效率。 2.对现有系统进行需求调查 需求调查是信息系统分析与设计的基础。要开发并实施一个完整的信息系统,必须首先了理解用户的需求,并形成系统需求说明书。在此基础上才能进行系统分析、系统设计和程序编码等工作。该厂在需求调查过程中发放了8种不同种类的调查表,要求相关人员对其进行逐条逐项的填写,从而对其现行系统的业务流程进行了详细的调查。 (1)现行系统业务流程 通过大量的调查,我们了解到当前该厂的业务流程如下:各车间向商品供应部门提出对某种商品的需求计划,仓库将相应的商品发放给各车间,一般要经过计划、库房管理等流程。(2)现行系统存在的问题 由于采用的是手工管理,账目繁多,加之几个仓库之间距离较远,库管员、计划员和有关领导相互之间的信息交流困难,使得物资供应效率低下,影响生产。同时每月的月末报表会耗费大量的人力,且由于手工处理容易造成失误,从而影响了数据的效率和准确率,造成了不必要的损失。因此,该厂必须建立相应的库存管理信息系统,使其能根据市场情况,及时合理地采购所需商品,同时又能科学地对商品进行管理,统筹安排人力、物力、财力,有效地改善当前管理的混乱状况。 库存管理是企业管理的重要组成部分。在企业生产经营活动中,库存管理既必须保证生产车间对原材料、零部件需求,又直接影响采购、销售部门的购、销活动。为盘活企业流动资金,加快资金周转,在保障供给的前提下,最大限度地降低商品的库存量,节省企业流动资金的占用,直接影响着企业的经营效益。根据对该厂的库存管理情况所作的调查和参考有关资料,发现目前该厂在库存管理方面存在着如下问题: ①不能及时获得库存信息

库存管理系统分析报告范文

库存管理系统分析 报告

库存管理系统分析报告 班级:姓名:学号: 1. 引言 随着社会进步和科学技术的发展,仓库管理的方法也日新月异。以前全是由人管理的方法现存在很多的缺点:管理效率低,劳动强度大,信息处理速度低而且准确率差。为了提高仓库管理效率,减轻劳动强度提高,信息处理速度和准确性。为仓库管理员提供的一种更先进、科学的服务系统。于是我们便选择了由计算机来设计一个仓库管理系统的方案。让计算机对仓库进行自动管理,仓库管理员能够直接在计算机上实现仓库的信息管理,并能在一定程度上实现自动化。我们在现行系统初步调查的基础上提出了新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。 1.1系统目标 减少仓库管理成本,减少错误率。为客户提供更好、更优质的服务。 2系统功能分析 (1)经过可行性和系统分析,总结出仓库管理系统的数据流程.该系统完成后将具备如下功能: ●仓库各种信息的输入,包括入库,出库,还原,需求信息的输 入等 ●仓库管理的各种信息查询,修改和维护

●设备采购报表的生成 ●在库存管理中加入最高储备和最低储备字段,对仓库的物质设 备实现监控和报警 ●企业各个部门的物质需求管理 ●操作日志的管理 (2)系统数据分析与描述 ●设备信息情况描述 ●包括设备的编号、名称、入库时间、供应商、采购员、价格等●工作用户权利描述 ●密码、权限级别(数值) ●一般用户权利描述 ●权限级别(数值) 经过对以上数据的分析与描述,现在能够知道设备的各种信息关系。然后更好的实现系统.。 3用户需求分析 3.1问题识别 为了取代旧有仓库系统的纯人工作业所造成的大成本,高错误率的操控.在此借用现已成熟的计算机技术,开发出低成本,低错误率地仓库管理系统. 1)新系统能做什么,能做到什么程度:清晰记录着货物的基本情况, 能够轻易找到货物在仓库的位置.更合理的分配仓库空间.实时操控系统记录着工作人员情况,能够在发生意外时马上掌握情况,

商品库存管理系统数据库设计

湖南人文科技学院计算机系 课程设计说明书 课程名称:《数据库系统概论课程设计》 课程代码: 420027 题目:商品库存管理系统数据库设计年级/专业/班:09级计算机科学与技术二班 学生姓名:胡定鹏、朱韬、肖朋清、伍斌艳、聂慧俊 学号: 09408238、16、01、34、50 指导教师:刘刚常 开题时间: 2011 年 12 月 10 日 完成时间: 2011 年 12 月 25 日

目录 摘要 (1) 一、引言 (2) 二、设计目的与任务 (2) 三、设计方案 (2) 1、需求分析 (2) 1.1数据需求 (2) 1.2功能需求 (3) 1.3数据字典 (3) 2、概念设计 (5) 2.1商品系统管理系统数据库中的实体集 (5) 2.2商品库存管理系统数据库中的联系集 (5) 2.3商品库存管理系统的E-R图 (5) 3、逻辑设计 (6) 4、数据库实现 (6) 4.1 建立数据库模式、视图及索引 (7) 4.2 装载数据及查询更新 (7) 四、结论 (10) 五、致谢 (11) 六、参考文献 (11)

摘要 随着企业规模的不断扩大,仓库货物的数量和种类急剧增加,有关仓库货物的各种信息量也成倍增长(比如要想查询、修改货物和供应商的信息,必须翻阅原来的各种表格,费时费力,而且很容易漏查漏项)。商品库存管理是整个商业企业中重要的环节,所以需要对货物的基本信息管理、出库入库管理进行完整的监控。面对这些复杂的过程管理和庞大的信息量,就需要有商品库存管理系统来提高企业管理工作的效率,这样可以方便的进行货物入库、出库,查询、修改各种信息。根据货物的入库、出库等过程的综合,可以得到每次产品的入库记录日志、出库记录日志。仓库货物管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 关键词可行性数据字典系统分析入库出库查询修改 Abstract With the constant enlargement of the scope of the enterprise,the quantity and kind of the warehouse goods increase sharply and the information of the warehouse goods also increase sharply,( For example if wanting to inquire about and revise Information of the goods and supplier,must browse various kinds of original forms ,It is time-consuming and strenuous and very easy to leak and check) It is an important link in the whole merchandising concern that the warehouse goods are managed ,so need to carry on intact control to the basic information of the goods to the goods and to stock control. In the face of these complicated course managing and huge amount of information, can be convenient to put in storage the goods ,delivery of cargo from storage ,Inquire about and modify various kinds of information.The system of managing the warehouse goods of enterprise is a typical application of managing information system (now as MIS),which mainly includes building up data-base of back-end and developing the application interface of front-end. The former required consistency and integrality and security of data. The later should make the application powerful and easily used. Key words: Feasibility Data dictionary System Analyse Put in storage the goods Delivery of goods from storage Query Modify

超市商品管理信息系统数据库设计说明

二、需求分析: (一)主要目标 为了大大提高超市的运作效率,降低经营成本,提高效益,以及提升超市的管理水平。根据超市的需要,对其进行规化管理,因此需要一套合理的管理体系。 (二)功能分析 1、录入产品信息,并对其进行分类,能够对现有产品的信息进行维护、当产生了新产品后,能够录入新产品的信息; 2、能够输入员工、供应商的相关信息并能对其更新; 3、在收银处,随时录入商品出货信息(包括产品编号、出货单价、出货数量、员工编号等),及时更新数据库数据; 4、从供应商处进货后,及时录入产品进货信息(包括产品编号、进货单价、进货数量、供应商编号等); 5、录入产品原始库存,并能够根据产品进货、出货信息进行库存管理、更新; 6、可随时查询产品信息、出货信息、进货信息(如月出货报表),并可以打印输出; 7、能够根据出货、进货表中的数据自动计算出每种产品的当日库存,并能够实现当前库存查询; 8、在需要时生成商品库存情况报告,实时报告商品库存情况:库存量不足(小于某一自定的数量)时,可生成缺货报告,并提供商品种类,来源等信息,方便采购人员进行商品采购;库存量超额(大

于某一自定的数量)时,可生成超额库存报告,以便管理人员进行产品组合的协调; 9、商品出货达到一定数量时,可将此类商品信息及出货进货信息打印输出,能够提示畅销产品和滞销产品的种类,并提供商品的库存信息用于市场导购和商品采购指导。 (三)数据定义 图1.1 E-R图

(四)系统设计 1、商品管理:录入现有商品的相关信息,如生产日期、保质期、进货价格、出货价格等,并将其进行分类,以便查询、维护、更新; 2、进货管理:录入进货相关信息,并进行查询、更新,可打印输出; 3、出货管理:记录出货相关信息,并进行查询、更新,可打印输出; 4、库存管理:根据进货、出货信息自动计算库存量,并存储商品库存信息,且可以随时打印输出需要的产品库存信息; 5、员工信息管理:员工基本信息的创建、更新、查询; 6、供应商信息管理:供应商基本信息的创建、更新、查询。

相关主题
文本预览
相关文档 最新文档