当前位置: 首页>编程语言>正文

githib java共享单车 共享单车程序开发


目录~python

  • 共享单车租借平台
  • 相关程序代码如下:
  • 程序运行效果如下:
  • pandas 每日一练:
  • 51、使用绝对路径读取本地Excel数据
  • 程序运行结果如下:
  • 52、查看数据前三行
  • 程序运行结果如下:
  • 53、查看每列数据缺失值情况
  • 程序运行结果如下:
  • 54、提取日期列含有空值de行
  • 程序运行结果如下:
  • 55、输出每列缺失值具体行数
  • 程序运行结果如下:
  • 56、删除所有存在缺失值的行
  • 程序运行结果如下:
  • 57、绘制营业额折线图
  • 程序运行效果如下-1:
  • 程序运行效果如下-2:
  • 58、同时绘制yye与sku_cost_prc
  • 程序运行效果如下:
  • 59、绘制利润率的直方图
  • 程序运行效果如下:
  • 60、让直方图更细致
  • 程序运行效果如下:
  • 每日一言:
  • 持续更新中...



个人主页: 个人感悟: “失败乃成功之母”,这是不变的道理,在失败中总结,在失败中成长,才能成为IT界的一代宗师。

共享单车租借平台

先创建两个类。
一个单车类Bike,用来实例化单车对象,绑定单车的属性。
一个平台管理类Manage,将查询车辆,共享车辆,租借车辆,归还车辆功能封装到该类中。

并且,当平台管理类Manage实例化对象时,可以给用户弹出一个菜单,让用户选择不同的功能。

相关程序代码如下:

class Bike2:
    def __init__(self):
        pass

    def menu(self):
        pass

    def xx(self):
        pass

    def gx(self):
        pass

    def zj(self):
        pass

    def gh(self):
        pass

# 利用初始化__init__ ,让实例被创建时自动获取这些属性

class Bike:
    # 初始化方法 NO代表车辆编号、age代表车辆年限、
    # state代表车辆状态,0代表待租借,1代表租借中
    def __init__(self, NO, age, state=0):
        self.NO = NO
        self.age = age
        self.state = state

    def __str__(self):
        if self.state == 0:
            status = '待租借'
        else:
            status = '租借中'
        return '车辆编号%d 已经运行%d年,车辆状态:%s' % (self.NO, self.age, status)


bike = Bike(1001, 2)
print(bike)


class Manage:
    # 定义一个列表,用来存储所有的车辆
    bike_list = []

    def __init__(self):
        bikeA = Bike(1001, 2)
        bikeB = Bike(1002, 2)
        bikeC = Bike(1003, 1)
        self.bike_list.append(bikeA)
        self.bike_list.append(bikeB)
        self.bike_list.append(bikeC)

# 查询所有车辆信息,完善info_bike方法
    # 系统菜单
    def menu(self):
        print("欢迎使用共享单车租借系统\n")
        while True:
            print('1.查询所有车辆\n 2.共享车辆\n 3.租借车辆\n 4.归还车辆\n 5.退出系统\n')

            select = int(input('请输入所选功能对应得数字:'))
            if select == 1:
                # 单车信息
                self.info_bike()
            elif select == 2:
                # 共享单车
                self.add_bike()
            elif select == 3:
                # 租借车辆
                self.lease_bike()
            elif select == 4:
                # 归还车辆
                self.revert_bike()
            elif select == 5:
                # 退出系统
                print('期待您下次使用!祝您生活愉快!')
                break

