汽车销售管理系统--课程设计
汽车销售管理系统sql课程设计

目录一、概述: (2)1.1目的及要求: (2)1.2系统环境: (2)二、需求分析: (2)2.1需求功能的分析 (2)2.1.1能够对4S店拥有的各种汽车的基础信息进行维护和管理 (2)2.1.2跟踪各个员工的销售业绩 (3)2.1.3跟踪各种汽车的销售信息 (3)2.2需求模块分析: (3)三、数据库系统设计 (3)3.1概念结构设计: (3)3.2数据逻辑结构设计: (4)3.2.1车辆信息管理: (4)3.2.2员工信息管理: (4)3.2.3客户信息管理: (4)3.2.4精品管理: (5)3.3总代码 (5)3.4表之间关系图: (9)四、系统实现: (10)1、销售管理 (10)2、SQL身份验证的用户账户新建及权限设置 (11)3、数据库的备份与还原 (12)3.1备份 (12)3.2还原 (13)五、结论及个人总结 (14)六、参考文献 (15)一、概述:1.1目的及要求:本系统是为解决汽车销售公司的管理问题而设计。
随着经济的发展和国内汽车市场的不断扩大,某汽车销售公司定单成倍增加,各项业务更加细化,各部门分工更加明确,这就要求要有一个高效、可靠的数据库系统来实现该公司的日常事务的管理,而目前的人工管理方式显然已是不符合现代企业的管理要求。
基于整体考虑,本次课程设计任务就是设计一个管理系统,应用到4S店日常的销售和管理工作中,可以做到汽车信息的规范管理、快速查询和科学统计,利用计算机来代替人工操作,减轻了员工的劳动强度,提高了劳动质量和效率,减少了错误的发生。
本次设计,从需求分析,概念设计,逻辑设计,物理设计,到数据库的建立、运行,再到数据库的安全维护等各个方面进行了详细的分析设计。
并且值得一提的是,我认真分析了企业的业务需求,公司的主要职责和主要结构等信息,从而保证了设计出比较符合公司需要的管理系统。
1.2系统环境:SQL server 2000Windows7 操作系统二、需求分析:2.1需求功能的分析本系统的设计模拟一般的汽车4S销售管理系统内容,经过系统分析和调研,本系统主要包括的信息有4类:车辆信息、员工信息、客户信息以及精品管理。
车辆销售管理系统课程设计

车辆销售管理系统课程设计车辆销售管理系统课程设计随着汽车行业的不断发展,车辆销售管理系统也越来越成为汽车销售企业的重要组成部分。
本文将介绍一种基于Web的车辆销售管理系统的课程设计。
一、系统需求分析1.1 系统功能该系统主要包括以下功能:(1)车辆信息管理:包括车辆基本信息、车辆图片、车辆价格等。
(2)客户信息管理:包括客户基本信息、购车意向、购车时间等。
(3)订单管理:包括订单信息、订单状态、订单金额等。
(4)库存管理:包括车辆库存信息、车辆状态、车辆数量等。
(5)销售统计:包括销售额、销售量、销售排名等。
1.2 系统架构该系统采用B/S架构,即浏览器/服务器架构。
客户端采用浏览器作为用户界面,服务器端采用Java Web技术实现。
1.3 系统设计(1)数据库设计:采用MySQL数据库,设计车辆信息表、客户信息表、订单信息表、库存信息表等。
(2)界面设计:采用Bootstrap框架设计界面,实现响应式布局。
(3)业务逻辑设计:采用Spring MVC框架实现业务逻辑,包括车辆信息管理、客户信息管理、订单管理、库存管理、销售统计等。
二、系统实现2.1 系统环境(1)操作系统:Windows 10(2)开发工具:Eclipse、MySQL Workbench、Tomcat(3)技术框架:Spring MVC、Hibernate、Bootstrap、jQuery2.2 系统功能实现(1)车辆信息管理:实现车辆信息的添加、修改、删除、查询等功能。
(2)客户信息管理:实现客户信息的添加、修改、删除、查询等功能。
(3)订单管理:实现订单信息的添加、修改、删除、查询等功能。
(4)库存管理:实现车辆库存信息的添加、修改、删除、查询等功能。
(5)销售统计:实现销售额、销售量、销售排名等统计功能。
2.3 系统界面实现采用Bootstrap框架设计界面,实现响应式布局,适应不同屏幕大小的设备。
2.4 系统性能测试对系统进行性能测试,测试结果表明系统能够满足正常使用的需求。
汽车销售管理系统c课程设计

