一开始学生问我停车场的系统设计思路,他想做一个停车的系统。
可是以目前他掌握的知识点没办法做到特别的简化,那就用稍微麻烦点的方法先写一个,以后学到的新的简化方式再进行优化
这个系统会记录车牌号,业主姓名,注册日期,会员剩余天数
Ps:因为没有调用摄像头,所以进入停车场需要手动输入车牌号。
代码如下:
# 拿走代码请给一个小心心
import datetime
rongliang = 10 # 设置停车场容量
cheliang = 0 #已停车辆计数
while True:
#选择功能 1.注册 2.进入停车场
message = input('1.注册 2.进入停车场 请输入:')
if message =='1': #注册功能
chepaihao = input('车牌号:')
name = input('姓名:')
#保存车牌号
with open('chepaihao.txt','a') as f1:
f1.write(chepaihao+'\n')
# 保存姓名
with open('xingming.txt', 'a') as f1:
f1.write(name + '\n')
# 保存注册时间
dangqian_time = datetime.datetime.now()
with open('zhuceshijian.txt', 'a') as f1:
f1.write(str(dangqian_time) + '\n')
#注册成功
#print('这里没有错')
print('╭──────────────────────────╮')
print('│ 恭喜 注册成功 │')
print('╰──────────────────────────╯\n\n\n')
elif message =='2':
#输入车牌
chepaihao = input('车牌号:')
# 获取注册车辆数
with open('chepaihao.txt','r') as f1:
res = len(f1.readlines())
#判断是否有空位置
if res >= rongliang: # 获取文件行数
print('停车场已满') # 停车场已满
break
else:
#判断是否注册
with open('chepaihao.txt','r') as f1:
f_f1 = f1.read()
if chepaihao in f_f1: #已注册车辆准入
cheliang += 1
linshi_time = datetime.datetime.today() #获取当前日期
l_time1 = linshi_time.year #年
l_time2 = linshi_time.month #月
l_time3 = linshi_time.day #日
with open('chepaihao.txt', 'r') as f1: #获取注册时间
zheuce_tiem = f1.read()
# 查询车牌所在行数
num = 0
with open('chepaihao.txt','r')as f1:
ff1 = f1.readlines()
for line in ff1:
if chepaihao in line:
hangshu = num
break
num += 1
# 查询车牌注册时间所在行数
with open('zhuceshijian.txt','r')as f1:
ff1 = f1.readlines()
# 注册时间所在行的信息
zhuce_time = ff1[num]
# 获取具体时间 年月日 获取前10个字符串
zhuce_time = list(zhuce_time)
# print(zhuce_time)
zhuce_time_str = ''
for i in zhuce_time:
if i == '-':
continue
else:
zhuce_time_str += i
# 获取年月日
time_year = int(zhuce_time_str[:4])
# print(time_year)
time_month = int(zhuce_time_str[4:6])
# print(time_month)
time_day = int(zhuce_time_str[6:8])
# print(time_day)
#当前年月日
x = datetime.date(l_time1+1,l_time2,l_time3)
#注册年月日
y = datetime.date(time_year,time_month,time_day)
t = x.__sub__(y)
# print(t)
# 计算会员剩余时间
print('会员车,欢迎进入,还剩时间{}\n'.format(t))
print()
else: #判断未注册
print('请注册')
# 重置数据库
elif message =='123456':
# 清空车牌号
with open('chepaihao.txt', 'w') as f1:
f1.write('')
# 清空姓名
with open('xingming.txt', 'w') as f1:
f1.write('')
# 清空注册时间
with open('zhuceshijian.txt', 'w') as f1:
f1.write('')
print('数据库已重置\n\n')
else:
print('功能还没开发')