# 单车信息
    def info_bike(self):
        print("所有车辆信息如下:")
        for bike in self.bike_list:
            print(bike)

    def add_bike(self):
        new_NO = int(input('请输入车辆编码'))
        new_age = int(input('请输入车辆使用年限'))

        new_bike = Bike(new_NO, new_age)
        self.bike_list.append(new_bike)
        print('车辆共享成功!')

    # 租借车辆
    def lease_bike(self):
        lease_NO = int(input("请输入租借的车辆编号"))
        for bike in self.bike_list:
            # 遍历自行车列表,与用户租借的编号进行匹配
            if bike.NO == lease_NO:
                # 如果单车在平台中存在
                if bike.state == 1:
                    # 车辆租借中
                    print("你来晚了,车被租走了")
                    break
                else:
                    # 车辆待租借
                    print("租借成功,欢迎您使用绿色出行")
                    bike.state = 1
                    break
        else:
            # print('车辆编号输入错误')
            # break
            print("该车辆不存在")

    def select_bike(self, NO):
        # 遍历整个自行车列表
        for bike in self.bike_list:
            # 如果存在输入编号与车辆列表中的编号一致
            if bike.NO == NO:
                # 返回该车辆信息
                return bike

    # 归还车辆
    def revert_bike(self):
        # 输入归还车辆的编号
        revert_NO = int(input("请输入归还的车辆编号"))
        # 进行查询
        res = self.select_bike(revert_NO)
        # 车辆存在
        if res != None:
            # 租借中,还车成功
            if res.state == 1:
                # 还车成功
                print("还车成功,期待下次使用")
                res.state = 0
            # 未租借,等待租借
            else:
                # 车辆等待租借
                print("车辆整备完成,等待租借")
        # 车辆不存在
        else:
            print("该车辆不存在,想必您是输错了")


user = Manage()
print(user)
user.menu()

class Bike:
    # 初始化方法 no代表车辆编号、age代表车辆年限、
    # state代表车辆状态,0代表待租借,1代表租借中
    def __init__(self, NO, age, state=0):
        self.NO = NO
        self.age = age
        self.state = state

    def __str__(self):
        if self.state == 0:
            status = '待租借'
        else:
            status = '租借中'
        return '车辆编号%d 已经运行%d年,车辆状态:%s' % (self.NO, self.age, status)


class Manage:
    # 定义一个列表,用来存储所有的车辆
    bike_list = []

    def __init__(self):
        bikeA = Bike(1001, 2)
        bikeB = Bike(1002, 2)
        bikeC = Bike(1003, 1)
        self.bike_list.append(bikeA)
        self.bike_list.append(bikeB)
        self.bike_list.append(bikeC)

    # 系统菜单
    def menu(self):
        print("欢迎使用共享单车租借系统\n")
        while True:
            print(' 1.查询所有车辆\n 2.共享车辆\n 3.租借车辆\n 4.归还车辆\n 5.退出系统\n')
            select = int(input('请输入所选功能对应得数字:'))
            if select == 1:
                # 单车信息
                self.info_bike()
            elif select == 2:
                # 共享单车
                self.add_bike()
            elif select == 3:
                # 租借车辆
                self.lease_bike()
            elif select == 4:
                # 归还车辆
                self.revert_bike()
            elif select == 5:
                # 退出系统
                print('期待您下次使用!祝您生活愉快!')
                break

# 单车信息
    def info_bike(self):
        for bike in self.bike_list:
            print(bike)

    # 共享单车
    def add_bike(self):
        new_NO = int(input('请输入车辆编码'))
        new_age = int(input('请输入车辆使用年限'))

        new_bike = Bike(new_NO, new_age)
        self.bike_list.append(new_bike)
        print('车辆共享成功!')

    # 租借车辆
    def lease_bike(self):
        lease_NO = int(input("请输入租借的车辆编号"))
        res = self.select_bike(lease_NO)
        if res != None:
            if res.state == 1:
                # 车辆租借中
                print("你来晚了,车被租走了")
            else:
                # 车辆待租借
                print("租借成功,欢迎您使用绿色出行")
                res.state = 1
        else:
            print("该车辆不存在")

    def select_bike(self, NO):
        # 遍历整个自行车列表
        for bike in self.bike_list:
            # 如果存在输入编号与车辆列表中的编号一致
            if bike.NO == NO:
                # 返回该车辆信息
                return bike

    # 归还车辆
    def revert_bike(self):
        # 输入归还车辆的编号
        revert_NO = int(input("请输入归还的车辆编号"))
        # 进行查询
        res = self.select_bike(revert_NO)
        # 车辆存在
        if res != None:
            # 租借中,还车成功
            if res.state == 1:
                # 还车成功
                print("还车成功,期待下次使用")
                res.state = 0
            # 未租借,等待租借
            else:
                # 车辆等待租借
                print("车辆整备完成,等待租借")
        # 车辆不存在
        else:
            print("该车辆不存在,想必您是输错了")


