快递公司货物管理系统(共41页).docx
精选优质文档-倾情为你奉上快递公司货物管理系统软件课程设计 学院: 通信与电子工程学院 班级: 电子102 姓名: 谢超 陈万昌 于里超 指导老师: 题 原 日期: 2013年12月2日 专心-专注-专业摘 要随着电子商务和的蓬勃发展,快递物流作为现实与网络的实现基础,也得到了极大发展,成为了一个初具规模的新兴服务产业。由于电子商务与物流间密切的关系,电子商务这场革命必然对物流产生极大的影响。电子商务中快递公司成为了其中的重要组成力量,而快递公司又面临着很多行业的竞争,大量的货物给管理着也带来了不少的麻烦,这个影响是全方位的,从物流业的地位到物流组织模式、再到物流各作业、功能环节,都将在电子商务的影响下发生巨大的变化。本文开发了一款快递公司货物管理软件对电子商务的重要意义,根据快递公司货物管理员的需求对货物管理(货物进出库)做出快速反应,保证货物运输的高效和畅通。关键词: 电子商务 物流管理 配送体系目 录第1章 程序设计背景1.1 货物管理系统的意义快递货物管理系统是快递企业信息管理的主要部分,当库存管理实现计算机辅助核算后,大量的库存信息资源可以得到及时记录,汇总和分析并可通过网络系统迅速传递,提高库存信息的及时性,系统性,全面性和共享程度,有利于形成整个企业的管理信息系统网络,促进整个企业管理向现代化迈进。一直以来人们使用传统人工的方式管理货物中的各种物资设备,这种管理方式存在着许多缺点,如:效率低、另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对产品货物信息进行管理,具有着人工管理无法比拟的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可减少更多的人力物力,这些都能够极大地提高货品货物的管理效率,也是企业货物管理科学化、正规化,与世界接轨的重要条件。因此,开发一个货物管理系统是很有必要的,具有其特有的技术意义和管理意义。1.2 货物管理有关理论 货物是物流 >物流系统中企业储存原料、半成品、产成品的场所。货物经常将大批量的货物在货物中存放较长时间,而现代物流货物更强调货物的动态进出,尽量少的货物在货物中存放尽可能少的时间。货物在物流系统中的作用主要有运输整合、产品组合、直接转运、服务、偶发事件的防范和缓冲。货物管理的核心探讨库存。虽然“库存”不会记入月度损益,但它是资产负债表不可缺少的组成元素。有很多关于“时间”的财务绩效参数和非财务性绩效参数,例如,及时客户订单交付、现金周转、库存持有天数等等。对于企业来说,这些周转时间能反映出企业当前的经营状况。它们的改进必然有助于提高供应链的整体竞争力。1.3 程序准备实现目标 1、设计内容: 制作货物货物管理系统,实现数据录入、数据输出、数据查询等功。 2、设计要求: 1)可以对货物的存入、取出等操作记录 2)货物信息的查询 3)简单的报损统计功能第2章 功能分析2.1 系统的功能分析 1.货物发送信息:商品入库和商品出库 2.货物查询:货物的查询 3.货物报损:货物损坏报告2.2. 系统性能要求 1.系统安全、可靠; 2.功能齐全; 3.操作方便、界面友好; 4.易于维护和扩充。2.3项目简介设计快递公司的货物管理系统。此程序是为了货物管理员更好地处理货物。包括货物的货物的入库、出库、查询、报损。并且能够很好的让使用者了解货物存储的有关信息。系统要求能够按名称入库、出库、查询、报损货物的信息。输入和输出货物的有关信息并且对输入保存文件里确定程序至少具备以下功能:查询模块、增加模块、删除模块、货物的有关信息数据存盘等的基本模块。系统具有“货物的有关信息数据存盘”的功能,所以货物的有关信息数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出货物的有关信息,可以方便用户使用,避免数据重复录入,考虑到系统实现简洁,货物数据文件采用文本文件,货物数据文件名:date.dat。作为一个完整的系统,除了具有增加货物,删除货物的信息模块,还应该具有修改货物相关信息的功能, 所以本系统具备了“货物入库”、“货物出库”、“查询统计”、“货物报损”、“退出系统”,这5个基本功能,就可以以最简捷的方式实现对货物的管理,也就实现了系统的要求。第3章 程序设计思路3.1 模块框架图 货物货物管理系统有:商品入库、商品出库、货物查询、维护系统图3-1 系统框架图快递公司货物管理系统货物入库查询统计退出系统货物信息货物分类信息按货物名称查询按类货物别查询货物出库货物报损直接退出报损货物信息3.2 各模块功能简介3.2.1 货物入库货物管理系统选择界面输入数字:1 按 任输入入库货物的名称意键返输入项目编号回输入货物数量输入运费图3-2-1 货物入库流程3.2.2货物查询货物管理系统选择界面输入数字:31.按货物名查询3.按货物类型查询2.按运费查询 输入货物类型输入货物名输入运费 按任意键继续返回图3-2-2 货物查询流程3.2.3 货物报损货物管理系统选择界面输入数字:4输入报损货物名 按任意键继续返回图3-2-3 货物报损流程3.2.4 货物出库货物管理系统选择界面输入数字:2输入货物名称 按任意键继续返回 图3-2-4 货物出库流程第4章 系统实现过程4.1 系统采用的关键a.仓库管理员类class adminpublic:admin();private:string name;b.仓库货架类class shelfpublic:shelf();private:admin men;/管理员string storeNo;/仓库编号string kinds;/货物大类string shelfNo;/货架号;4.2 主要类说明使用面向对象的程序设计进行分析,整个系统涉及两大类可操作,仓库、商品。所以系统主要涉及两大类:仓库类、商品类。系统框架就是仓库类和商品类的定义;主函数中定义一个仓库对象,循环显示主菜单并根据用户选择调用仓库类的相应方法(成员函数)。考虑系统操作的货物信息具有不确定性,所以考虑使用链表保存、处理货物信息。仓库类包含:所有货物信息的一个不带头结点的链表及可以对货物信息进行增,改,删除,查询,数量设置,数据存盘等操作的相关模块为成员函数。所有货物都具有的公共信息及操作可以使用仓库类进行描述。由于系统具有3类货物且3类货物信息数据,操作基本相同,所以可以为他们创立相同的类,并且采用继承和派生。4.3 测试运行的结果1. 商场库存货物管理系统首页图4-1 货物管理系统2. 货物入库图4-2 货物入库3. 货物查询图4-3 货物查询4. 按货物名查询图4-4 按货物名查询5. 按货物运费查询图4-5 按运费查询6. 按货物类型查询图4-6 按货物分类查询7. 货物报损图4-7 货物报损8. 货物出库图4-8 货物出库第5章 总结 经过一段时间的课程设计,虽然完成了快递公司货物管理系统的设计,但是不可否认,其中还有有很多的不足,在本次设计中,只实现了其基本功能,很多强大的功能还没有实现,货物管理系统是快递企业信息管理中不可缺少的一部分,所以要实现它完整的功能还需要很多的改进,比如运用数据库。在这次课设中运用了面向对象的编程语言C+,通过定义类和对象,以及类的属性和方法实现基本功能,如出库和入库。这使得我们更进一步熟悉了面向对象机制。在这次课程设计中,由于对专业知识的掌握不够,我们遇到了很多问题,得到了老师和同学的帮助,借此感谢帮助过我们的老师和同学。总之,通过课程设计,使我们能把理论知识运用于实践,做出符合实际要求的软件。参考文献 1郑振杰,C+程序设计.人民邮电出版社,20052柴欣,C/C+程序设计.河北大学出版社,20023余苏宁、王明福,C+程序设计.高等教育出版社,20034 吕凤翥,C+语言程序设计(第2版).电子工业出版社,20075 李云清、杨庆红,揭安全.数据结构.人民邮电大学出版社,20046谭浩强,C+程序设计.清华大学出版社.2004 7钱能,C+程序设计.清华大学出版社.19998柴欣,C/C+程序设计.河北大学出版社.20029陈卫卫,C/C+程序设计.中国铁道出版社.200410谭浩强,C程序设计.清华大学出版社.2005附录源代码#include "stdafx.h"#include <iostream>#include <string>#include <fstream>#include <cassert>#include <iomanip>#include <conio.h>using namespace std;/仓库管理员类class adminpublic: admin();private: string name;/仓库货架类class shelfpublic:shelf();private:admin men;/管理员string storeNo;/仓库编号string kinds;/货物大类string shelfNo;/货架号;/electrical classclass elepublic:ele();private:string name;/货物名double price;/运费shelf sh;/所属货架long count;/货物数量;/管理(组合类)class manapublic:mana();char first_face();/首页void in_storage();/入库void out_storage();/ 出库void select_ele();/查询void select_name();/按货物名称查询void select_price();/按运费价格查询void select_kind();/按大类查询void call_break();/货物报损private:ele aele;shelf ashelf;admin abs;/电器类默认构造函数ele:ele():sh()name = "xxx"/货物名price = 0.0;/运费count = 0;/货物数量/仓库货架类默认构造函数shelf:shelf():men()storeNo = "xxx"/仓库编号kinds = "xxx"/货物大类shelfNo = "xxx"/货架号admin:admin()name = "xxx"/管理类默认构造函数mana:mana():aele(), ashelf(), abs()char mana:first_face()system("cls");cout << endl;cout <<endl <<"tt"<<endl <<"tt " <<endl <<"tt 快递库存货物管理系统 "<<endl <<"tt "<<endl <<"tt 1. 货物入库 "<<endl <<"tt "<<endl <<"tt 2. 货物出库 "<<endl <<"tt "<<endl <<"tt 3. 查询统计 "<<endl <<"tt "<<endl <<"tt 4. 货物报损 "<<endl <<"tt "<<endl <<"tt 5. 退出系统 "<<endl <<"tt "<<endl <<"tt"<<endl <<endl <<"tt"return _getch();/入库void mana:in_storage()system("cls");string name;/货物名double price;/运费string storeNo;/仓库编号string kinds;/货物大类string shelfNo;/货架号long count = 0; /货物数量cout << endl << "货物入库,请输入相关信息 : " << endl << endl ;cout << "t货物名称 : "cin >> name;cout << endl << "t货物运费 : "cin >> price;cout << endl << "t货物数量 : "cin >> count;cout << endl << "t仓库编号 : "cin >> storeNo;cout << endl << "t货物类型 : "cin >> kinds;cout << endl << "t货架编号 : " ;cin >> shelfNo;ofstream storeFile("store.txt", ios:app);storeFile << setiosflags(ios:left) << setw(20) << name << " "<< setw(15) << price << " " << setw(10) << count << " "<< setw(10) << storeNo << " " << setw(20) << kinds << " "<< shelfNo << endl;storeFile.close();cout << endl << endl << "t该货物已经入库." << endl << endl << "t"system("pause");/ 出库void mana:out_storage()system("cls");string name;/货物名cout << endl << "t货物出库,输入出库货物信息 : " << endl << endl;cout << "t货物名称 : "cin >> name;ifstream storeFile("store.txt");if (!storeFile)ofstream storeFile1("store.txt");storeFile1.close();cout << endl << endl << "t仓存为空!" << endl << endl << "t"system("pause");return;bool flag = false;string name1;/货物名double price1;/运费string storeNo1;/仓库编号string kinds1;/货物大类string shelfNo1;/货架号long count1 = 0; /货物数量ofstream tempFile("temp.txt");while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)if (name1=name)flag = true;elsetempFile << setiosflags(ios:left) << setw(20) << name1 << " "<< setw(15) << price1 << " " << setw(10) << count1 << " "<< setw(10) << storeNo1 << " " << setw(20) << kinds1 << " "<< shelfNo1 << endl;tempFile.close();storeFile.close();if (!flag)cout << endl << endl << "t仓库中没有这种货物!" << endl << endl << "t"system("pause");return;ofstream storeFile1("store.txt");ifstream tempFile1("temp.txt");storeFile1 << tempFile1.rdbuf();storeFile1.close();tempFile1.close();cout << endl << "t这些货物已经出库, 请仔细检查哟!" << endl << endl << "t"system("pause");/查询void mana:select_ele()while (1)system("cls");cout << endl << endl;cout << "t=" << endl<< "t| |" << endl<< "t| 货 物 查 询 |" << endl<< "t| |" << endl<< "t| 1. 按货物名称查询 |" << endl<< "t| |" << endl<< "t| 2. 按货物运费查询 |" << endl<< "t| |" << endl<< "t| 3. 按类型查询 |" << endl<< "t| |" << endl<< "t| 4. 返回 |" << endl<< "t| |" << endl<< "t=" << endl << endl << "tt"char select = _getch();switch (select)case '1':select_name();break;case '2':select_price();break;case '3':select_kind();break;case '4':return;default:break;/按商品名称查询void mana:select_name()system("cls");cout << endl << "t按货物名查询 : " << endl << endl ;cout << "t输入货物名 : "string name;cin >> name;string name1;double price1;string storeNo1;/仓库编号string kinds1;string shelfNo1;/货架号long count1 = 0; /商品数量ifstream storeFile("store.txt");if (!storeFile)cout << endl << endl << "t>_<|对不起,你的库存为空!" << endl << endl << "t"system("pause");return;bool flag = false;cout << endl << "货物名 " << "运费 " << "商品数量 " << "仓库编号 "<< "货物分类 " << "货架号" << endl << endl;while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)if (name1 = name)flag = true;cout << setiosflags(ios:left) << setw(15) << name1 << " "<< setw(10) << price1 << " " << setw(10) << count1 << " "<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "<< shelfNo1 << endl;storeFile.close();if (!flag)cout << endl << endl << "对不起,库存中没有这种货物!"cout << endl << endl;system("pause");/按商品价格查询void mana:select_price()system("cls");cout << endl << "t按货物运费查询 : " << endl << endl ;cout << "t输入运费 : "double price;cin >> price;string name1;double price1;string storeNo1;/仓库编号string kinds1;/大类string shelfNo1;/货架号long count1 = 0; /数量ifstream storeFile("store.txt");if (!storeFile)cout << endl << endl << "t对不起,你的库存为空!" << endl << endl << "t"system("pause");return;bool flag = false;cout << endl << "货物名 " << "运费 " << "货物数量 " << "仓库编号 "<< "货物分类 " << "货架号" << endl << endl;while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)if (price1 = price)flag = true;cout << setiosflags(ios:left) << setw(15) << name1 << " "<< setw(10) << price1 << " " << setw(10) << count1 << " "<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "<< shelfNo1 << endl;storeFile.close();if (!flag)cout << endl << endl << "对不起,库存中没有这个价格的货物!"cout << endl << endl;system("pause");/按大类查询void mana:select_kind()system("cls");cout << endl << "t按货物分类查询 : " << endl << endl ;cout << "t输入分类名称: "string kinds;cin >> kinds;string name1;double price1;string storeNo1;/仓库编号string kinds1;/大类string shelfNo1;/货架号long count1 = 0; /数量ifstream storeFile("store.txt");if (!storeFile)cout << endl << endl << "t对不起,你的库存为空!" << endl << endl << "t"system("pause");return;bool flag = false;cout << endl << "货物名 " << "运费 " << "货物数量 " << "仓库编号 "<< "货物大类 " << "货架号" << endl << endl;while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)if (kinds1 = kinds)flag = true;cout << setiosflags(ios:left) << setw(15) << name1 << " "<< setw(10) << price1 << " " << setw(10) << count1 << " "<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "<< shelfNo1 << endl;storeFile.close();if (!flag)cout << endl << endl << "对不起,库存中没有这类货物!"cout << endl << endl;system("pause");/货物报损void mana:call_break()system("cls");string name;/名cout << endl << "t货物报损,请输入要报损商品信息 : " << endl << endl;cout << "t货物名称 : "cin >> name;ifstream storeFile("store.txt");if (!storeFile)ofstream storeFile1("store.txt");storeFile1.close();cout << endl << endl << "t仓存为空!" << endl << endl << "t"system("pause");return;bool flag = false;string name1;/名double price1;/string kinds1;/大类string shelfNo1;/货架号long count1 = 0; /数量ofstream tempFile("temp.txt");string storeNo1;/仓库编号cout << endl << endl << "你想报损货物信息如下 : " << endl << endl;cout << endl << "货物名 " << "运费 " << "货物数量 " << "仓库编号 "<< "货物分类 " << "货架号" << endl << endl;while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)if (name1=name)flag = true;cout << setiosflags(ios:left) << setw(15) << name1 << " "<< setw(10) << price1 << " " << setw(10) << count1 << " "<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "<< shelfNo1 << endl;shelfNo1 += "(损坏)"tempFile << setiosflags(ios:left) << setw(20) << name1 << " "<< setw(15) << price1 << " " << setw(10) << count1 << " "<< setw(10) << storeNo1 << " " << setw(20) << kinds1 << " "<< shelfNo1 << endl;tempFile.close();storeFile.close();if (!flag)cout << endl << endl << "对不起,仓库中没有这种货物!" << endl << endl;system("pause");return;ofstream storeFile1("store.txt");ifstream tempFile1("temp.txt");storeFile1 << tempFile1.rdbuf();storeFile1.close();tempFile1.close();cout << endl << endl << "这些货物已经损坏,请尽快从仓库中取出!" << endl << endl;cout << "报损成功,记录已经更改!" << endl << endl ;system("pause");int main()char select;mana men;while (select = men.first_face()switch (select)case '1':men.in_storage();break;case '2':men.out_storage();break;case '3':men.select_ele();break;case '4':men.call_break();break;case '5':cout << "t" << "谢谢使用!" << endl << endl << "tt"exit( 0 );break;default:break;return 0;