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

程序使用说明(该博客图片水印为改名前所加故与博客昵称不同)
该程序为汽车销售管理系统,可通过功能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函数调用实现各项菜单功能的调用
python基础课程设计《汽车销售管理系统》_第1张图片

在这里插入图片描述
main()函数通过上方get_choice()函数的返回值来确定功能
python基础课程设计《汽车销售管理系统》_第2张图片
通过创建列表在这里插入图片描述
实现储存汽车信息

以下代码为添加汽车信息代码,
python基础课程设计《汽车销售管理系统》_第3张图片
再添加新信息前通过调用check_id()函数即以下代码
python基础课程设计《汽车销售管理系统》_第4张图片
判断汽车id是否重复,重复则提示重新输入。
不重复则继续输入汽车信息,当输入到汽车种类时通过以下代码
python基础课程设计《汽车销售管理系统》_第5张图片
判断输入的种类是否符合格式,不符合则提示重新输入。

以下代码为查看新车信息代码
python基础课程设计《汽车销售管理系统》_第6张图片
首先输入要查询的新车id,后遍历功能1输入的数据查找是否有一致的id,若有则将flag变量值改为True,并通过if flag打印信息,若没有则flag值不变并显示未找到
python基础课程设计《汽车销售管理系统》_第7张图片
上图为查看所有新车信息代码

以下为修改函数代码python基础课程设计《汽车销售管理系统》_第8张图片
python基础课程设计《汽车销售管理系统》_第9张图片.先输入有修改的新车id,后遍历功能1输入的新车id,若有相同的则将变量flag值变为True并调用chack_of_name()函数开始信息修改,,若没有则flag值不变并显示修改失败

以下为保存信息函数代码
python基础课程设计《汽车销售管理系统》_第10张图片
将功能1写入的信息保存至CarMessage.txt文件

以下为销售数据录入代码
python基础课程设计《汽车销售管理系统》_第11张图片
python基础课程设计《汽车销售管理系统》_第12张图片
先输入已售出车辆id,后遍历列表内是否有相同id,当有相同id时则打开文件Carsale.txt并录入拥有该id的车辆信息,录入后删除列表内该车信息,并调用函数Save1_Car()覆盖CarMessage.txt文件内原有信息以达到删除CarMessage.txt文件内售出车辆信息的目的

以下为查看文件功能代码
python基础课程设计《汽车销售管理系统》_第13张图片
打开CarMessage.txt文件并逐行读取文件内内容

运行结果
功能1
python基础课程设计《汽车销售管理系统》_第14张图片
当id重复时则提示如下图
在这里插入图片描述
类型错误时提示如下
在这里插入图片描述
功能2
python基础课程设计《汽车销售管理系统》_第15张图片
当没有相同id时提示如下
在这里插入图片描述
功能3
python基础课程设计《汽车销售管理系统》_第16张图片
功能4python基础课程设计《汽车销售管理系统》_第17张图片
python基础课程设计《汽车销售管理系统》_第18张图片
当没有相同id时提示如下
python基础课程设计《汽车销售管理系统》_第19张图片
功能5
python基础课程设计《汽车销售管理系统》_第20张图片
在这里插入图片描述
功能6
python基础课程设计《汽车销售管理系统》_第21张图片
在这里插入图片描述
在这里插入图片描述
功能7python基础课程设计《汽车销售管理系统》_第22张图片
功能8
python基础课程设计《汽车销售管理系统》_第23张图片

你可能感兴趣的:(python基础课程设计《汽车销售管理系统》)