user = Manage()
print(user)
user.menu()

程序运行效果如下:

车辆编号1001 已经运行2年,车辆状态:待租借
<__main__.Manage object at 0x00000248B56E5808>
欢迎使用共享单车租借系统
1.查询所有车辆
 2.共享车辆
 3.租借车辆
 4.归还车辆
 5.退出系统
请输入所选功能对应得数字:>? 1
所有车辆信息如下:
车辆编号1001 已经运行2年,车辆状态:待租借
车辆编号1002 已经运行2年,车辆状态:待租借
车辆编号1003 已经运行1年,车辆状态:待租借
1.查询所有车辆
 2.共享车辆
 3.租借车辆
 4.归还车辆
 5.退出系统
请输入所选功能对应得数字:>? 2
请输入车辆编码>? 1006
请输入车辆使用年限>? 5
车辆共享成功!
1.查询所有车辆
 2.共享车辆
 3.租借车辆
 4.归还车辆
 5.退出系统
请输入所选功能对应得数字:>? 3
请输入租借的车辆编号>? 1002
租借成功,欢迎您使用绿色出行
1.查询所有车辆
 2.共享车辆
 3.租借车辆
 4.归还车辆
 5.退出系统
请输入所选功能对应得数字:>? 1
所有车辆信息如下:
车辆编号1001 已经运行2年,车辆状态:待租借
车辆编号1002 已经运行2年,车辆状态:租借中
车辆编号1003 已经运行1年,车辆状态:待租借
车辆编号1006 已经运行5年,车辆状态:待租借
1.查询所有车辆
 2.共享车辆
 3.租借车辆
 4.归还车辆
 5.退出系统
请输入所选功能对应得数字:>? 4
请输入归还的车辆编号>? 1002
还车成功,期待下次使用
1.查询所有车辆
 2.共享车辆
 3.租借车辆
 4.归还车辆
 5.退出系统
请输入所选功能对应得数字:>? 1
所有车辆信息如下:
车辆编号1001 已经运行2年,车辆状态:待租借
车辆编号1002 已经运行2年,车辆状态:待租借
车辆编号1003 已经运行1年,车辆状态:待租借
车辆编号1006 已经运行5年,车辆状态:待租借
1.查询所有车辆
 2.共享车辆
 3.租借车辆
 4.归还车辆
 5.退出系统
请输入所选功能对应得数字:>? 5
期待您下次使用!祝您生活愉快!

————————————————————————————————————————————

pandas 每日一练:

print()只为转行

# -*- coding = utf-8 -*-
# @Time : 2022/7/27 16:31
# @Author : lxw_pro
# @File : pandas-9 练习.py
# @Software : PyCharm

import pandas as pd

51、使用绝对路径读取本地Excel数据

lxw = pd.read_excel("site.xlsx")
print(lxw)

print()

程序运行结果如下:

Unnamed: 0  Unnamed: 0.1   create_dt  ...   yye  sku_cost_prc     lrl
0             0             1  2016-11-30  ...   8.8          6.77  30.00%
1             1             2  2016-11-30  ...   7.5          5.77  30.00%
2             2             3  2016-11-30  ...   5.0          3.85  30.00%
3             3             4  2016-11-30  ...  19.6          7.54  30.00%
4             4             5  2016-12-02  ...  13.5         10.38  30.00%
..          ...           ...         ...  ...   ...           ...     ...
751         751           752  2016-12-31  ...   1.0          0.77  30.00%
752         752           753  2016-12-31  ...   2.0          1.54  30.00%
753         753           754  2016-12-31  ...   1.0          0.77  30.00%
754         754           755  2016-12-31  ...   7.6          2.92  30.00%
755         755           756  2016-12-31  ...   3.3          2.54  30.00%
[756 rows x 8 columns]

52、查看数据前三行

print(lxw.head(3))

print()

程序运行结果如下:

Unnamed: 0  Unnamed: 0.1   create_dt  ...  yye  sku_cost_prc     lrl
0           0             1  2016-11-30  ...  8.8          6.77  30.00%
1           1             2  2016-11-30  ...  7.5          5.77  30.00%
2           2             3  2016-11-30  ...  5.0          3.85  30.00%
[3 rows x 8 columns]

