[数据结构课设]汽车租借公司的管理

本文介绍了一项数据结构课程设计任务——汽车租借公司的管理系统。系统使用三个链表分别管理不同状态的汽车,如可用、已租和修理中。汽车按行驶路程和预期返回时间排序。系统需实现车辆的引入、租借、修理、收费等功能,其中收费依据行驶路程和时间计算。此外,还包括汽车维护、查询、打印全部信息、计算收入成本和收益。实现重点在于链表操作,同时建议提供图形化界面。
摘要由CSDN通过智能技术生成

一、题目

汽车租借公司的管理

(1)问题描述

设计数据结构及算法完成某个汽车租借公司日常工作的组织与管理。该管理系统的基本管理对象为汽车,每台汽车用一个license number进行唯一标识。每个汽车存在三种可能状态:

·可以租借(available for rent)

·已借(rented)

·修理中(in repair)

其中在available队列中汽车应该依据汽车行驶的路程进行排序,行驶路程最少的汽车排在最前面。在rented队列中的汽车应依据其预期返回时间进行排序,排在最前的应是预期最早返回的汽车。

(2)课程设计目的

应用线性数据结构存储信息,并能够应用上面的基本操作实现事务管理。

(3)基本要求

①用三个链表组织三种状态的汽车。

②能够实现租借的日常事务:引入新车,租借,收费,修理等。

③租借收费应根据汽车行驶的路程及借去的时间综合计算得出,路程收费标准如下:

1.低于100Km收费20.00元

2.100Km以外的路程每Km收费0.15元

④汽车根据行驶的路程定期进行维护。

⑤还需实现辅助操作:汽车查询,打印全部信息,计算并打印收入、成本及收益。

⑥管理系统应有完整地界面(最好是图形化界面)。

(4)实现提示

主要集中在链表的基本操作上


二、主界面



三、源码


https://github.com/nasnan/CarCompany


#include<iostream>
#include<iomanip>
#include<fstream>
using namespace std;

struct allCarsNode
{
	allCarsNode* next;
	int license;
	int ranMiles;
	int status;		//0:可用 1:已借  2:在修
	int returnTime;
	int repairedTime;
	double income;

	allCarsNode(const int& license, int& ranMiles, int& status, int& returnTime, int& repairedTime, double& income, allCarsNode *next)
	{
		this->license = license;
		this->ranMiles = ranMiles;
		this->status = status;
		this->returnTime = returnTime;
		this->repairedTime = repairedTime;
		this->next = next;
		this->income = income;
	}
};





class allcars
{
public:
	allcars(int initialCapacity = 10);
	void addNewCar(int license = 0, int ranMiles = 0, int status = 0, int returnTime = 0, int repairedTime = 0, double income = 0);
	void changeCarstatus(int license, int ranMiles, int status, int returnTime,int repairedTime, double income);
	void erase(int license);
	void prin();

	int listSize;
	allCarsNode* firstNode;

};


allcars::allcars(int initialCapacity)
{
	if (initialCapacity < 1)
		cout << "Illegalparametervalues.\n";
	firstNode = NULL;
	listSize = 0;
}

//状态改为已借
void allcars::changeCarstatus(int license, int ranMiles, int status, int returnTime,int repairedTime, double income)
{
	allCarsNode  *findNode = firstNode;
	for (int i = 0; i < listSize && findNode->license != license; i++)
		findNode = findNode->next;
	findNode->status = status;
	findNode->ranMiles = ranMiles;
	findNode->income = income;
	findNode->returnTime = returnTime;
}

//所有车 加新车
void allcars::addNewCar(int license, int ranMiles, int status, int returnTime, int repairedTime, double income)
{
	firstNode = new allCarsNode(license, ranMiles, status, returnTime, repairedTime, income, firstNode);
	listSize++;
}


//删除
void allcars::e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值