仓库管理系统C++课程设计报告

时间:2024.4.9

《高级语言程序设计》

课程设计报告

设计题目      图书管理系统      

         计算机科学与技术  

                    

                        

               

             2007 年6 月 5


       

1.设计目的…………………………………………………3

2.设计思想…………………………………………………3

3.类及对象设计……………………………………………4

4.程序源代码………………………………………………5

5.调试记录…………………………………………………16

6.总结………………………………………………………18

   仓库管理系统

1.         设计目的

     通过实习进一步掌握所学的基本知识,学会解决实际问题的方法

2    设计题目

1、问题描述(功能要求):某公司现有以下设备:普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。

2、问题的解决方案: 

根据系统功能要求,可以将问题解决分为以下步骤:

(1)分析系统中的各个实体之间的关系及其属性和行为;

(2)根据问题描述,设计系统的类层次;

(3)完成类层次中各个类的描述(包括属性和方法);

(4)完成类中各个成员函数的定义;

(5)完成系统的应用模块;

(6)功能调试;

(7)完成系统总结报告以及系统使用说明书。

2.设计思想

(1) 设计class admin管理库,实现对仓库信息的描叙; class shelf柜台类库实现建立电器资料;class ele电器类,实现对电器的描述,电器的编号,货架号,名称,数量,价格等;class mana函数类,实现对电器的入库,查找,出库等。以下是函数功能表:

(2)用类的成员函数对链表的数据进行操作,其功能如上表所列。

(3)设计菜单来实现功能设计

       1、 输入商品

       2、 商品查找

       3、 查询入库

       4、 商品出库

       5 、退出系统

3.设计类及对象

(1) 本程序定义了四个类,定义如下:

class admin

{

public:

admin();

private:

string name;

};

class shelf

{

public:

shelf();

private:

string storeNo;//仓库编号

string shelfNo;

admin we;//货架号

};

class ele

{

public:

ele();

private:

string name;//商品名

double price;//介格

shelf sh;//所属货架

long count;//商品数量

};

class mana

{

public:

mana();

char first_face();//首页

void show_storage();//显示

void in_storage();//入库

void out_storage();// 出库

void select_ele();//查询

void select_name();//按商品名称查询

void select_price();//按商品价格查询

void call_s();//商品保存

void show_storage1();

private:

admin  abs;

ele aele;

shelf ashelf;

};

ele::ele():sh()

{

name = "xxx";//商品名

price = 0.0;//介格

count = 0;//商品数量

}

(2)分别利用类class admin 、class shelf、class ele 、class mana 定义了各自的对象admin abs、shelf sh; ele aele; 对其函数进行调用实现各种功能。

(3)主函数实现,调用各种函数。

4.程序源代码

#include <iostream>

#include <string>

#include <fstream> 

#include <iomanip>

#include <conio.h>

using namespace std;

class admin

{

public:

admin();

private:

string name;

};

class shelf

{

public:

shelf();

private:

string storeNo;//仓库编号

string shelfNo;

admin we;//货架号

};

class ele

{

public:

ele();

private:

string name;//商品名

double price;//介格

shelf sh;//所属货架

long count;//商品数量

};

class mana

{

public:

mana();

char first_face();//首页

void show_storage();//显示

void in_storage();//入库

void out_storage();// 出库

void select_ele();//查询

void select_name();//按商品名称查询

void select_price();//按商品价格查询

void call_s();//商品保存

void show_storage1();

private:

admin  abs;

ele aele;

shelf ashelf;

};

ele::ele():sh()

{

name = "xxx";//商品名

price = 0.0;//介格

count = 0;//商品数量

}

shelf::shelf():we()

{

storeNo = "xxx";//仓库编号

shelfNo = "xxx";;//货架号

}

admin::admin()

{

name = "xxx";

}

mana::mana():aele(), ashelf(), abs()

{

}

char mana::first_face()

{

system("cls");

cout << endl;

cout <<endl <<"\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆"

<<endl <<"\t\t◆ ◆"

<<endl <<"\t\t◆ 公司库存货物管理系统 ◆"

<<endl <<"\t\t◆ ◆"

<<endl <<"\t\t◆ 1. 输入商品 ◆"

<<endl <<"\t\t◆ ◆"

<<endl <<"\t\t◆ 2. 商品查找 ◆"

<<endl <<"\t\t◆ ◆"

<<endl <<"\t\t◆ 3. 查询入库 ◆"

<<endl <<"\t\t◆ ◆"

<<endl <<"\t\t◆ 4. 商品出库 ◆"

<<endl <<"\t\t◆ ◆"

<<endl <<"\t\t◆ 5. 退出系统 ◆"

<<endl <<"\t\t◆ ◆"

<<endl <<"\t\t◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆" <<endl <<endl <<"\t\t";

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

ofstream storeFile("store.txt", ios::app);

storeFile << setiosflags(ios::left) << setw(20) << name << " "

<< setw(15) << price << " " << setw(10) << count << " "

<< setw(10) << storeNo << " "

<< shelfNo << endl;

storeFile.close();

cout << endl << endl << "\t该商品已经入库......." << endl << endl << "\t";

system("pause");

}

