ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python基础课程设计《汽车销售管理系统》

2020-06-26 13:05:48  阅读:408  来源: 互联网

标签:课程设计 管理系统 python car list kind print new id


程序使用说明(该博客图片水印为改名前所加故与博客昵称不同)
该程序为汽车销售管理系统,可通过功能7实现对车库文件内(文件CarMessage.txt)车辆车辆的查看;如果有新车将要进入车库则会使用到功能1-4,功能1-4仅是新车信息的预处理。功能1为新车信息预录入;功能2可实现通过新车id号查询单辆新车信息,以便确定信息是否有误;功能3则是查看本次录入的全部信息;功能4如果通过功能2/3发现信息录入错误组通过该功能修改;功能5是将功能1录入的信息保存至车库文件(文件CarMessage.txt);功能6
是通过车辆id将已出售车辆的信息录入销售文件(Carsale.txt),同时删除车库文件内该车信息。退出系统则使用功能8

"""
汽车销售管理系统
借鉴内容:
   1.保存学生数据时使用UTF-8防止乱码

"""
import os
#使用本代码请注明出处,蟹蟹


car_list = []#用于储存存有汽车信息的字典的列表


#菜单
def display_menu():
    #1-4为新信息录入不操作文件,5为保存1-4信息,6对文件内的车辆信息修改(根据车号已售出的信息改为已售出)
    #7查看文件信息
    print("*******************************************")
    print("-----------汽车销售管理系统------------------")
    print("+++++++++++++++++++++++++++++++++++++++++++")
    print("1.添加新车信息          2.查看单辆新车信息    ")
    print("+++++++++++++++++++++++++++++++++++++++++++")
    print("3.查看全部新车信息      4.修改新车信息        ")
    print("+++++++++++++++++++++++++++++++++++++++++++")
    print("5.保存新车信息          6.销售汽车           ")
    print("+++++++++++++++++++++++++++++++++++++++++++")
    print("7.查看车库车辆信息       8.查看售出信息       ")
    print("+++++++++++++++++++++++++++++++++++++++++++")
    print("9.退出系统                                  ")
    print("*******************************************")




def get_choice():
    selected_key = input("请输入选择的序号:")
    return selected_key


def check_kind(new_kind):
    flag = True
    while flag:
        if new_kind == '电动' or new_kind == '汽油':
            flag = False
        else:
            new_kind = input("输入种类有误,请重新输入(电动/汽油):")
    return new_kind


def check_id(new_id):
    flag = True
    while flag:
        # 先检查是不是纯数字再去考虑是否重复
        if new_id.isdigit():#确认是否为纯数字
            for i in range(len(car_list)):
                if car_list[i]['id'] == new_id:
                    new_id = check_id(input("您输入的id重复,请重新输入:"))
            flag = False
        else:
            new_id = input("您输入的id有误,请重新输入:")
    return new_id


def add_Car():#添加汽车信息
    while 1:
        new_info = {}
        new_id = check_id(input("请输入编号:"))
        new_info['id'] = new_id
        new_color = input("请输入颜色:")
        new_info['color'] = new_color
        new_kind = check_kind(input("请输入类型(电动/汽油):"))
        new_info['kind'] = new_kind
        car_list.append(new_info)
        a = input("是否继续添加(Y/N)")
        if a == "N":
            print("success")
            break
        elif a == "Y":
            print("continue add")

def find_NewCar():# 查看单辆新车信息
    find_id_is = input("请输入要查询的汽车编号:")
    flag = False
    index = 0
    for i in range(len(car_list)):
        if car_list[i]['id'] == find_id_is:
            flag = True
            index = i
            break
    if flag:
        print("汽车查询到,汽车信息为:")
        print(car_list[index]['id'],car_list[index]['color'],car_list[index]['kind'])
    else:
        print("汽车未找到!")


# 查询所有新车信息
def find_AllNewCar():
    print("=" * 30)
    for car in car_list:
        print(car['id'], car['color'], car['kind'])
    print("=" * 30)


# 修改细节函数
def choice_of_name(index):
    while True:
        choice = input("请输入要修改学生的(1.id 2.颜色 3.种类 ,4.全部修改):")
        if choice == '4':
            new_id = input("请输入新的id:")
            car_list[index]['id'] = new_id
            new_color = input("请输入新的颜色:")
            car_list[index]['color'] = new_color
            new_kind = check_kind(input("请输入种类(电动/汽油):"))
            car_list[index]['kind'] = new_kind
            break
        elif choice == '1':
            new_id = input("请输入新的id:")
            car_list[index]['id'] = new_id
            break
        elif choice == '2':
            new_color = input("请输入新的颜色:")
            car_list[index]['color'] = new_color
            break
        elif choice == '3':
            new_kind = check_kind(input("请输入种类(电动/汽油):"))
            car_list[index]['kind'] = new_kind
            break
        else:
            print("输入有误,请重新输入!")


