汽车销售管理系统--课程设计(共19页).doc

上传人:飞****2 文档编号:13820824 上传时间:2022-05-01 格式:DOC 页数:19 大小:195.50KB
返回 下载 相关 举报
汽车销售管理系统--课程设计(共19页).doc_第1页
第1页 / 共19页
汽车销售管理系统--课程设计(共19页).doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《汽车销售管理系统--课程设计(共19页).doc》由会员分享,可在线阅读,更多相关《汽车销售管理系统--课程设计(共19页).doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上课程设计报告一、 需求分析描述问题,简述题目要解决的问题是什么?规定软件做什么。编写一个简单的4S店汽车销售管理程序,帮助管理汽车销售信息。要求具有汽车销售信息管理的功能。汽车销售信息管理包括汽车销售基本信息的录入、删除和修改等功能。本课程设计的具体任务就是设计一个汽车销售管理信息系统,它是一款利用现代计算机代替人工处理,从而减轻工作人员的劳动强度,提高工作质量和效率,提高信息资源的利用率和企业管理水平的实用销售管理系统。运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。本题程序应提供的基本管理功能有:1) 添

2、加:即增加一个汽车到汽车信息中;2) 显示:即在屏幕上显示所有汽车的信息。3) 存储:即将汽车信息保存在一个文件中。4) 装入:即将文件中的信息读入程序。5) 查询:可根据汽车数据查找汽车信息。若找到,显示在屏幕上。6) 修改:可修改汽车信息。二、算法设计1设计思想:程序结构(UML图),重要的数据结构; 主要算法思想(文字描述); 4S店汽车销售管理系统增加一个汽车到汽车信息中将汽车信息保存在一个文件中根据汽车编号修改汽车信息根据汽车编号查找汽车信息在屏幕上显示所有汽车的信息创建汽车类,每条汽车信息都用该类来实现,包含1汽车型号,2汽车编号,3汽车价格,4是否售出,5汽车颜色,6汽车品牌,7

3、生产厂家,8出厂时间,9产品售况,10外观描述等。用一个单向链表来管理汽车信息,作为链表的值指针指向这些类对象,通过链表的遍历可以操作这些数据。2设计表示:各个及其作用,每个函数的功能要详细描述;本课程设计包含三个类,分别是:节点类、链表类、汽车类,每个类都有成员函数,其中节点类仅有构造函数,用于节点类的初始化;在链表类中不仅有Link();/构造函数,初始化变量; bool linkIsEmpty();/判断链表是否为空; void linkInsert(Node *newnode);/向链表中插入新的结点; bool linkDelete(int nid);/从链表中删除的结点; void

4、 linkClear();/清空链表中数据; void linkView();/查看链表中数据; Node* linkFind(int nid);/在链表中查找id为nid结点,返回指向该结点的指针; Node* getHead();/获取头指针;在汽车类中,Car();Car:Car()/构造函数,对变量进行初始化; Link();/调用成员对象的构造函数; carLoad();/从文件中读取数据,创建链表; void carClear();/清空汽车记录; void carInsert();/判断汽车编号是否存在,插入汽车记录设置数据被修改; void carDelete();/删除汽车记

5、录; void carFind();/查找某编号的汽车记录;void carModify();/修改某编号的汽车信息,链表为空的情况,获得找到的结点的指针,指针值不为(为)NULL时; void carView();/显示所有汽车的记录; void carLoad();/从文件中读入数据,创建链表,关闭文件,读取汽车信息; void carSave();将数据保存到文件;void Exit();/退出程序/判断数据是否修改; void showMenu();/显示菜单; void showTip();/显示操作提示; void doMenu(char n);/执行相应菜单项功能;在主函数mai

6、n()函数中,运用switch开关语句进行选择菜单的编写,输入相应的数字以实现对应的功能。运用文件保存软件项目信息,并可实现对相关信息的读取。运用system(cls)对所有数据进行清除操作即清除屏幕。3实现注释:任务中各项要求的实现程度;在完成基本要求的基础上运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。程序应输入不少于10个汽车信息,应考虑到汽车型号相同的情况。这个要求的完成情况与实现程度与要求相比稍有瑕疵,因为我对于汽车的情况了解有限,所以仅实现了以下几个功能:清空:清除所有汽车数据,添加:增加一个汽车到汽车信息中,删除:删除