汽车销售管理系统 c 课程设计一、教学目标本课程旨在通过学习“汽车销售管理系统”的相关知识,让学生掌握汽车销售管理的基本原理和方法,培养学生运用信息技术解决实际问题的能力。
具体的教学目标如下:1.知识目标:学生能够理解汽车销售管理的基本概念、流程和关键环节,掌握系统分析、设计和管理的基本方法。
2.技能目标:学生能够运用编程语言和数据库技术,独立开发一个简单的汽车销售管理系统,培养学生解决实际问题的能力。
3.情感态度价值观目标:通过课程学习,使学生认识到信息技术在汽车销售管理领域的重要性,增强学生对信息技术行业的热爱和责任感。
二、教学内容本课程的教学内容主要包括以下几个部分:1.汽车销售管理概述:介绍汽车销售管理的基本概念、流程和关键环节,使学生了解汽车销售管理的重要性。
2.系统分析与设计:讲解系统分析的基本方法,培养学生运用信息技术解决实际问题的能力。
3.数据库设计与应用:介绍数据库的基本概念和应用,教授学生如何运用数据库技术管理汽车销售数据。
4.编程技术与应用:学习编程语言,培养学生独立开发汽车销售管理系统的技能。
5.项目管理:讲解项目管理的基本方法和技巧,培养学生团队合作和项目管理的能力。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
具体方法如下:1.讲授法:通过讲解基本概念、原理和方法,使学生掌握汽车销售管理的基础知识。
2.讨论法:学生针对实际问题进行讨论,培养学生的思考能力和团队协作精神。
3.案例分析法:分析典型汽车销售管理案例,使学生学会运用所学知识解决实际问题。
4.实验法:让学生动手实践,独立开发汽车销售管理系统,提高学生的实际操作能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料。
2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT、教学视频等,提高学生的学习兴趣。
车辆销售管理课程设计

车辆销售管理课程设计一、课程目标知识目标:1. 让学生理解并掌握车辆销售管理的基本概念、原则和方法。
2. 使学生了解我国汽车销售市场的发展现状及趋势。
3. 帮助学生掌握汽车销售过程中的各个环节,如客户接待、需求分析、产品介绍、谈判与签约等。
技能目标:1. 培养学生运用所学知识分析汽车销售案例的能力。
2. 提高学生进行客户沟通、需求分析和销售谈判的实践技能。
3. 培养学生运用现代管理工具和手段进行车辆销售管理的能力。
情感态度价值观目标:1. 培养学生对汽车销售行业的兴趣和热情,提高职业认同感。
2. 培养学生具备良好的团队合作精神和服务意识。
3. 增强学生的法律意识和社会责任感,使其遵循职业道德,诚信经营。
分析课程性质、学生特点和教学要求,本课程旨在使学生在了解汽车销售管理基本知识的基础上,培养其实践操作能力和职业素养。
通过课程学习,使学生能够具备从事汽车销售及相关工作的基本能力,为未来的职业发展奠定基础。
课程目标具体、可衡量,便于教学设计和评估。
二、教学内容1. 车辆销售管理概述- 了解车辆销售管理的定义、作用和基本原则。
- 熟悉我国汽车销售市场的发展历程、现状及未来趋势。
2. 车辆销售流程- 掌握客户接待、需求分析、产品介绍、谈判与签约等环节的操作要领。
- 学习销售过程中的客户沟通技巧、异议处理方法。
3. 车辆销售策略- 研究市场调研、产品定位、价格策略、促销策略等方面的内容。
- 分析不同客户群体,制定针对性的销售策略。
4. 车辆销售管理工具与技巧- 学习现代管理工具在汽车销售中的应用,如客户关系管理(CRM)等。
- 掌握销售团队管理、销售业绩评估和激励机制。
5. 汽车销售法律法规与职业道德- 了解汽车销售行业相关法律法规,提高法律意识。
- 培养学生遵循职业道德,诚信经营的价值观。
教学内容根据课程目标进行选择和组织,保证科学性和系统性。
教学大纲明确教学内容安排和进度,与教材章节相对应。
通过本章节学习,使学生全面掌握车辆销售管理知识,为实践操作和未来职业发展奠定基础。
vb课程设计汽车销售管理系统