# 修改新车信息
def re_NewCar():
    id_is = input("请输入要修改的新车的id:")
    flag = False
    index = 0
    # 先找到要修改的新车的id
    for i in range(len(car_list)):
        if car_list[i]['id'] == id_is:
            flag = True
            index = i
            break
    if flag:
        choice_of_name(index)
        print("修改成功!")
    else:
        print("修改失败,新车信息匹配失败!")


# 保存新车信息
def save_Car():
    cars = str(car_list)
    with open('CarMessage.txt', 'a+', encoding='utf-8') as f:
        f.write(cars)
    print("保存成功!文件位置在" + os.getcwd())
    f.close()

#售出信息保存
def save1_Car():
    cars = str(car_list)
    with open('CarMessage.txt', 'w', encoding='utf-8') as f:
        f.write(cars)
    print("保存成功!文件位置在" + os.getcwd())
    f.close()


#已售出车辆信息录入
def sale_Car():
    num = input("请输入销售的汽车编号")
    for new_info in car_list:
        if num == new_info.get("id"):
            f = open("Carsale.txt","a+",encoding='utf-8')
            f.write(str(new_info["id"]) + "\t"
                    + str(new_info["color"]) + "\t"
                    + str(new_info["kind"]))
            f.close()
            car_list.remove(new_info)
            print("已售出")
            save1_Car()


#查看车库信息
def find_Car():
    print("*"*50)
    with open('CarMessage.txt','r',encoding='utf-8') as file:
        CarMessage = file.readlines()
        print(CarMessage)
        print("\n","*"*23,"over","*"*23,"\n")
        file.close()

#查看售出信息
def find_sale_Car():
    print("*"*50)
    with open('Carsale.txt','r',encoding='utf-8') as file:
        Carsale = file.readlines()
        print(Carsale)
        print("\n","*"*23,"over","*"*23,"\n")
        file.close()





def main():

    exit_car = True
    while exit_car:
        display_menu()
        key = get_choice()
        if key == '1':
            add_Car()
        elif key == '2':
            find_NewCar()
        elif key == '3':
            find_AllNewCar()
        elif key == '4':
            re_NewCar()
        elif key == '5':
            save_Car()
        elif key == '6':
            sale_Car()
        elif key == '7':
            find_Car()
        elif key == '8':
            find_sale_Car()
        elif key == '9':
            exit_car = False
        else:
            print("非法输入")


main()

功能设计与分析
通过main函数调用实现各项菜单功能的调用
在这里插入图片描述

在这里插入图片描述
main()函数通过上方get_choice()函数的返回值来确定功能
在这里插入图片描述
通过创建列表在这里插入图片描述
实现储存汽车信息

以下代码为添加汽车信息代码,
在这里插入图片描述
再添加新信息前通过调用check_id()函数即以下代码
在这里插入图片描述
判断汽车id是否重复,重复则提示重新输入。
不重复则继续输入汽车信息,当输入到汽车种类时通过以下代码
在这里插入图片描述
判断输入的种类是否符合格式,不符合则提示重新输入。

以下代码为查看新车信息代码
在这里插入图片描述
首先输入要查询的新车id,后遍历功能1输入的数据查找是否有一致的id,若有则将flag变量值改为True,并通过if flag打印信息,若没有则flag值不变并显示未找到
在这里插入图片描述
上图为查看所有新车信息代码

以下为修改函数代码在这里插入图片描述
在这里插入图片描述.先输入有修改的新车id,后遍历功能1输入的新车id,若有相同的则将变量flag值变为True并调用chack_of_name()函数开始信息修改,,若没有则flag值不变并显示修改失败

以下为保存信息函数代码
在这里插入图片描述
将功能1写入的信息保存至CarMessage.txt文件

以下为销售数据录入代码
在这里插入图片描述
在这里插入图片描述
先输入已售出车辆id,后遍历列表内是否有相同id,当有相同id时则打开文件Carsale.txt并录入拥有该id的车辆信息,录入后删除列表内该车信息,并调用函数Save1_Car()覆盖CarMessage.txt文件内原有信息以达到删除CarMessage.txt文件内售出车辆信息的目的

以下为查看文件功能代码
在这里插入图片描述
打开CarMessage.txt文件并逐行读取文件内内容

运行结果
功能1
在这里插入图片描述
当id重复时则提示如下图
在这里插入图片描述
类型错误时提示如下
在这里插入图片描述
功能2
在这里插入图片描述
当没有相同id时提示如下
在这里插入图片描述
功能3
在这里插入图片描述
功能4在这里插入图片描述
在这里插入图片描述
当没有相同id时提示如下
在这里插入图片描述
功能5
在这里插入图片描述
在这里插入图片描述
功能6
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
功能7在这里插入图片描述
功能8
在这里插入图片描述

标签:课程设计,管理系统,python,car,list,kind,print,new,id
来源: https://blog.csdn.net/qq_45222992/article/details/106957137

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有