面向对象程序设计实验报告

时间:2024.4.7

湖南涉外经济学院

课程设计报告

课程名称:    面向对象程序设计     

报告题目: 汽车销售系统的设计与实现       

学生姓名:

所在学院:   信息科学与工程学院    

专业班级:

学生学号:

指导教师:         黄    胜        

 2015 年6 月20日


摘  要

本次课程设计的是汽车销售系统,本汽车销售系统定义了对汽车品牌、名字、类型、版本、颜色、售价的排序类以及用户结账时的打折方式类。在管理员函数中中还建立了对总业绩进行计算并查看。本次课程设计报告中提供了源程序代码,并展示了系统使用和运行效果。最后给出了高级语言程序设计过程中的总结,其中包含本程序设计,查阅的参考文献等方面的内容。

在本次课程设计中,通过建立CCarMenu类中的函数能够使管理员对汽车信息进行增加、删除、修改、查找操作,并在建立的函数中对销售菜单的写入和读取,在CCarMenu类中定义一个私有的容器用来存放每次打开系统后的销售清单,并方便管理员对容器内销售清单的调用。

在CCraMenuItem类中对汽车的品牌、名字、类型、版本、颜色、售价、成本价进行定义,并建立与之对应的修改和读取函数。在CCarMenuItem类中最后建立了操作提示的函数来告诉系统操作符与之对应的操作。

关键词:汽车销售;汽车信息;汽车购买;程序设计 

目   录

一、概述................................................................................................................... - 1 -

1、背景............................................................................................................. - 1 -

2、使用工具..................................................................................................... - 1 -

3、成员工作分配............................................................................................. - 1 -

二、 系统设计......................................................................................................... - 2 -

1、功能模块图................................................................................................. - 2 -

2、流程图......................................................................................................... - 3 -

3、类图............................................................................................................. - 5 -

4、相关类及函数的详细描述......................................................................... - 6 -

三、代码实现........................................................................................................... - 9 -

1、主界面显示................................................................................................. - 9 -

2、用户界面................................................................................................... - 10 -

3、管理员界面............................................................................................... - 16 -

4、使用说明................................................................................................... - 20 -

四、心得体会......................................................................................................... - 21 -

 

 


一、概述

1、背景

随着时代的发展,人工销售系统已经无法满足汽车销售店对汽车销售的需求,只有将销售系统信息化才能减轻人们的需求。然而汽车销售系统是典型的信息系统,其开发应该满足用户对汽车进行查看与购买,以及管理员对汽车信息的增加、删除、修改、查找,并对日总业绩进行查看。能够使系统对销售菜单进行菜单的写入和读取。

2、使用工具

Microsoft Visual C++ 6.0简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大的可视化软件开发工具。

StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强。

Office Visio 20## 是一款便于IT和商务专业人员就复杂信息、系统和流程进行可视化处理、分析和交流的软件。使用具有专业外观的 Office Visio 20## 图表,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。

3、成员工作分配

组长石凯文:负责程序代码的编写和程序的实现,并对课程设计报告进行最                        后的检查和修改。

组员银  柯:负责程序最后的调试和检测,对程序进行完善并撰写报告。

组员李其忠:负责报告的补充和报告的制图与插入。

组员王  晶:负责报告初步检查和报告的打印。

二、系统设计

1、功能模块图

功能模块图应当含有对整个程序所有功能的简单描述与其程序中功能的正确连线。功能模块图如图2.1所示:

 


图2.1 功能模块图

2、流程图

用户使用流程图如图2.2所示:

图2.2 用户使用流程图

管理员使用流程图如图2.3所示:

图2.3 管理员使用流程图

3、类图

类图如下图2.4所示:

图2.4 类图

4、相关类及函数的详细描述

CCarMenuItem          //汽车子菜单信息类

SetBrand()                               //品牌 修改函数

GetBrand()                               //品牌 读取函数

SetName()                                //车名 修改函数

GetName()                               //车名 读取函数

SetColour()                              //颜色 修改函数

GetColour()                              //颜色 读取函数

SetVersion()                             //版本 修改函数

GetVersion()                             //版本 读取函数

SetType()                                  //类型 修改函数

GetType()                                 //类型 读取函数

SetMoney()                              //售价 修改函数

GetMoney()                             //售价 读取函数

SetIprice()                                //成本价 修改函数

