知乎链接:https://zhuanlan.zhihu.com/p/149846892
仅供参考!!!仅供参考!!!仅供参考!!
(本人课程设计已验收,代码也已验收过,切勿直接照搬!!!)
老师所问的问题也不难,代码功能搞懂便可轻松验收过关!!
不必私聊问具体细节,试试便知=-=!
一、课程设计题目:
汽车销售管理系统
二、项目基本要求:
1、基本要求:
(1)复习并深入理解Python语言基本特性、数据文件读取方法及面向对象思想;
(2)掌握Python语言相关特性,熟悉相关常用函数的使用;
(3)研究并掌握Python面向对象的语法特点和使用方法;
2、创新要求:
在基本要求达到后,可进行创新设计,如调用matplotlib模块显示销售数据等功能,或者使用基于WEB的界面进行交互。
三、设计方法和基本原理:
1、问题描述(功能要求):
根据实验指导书要求,完成相关软件系统的设计,要求内容翔实,条理清晰,主要(关键代码)须有详细注释,写清楚测试结果,并分析存在的问题:
1)能够实现汽车销售管理与相关信息的保存(到文件)和读取;
2)实现所有库存汽车相关信息的录入、显示、销售、修改等功能;
3)系统界面应类似下图所示的控制台界面(鼓励使用WEB或桌面窗体界面):
其中,选择相应菜单代码之后进入相应的功能,可以:1录入汽车信息(最后保存到文件);2显示已经保存的汽车信息(库存);3销售汽车:先显示已有汽车数据,选择销售的汽车编号之后将该车的信息删除;4修改汽车信息,先通过编号选定汽车信息,然后更改;5显示已经销售的汽车信息;6退出。
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的相关功能和信息的关系;
(2)根据问题描述,设计数据访问流程和访问界面(控制台界面);
(3)完成类中各个成员函数的定义;
(4)功能调试;
(5)完成系统总结报告以及系统使用说明书。
(在输入汽车编号时没有判断所填写的信息汽车编号是否已存在,可以在录取汽车功能函数里加一个判断语句,若车库中已有该汽车编号,则需要重新输入才可录入)
class Sale(object):
def __init__(self):
self.cars = []
# 注册登录功能
def login(self):
user = []
while True:
print("""
*********************************
*1 注册 2 登录*
*********************************
""")
num = input("请输入您要使用的功能:")
if num == "1":
user_name = input("用户名:")
user_pwd = input("密码:")
user.extend([user_name, user_pwd])
file = open("账号存储.txt", "w")
file.write(str(user))
file.close()
print("恭喜您注册成功!")
elif num == "2":
f = open("账号存储.txt", "a+")
f.seek(0)
a = f.read()
name = input("请输入您的用户名:")
pwd = input("请输入您的密码:")
num = []
num.extend([name, pwd])
if str(num) == a:
print("登录成功!")
break
else:
print("您还未注册账号,请先注册再使用!")
else:
print("输入错误,请重新输入!")
self.run()
# 主界面
def menu(self):
print("""
*************************************************************************
* *欢迎您使用* *
* *汽车销售管理系统* *
*************************************************************************
* 1 录入汽车信息 2 显示汽车信息 *
*************************************************************************
* 3 销售汽车 4 修改汽车信息 *
*************************************************************************
* 5 销售数据 6 退出系统 *
*************************************************************************
""")
# 录入汽车信息功能
def car_entering(self):
while True:
car = {}
number = input("请输入汽车编号:")
name = input("请输入汽车名:")
brand = input("请输入汽车的品牌:")
origin = input("请输入汽车的原产地:")
age = input("请输入汽车车龄:")
emissions = input("请输入汽车的排放量:")
price = input("请输入汽车的价格:")
car["number"] = number
car["name"] = name
car["brand"] = brand
car["origin"] = origin
car["age"] = age
car["emissions"] = emissions
car["price"] = price
self.cars.append(car)
control = input("是否继续添加(Y/N):")
if control == "Y":
print("请您继续录入:\n")
else:
print("您已录入成功!")
break
self.save_info()
# 显示汽车信息功能
def car_display(self):
print("\n")
print("当前车库车辆的信息:")
print("~" * 70)
print("汽车编号\t汽 车 名 \t品 牌\t原 产 地\t车 龄\t排放量\t价 格\t")
for car in self.cars:
msg = car["number"] + "\t\t" + car["name"] + \
"\t\t" + car["brand"] + "\t" + car["origin"] + \
"\t\t" + car["age"] + "\t" + car["emissions"] + \
"\t\t" + car["price"]
print("~" * 70)
print(msg)
print("~" * 70)
print("\n")
# 销售汽车功能
def car_del(self):
self.car_display() # 调用显示功能,在销售前将车库车辆信息先显示出来
number = input("请输入要售出的汽车编号:")
for car in self.cars:
# 以汽车编号为索引值,如果该汽车编号不在车库车辆信息库里则提示该编号汽车已经出售
if number == car.get("number"):
# 将售出的汽车信息存入文件,每次储存覆盖上一次的数据
f = open("汽车销售数据信息.txt", "a+")
f.write("\t汽车编号:" + str(car["number"]) + \
"\t汽车名:" + str(car["name"]) + \
"\t品牌:" + str(car["brand"]) + \
"\t原产地:" + str(car["origin"]) + \
"\t车龄:" + str(car["age"]) + \
"\t排放量:" + str(car["emissions"]) + \
"\t价格:" + str(car["price"]) + "\n")
f.close() # 关闭销售数据文件
self.cars.remove(car) # 移除销售的汽车信息
self.car_display()
print("该编号汽车已出售!")
self.save_info()
# 修改汽车信息
def car_amend(self):
self.car_display() # 修改汽车信息前先把车库中的汽车信息显示出来
number = input("请输出修改车辆所对应的汽车编号:")
for car in self.cars:
# 以汽车编号为索引值,如果该汽车编号在车库车辆信息库中则可进行修改
if number == car.get("number"):
print("此车的车辆信息如下:\n")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
q = "汽车编号:" + car["number"] + \
"\n汽车名:" + car["name"] + \
"\n品牌:" + car["brand"] + \
"\n原产地:" + car["origin"] + \
"\n车龄:" + car["age"] + \
"\n排放量:" + car["emissions"] + \
"\n价格:" + car["price"]
print(q)
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
new_number = input("请输入新的汽车编号:")
car["number"] = new_number
new_name = input("请输入新的汽车名:")
car["name"] = new_name
new_brand = input("请输入新的汽车的品牌:")
car["brand"] = new_brand
new_origin = input("请输入新的汽车的原产地:")
car["origin"] = new_origin
new_age = input("请输入新的汽车车龄:")
car["age"] = new_age
new_emissions = input("请输入新的汽车的排放量:")
car["emissions"] = new_emissions
new_price = input("请输入新的汽车的价格:")
car["price"] = new_price
self.car_display() # 将修改后的车库车辆信息显示
print("已成功修改信息!")
self.save_info()
# 显示销售数据功能
def car_s(self):
print("汽车销售数据:\n")
fl = open("汽车销售数据信息.txt", "a+")
fl.seek(0) # 移动文件读取指针到开头
# 将汽车销售数据信息一行一行显示
for line in fl:
print(line)
# 文件保存
def save_info(self):
f = open("车库车辆信息.txt", "w")
f.write(str(self.cars)) # 保存
f.close() # 关闭资源
def run(self):
while True:
self.menu()
select = input("请输入您的指令:")
# 判断用户输入的内容
if select == "1":
self.car_entering()
elif select == "2":
self.car_display()
elif select == "3":
self.car_del()
elif select == "4":
self.car_amend()
elif select == "5":
self.car_s()
elif select == "6":
print("告辞!\n")
break
else:
print("输入错误!!!请输入正确指令!\n")
# 入口函数
def main(self):
self.login()
# 创建实例对象,调用方法
car = Sale()
car.main()
原文链接:https://blog.csdn.net/qq_43661776/article/details/106908379