7、指定汽车数据,查找:根据汽车数据查找汽车信息,修改:可修改汽车信息,显示:在屏幕上显示所有汽车的信息,存储:将汽车信息保存在一个文件中,退出:安全的退出本系统 。 4算法设计中一些新的想法:在主要描述本算法的应用或发现其不足之处或有新的思路和想法方面,程序要求中没有要求该系统具有删除汽车信息的功能,之后将其加上,感觉这个系统就更加完善了,功能更加齐全了。三、 用户手册请按提示进行操作,在选择功能时,应在指定的数字范围中进行输入,否则将会提示输入错误,在进行日期输入时,形如的形式输入,操作完成时,应进行保存,否则系统会自动提示你进行保存。四、 调试及测试在调试过程中遇到的一些问题时不可避免的,我

8、会看书和上网查询去解决。比如,当我用DEV-CPP编写的程序时, 编译后 ,运行, 闪一下就没了?后来上网查询才把这个问题给解决:在return 0下面加一个getchar();可以了。五、小结就本课程设计进行小结,可以包括设计过程收获,本系统的不足及有待改进之处。就本课程设计,我认为非常符合当今的世界格局,汽车如今已经成为我们生活中必不可少的东西,基于4S店的汽车管理系统是非常符合生活实际的设计课题。但是,要运用C+中的类的思想来完成还是有一定难度的。在实际编程中也的确如此,对汽车类的编写,及模块化的操作说实话的确却很难,因此用了网上的资源进行了整合,但是字字都是自己编写的,其中艰辛汗水都是

9、真正的付出,可把我给累挺了!此外还对c+和c语言的联系有了些许了解,比如在C+下的头文件是许多C语言头文件,在C+下的头文件通常改头换面变成前面加个c,后面去掉.h,如:math.h stdlib.h cmath cstdlib 等等。整个系统的设计过程对于我来说算是个学习、探索的过程,通过实践和对比别人开发程序的过程。在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是前期工作不彻底,对系统的需求分析的要求认识不够清楚,使得在后边的工作中不得不经常反复去修改。使我体会到设置中每一步的重要性。所以在分析一个问题时,我们需要站在一个有远见的高度。通过此次设计,我不但对C+语

10、言编程有了更深刻的认识,积累了使用软件工程的思想来开发软件的经验,更重要的是学会了在对待问题时应该考虑到哪些方面和怎么解决问题。虽然时间紧迫但我学会了很多,也感到自身知识的贫乏,希望在日后的努力中能做出更完善的系统。六、参考文献1郑莉 等编著C+语言程序设计(第四版)北京:清华大学出版社,2010.72郑莉 等编著C+语言程序设计(第三版)上机用书北京: 清华大学出版社3李春葆 等编著C+程序设计学习与上机实验指导 北京:清华大学出版社4范辉 等编著Visual C+6.0程序设计简明教程 高等教育出版社5李龙澍C+程序设计实训教程北京:清华大学出版社 6洪国胜 等编著 C+ Builder程

11、序设计轻松上手北京:清华大学出版社7严蔚敏等 数据结构(c语言版) 北京:清华大学出版社,1997年4月第1版。8胡学钢等数据结构算法设计指导北京:清华大学出版社,1999年 第1版。附录:1、源程序清单:#include /cin cout #include#include#include /文件输入输出流类、磁盘文件的流缓冲区类#include /字符串输入输出流类、字符串缓冲区流类#include /setw操作符域宽设置using namespace std;class Node/结点类,用于存放汽车的各种数据public: int id; /汽车编号 string name; /汽车