vb课程设计汽车销售管理系统一、教学目标本课程旨在通过学习VB课程设计汽车销售管理系统,使学生掌握以下知识目标:1.理解VB编程语言的基本语法和编程思想。
2.掌握汽车销售管理系统的业务流程和需求分析。
3.学习VB中数据库的连接和操作方法,了解数据绑定和数据验证的技术。
4.能够运用VB编程语言独立完成简单的程序设计。
5.能够使用VB进行汽车销售管理系统的需求分析和设计。
6.能够熟练运用VB中的数据库连接和操作技术,实现对汽车销售管理系统的数据管理。
情感态度价值观目标:1.培养学生的团队协作能力和自主学习能力。
2.使学生理解信息技术的应用对提高工作效率和管理水平的重要性。
3.培养学生对汽车销售管理行业的兴趣和热情。
二、教学内容本课程的教学内容主要包括以下几个部分:1.VB编程语言基础知识:VB的基本语法、数据类型、控制结构、函数等。
2.汽车销售管理系统的需求分析:了解汽车销售管理系统的业务流程,学习如何进行需求分析。
3.VB数据库连接与操作:学习如何使用VB连接数据库,进行数据的增删改查等操作。
4.汽车销售管理系统的实现:运用VB编程语言和数据库技术,实现汽车销售管理系统的各个功能模块。
三、教学方法为了提高教学效果,我们将采用以下教学方法:1.讲授法:讲解VB编程语言的基础知识和数据库技术。
2.案例分析法:分析实际案例,让学生更好地理解汽车销售管理系统的需求分析和设计。
3.实验法:让学生动手实践,实际操作VB编程和数据库操作,巩固所学知识。
四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:《VB编程语言》和《汽车销售管理系统设计与实现》。
2.参考书:提供相关的VB编程和数据库技术参考书籍。
3.多媒体资料:制作相关的教学PPT和视频教程。
4.实验设备:提供计算机实验室,让学生进行实际操作。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂参与、小组讨论、提问等环节,评估学生的学习态度和参与程度。
轿车销售系统课程设计

轿车销售系统课程设计一、教学目标本课程旨在通过学习轿车销售系统,使学生掌握轿车销售的基本流程,了解轿车销售的基本策略和方法,提高学生的轿车销售能力。
知识目标:使学生掌握轿车销售的基本知识,包括轿车销售的基本流程、轿车销售的基本策略和方法。
技能目标:通过实践,使学生能够熟练操作轿车销售系统,提高学生的轿车销售能力。
情感态度价值观目标:培养学生热爱销售职业,树立正确的销售观念,提高学生的职业素养。
二、教学内容本课程的主要内容包括轿车销售系统的基本流程、轿车销售的基本策略和方法。
首先,我们会介绍轿车销售系统的基本流程,包括客户接待、车辆介绍、试驾安排、价格谈判、合同签订、车辆交付等环节。
其次,我们会介绍轿车销售的基本策略和方法,包括如何寻找潜在客户、如何进行客户接待、如何进行车辆介绍、如何进行价格谈判等。
三、教学方法为了提高学生的学习兴趣和主动性,我们将采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。
在讲授法的基础上,我们会学生进行讨论,让学生分享自己的经验和看法,增强学生的参与感。
同时,我们会提供一些真实的销售案例,让学生进行案例分析,提高学生的实际操作能力。
最后,我们会学生进行实验,让学生在实际操作中掌握轿车销售的基本流程和策略。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备适当的教学资源,包括教材、参考书、多媒体资料、实验设备等。
教材方面,我们将选择权威的轿车销售教材,以确保学生能够接触到最新的轿车销售知识和技巧。
参考书方面,我们会推荐一些轿车销售的的经典书籍,让学生能够深入理解轿车销售的本质。
多媒体资料方面,我们会制作一些轿车销售的演示文稿和视频,让学生能够更直观地了解轿车销售的过程。
实验设备方面,我们会准备一些轿车销售模拟设备,让学生能够在实际操作中掌握轿车销售的基本流程和策略。
五、教学评估为了全面反映学生的学习成果,本课程将采用多种评估方式,包括平时表现、作业、考试等。
汽车销售管理系统课程设计报告