GetIprice()                               //成本价 读取函数

Show()                                     //显示函数

operator==()                             //操作提示==函数

operator<<()                             //操作提示<<函数

operator>>()                             //操作提示>>函数

CCarMenu                 //汽车菜单类

AddCCarMenuItem()                     //添加函数

DelCCarMenuItem()                //删除函数

FindCCarMenuItem()              //查找函数

Empty()                                    //致空函数

ShowMenu()                            //显示菜单函数

Show()                                     //显示函数

SortByBrand()                         //品牌排序函数

SortByName()                          //名字排序函数

SortByVersion()                       //版本排序函数

SortByType()                           //类型排序函数

SortByColour()                        //颜色排序函数

SortByMoney()                        //售价排序函数

SaveFile()                                 //写入函数

LoadFile()                                //读取函数

                    

CCarDiscount                          //汽车打折类

Caculate()                                 //计算函数

NoDiscount                              //不打折类

Caculate()                                 //计算函数

VipDiscount                             //VIP打折类

Caculate()                                 //计算函数

BrandCmp                               //品牌排序类

operator()                                 //排序操作函数

NameCmp                                //名字排序类

operator()                                 //排序操作函数

TypeCmp                                  //类型排序类

operator()                                 //排序操作函数

VersionCmp                             //版本排序类

operator()                                 //排序操作函数

CColourCmp                            //颜色排序类

operator()                                 //排序操作函数

MoneyCmp                              //售价排序类

operator()                                 //排序操作函数

AddMenuItem()                      //添加汽车菜单函数

DelMenuItem()                        //删除汽车菜单函数

DelOrderCCarMenuItem()      //退订汽车菜单函数

Help()                                       //首页使用说明帮助函数

Main()                                      //主函数函数

Main_Interface()                      //主函数界面菜单函数

Manager_Interface()                //管理员菜单函数

OrderCCarMenuItem()            //排序购买菜单函数

SelectDiscount()                      //打折菜单函数

ShopCCarMenuItem()             //购车菜单函数

User_Interface()                       //用户菜单函数

三、代码实现

 1、主界面显示

主界面显示如下图3.1所示:

图3.1 主界面显示

代码如下:

void Main_Interface()

{

bool flag=false;

while(!flag)

{

system("cls");

out<<"________________________________________________________"<<endl;

cout<<"                  涉外汽贸SSSS店                      "<<endl;

cout<<"                       首页                            "<<endl;

cout<<"                     温馨提示:使用前请先查看使用说明!                   "<<endl;

cout<<"                     1、用户界面                       "<<endl;

cout<<"                     2、管理界面                       "<<endl;

cout<<"                     3、使用说明                       "<<endl;

cout<<"                     4、退出                           "<<endl;

cout<<"_______________________________________________________"<<endl;

cout<<"                  请输入您的选择(1~3):";

int sel;

cin>>sel;

       //******以下代码省略******

}//while

}//Main_Interface()

2、用户界面

用户界面显示如下图3.2所示:

图3.2用户界面显示

代码如下:

void user_Interface()

{

//******以上代码省略******

       while(!flag)

       {

              system("cls");

              cout<<"______________________________________________ "<<endl;

              cout<<"____________ 涉外汽车SSSS店__________________"<<endl;

              cout<<"  ____________用户购车清单_________________    "<<endl;

              cout<<"               1、显示已购清单                 "<<endl;

              cout<<"               2、选择排序购车                 "<<endl;

              cout<<"               3、放弃已选汽车                 "<<endl;

              cout<<"               4、结帐并返回                   "<<endl;

              cout<<"_______________________________________________"<<endl;

              cout<<"             请输入您的选择(1~4):";

              int sel;

              cin>>sel;

//******以下代码省略******

       }//while

}//user_Interface()

1)显示已购清单

显示已购清单代码如下:

void ShopCCarMenuItem(CCarMenu & saleMenu)

{    

//******以下代码省略******

       while(!flag)

       {

              system("cls");

              menus.ShowMenu();//显示主菜单

cout<<"__________________________________________ ____"<<endl;

              cout<<"        请输入您要购买的汽车:";

              cin>>sel;

//******以下代码省略******

              }//while

}//ShopCCarMenuItem

2)排序方式查看

排序方式进行查看代码如下:

void OrderCCarMenuItem(CCarMenu & saleMenu)

