鱼C论坛

 找回密码
 立即注册
查看: 1373|回复: 2

[作品展示] 第二版学生查询

[复制链接]
发表于 2020-6-9 21:07:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
经过Twilight6等人的努力,我们开发出了学生查询2.0

废话少说,上代码:(注意,建议使用辅件)
  1. from time import sleep
  2. from random import randint

  3. data = [{}]

  4. while True:
  5.     # 循环开头显示功能
  6.     print("       ****************************************")
  7.     print("          欢迎使用学生管理系统v2.0(后续有3.0)")
  8.     print("                  1.显示所有学生")
  9.     print("                  2.新建学生档案")
  10.     print("                  3.查询学生信息")
  11.     print("                  4.修改学生档案")
  12.     print("                  5.删除学生档案")
  13.     print("                  6.提取学生数据")
  14.     print("                  0.退出")
  15.     print("       ****************************************")
  16.     print()


  17.     def print_all():
  18.         for student in data:
  19.             print(student)
  20.             pass
  21.         pass


  22.     def someThing_put_in():
  23.         ID = randint(1000000000, 9999999999)
  24.         try:
  25.             if ID in data:
  26.                 ID = randint(1000000000, 9999999999)
  27.         except:
  28.             print("调试错误!")
  29.         someName = input("输入姓名:")
  30.         someSex = input("输入性别:")
  31.         someAddress = input("输入地址:")
  32.         student = {"ID": ID, "name": someName, "sex": someSex, "address": someAddress}
  33.         data.append(student)


  34.     def find_student():
  35.         print("为了确保您是管理员,请输入学生全名(非小名)")
  36.         somename = input()
  37.         try:
  38.             for i in data:
  39.                 if i["name"] == somename:
  40.                     print(i)
  41.                     pass
  42.                 pass
  43.             pass
  44.         except:
  45.             print("有错误")


  46.     def write_student():
  47.         someBody = input("请输入学生全名(非小名):")
  48.         for j in data:
  49.             if j["name"] == someBody:
  50.                 TA_new_name = input("请输入新名字:")
  51.                 TA_new_ID = randint(1000000000, 9999999999)
  52.                 if TA_new_ID in data:
  53.                     TA_new_ID = randint(1000000000, 9999999999)
  54.                 else:
  55.                     TA_new_sex = input("输入性别:")
  56.                     TA_new_address = input("输入地址:")
  57.                     NEW_student = {"ID": TA_new_ID, "name": TA_new_name, "sex": TA_new_sex, "address": TA_new_address}
  58.                     data.append(NEW_student)
  59.                     LAST_name = input("输入原先的名字:")
  60.                     for k in data:
  61.                         if k["name"] == LAST_name:
  62.                             need_del = k
  63.                     data.remove(need_del)


  64.     def del_student():
  65.         someGuy = input("请输入学生全名(非小名):")
  66.         for find in data:
  67.             if find["name"] == someGuy:
  68.                 print()
  69.                 sleep(1)
  70.                 print("Find it!")
  71.                 data.remove(find)


  72.     def save():
  73.         if data!= []:
  74.             with open('data.txt','w',encoding='utf-8') as f:
  75.                 f.write('{:^10}{:^10}{:^10}{:^10}\n\n'.format('ID','Name','Sex','Address'))
  76.                 for i in data:
  77.                     f.write('{:^10}{:^10}{:^10}{:^10}\n\n'.format(i['ID'],i['name'],i['sex'],i['address']))
  78.             print('保存数据成功!')
  79.         else:
  80.             print('你的档案库为空!')

  81.     def extract():
  82.         global data
  83.         try:
  84.             with open('data.txt', encoding='utf-8') as f:
  85.                 temp = []
  86.                 for i in f:
  87.                     if i[0].isdigit():
  88.                         temp.append([each for each in i.split() if each != ''])
  89.                 for i in temp:
  90.                     temp_list = {}
  91.                     temp_list['ID'] = int(i[0])
  92.                     temp_list['name'] = i[1]
  93.                     temp_list['sex'] = i[2]
  94.                     temp_list['address'] = i[3]
  95.                     if temp_list not in data:
  96.                         data.append(temp_list)
  97.             print('提取学生档案成功!')
  98.         except OSError:
  99.             print('错误:档案文件<data.txt>不存在!')

  100.     someThing = input("Enter the num:")
  101.     if someThing == "0":
  102.         break
  103.     elif someThing == "1":
  104.         print_all()
  105.         continue
  106.     elif someThing == "2":
  107.         print("好的")
  108.         print()
  109.         sleep(1)
  110.         someThing_put_in()
  111.     elif someThing == "3":
  112.         print("OK")
  113.         print()
  114.         find_student()
  115.     elif someThing == "4":
  116.         print("OK")
  117.         sleep(1)
  118.         write_student()
  119.     elif someThing == "5":
  120.         print("OK")
  121.         print()
  122.         del_student()
  123.     elif someThing == "6":
  124.         more_Thing = input("要提取还是读取(填R(读取)或S(保存)):")
  125.         if more_Thing == "R":
  126.             extract()
  127.         elif more_Thing == "S":
  128.             save()




复制代码


附件:

student_find.rar

1.75 KB, 下载次数: 0

售价: 1 鱼币  [记录]  [购买]

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-9 21:08:24 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-9 21:25:44 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 14:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表