软件工程综合课程设计报告题目:汽车销售管理系统子课题:销售子系统学号:10267071姓名:班级:10计72教师:祝义江苏师范大学计算机科学与技术学院目录1 需求分析 (3)1.1 系统编写目的 (3)1.2 背景说明及开发意义 (3)3.3 系统需求分析 (5)1.4 功能需求分析 (5)1.4.1 系统的功能描述 (5)1.4.2 系统总体功能层次方框图 (6)1.4.3 汽车销售系统流程图 (6)1.5 数据需求 (7)1.5.1 数据需求描述 (7)1.5.2 数据字典 (8)2 概念设计 (9)2.1 概念设计的目的 (10)2.1 实体分析及其局部E-R图 (11)2.2 实体之间的联系及其ER图 (12)3.3 系统全局ER图 (13)3 总体设计 (14)3.1 怎样实现目标系统 (15)3.2 顶层数据流图 (16)3.3 0层数据流图 (17)3.4 进销退货数据流图 (17)4 详细设计 (18)4.1 系统总的程序流程图 (18)4.2 各子模块的程序流程图 (19)4.2.1 系统管理子模块流程图 (19)4.2.2 车辆管理子模块流程图 (20)4.2.3 销售管理子模块流程图 (20)4.2.4 入库管理子模块流程图 (20)4.2.5 查询分析子模块流程图 (21)5 总结与展望 (21)5.1 总结 (21)5.2 展望 (21)1 需求分析该汽车销售管理系统的需求分析将从背景说明及意义、系统编写目的、系统需求分析、功能需求分析等几个方面来描述。
1.1 系统编写目的本系统是以汽车基本信息为主体,以汽车供应商和汽车需求商为服务对象,通过对各种票据和日志信息的管理操作,需要达到以下目标:1、实现从客户来访、咨询、报价、订购,到采购等多个销售环节上的严密的跟踪管理服务;2、使既可以适合于多品牌车辆的销售,也可以适用于专卖店的管理;3、能够很快地将市场信息反馈到各职能部门,制定相应策略。
汽车销售管理系统.net课程设计

