python练习笔记之学生管理系统

练习内容有下面几个
  1. 字典的使用
  2. 列表的使用
  3. 文件的使用
  4. 逻辑语句的使用
  5. 类的使用
  6. 分层思想
代码部分分为三部分

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_小白鱼儿_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值