53、查看每列数据缺失值情况

print(lxw.isnull().sum())

print()

程序运行结果如下:

Unnamed: 0      0
Unnamed: 0.1    0
create_dt       3
sku_cnt         1
sku_sale_prc    1
yye             5
sku_cost_prc    2
lrl             3
dtype: int64

54、提取日期列含有空值de行

print(lxw[lxw['create_dt'].isnull()])

print()

程序运行结果如下:

Unnamed: 0  Unnamed: 0.1 create_dt  ...   yye  sku_cost_prc     lrl
6            6             7       NaN  ...  10.8          8.31  30.00%
18          18            19       NaN  ...   5.9          4.54  30.00%
21          21            22       NaN  ...   6.0          2.31  30.00%
[3 rows x 8 columns]

55、输出每列缺失值具体行数

for col in lxw.columns:
    if lxw[col].count() != len(lxw):
        loc = lxw[col][lxw[col].isnull().values==True].index.tolist()
        print(f"列名:{col}, 第{loc}行位置有缺失值!")

print()

程序运行结果如下:

列名:create_dt, 第[6, 18, 21]行位置有缺失值!
列名:sku_cnt, 第[5]行位置有缺失值!
列名:sku_sale_prc, 第[25]行位置有缺失值!
列名:yye, 第[9, 20, 29, 36, 60]行位置有缺失值!
列名:sku_cost_prc, 第[15, 44]行位置有缺失值!
列名:lrl, 第[15, 19, 50]行位置有缺失值!

56、删除所有存在缺失值的行

lxw.dropna(axis=0, how='any', inplace=True)
print(lxw)

print()

程序运行结果如下:

Unnamed: 0  Unnamed: 0.1   create_dt  ...   yye  sku_cost_prc     lrl
0             0             1  2016-11-30  ...   8.8          6.77  30.00%
1             1             2  2016-11-30  ...   7.5          5.77  30.00%
2             2             3  2016-11-30  ...   5.0          3.85  30.00%
3             3             4  2016-11-30  ...  19.6          7.54  30.00%
4             4             5  2016-12-02  ...  13.5         10.38  30.00%
..          ...           ...         ...  ...   ...           ...     ...
751         751           752  2016-12-31  ...   1.0          0.77  30.00%
752         752           753  2016-12-31  ...   2.0          1.54  30.00%
753         753           754  2016-12-31  ...   1.0          0.77  30.00%
754         754           755  2016-12-31  ...   7.6          2.92  30.00%
755         755           756  2016-12-31  ...   3.3          2.54  30.00%
[742 rows x 8 columns]

57、绘制营业额折线图

import matplotlib.pyplot as plt

plt.style.use('seaborn-darkgrid')

plt.rc('font', size=8)
plt.rc('figure', figsize=(4, 3), dpi=150)

lxw['yye'].plot()

plt.show()

程序运行效果如下-1:

githib java共享单车 共享单车程序开发,githib java共享单车 共享单车程序开发_python,第1张

或者

plt.plot(lxw['yye'])
plt.show()

程序运行效果如下-2:

githib java共享单车 共享单车程序开发,githib java共享单车 共享单车程序开发_数据处理_02,第2张


58、同时绘制yye与sku_cost_prc

lxw[['yye', 'sku_cost_prc']].plot()

plt.show()

程序运行效果如下:

githib java共享单车 共享单车程序开发,githib java共享单车 共享单车程序开发_githib java共享单车_03,第3张


59、绘制利润率的直方图

plt.hist(lxw['lrl'])

plt.show()

程序运行效果如下:

githib java共享单车 共享单车程序开发,githib java共享单车 共享单车程序开发_数据处理_04,第4张


60、让直方图更细致

lxw['lrl'].hist(bins=30)

plt.show()

程序运行效果如下:

githib java共享单车 共享单车程序开发,githib java共享单车 共享单车程序开发_python_05,第5张


每日一言:


少年乘着希望之风,奔向遥远的未来!!!



持续更新中…

点赞,你的认可是我创作的动力
收藏,你的青睐是我努力的方向
评论,你的意见是我进步的财富
关注,你的喜欢是我长久的坚持


https://www.xamrdz.com/lan/57n1961052.html

相关文章: