c1785 2 months ago
parent 52626093fd
commit 87f42e7e62

@ -3,8 +3,8 @@
"sid": "110309230907041", "sid": "110309230907041",
"name": "cgt", "name": "cgt",
"height": 180, "height": 180,
"birth_date": "2023-09-01", "birth_date": "2002-01-25",
"enrollment_date": "2023-09-01", "enrollment_date": "2023-09-01",
"class_name": "cls2" "class_name": "cs"
} }
] ]

@ -109,7 +109,6 @@ def main():
elif stats_choice == '0': elif stats_choice == '0':
continue continue
elif choice == '6': elif choice == '6':
print(6666666666666666666666666)
ui.display_import_export_menu() ui.display_import_export_menu()
import_export_choice = ui.get_input("请输入你的导入导出选择: ") import_export_choice = ui.get_input("请输入你的导入导出选择: ")
if import_export_choice != '0': if import_export_choice != '0':

@ -1,4 +1,5 @@
import os,re import os
import re
from datetime import date from datetime import date
from bll.student_bll import StudentBLL from bll.student_bll import StudentBLL
from dal.student_dal_json import StudentDAL from dal.student_dal_json import StudentDAL
@ -15,6 +16,7 @@ class StudentUI:
self.file_path = file_path self.file_path = file_path
def display_menu(self): def display_menu(self):
"""显示主菜单""" """显示主菜单"""
os.system('cls' if os.name == 'nt' else 'clear') os.system('cls' if os.name == 'nt' else 'clear')
@ -87,8 +89,6 @@ class StudentUI:
print("*" * 50) print("*" * 50)
name = self.get_input("请输入姓名: ") name = self.get_input("请输入姓名: ")
id_number = self.get_input("请输入身份证号: ")
# 验证学号格式(新增)
id_number = self.get_input("请输入身份证号: ") id_number = self.get_input("请输入身份证号: ")
while not re.match(r'^\d{17}[\dXx]$', id_number): while not re.match(r'^\d{17}[\dXx]$', id_number):
print("身份证号格式不正确,请输入 18 位身份证号。") print("身份证号格式不正确,请输入 18 位身份证号。")
@ -96,9 +96,9 @@ class StudentUI:
while True: while True:
student_id = self.get_input("请输入学号: ") student_id = self.get_input("请输入学号: ")
if re.match(r'^\d{10,15}$', student_id): # 假设学号是8-12位数字 if re.match(r'^\d{10,15}$', student_id): # 假设学号是10 - 15位数字
break break
print("学号格式不正确,请输入8-12位数字") print("学号格式不正确,请输入10到15位数字")
gender = self.get_input("请输入性别(男/女): ") gender = self.get_input("请输入性别(男/女): ")
@ -120,11 +120,15 @@ class StudentUI:
except ValueError: except ValueError:
print("体重必须为0到500之间的有效数值请重新输入") print("体重必须为0到500之间的有效数值请重新输入")
# 从身份证号中提取出生日期
birth_date_str = id_number[6:14]
birth_date = date(int(birth_date_str[:4]), int(birth_date_str[4:6]), int(birth_date_str[6:]))
# 修改后的日期输入验证 # 修改后的日期输入验证
while True: while True:
enrollment_date = self.get_input("请输入入学日期(YYYY-MM-DD): ") enrollment_date = self.get_input("请输入入学日期(YYYY-MM-DD): ")
try: try:
date_obj = date.fromisoformat(enrollment_date) enrollment_date_obj = date.fromisoformat(enrollment_date)
break break
except ValueError: except ValueError:
print("日期格式错误,请使用 YYYY-MM-DD 格式例如2023-09-01") print("日期格式错误,请使用 YYYY-MM-DD 格式例如2023-09-01")
@ -138,8 +142,8 @@ class StudentUI:
sid=student_id, sid=student_id,
name=name, name=name,
height=height, height=height,
birth_date=date_obj, # 使用验证后的日期对象 birth_date=birth_date, # 使用从身份证提取的出生日期
enrollment_date=date_obj, # 使用验证后的日期对象 enrollment_date=enrollment_date_obj,
class_name=class_name class_name=class_name
) )
if self.bll.add_student(student): if self.bll.add_student(student):

Loading…
Cancel
Save