{

//******以上代码省略******

       while(!flag)

       {

       system("cls");

       cout<<"____________________________________________________"<<endl;

       cout<<"  ________________涉外汽车SSSS店___________________"<<endl;

       cout<<"               1、以品牌字母顺序查看购买            "<<endl;

       cout<<"               2、以车名字母顺序查看购买            "<<endl;

       cout<<"               3、以类型字母顺序查看购买            "<<endl;

       cout<<"               4、以版本字母顺序查看购买            "<<endl;

       cout<<"               5、以颜色字母顺序查看购买            "<<endl;

       cout<<"               6、以售价从低到高查看购买            "<<endl;

       cout<<"               7、返回                                       "<<endl;

       cout<<"___________________________________________________"<<endl;    cout<<"请输入您的选择(1~7):";

              int i;

              cin>>i;

              switch(i)

              {

              case 1:

                     menus.SortByBrand();

                     menus.ShowMenu();

                     ShopCCarMenuItem(saleMenu);

                     break;

              case 2:

                     saleMenu.SortByName();

                     menus.ShowMenu();

                     system("pause");

                     ShopCCarMenuItem(saleMenu);

                     break;

              case 3:

                     saleMenu.SortByType();

                     menus.ShowMenu();

                     system("pause");

                     ShopCCarMenuItem(saleMenu);

                     break;

              case 4:

                     saleMenu.SortByVersion();

                     menus.ShowMenu();

                     system("pause");

                     ShopCCarMenuItem(saleMenu);

                     break;

              case 5:

                     saleMenu.SortByColour();

                     menus.ShowMenu();

                     system("pause");

                     ShopCCarMenuItem(saleMenu);

                     break;

              case 6:

                     saleMenu.SortByMoney();

                     menus.ShowMenu();

                     system("pause");

                     ShopCCarMenuItem(saleMenu);

                     break;

              case 7:

                     flag=true;

                     break;

              default:

                     cout<<"您输入的数字不正确,请重新输入!"<<endl;

                     break;

              }//switch

       }//while

}//OrderCCarMenuItem

3)退订汽车菜单

退订汽车代码如下:

void DelOrderCCarMenuItem(CCarMenu &saleMenu)

{

//******以上代码省略******

       while(!flag)

       {

              system("cls");

              saleMenu.ShowMenu ();//显示所订菜单

              cout<<"________________________________________________"<<endl;

              cout<<"  _______________涉外汽车SSSS店________________"<<endl;

              cout<<"             请输入您申请要退的车:";          

cin>>sel;

              //******以下代码省略******

       }//while

}//DelOrderCCarMenuItem

4)选择打折的方式

选择打折的方式代码如下:

double SelectDiscount(CCarMenu &saleMenu)

{

//******以上代码省略******

       while(!flag)

       {

       system("cls");

       cout<<"__________________________________________________"<<endl;

       cout<<"____________________涉外汽车SSSS店_______________"<<endl;

       cout<<"                       打折方式:                   "<<endl;

       cout<<"                      1、VIP打 折                 "<<endl;

       cout<<"                      2、不 打 折                  "<<endl;

       cout<<"___________________________________________________"<<endl;

       cout<<"                      请输入您的方式:";

       cin>>sel;      

              if(sel==1)

              {

                     cout<<"               请输入打折的尺度:";

                     float dis=0;

                     cin>>dis;

                     ptr=new VipDiscount(dis);

                     return ptr->Caculate (saleMenu);

              }

              else if(sel==2)

              {

                     ptr= new NoDiscount();

                     return ptr->Caculate(saleMenu);           

              }

              //******以下代码省略******

       }//while

       return 0;

}//SelectDiscount

3、管理员界面

管理员界面如下图3.3所示:

图3.3 管理员界面

代码如下:

void Manage_Interface()

{

//******以下代码省略******

while(!flag)

{

system("cls");

cout<<"_________________________ ___________________ "<<endl;

cout<<"  ______________涉外汽贸SSSS店___________  "<<endl;

cout<<"    ______________管理员通道____________    "<<endl;

cout<<"                 1、显示车辆信息            "<<endl;

cout<<"                 2、添加车辆信息            "<<endl;

cout<<"                 3、删除车辆信息             "<<endl;

cout<<"                 4、结算日总业绩             "<<endl;

cout<<"                 5、返回并保存信息           "<<endl;

cout<<"____________________________________________ "<<endl;

cout<<"请输入您的选择(1~5):";

int sel;

cin>>sel;

//******以下代码省略******

}//while

}//Manage_Interface()