void mana::show_storage(){

bool flag2 = false;

string name2;//商品名

double price2;//介格

string storeNo2;//仓库编号

string shelfNo2;//货架号

long count2 = 0; //商品数量

ifstream showFile("store.txt");

if (!showFile)

{

cout << "\t对不起,你的库存为空!!!" << endl << endl << "\t";

system("pause");

return;

}

cout << endl << "商品名 "<<"    " << "价格 "<<"   " << "商品数量 " <<"  "<< "仓库编号 "

<<"    " << "货架号" << endl << endl;

while (showFile >> name2 >> price2>> count2>> storeNo2 >>shelfNo2)

{

cout << setiosflags(ios::left) << setw(10) << name2 << " "

<< setw(10) << price2<< " " << setw(10) << count2<< " "

<< setw(10) << storeNo2 << " "

<< shelfNo2 << endl;

}

showFile.close();

getchar();

}

   

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 shelfNo1;//货架号

long count2;

long count1 = 0; //商品数量

ofstream tempFile("temp.txt");

while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >>  shelfNo1)

{

if (name1==name)

flag=true;

while(name1==name)

{

cout<<"\t请输入要取出的商品数量:";

cin>>count2;

count1=count1-count2;

break;

}

tempFile << setiosflags(ios::left) << setw(10) << name1 << " "

<< setw(15) << price1 << " " << setw(10) << count1 << " "

<< setw(10) << storeNo1 << " " <<setw(10)<< 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=============================================================" << endl << endl << "\t\t";

char select = getch();

switch (select)

{

case '1':

select_name();

break;

case '2':

select_price();

break;

case '3':

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 shelfNo1;//货架号

long count1= 0; //商品数量

ifstream storeFile("store.txt");

if (!storeFile)

{

cout << "\t对不起,你的库存为空!!!" << endl << endl << "\t";

system("pause");

return;

}

bool flag = false;

cout << endl << "商品名 " << "价格 " << "商品数量 " << "仓库编号 "

 << "货架号" << endl << endl;

while (storeFile >> name1>> price1 >> count1 >> storeNo1 >>  shelfNo1)

{

if (name1 == name)

{

flag = true;

cout << setiosflags(ios::left) << setw(15) << name1 << " "

<< setw(10) << price1 << " " << setw(10) << count1 << " "

<< setw(10) << storeNo1 << " "

<< shelfNo1 << endl;

}

}

storeFile.close();

if (!flag)

cout << endl << endl << "对不起,库存中没有这种商品!!!";

cout << endl << endl;

system("pause");

}

void mana::show_storage1(){

string name2;//商品名

double price2;//介格

string storeNo2;//仓库编号

string shelfNo2;//货架号

long count2 = 0; //商品数量

ifstream tempFile3("temp.txt");

while (tempFile3 >> name2 >> price2>> count2>> storeNo2 >>shelfNo2)

{

cout << setiosflags(ios::left) << setw(10) << name2 << " "

<< setw(10) << price2<< " " << setw(10) << count2<< " "

<< setw(10) << storeNo2 << " "

<< shelfNo2 << endl;

}

tempFile3.close;

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

while (storeFile >> name1 >> price1 >> count1 >> storeNo1  >> shelfNo1)

{

if (price1 == price)

{

flag = true;

cout << setiosflags(ios::left) << setw(15) << name1 << " "

<< setw(10) << price1 << " " << setw(10) << count1 << " "

<< setw(10) << storeNo1 << " "

<< shelfNo1 << endl;

}

}

storeFile.close();

if (!flag)

cout << endl << endl << "对不起,库存中没有这个价格的商品!!!";

cout << endl << endl;

system("pause");

}

int main()

{

char select;

mana men;

while (select = men.first_face())

{

switch (select)

{

case '2':

men.show_storage();

break;

case '3':

men.select_ele();

break;

case '1':

men.in_storage();

break;

case '4':

men.out_storage();

break;

case '6':

men.show_storage1();

case '5':

cout << "\t" << "谢谢使用!!!!" << endl << endl << "\t\t";

exit( 0 );

break;

default:

break;

}

}

return 0;

}

5.调试纪录

1、电器管理界面

2、程序的主界面以及图书维护界面

3、查找读者功能界面

6.总结

   通过这次课程设计,让我了解了更多关于设计时容易出现的错误,而且进一步的认识到平时学习积累的重要性。在刚进行编译的时候发现了很多的错误,都是平时应该注意的细节问题,还好与同学进行了很好的交流,得以纠正错误。

   由于能力问题,我只能设计这个简单的图书管理系统。它存在很多缺陷,在很多地方都存在不足。编写程序最重要的是谨慎,认真,因为哪怕是一个字符或一个标点的错误都会导致程序的错误,从而使程序无法调试运行。

   由这次编写课程设计的过程中让我更加了解到了自己的不足,那就是对编写程序的经验不足以及对理论知识的掌握不够透彻,以致程序中还存在许多缺点。

如:在程序中还有部分功能不能按我的意识表达运行,当经人指点还是比较不错的实现了。

参考资料

  本程序参考书本:<< C++程序设计课程设计>>

<<  高级语言C++程序设计>>

更多相关推荐:
仓库管理系统课程设计报告

湖北文理学院程序设计课程设计报告项目名称仓库管理系统学生姓名张三学号20xx19xx17班级物联网1311日期20xx19xx17年9月9日一需求分析1项目描述仓库管理系统用于仓库的货物管理实现货物信息的维护等...

数据库课程设计报告(仓库管理系统)

数据库课程设计报告(仓库管理系统)三概要设计3.1ER图和相关说明类别(类别编号,类别名称,上级类别)仓库(仓库编号,隶属单位,备注)用户(用户名,密码,权限类型);客户(客户编号,联系人,单位,联系电话,传真…

(实训报告)数据库技术课程设计仓库管理系统

数据库技术课程设计题目姓名学号班级时间目录1需求分析1111仓库管理系统的功能分析112仓库管理系统的功能图22概念结构设计33逻辑结构设计54数据库设计541数据库和各表的创建6411数据表结构设计6412创...

(实训报告)数据库技术课程设计仓库管理系统

数据库技术课程设计题目姓名学号班级时间目录1需求分析1111仓库管理系统的功能分析112仓库管理系统的功能图22概念结构设计33逻辑结构设计54数据库设计541数据库和各表的创建6411数据表结构设计6412创...

软件项目管理课程设计仓库管理系统

目录一课程设计的目的及要求1二课程设计的任务1三课程设计题目1四课程设计的内容及主要步骤1五课程设计总结4一课程设计的目的及要求在掌握使用ClearCase和ClearQuest对软件项目进行配置管理的基础上每...

仓库管理系统 毕业设计_文献综述

文献综述题目仓库管理系统设计与实现学生姓名xxxxx专业班级网络工程信息安全xxxx班学号54xxxxxxxxxx院系计算机与通信工程学院指导教师职称xx讲师完成时间20xx年5月12日仓库管理系统设计与实现专...

射频识别课程基于射频识别技术(RFID)的仓库管理设计报告[1]

四川理工学院课程设计书学院计算机学院专业物联网工程20xx1班课程RFID原理及应用题目基于射频识别技术的仓库管理系统教师何志勇学生设计时间20xx年7月5日至20xx年7月11日摘要某大型制造企业目前使用的是...

图书管理系统-数据库课程设计实验报告

计算机科学与工程学院题目基于数据库课程设计报告书CS模式的图书管理系统的设计所学专业计算机软件与理论班级作者指导老师完成日期20xx年08月08日内容提要本文介绍了一个基于ClientServer模式的高校图书...

数据库课程设计报告之图书管理系统

数据库课程设计报告院系班级课题教师学生目录一需求分析3二系统结构设计3三数据库设计5四三层架构及设计10BookManageSystemModelBookManageSystemCommonBookManage...

数据库课程设计_图书管理系统

题目基于大学计算机科学与工程学院数据库课程设计报告书CS模式的图书管理系统的设计所学专业计算机软件与理论班级作者指导老师完成日期20xx年08月08日内容提要本文介绍了一个基于ClientServer模式的高校...

数据库课程设计报告图书管理系统

数据库系统实验报告课程数据库系统院系计算机学院班级成绩学号姓名学号姓名指导教师李波日期年月日目录1数据库设计311需求分析312概念模式设计313关系模式设计42数据库编程621表的创建622数据的修改823查...

图书管理系统数据库课程设计报告书

电子商务数据库技术课程设计报告题目图书管理系统院系专业班级学号学生姓名指导教师说明1内容要求整个课程设计分为五部分分别为需求分析数据库系统设计数据库详细设计数据库实现和应用程序的设计与实现每部分按要求完成设计任...

仓库管理系统课程设计报告(8篇)