12、型号string sale; /是否售出string color; /汽车颜色int price; /汽车价格string firm; /生产厂商int outtime; /出厂时间 Node *next; /指向下一结点的指针 Node(int nid=0,string nname=noname,string nsale=0,string ncolor=0,int nprice=0,string nfirm=0,int nouttime=0);/构造函数,初始化变量;class Link/Link类,把数据以链表的形式存储,链表的每个结点为一个Node对象private: Node *hea

13、d; /链表的头指针,为Node对象类型的指针public : Link();/构造函数,初始化变量 bool linkIsEmpty();/判断链表是否为空 void linkInsert(Node *newnode);/向链表中插入新的结点 bool linkDelete(int nid);/从链表中删除的结点 void linkClear();/清空链表中数据 void linkView();/查看链表中数据 Node* linkFind(int nid);/在链表中查找id为nid结点,返回指向该结点的指针 Node* getHead();/获取头指针;Node:Node(int ni

14、d,string nname,string nsale,string ncolor,int nprice,string nfirm,int nouttime) id=nid; name=nname;sale=nsale;color=ncolor;price=nprice;firm=nfirm;outtime=nouttime; next=NULL;Link:Link() /构造函数,初始化链表为空 head=NULL;bool Link:linkIsEmpty() /判断链表是否为空,空则返回true return(head=NULL);void Link:linkInsert(Node *n

15、ewnode) /按id值从小到大的顺序,插入新的结点 Node *p1; if(!head)/链表为空的情况 head=newnode; else if(head-id)(newnode-id) /插入到第一个结点的情况 newnode-next=head; head=newnode; else /插入到第二个及以后情况 p1=head; while(1) if(!(p1-next) p1-next=newnode; break; else if(p1-next)-idnewnode-id) newnode-next=p1-next; p1-next=newnode; break; p1=p

16、1-next; bool Link:linkDelete(int nid) /删除结点,成功则返回true Node *p; if(head=NULL)/链表为空的情况 return false; if(head-id=nid) /删除的为第一个结点的情况 head=head-next; return true; p=head; while(p-next) /删除的为第二个及以后结点的情况 if(p-next)-id=nid) p-next=(p-next)-next; return true; p=p-next; return false;void Link:linkClear() /清空链

17、表 head=NULL;Node* Link:linkFind(int nid) /查找id值为nid的结点,返回该结点的指针 Node *p=head; /没找到符合条件的结点的话,返回的指针值为NULL while(p) if(p-id=nid) break; else p=p-next; return p;void Link:linkView() /显示链表数据 Node *p=head; coutsetw(6)汽车编号 setw(10)汽车型号 setw(10)是否售出 setw(10)汽车颜色 setw(10)汽车价格 setw(10)生产厂家 setw(10)出厂时间endl; w

18、hile(p) coutsetw(6)id setw(10)name setw(10)sale setw(10)color setw(10)price setw(10)firm setw(10)outtimenext; Node* Link:getHead() return head;/类Car,用于包装Link类及菜单操作class Carprivate: Link clink;/Link对象成员 bool k;/记录数据是否被修改public: Car(); void carClear(); void carInsert(); void carDelete(); void carFind(

19、);void carModify(); void carView(); void carLoad(); void carSave(); void Exit();/退出程序 void showMenu();/显示菜单 void showTip();/显示操作提示 void doMenu(char n);/执行相应菜单项功能;Car:Car() Link();/调用成员对象的构造函数 carLoad();/从文件中读取数据,创建链表 k=false;/设置数据被修改void Car:carClear() /清空汽车记录 clink.linkClear(); cout成功清空汽车记录!endl;vo