汽车销售管理系统.net课程设计一、课程目标知识目标:1. 学生能理解.NET平台的基本原理和开发环境配置。
2. 学生能掌握C#编程语言的基础知识,包括数据类型、控制结构、类与对象等。
3. 学生能掌握SQL语言基础,实现简单的数据库操作。
4. 学生能理解汽车销售管理系统的业务流程和功能需求。
技能目标:1. 学生能运用.NET技术,设计并实现汽车销售管理系统的界面和功能模块。
2. 学生能运用C#编程语言,实现系统的业务逻辑处理。
3. 学生能运用SQL语言,实现数据的增删改查操作。
4. 学生能通过团队协作,完成一个完整的汽车销售管理系统的开发和部署。
情感态度价值观目标:1. 学生培养对软件开发工作的兴趣和热情,增强职业责任感。
2. 学生养成严谨、细致、勤奋的工作态度,提高自我管理和团队协作能力。
3. 学生通过课程学习,认识到信息技术在汽车行业中的重要作用,增强对行业发展的关注。
本课程针对高年级计算机及相关专业学生,结合.NET技术、C#编程和数据库知识,培养学生开发实际应用系统的能力。
课程注重实践操作和团队协作,使学生能够将所学知识应用于实际项目中,提高解决实际问题的能力。
通过本课程的学习,学生将具备一定的汽车销售管理系统开发经验,为将来从事软件开发和管理工作奠定基础。
二、教学内容平台基础:包括.NET Framework的组成、原理,Visual Studio开发环境配置和使用。
2.C#编程语言:数据类型、变量与常量、控制结构、异常处理、类与对象、继承与多态。
3.数据库基础:SQL语言基础、数据库设计、表的设计与操作、简单查询与复杂查询。
4.汽车销售管理系统需求分析:学习系统需求分析的方法和步骤,明确系统功能模块和业务流程。
5.系统设计:界面设计、数据库设计、系统架构设计、模块划分与功能实现。
6.系统实现:使用C#编程实现各功能模块,包括用户登录、汽车信息管理、销售管理、库存管理等。
7.系统测试与部署:学习系统测试方法,编写测试用例,进行功能测试和性能测试;掌握系统部署流程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告一、需求分析描述问题,简述题目要解决的问题是什么?规定软件做什么。
编写一个简单的4S店汽车销售管理程序,帮助管理汽车销售信息。
要求具有汽车销售信息管理的功能。
汽车销售信息管理包括汽车销售基本信息的录入、删除和修改等功能。
本课程设计的具体任务就是设计一个汽车销售管理信息系统,它是一款利用现代计算机代替人工处理,从而减轻工作人员的劳动强度,提高工作质量和效率,提高信息资源的利用率和企业管理水平的实用销售管理系统。
运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。
本题程序应提供的基本管理功能有:1)添加:即增加一个汽车到汽车信息中;2)显示:即在屏幕上显示所有汽车的信息。
3)存储:即将汽车信息保存在一个文件中。
4)装入:即将文件中的信息读入程序。
5)查询:可根据汽车数据查找汽车信息。
若找到,显示在屏幕上。
6)修改:可修改汽车信息。
二、算法设计1.设计思想:程序结构(UML图),重要的数据结构; 主要算法思想(文字描述);创建汽车类,每条汽车信息都用该类来实现,包含1汽车型号,2汽车编号,3汽车价格,4是否售出,5汽车颜色,6汽车品牌,7生产厂家,8出厂时间,9产品售况,10外观描述等。
用一个单向链表来管理汽车信息,作为链表的值指针指向这些类对象,通过链表的遍历可以操作这些数据。
2.设计表示:各个及其作用,每个函数的功能要详细描述;本课程设计包含三个类,分别是:节点类、链表类、汽车类,每个类都有成员函数,其中节点类仅有构造函数,用于节点类的初始化;在链表类中不仅有Link();//构造函数,初始化变量;bool linkIsEmpty();//判断链表是否为空;void linkInsert(Node *newnode);//向链表中插入新的结点;bool linkDelete(int nid);//从链表中删除的结点;void linkClear();//清空链表中数据;void linkView();//查看链表中数据;Node* linkFind(int nid);//在链表中查找id为nid结点,返回指向该结点的指针;Node* getHead();//获取头指针;在汽车类中,Car();Car::Car()//构造函数,对变量进行初始化;Link();//调用成员对象的构造函数;carLoad();//从文件中读取数据,创建链表;void carClear();//清空汽车记录;void carInsert();//判断汽车编号是否存在,插入汽车记录设置数据被修改;void carDelete();//删除汽车记录;void carFind();//查找某编号的汽车记录;void carModify();//修改某编号的汽车信息,链表为空的情况,获得找到的结点的指针,指针值不为(为)NULL时;void carView();//显示所有汽车的记录;void carLoad();//从文件中读入数据,创建链表,关闭文件,读取汽车信息;void carSave();将数据保存到文件;void Exit();//退出程序//判断数据是否修改;void showMenu();//显示菜单;void showTip();//显示操作提示;void doMenu(char n);//执行相应菜单项功能;在主函数main()函数中,运用switch开关语句进行选择菜单的编写,输入相应的数字以实现对应的功能。
运用文件保存软件项目信息,并可实现对相关信息的读取。
运用system("cls")对所有数据进行清除操作即清除屏幕。
3.实现注释:任务中各项要求的实现程度;在完成基本要求的基础上运用面向对象的程序设计方法,要求选择动态数组类模板或链表类模板,任务中要运用I/O流对象对文件进行读写操作。
程序应输入不少于10个汽车信息,应考虑到汽车型号相同的情况。
这个要求的完成情况与实现程度与要求相比稍有瑕疵,因为我对于汽车的情况了解有限,所以仅实现了以下几个功能:清空:清除所有汽车数据,添加:增加一个汽车到汽车信息中,删除:删除指定汽车数据,查找:根据汽车数据查找汽车信息,修改:可修改汽车信息,显示:在屏幕上显示所有汽车的信息,存储:将汽车信息保存在一个文件中,退出:安全的退出本系统。
4.算法设计中一些新的想法:在主要描述本算法的应用或发现其不足之处或有新的思路和想法方面,程序要求中没有要求该系统具有删除汽车信息的功能,之后将其加上,感觉这个系统就更加完善了,功能更加齐全了。
三、用户手册请按提示进行操作,在选择功能时,应在指定的数字范围中进行输入,否则将会提示输入错误,在进行日期输入时,形如20110629的形式输入,操作完成时,应进行保存,否则系统会自动提示你进行保存。
四、调试及测试在调试过程中遇到的一些问题时不可避免的,我会看书和上网查询去解决。
比如,当我用DEV-CPP编写的程序时,编译后,运行,闪一下就没了??后来上网查询才把这个问题给解决:在return 0下面加一个getchar();可以了。
五、小结就本课程设计进行小结,可以包括设计过程收获,本系统的不足及有待改进之处。
就本课程设计,我认为非常符合当今的世界格局,汽车如今已经成为我们生活中必不可少的东西,基于4S店的汽车管理系统是非常符合生活实际的设计课题。
但是,要运用C++中的类的思想来完成还是有一定难度的。
在实际编程中也的确如此,对汽车类的编写,及模块化的操作说实话的确却很难,因此用了网上的资源进行了整合,但是字字都是自己编写的,其中艰辛汗水都是真正的付出,可把我给累挺了!此外还对c++和c语言的联系有了些许了解,比如在C++下的头文件是许多C语言头文件,在C++下的头文件通常改头换面变成前面加个c,后面去掉.h,如:math.h stdlib.h cmath cstdlib 等等。
整个系统的设计过程对于我来说算是个学习、探索的过程,通过实践和对比别人开发程序的过程。
在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是前期工作不彻底,对系统的需求分析的要求认识不够清楚,使得在后边的工作中不得不经常反复去修改。
使我体会到设置中每一步的重要性。
所以在分析一个问题时,我们需要站在一个有远见的高度。
通过此次设计,我不但对C++语言编程有了更深刻的认识,积累了使用软件工程的思想来开发软件的经验,更重要的是学会了在对待问题时应该考虑到哪些方面和怎么解决问题。
虽然时间紧迫但我学会了很多,也感到自身知识的贫乏,希望在日后的努力中能做出更完善的系统。
六、参考文献[1].郑莉等编著《C++语言程序设计(第四版)》北京:清华大学出版社,2010.7[2].郑莉等编著《C++语言程序设计(第三版)上机用书》北京:清华大学出版社[3].李春葆等编著《C++程序设计学习与上机实验指导》北京:清华大学出版社[4].范辉等编著《Visual C++6.0程序设计简明教程》高等教育出版社[5].李龙澍《C++程序设计实训教程》北京:清华大学出版社[6].洪国胜等编著《C++ Builder程序设计轻松上手》北京:清华大学出版社[7].严蔚敏等《数据结构(c语言版)》北京:清华大学出版社,1997年4月第1版。
[8].胡学钢等《数据结构算法设计指导》北京:清华大学出版社,1999年第1版。
附录:1、源程序清单:#include<iostream> //cin cout#include<cstdlib>#include<string>#include <fstream> //文件输入输出流类、磁盘文件的流缓冲区类#include<sstream> //字符串输入输出流类、字符串缓冲区流类#include<iomanip> //setw操作符域宽设置using namespace std;class Node//结点类,用于存放汽车的各种数据{public:int id; //汽车编号string name; //汽车型号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 *head; //链表的头指针,为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 nid,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 *newnode) //按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)->id>newnode->id){newnode->next=p1->next;p1->next=newnode;break;}p1=p1->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() //清空链表{head=NULL;}Node* Link::linkFind(int nid) //查找id值为nid的结点,返回该结点的指针{Node *p=head; //没找到符合条件的结点的话,返回的指针值为NULL while(p){if(p->id==nid)break;elsep=p->next;}return p;}void Link::linkView() //显示链表数据{Node *p=head;cout<<setw(6)<<"汽车编号"<<" "<<setw(10)<<"汽车型号"<<" "<<setw(10)<<"是否售出"<<" "<<setw(10)<<"汽车颜色"<<" "<<setw(10)<<"汽车价格"<<" "<<setw(10)<<"生产厂家"<<" "<<setw(10)<<"出厂时间"<<endl;while(p){cout<<setw(6)<<p->id<<" "<<setw(10)<<p->name<<" "<<setw(10)<<p->sale<<" "<<setw(10)<<p->color<<" "<<setw(10)<<p->price<<" "<<setw(10)<<p->firm<<" "<<setw(10)<<p->outtime<<endl;p=p->next;}}Node* Link::getHead(){return head;}//类Car,用于包装Link类及菜单操作class Car{private:Link clink;//Link对象成员bool k;//记录数据是否被修改public:Car();void carClear();void carInsert();void carDelete();void carFind();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;}void Car::carInsert() //插入汽车记录{Node *p=new Node();cout<<"请输入汽车编号:";cin>>p->id;cout<<"请输入汽车型号:";cin>>p->name;cout<<"请输入是否售出:";cin>>p->sale;cout<<"请输入汽车颜色:";cin>>p->color;cout<<"请输入汽车价格:";cin>>p->price;cout<<"请输入生产厂家:";cin>>p->firm;cout<<"请输入出厂时间:";cin>>p->outtime;if(!clink.linkFind(p->id)) //判断汽车编号是否存在 {clink.linkInsert(p);k=true;}elsecout<<"汽车编号为"<<p->id<<"的车已存在,插入失败!"<<endl; }void Car::carDelete() //删除汽车记录{int i;if(clink.linkIsEmpty())//链表为空的情况cout<<"没有汽车记录!"<<endl;else{cout<<"请输入汽车编号:";cin>>i;if(clink.linkDelete(i)){cout<<"成功删除编号为"<<i<<"的汽车记录!"<<endl;k=true;}elsecout<<"没有找到编号为"<<i<<"的汽车!"<<endl;}}void Car::carFind() //查找某编号的汽车记录{int n;Node *p;if(clink.linkIsEmpty())//链表为空的情况cout<<"没有汽车记录!"<<endl;else{cout<<"请输入要查找汽车的编号:";cin>>n;p=clink.linkFind(n);//获得找到的结点的指针if(p) //指针值不为NULL时{cout<<setw(6)<<"汽车编号"<<" "<<setw(10)<<"汽车型号"<<" "<<setw(10)<<"是否售出"<<" "<<setw(10)<<"汽车颜色"<<" "<<setw(10)<<"汽车价格"<<" "<<setw(10)<<"生产厂家"<<" "<<setw(10)<<"出厂时间"<<endl;cout<<setw(6)<<p->id<<" "<<setw(10)<<p->name<<" "<<setw(10)<<p->sale<<" "<<setw(10)<<p->color<<" "<<setw(10)<<p->price<<" "<<setw(10)<<p->firm<<" "<<setw(10)<<p->outtime<<endl;}else//指针值为NULL时cout<<"没有找到编号为"<<n<<"的汽车记录!"<<endl;}}void Car::carModify() //修改某编号的汽车信息{int n;Node *p;if(clink.linkIsEmpty())//链表为空的情况cout<<"没有汽车记录!"<<endl;else{cout<<"请输入要修改汽车的编号:";cin>>n;p=clink.linkFind(n);//获得找到的结点的指针if(p) //指针值不为NULL时{cout<<"原汽车信息为:"<<endl;cout<<setw(6)<<"汽车编号"<<" "<<setw(10)<<"汽车型号"<<" "<<setw(10)<<"是否售出"<<" "<<setw(10)<<"汽车颜色"<<" "<<setw(10)<<"汽车价格"<<" "<<setw(10)<<"生产厂家"<<" "<<setw(10)<<"出厂时间"<<endl;cout<<setw(6)<<p->id<<" "<<setw(10)<<p->name<<" "<<setw(10)<<p->sale<<" "<<setw(10)<<p->color<<" "<<setw(10)<<p->price<<" "<<setw(10)<<p->firm<<" "<<setw(10)<<p->outtime<<endl;cout<<"请输入新的汽车信息"<<endl;cout<<"请输入汽车编号:";cin>>p->id;cout<<"请输入汽车型号:";cin>>p->name;cout<<"请输入是否售出:";cin>>p->sale;cout<<"请输入汽车颜色:";cin>>p->color;cout<<"请输入汽车价格:";cin>>p->price;cout<<"请输入生产厂家:";cin>>p->firm;cout<<"请输入出厂时间:";cin>>p->outtime;}else//指针值为NULL时cout<<"没有找到编号为"<<n<<"的汽车记录!"<<endl; }}void Car::carView() //显示所有汽车的记录{if(clink.linkIsEmpty())cout<<"没有汽车记录!"<<endl;elseclink.linkView();}void Car::carLoad() //从文件中读入数据,创建链表{Node *p;int nid;ifstream infile("data.txt");if(!infile)cerr<<"错误:数据文件不能打开!\n";elsewhile(infile>>nid) //读取汽车编号,直到读空{p=new Node();p->id=nid;infile>>p->name>>p->sale>>p->color>>p->price>>p->firm>>p->outtime;//读取汽车信息clink.linkInsert(p);}infile.close(); //关闭文件}void Car::carSave() //将数据保存到文件{Node *p=clink.getHead();ofstream outfile("data.txt");if(!outfile)cerr<<"错误:数据文件不能打开!\n";else{while(p){outfile<<p->id<<' '<<p->name<<' '<<p->id<<' '<<p->name<<' '<<p->sale<<' '<<p->color<<' '<<p->price<<' '<<p->firm<<' '<<p->outtime<<endl;p=p->next;}k=false;cout<<"保存成功!"<<endl;}}void Car::Exit(){char s='Y';if(k) //判断数据是否修改{cout<<"数据已经改变,是否保存?(y/n):";cin>>s;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.删除:删除指定汽车数据 |"<<endl;cout<<"| 4.查找:根据汽车数据查找汽车信息 |"<<endl;cout<<"| 5.修改:可修改汽车信息 |"<<endl;cout<<"| 6.显示:在屏幕上显示所有汽车的信息 |"<<endl;cout<<"| 7.存储:将汽车信息保存在一个文件中 |"<<endl;cout<<"| 0.退出:安全的退出本系统 |"<<endl;cout<<"|------------------------------------------------|"<<endl<<endl; }void Car::showTip(){cout<<endl;cout<<"-------------------操作完成---------------------"<<endl;cout<<"--------------选择继续下一个操作----------------"<<endl;cout<<"请选择:";}void Car::doMenu(char n){switch(n){case '1':carClear();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();cout<<"选择对应数字进行操作:"; while(1){cin>>i;system("cls"); //清除屏幕 c.showMenu();c.doMenu(i);c.showTip();}}2、测试数据:3、运行结果:(1)添加汽车信息(2)修改汽车信息(3)显示汽车信息(4)删除汽车信息(5)保存汽车信息。