1)添加汽车信息菜单

添加菜单代码如下:

void AddMenuItem( ) //添加菜单

{

//******以上代码省略******

       while(!flag)

       {    

       system("cls");

       cout<<"____________________________________________________"<<endl;

       cout<<"  ________________涉外汽贸SSSS店__________________ "<<endl;

       cout<<"                     添加菜单                      " <<endl;

       cout<<"                               请输入品牌:";         

cin>>brand;

       cout<<"\n                              请输入车名:";        

cin>>name;

       cout<<"\n                              请输入类型:";     

cin>>type;

       cout<<"\n                              请输入版本:";   

cin>>version;

       cout<<"\n                              请输入颜色:";       

cin>>colour;

       cout<<"\n                              请输入售价:";       

cin>>money;

       cout<<"\n                              请输入成本价:";   

cin>>iprice;

                            //******以下代码省略******

       }//while

}//AddMenuItem

2)删除汽车信息菜单

删除菜单代码如下:

void DelMenuItem( )

{

       //******以上代码省略******

       while(!flag)

       {

              system("cls");

              menus.ShowMenu ();//显示主菜单

              cout<<"             请输入您要删除车辆的信息:";

              cin>>sel;

              if(sel>menus.GetVector().size())

              {           

              cout<<"    ◆您的输入不正确,请在有效范围内输入!  "<<endl;

              cout<<"___________________________________________"<<endl;

              cout<<""<<endl;

              system("pause"); 

              }

              else

              {

                     menus.DelCCarMenuItem ( (menus.GetVector ())[sel-1] );

                     cout<<"是否继续删除车辆信息?(yes or no):";

                     cin>>s;

                     if (s=="no")

                     {

                            flag=true;

                     }

              }//if

       }//while

}//DelMenuItem

3)日总业绩结算

float total=0;

int x=0;

vector<CCarMenuItem> v=totalSaleMenu.GetVector ();

vector<CCarMenuItem>::iterator iter=v.begin();

                    

for(iter=v.begin();iter!=v.end();iter++)

{

              total+=( (*iter).GetMoney()-(*iter).GetIprice() ) ;

++x;

}

cout<<"今天到现在为止共销售"<<x<<" 台车,总盈利"<<total<<"元 "<<endl;

cout<<"_____________________________________________________"<<endl;

system("pause");

4、使用说明

管理员界面如下图3.4所示:

图3.4使用说明

代码如下:

void Help()

{

cout<<"_________________________________________________   "<<endl;

cout<<"  _________________涉外汽贸SSSS店_____________    "<<endl;

cout<<" ◆本软件是测试软件,若要使用本软件,请先将文件夹根目"<<endl;

cout<<"     ◆SSSSCar.txt复制到计算机的D盘根目录!                 "<<endl;

cout<<"                                                                                                   "<<endl;

system("pause");

}

四、心得体会

通过这两个星期汽车销售系统的设计与实现,我在多方面都有所提高。首先,整体与局部的把握,以及在系统设计前,需要整体思考汽车销售系统所包含的信息及其实现的功能,在设计过程中,再思考局部功能实现的完整性与整个程序的结合。

通过查阅课本、资料,进行对类、容器、迭代器和算法的熟悉和使用。让我了解了将汽车销售清单保存在容器中能够随时方便管理员对容器中的内容进行调用。在我制作的销售系统中,我在管理员界面的结算总业绩中通过迭代器遍历了容器中保存的所有销售车辆数和每台车的销售利润,并使用算法对所有销售车辆数进行相加,得到总销售车辆数,以及使用算法对每台车的销售利润进行相加,得到总销售利润。

其次,在实现管理员权限设置这个功能时,通过实现不同的人设置不同的操作。最后在整个程序运行时,考虑到汽车销售系统应该能够写入和读取汽车的信息,在制作程序时就通过系统自动建立了一个SSSSCar.txt的文本文档,能够将汽车信息添加保存到SSSSCar.txt文本文档中,并对SSSSCar.txt中的汽车信息进行读取。

