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基础课程设计《汽车销售管理系统》

python基础课程设计《汽车销售管理系统》
main()函数通过上方get_choice()函数的返回值来确定功能
python基础课程设计《汽车销售管理系统》
通过创建列表python基础课程设计《汽车销售管理系统》
实现储存汽车信息

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

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

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

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

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

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

运行结果
功能1
python基础课程设计《汽车销售管理系统》
当id重复时则提示如下图
python基础课程设计《汽车销售管理系统》
类型错误时提示如下
python基础课程设计《汽车销售管理系统》
功能2
python基础课程设计《汽车销售管理系统》
当没有相同id时提示如下
python基础课程设计《汽车销售管理系统》
功能3
python基础课程设计《汽车销售管理系统》
功能4python基础课程设计《汽车销售管理系统》
python基础课程设计《汽车销售管理系统》
当没有相同id时提示如下
python基础课程设计《汽车销售管理系统》
功能5
python基础课程设计《汽车销售管理系统》
python基础课程设计《汽车销售管理系统》
功能6
python基础课程设计《汽车销售管理系统》
python基础课程设计《汽车销售管理系统》
python基础课程设计《汽车销售管理系统》
功能7python基础课程设计《汽车销售管理系统》
功能8
python基础课程设计《汽车销售管理系统》

上一篇:题解 HDU3306 【Another kind of Fibonacci】


下一篇:使用Kind快速创建K8S学习环境