20、id Car:carInsert() /插入汽车记录 Node *p=new Node(); coutp-id; coutp-name;coutp-sale;coutp-color;coutp-price;coutp-firm;coutp-outtime; if(!clink.linkFind(p-id) /判断汽车编号是否存在 clink.linkInsert(p); k=true; else cout汽车编号为id的车已存在,插入失败!endl;void Car:carDelete() /删除汽车记录 int i; if(clink.linkIsEmpty()/链表为空的情况 cout没有

21、汽车记录!endl; else couti; if(clink.linkDelete(i) cout成功删除编号为i的汽车记录!endl; k=true; else cout没有找到编号为i的汽车!endl; void Car:carFind() /查找某编号的汽车记录 int n; Node *p; if(clink.linkIsEmpty()/链表为空的情况 cout没有汽车记录!endl; else coutn; p=clink.linkFind(n);/获得找到的结点的指针 if(p) /指针值不为NULL时 coutsetw(6)汽车编号 setw(10)汽车型号 setw(10)是

22、否售出 setw(10)汽车颜色 setw(10)汽车价格 setw(10)生产厂家 setw(10)出厂时间endl; coutsetw(6)id setw(10)name setw(10)sale setw(10)color setw(10)price setw(10)firm setw(10)outtimeendl; else/指针值为NULL时 cout没有找到编号为n的汽车记录!endl; void Car:carModify() /修改某编号的汽车信息 int n; Node *p; if(clink.linkIsEmpty()/链表为空的情况 cout没有汽车记录!endl; e

23、lse coutn; p=clink.linkFind(n);/获得找到的结点的指针 if(p) /指针值不为NULL时 cout原汽车信息为:endl;coutsetw(6)汽车编号 setw(10)汽车型号 setw(10)是否售出 setw(10)汽车颜色 setw(10)汽车价格 setw(10)生产厂家 setw(10)出厂时间endl; coutsetw(6)id setw(10)name setw(10)sale setw(10)color setw(10)price setw(10)firm setw(10)outtimeendl;cout请输入新的汽车信息endl;coutp

24、-id; coutp-name;coutp-sale; coutp-color; coutp-price; coutp-firm; coutp-outtime; else/指针值为NULL时 cout没有找到编号为n的汽车记录!endl; void Car:carView() /显示所有汽车的记录 if(clink.linkIsEmpty() cout没有汽车记录!endl; else clink.linkView();void Car:carLoad() /从文件中读入数据,创建链表 Node *p; int nid; ifstream infile(data.txt); if(!infil

25、e) cerrnid) /读取汽车编号,直到读空 p=new Node(); p-id=nid; infilep-namep-salep-colorp-pricep-firmp-outtime;/读取汽车信息 clink.linkInsert(p); infile.close(); /关闭文件void Car:carSave() /将数据保存到文件 Node *p=clink.getHead(); ofstream outfile(data.txt); if(!outfile) cerr错误:数据文件不能打开!n; else while(p) outfileid name id name sa

26、le color price firm outtimenext; k=false; cout保存成功!endl; void Car:Exit() char s=Y; if(k) /判断数据是否修改 couts; if(s=y|s=Y) carSave(); cout已安全退出,; system(pause); exit(0);void Car:showMenu() cout|-|endl;cout| 汽车销售管理系统 |endl; cout|-|endl;cout| 1.清空:清除所有汽车数据 |endl;cout| 2.添加:增加一个汽车到汽车信息中 |endl;cout| 3.删除:删除指

27、定汽车数据 |endl;cout| 4.查找:根据汽车数据查找汽车信息 |endl;cout| 5.修改:可修改汽车信息 |endl;cout| 6.显示:在屏幕上显示所有汽车的信息 |endl;cout| 7.存储:将汽车信息保存在一个文件中 |endl;cout| 0.退出:安全的退出本系统 |endl; cout|-|endlendl;void Car:showTip() coutendl; cout-操作完成-endl; cout-选择继续下一个操作-endl; cout请选择:;void Car:doMenu(char n) switch(n) case 1: carClear();

28、 break; case 2: carInsert(); break;case 3: carDelete();break; case 4: carFind(); break;case 5: carModify(); break; case 6: carView(); break; case 7: carSave(); break; case 0: Exit(); break; default: cout输入错误!; int main() Car c; char i=9; c.showMenu(); couti; system(cls); /清除屏幕 c.showMenu(); c.doMenu(i); c.showTip(); 2、测试数据:3、运行结果:(1)添加汽车信息(2)修改汽车信息(3)显示汽车信息(4)删除汽车信息(5)保存汽车信息专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