通过这次课程设计使我对面向对象程序设计进行了系统复习,并使我独立思考能力方面有了适量提高,也让我知道了我在容器和迭代器的使用中的问题就是对容器和迭代器的不熟悉。我应该多看看课本以及资料,并学会其中的内容才能解决问题。

参考文献

[1] 郑莉、董渊、何江舟编著.《C++语音程序设计》.(第四版). 北京:清华大学出版社,2014

[2] 作者:Stanley B.Lippman .译者:李师贤、蒋爱军、梅晓勇、林瑛.《C++ Primier》中文版.(第四版).人民邮电出版社,2006

[3] 作者:Scott Meyers .译者:侯捷.《Effective C++》中文版. 华中科技大学出版社.2001

 

更多相关推荐:
面向对象程序设计实验报告

面向对象程序设计之课程设计上海电力学院课题名称院系专业学号姓名时间地点指导教师课程设计报告面向对象程序设计20xx20xx学年第一学期模仿ATM机存取款管理系统设计电子与信息工程学院通信工程20xx年1月12日...

面向对象程序设计实验报告

面向对象程序设计实验报告姓名学号班级专业学院实验三函数的应用一实验目的掌握函数的定义和调用方法练习重载函数使用练习函数模板的使用练习使用系统函数二实验步骤编写函数floatConvertfloatTempFer...

面向对象程序设计实验报告

题目11问题描述建立一个二维坐标系的类TwoCoor用xy表示坐标值实现两坐标点的加减运算计算两坐标点间的距离并重载输入输出运算符使之能够直接输入输出坐标点的坐标值2实现代码includeltiostreamg...

面向对象程序设计实验报告

综合实验报告面向对象程序设计专业名称班级姓名学号信息科学与工程学院二零一三年七月信息科学与工程学院面向对象程序设计综合实验报告目录第一题111题目概述112设计思路113设计说明与调试分析14编码实现15程序运...

面向对象程序设计实验报告一

课程实验报告课程名称面向对象程序设计实验名称面向过程的整型栈编程院系计算机科学与技术专业班级学号姓名指导教师年日面向对象程序设计实验报告一需求分析1题目要求整型栈是一种先进后出的存储结构对其进行的操作通常栈括判...

面向对象程序设计实验报告

教案20xx20xx学年第一学期学院系室计算机科学系课程名称面向对象程序设计专业年级班级12计算机嵌入式系统网络和信息安全班主讲教师蒋琳琼梧州学院面向对象程序设计教案课时分配理论课39学时实验课12学时共51学...

面向对象程序设计实验报告-实验一

北京理工大学珠海学院实验报告ZHUHAICAMPAUSOFBEIJINGINSTITUTEOFTECHNOLOGY班级13级计算机3班学号13020xx31037姓名郑永雄指导教师谭忠兵实验题目类和对象实验时间...

《Java程序设计》上机实验报告 实验二 初步的面向对象的程序设计练习

信息科学与工程学院Java程序设计上机实验报告专业班级姓名学号实验时间指导教师成绩注实验记录及个人小结部分不够可另附页或在背面续写第页注实验记录及个人小结部分不够可另附页或在背面续写第页注实验记录及个人小结部分...

黑龙江大学面向对象程序设计Java实验讲义20xx

Java语言程序设计实验讲义黑龙江大学计算机科学技术学院20xx年3月前言Java语言程序设计实验在面向对象程序设计的基础上阐述Java语言的编程基础及其设计方法内容包括Java程序的输入输出表达式与运算符结构...

11级《面向对象程序设计课程设计》任务书

11级C语言程序设计课程设计任务书适应于11级软件工程20xx221805820xx22180912一课程设计的目的与要求1教学目的在面向对象程序设计课程理论与实验教学的基础上根据软件工程的方法与流程在相对集中...

《面向对象程序设计》实验指导书

面向对象程序设计实验指导书第一部分实验教学大纲课程名称面向对象程序设计实验一课程简介及基本要求面向对象的程序设计是一门实践性很强的课程每个学生必须完成一定数量的上机作业通过上机作业进一步加深对课程基本内容的理解...

Java面向对象程序设计语言课程设计指导书

山东建筑大学商学院电子商务专业Java面向对象程序设计语言课程设计实验指导书一对学生的基本要求1理论联系实际严肃认真实事求是的科学态度和勇于探索的创新精神2运用所学基础理论与专业知识分析和解决实际问题培养独立思...

面向对象程序设计实验报告(23篇)