练习内容有下面几个
- 字典的使用
- 列表的使用
- 文件的使用
- 逻辑语句的使用
- 类的使用
- 分层思想
代码部分分为三部分
1.应用逻辑
2.显示部分
3.数据处理部分
下面的是逻辑部分
# -*- coding: utf-8 -*-
from student import *
def main():
student_Object = student()
student_Object.read_student_file()
display().display_info("main_show")
while True:
num = input()
if False == num.isdigit():
display().display_info("input_not_num")
continue
num = int(num)
if num == 1:
student_Object.add_student()
elif num == 2:
student_Object.remove_student_from_name()
elif num == 3:
student_Object.change_student_from_name()
elif num == 4:
student_Object.find_student_from_name()
elif num == 5:
student_Object.show_all_student()
elif num == 6:
student_Object.save_student_info()
elif num == 7:
return 1
else:
display().display_info("input_error")
display().display_info("main_show")
return 0
if __name__ == "__main__":
main()
这里是显示部分
# -*- coding: utf-8 -*-
'''
显示用到了字典
字典遍历
键值配对
'''
class display(object):
"""description of class"""
def __init__(self):
self.show_dict = {"please_input":"您请输入:", \
"main_show":"\n\r\t学生管理系统 V0.01\n\r\t1:添加学生\n\r\t2:删除学生\n\r\t3:修改学生\n\r\t4:查询学生\n\r\t5:显示所有学生\n\r\t6:保存数据\n\r\t7:退出系统\n\r", \
"add_student":"请输入添加学生的信息:姓名,年龄,成绩" ,\
"input_not_num":"输入的参数不是数字,请按数字键",
"input_find":"请输入查找的姓名",\
"input_rm":"请输入要删除的姓名",\
"name_null":"查无此人,请重新输入",\
"input_change": "请输入您要修改的人名", \
"input_error":"输入错误,请重新输入"}
def display_info(self,str):
for i in self.show_dict:
if(str == i):
print("#"*40)
print(self.show_dict[i])
print("#"*40)
return 0
这里是数据处理部分
# -*- coding: utf-8 -*-
from display import *
import os
class student(display):
"""description of class"""
def __init__(self):
self.student_list = [] #学生的信息列表 内部节点存放字典
def add_student(self):
student_dict = {}
display().display_info("add_student")
student_dict["姓名"] = input()
student_dict["年纪"] = input()
student_dict["成绩"] = input()
self.student_list.append(student_dict)
def show_all_student(self):
print("#"*40)
for i in range(len(self.student_list)):
print (self.student_list[i])
print("#"*40)
def find_student_from_name(self):
display().display_info("input_find")
str = input()
flag = 0
print("#"*40)
for i in range(len(self.student_list)):
if self.student_list[i].get("姓名") == str:
print (self.student_list[i])
flag = 1
break
if(flag != 1):
display().display_info("name_null")
print("#"*40)
def read_student_file(self):
if False == os.access("student.dat", os.F_OK):
file = open("student.dat","w+")
content = file.read()
if len(content) > 0:
self.student_list = eval(content)
self.show_all_student()
file.close()
else:
file = open("student.dat","r")
content = file.read()
if len(content) > 0:
self.student_list = eval(content)
self.show_all_student()
file.close()
return 0
def save_student_info(self):
file = open("student.dat","w")
file.write(str(self.student_list))
file.close()
return 0
def remove_student_from_name(self):
display().display_info("input_rm")
str = input()
print("#"*40)
flag = 0
for i in range(0,len(self.student_list)):
print (i)
if self.student_list[i].get("姓名") == str:
del self.student_list[i]
flag = 1
break
if(flag != 1):
display().display_info("name_null")
print("#"*40)
return 0
def change_student_from_name(self):
display().display_info("input_change")
str = input()
print("#"*40)
flag = 0
for i in range(0,len(self.student_list)):
print (i)
if self.student_list[i].get("姓名") == str:
#这里做简单处理,直接把这个人删除,重新输入
self.add_student()
flag = 1
break
if(flag != 1):
display().display_info("name_null")
print("#"*40)
return 0