计算机基础强化课程设计.docx
- 文档编号:3740977
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:18
- 大小:89.95KB
计算机基础强化课程设计.docx
《计算机基础强化课程设计.docx》由会员分享,可在线阅读,更多相关《计算机基础强化课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
计算机基础强化课程设计
学号:
基础强化训练
题目
仓库入库管理的设计与实现
学院
计算机科学与技术学院
专业
计算机科学与技术专业
班级
******
姓名
******
指导教师
刘传文
2011
年
07
月
08
日
计算机基础强化训练任务书
学生姓名:
******专业班级:
******
指导教师:
刘传文工作单位:
计算机科学与技术学院
题目:
仓库入库管理的设计与实现
初始条件:
理论:
学完计算机基础知识,掌握C++语言编程基础和VC开发平台的使用。
实践:
计算机科学系实验中心提供计算机及软件开发环境。
要求完成的主要任务:
(1)系统需求分析,得到系统的数据需求和功能需求,分析结果用表格记录。
(2)系统设计,包括内存数据结构设计、数据文件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计。
要求内存数据用链表组织,数据文件用文本文件,用户界面用字符界面。
至少实现数据记录的增加、修改、删除、查询(查询应能按不同数据项进行)。
(2)编制好程序后,设计若干测试用例,上机测试所设计的程序。
(4)设计报告按格式要求书写。
设计报告正文的内容应包括:
1)系统描述包括问题说明、数据需求和功能需求。
2)系统设计包括内存数据结构设计、数据文件设计、代码设计、输入/输出设计、用户界面设计、处理过程设计。
3)系统测试包括测试用例的描述、测试方法和测试结果。
4)设计的特点、不足、收获和体会。
时间安排:
1、第20周(7月4日至7月8日)完成。
2、7月8日8:
00到计算机学院实验中心(三楼)检查程序、交课程设计报告、源程序(CD盘)。
指导教师签名:
2011年7月3日
系主任(或责任教师)签名:
2011年7月3日
仓库入库管理的设计与实现
1系统描述
在电子信息技术飞速发展的新形式下,很多行业应用计算机这一现代化的办公设备代替手工操作。
物品的入库管理是一件日常性的工作,企业的管理人员需要及时了解掌握各种产品的入库量、出库量和库存量,以便心中有数,合理安排企业的生产经营。
本文所述设计主要针对各种商品的入库相关管理实现。
1.1问题说明
为了更好的处理货物的详细信息,包括货物的货物的入库、出库、查询、统计。
并且能够很好的让使用者了解库存货物的有关信息,设计一个仓库入库系统。
系统要求能够按编号显示、查找、增加、删除、和保存各类货物的信息。
输入和输出货物的有关信息并且对输入保存文件里确定程序至少具备以下功能:
查询模块、增加模块、删除模块、货物的有关信息数据存盘等的基本模块。
1.2数据需求
经过对问题说明的分析,可以知道所设计的系统应需要数据如下表所示;
1.商品:
字段名
数据类型
中文名
Name
string
商品名称
Price
double
商品价格
count
long
商品数量
kinds
shelf
所属货架
2.管理员类
字段名
数据类型
中文名
Name
String
管理员名字
3.仓库货架类
字段名
数据类型
中文名
Men
admin
管理员
storeNo
char
仓库编号
shelfNo
Int
货架号
kinds
char
商品大类
1.3功能需求
系统要求能够按编号显示、查找、增加、删除、和保存各类货物的信息。
输入和输出货物的有关信息并且对输入保存文件里确定程序至少具备以下功能:
查询模块、增加模块、删除模块、货物的有关信息数据存盘等的基本模块。
系统具有“货物的有关信息数据存盘”的功能,所以货物的有关信息数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出货物的有关信息,可以方便用户使用,避免数据重复录入,考虑到系统实现简洁,货物数据文件采用文本文件,货物数据文件名:
store.txt。
作为一个仓库入库管理的系统,除了具有增加货物,删除货物的信息模块,还应该具有修改货物相关信息的功能,所以本系统具备了“商品入库”、“查询统计”、“商品报损”、“退出系统”,这4个基本功能,就可以以最简捷的方式实现对货物的管理,也就实现了系统的要求。
2.系统设计
2.1内存数据结构设计、数据文件设计
使用面向对象的程序设计进行分析,整个系统涉及两大类可操作,仓库、商品。
所以系统主要涉及两大类:
仓库类、商品类。
考虑系统操作的货物信息具有不确定性,所以考虑使用链表保存、处理货物信息。
仓库类包含:
所有货物信息的一个不带头结点的链表及可以对货物信息进行增,改,删除,查询,数量设置,数据存盘等操作的相关模块为成员函数。
所有货物都具有的公共信息及操作可以使用仓库类进行描述。
本实验设计假设3类货物:
食品、生活用品、服装,由于3类货物信息数据,操作基本相同,所以可以为他们创立相同的类,并且采用继承和派生。
classadmin//仓库管理员类
{
public:
admin();
private:
stringname;
};
classshelf//仓库货架类
{
public:
shelf();
private:
adminmen;//管理员
stringstoreNo;//仓库编号
stringkinds;//商品大类
stringshelfNo;//货架号
};
2.2输入/输出设计
由于仓库的入库管理数据是动态的,且为文本文件,所以,我利用所学的C++知识中《文件流》一节的知识,进行输入输出即商品入库操作。
具体的需要实现的代码如下:
//入库
voidmana:
:
in_storage()
{system("cls");
stringname;//商品名
doubleprice;//价格
stringstoreNo;//仓库编号
stringkinds;//商品大类
stringshelfNo;//货架号
longcount=0;//商品数量
cout< "< cout<<"\t商品名称: "; cin>>name; cout< "; cin>>price; cout< "; cin>>count; cout< "; cin>>storeNo; cout< "; cin>>kinds; cout< "; cin>>shelfNo; ofstreamstoreFile("store.txt",ios: : app); storeFile< : left)< < < < storeFile.close(); cout< system("pause");} 2.3用户界面设计 为了使用户界面更利于人机交互,故优化设计用户界面具体实现代码如下: charmana: : first_face() {system("cls"); cout< cout< < < < < < < < < < < < < < < returngetchar();} 2.4处理过程及其代码设计 处理过程即设计仓库入库后的一些操作: 即为查询,增加(入库),修改,报损、删除 voidmana: : select_ele() { while (1) { system("cls"); cout< cout<<"\t***************************"< <<"\t****"< <<"\t**商品查询**"< <<"\t****"< <<"\t**1.按商品名称查询**"< <<"\t****"< <<"\t**2.按商品价格查询**"< <<"\t****"< <<"\t**3.按大类查询**"< <<"\t****"< <<"\t**4.返回**"< <<"\t****"< <<"\t***************************"< charselect=getchar(); switch(select) { case'1': select_name(); break; case'2': select_price(); break; case'3': select_kind(); break; case'4': return; default: break; }}} voidmana: : select_name()//按商品名称查询 {system("cls"); cout< "< cout<<"\t输入商品名: "; stringname; cin>>name; stringname1;//商品名 doubleprice1;//介格 stringstoreNo1;//仓库编号 stringkinds1;//商品大类 stringshelfNo1;//货架号 longcount1=0;//商品数量 ifstreamstoreFile("store.txt"); if(! storeFile){ cout< ! ! "< system("pause"); return;} boolflag=false; cout< <<"商品大类"<<"货架号"< while(storeFile>>name1>>price1>>count1>>storeNo1>>kinds1>>shelfNo1) {if(name1==name) {flag=true; cout< : left)< < < < } } storeFile.close(); if(! flag) cout< ! ! "; cout< system("pause"); } voidmana: : select_price()//按商品价格查询 { system("cls"); cout< "< cout<<"\t输入价格: "; doubleprice; cin>>price; stringname1;//商品名 doubleprice1;//价格 stringstoreNo1;//仓库编号 stringkinds1;//商品大类 stringshelfNo1;//货架号 longcount1=0;//商品数量 ifstreamstoreFile("store.txt"); if(! storeFile) { cout< ! ! "< system("pause"); return; } boolflag=false; cout< <<"商品大类"<<"货架号"< while(storeFile>>name1>>price1>>count1>>storeNo1>>kinds1>>shelfNo1) { if(price1==price) { flag=true; cout< : left)< < < < } } storeFile.close(); if(! flag) cout< ! ! "; cout< system("pause"); } voidmana: : select_kind()//按大类查询 { system("cls"); cout< "< cout<<"\t输入大类名: "; stringkinds; cin>>kinds; stringname1;//商品名 doubleprice1;//介格 stringstoreNo1;//仓库编号 stringkinds1;//商品大类 stringshelfNo1;//货架号 longcount1=0;//商品数量 ifstreamstoreFile("store.txt"); if(! storeFile) { cout< ! ! "< system("pause"); return; } boolflag=false; cout< <<"商品大类"<<"货架号"< while(storeFile>>name1>>price1>>count1>>storeNo1>>kinds1>>shelfNo1) { if(kinds1==kinds) { flag=true; cout< : left)< < < < } } storeFile.close(); if(! flag) cout< ! ! "; cout< system("pause"); } voidmana: : call_break()//商品报损 { system("cls"); stringname;//商品名 cout< "< cout<<"\t商品名称: "; cin>>name; ifstreamstoreFile("store.txt"); if(! storeFile) { ofstreamstoreFile1("store.txt"); storeFile1.close(); cout< ! ! ! "< system("pause"); return; } boolflag=false; stringname1;//商品名 doubleprice1;//介格 stringkinds1;//商品大类 stringshelfNo1;//货架号 longcount1=0;//商品数量 ofstreamtempFile("temp.txt"); stringstoreNo1;//仓库编号 cout< "< cout< <<"商品大类"<<"货架号"< while(storeFile>>name1>>price1>>count1>>storeNo1>>kinds1>>shelfNo1) { if(name1==name) { flag=true; cout< : left)< < < < shelfNo1+="(损坏)"; } tempFile< : left)< < < < } tempFile.close(); storeFile.close(); if(! flag) { cout< ! ! "< system("pause"); return; } ofstreamstoreFile1("store.txt"); ifstreamtempFile1("temp.txt"); storeFile1< storeFile1.close(); tempFile1.close(); cout< ! ! "< cout<<"报损成功,记录已经更改! ! ! "< system("pause"); } 3.系统测试 3.1测试用例的描述 本实验,我根据需要系统需要实现的功能,简单设计了一些测试数据,具体内容如下: 商品名 价格 仓库编号 商品大类 货架号 商品数量 面包 5 1 食品 1 100 牛奶 4 1 食品 2 200 果汁 6 1 食品 3 300 风扇 100 2 生活用品 1 200 饰灯 500 2 生活用品 2 50 洗发水 80 2 生活用品 3 1000 洗衣粉 10 2 生活用品 4 2000 英语 40 3 书籍 1 100 电脑 60 3 书籍 2 200 外文 50 3 书籍 3 60 文学 20 3 书籍 4 30 3.2测试方法及测试结果 1.调试代码源程序,根据提示逐步输入表格所给的数据,即完成仓库的入库操作。 2.逐个测试系统功能是否符合要求,首先检查查询功能是否健全。 下图为商品查询功能界面 如键入数字3,可以按商品大类查询。 其他查询功能皆正常。 其次,检查仓库报损与删除功能是否正常。 在主用户界面键入数字4,进入商品报损功能。 在用户界面键入数字2,进行商品清除功能 查询商品,确认是否已经删除。 下图所示为至此测试步骤后,磁盘生成的文件。 牛奶42001食品2 果汁63001食品3 风扇1002002生活用品1 饰灯500502生活用品2 洗发水8010002生活用品3 洗衣粉1020002生活用品4 英语40100
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 基础 强化 课程设计