Python學習--面向對象--學生管理系統1.0


之前在面向過程中,做過一個學生管理系統,現在用面向過程的方法來試試。

用面向對象來解決:

  封裝類:

    學生類:                                                         管理系統類:

     成員變量                                                   成員變量 

        id                  pass

        name

        age

     成員方法                成員方法

        pass                 展示主菜單方法

                              添加學生信息

                              查詢學生信息

                              修改學生信息

                              刪除學生信息

                              查看所有學生信息

                              退出系統

    創建系統對象

       sys_student = Sys ()

    存儲學生對象的容器{}

    while(True):
            sys_student=show_menu()
            choice = input()
            if choice == 1:
                sysManger.addStudent()

以上是整體思路,下面是實現代碼

# 學生類
class Student:
    def __init__(self, stuId, name, age):
        self.stuId = stuId
        self.name = name
        self.age = age

    def studentoop(self):
        pass
 1 # 全局變量
 2 new_stuId = ""
 3 new_name = ""
 4 new_age = ""
 5 
 6 # 管理系統類
 7 class Sys:
 8     def __init__(self):
 9         pass
10 
11     # 展示系統菜單
12     def show_menu(self):
13         print("=" * 56)
14         print("             一個超🐴的學生管理系統 v1.0")
15         print("                   1:添加用戶信息")
16         print("                   2:查詢用戶信息")
17         print("                   3:修改用戶信息")
18         print("                   4:刪除用戶信息")
19         print("                   5:顯示用戶信息")
20         print("                   6:退出系統")
21         print("=" * 56)
 1 # 輸入學生菜單
 2     def getinfo(self):
 3         global new_stuId
 4         global new_name
 5         global new_age
 6         new_stuId = input("請輸入學號:")
 7         new_name = input("請輸入名字:")
 8         new_age = input("請輸入年齡:")
 9 
10 # 添加學生信息
11     def add_stus(self):
12        #調用getinfo方法
13         self.getinfo()
14     #以ID為Key,將新輸入的信息賦值給Student類
15     students[new_stuId] = Student(new_stuId,new_name,new_age) 
16
17     # 打印添加的學生信息
      print("ID:%s"%students[new_stuId].stuId,"Name:%s"%students[new_stuId].name,"Age:%s"%students[new_stuId].age)

查詢的時候,根據key(Id)來查找。(之前遇到的問題:key值不知道怎么賦值給Student類里)

1 def find_stus(self):
2     find_nameId = input("請輸入要查的學號")
3     if find_nameId in students.keys():
4         print("學號:%s\t名字:%s\t年齡:%s" % (students[new_stuId].stuId, students[new_stuId].name, students[new_stuId].age))
5     else:
6         print("查無此人")

修改學生信息(修改時有BUG,只能按Key修改,key是不會變的,只改變key的值)

1 def alter_stus(self):                                              
2     alterId = input("請輸入你要修改學生的學號:")                               
3     self.getinfo()                                                 
4     # 當字典中Key相同時,覆蓋掉以前的key值                                        
5     if alterId in students.keys():                                 
6         students[new_stuId] = Student(new_stuId, new_name, new_age)
7         del students[alterId]                                      
8     else:                                                          
9         print("查無此人")                                              

刪除學生信息

1 # 刪除學生信息                            
2 def del_stus(self):                 
3     cut_nameID = input("請輸入要刪除的學號:")
4     if cut_nameID in students.keys()
5         del students[cut_nameID]    
6     else:                           
7         print("查無此人")               

顯示學生所有信息

1 # 顯示學生信息                                                                                
2 def show_stus(self):                                                                    
3     for new_stuId in students:                                                          
4         # print("%s\t%s\t%s" % ("ID:%s"%new_stuId,"Name:%s"%new_name,"Age:%s"%new_age)) 
5         print("ID:%s" % students[new_stuId].stuId, "Name:%s" % students[new_stuId].name,
6               "Age:%s" % students[new_stuId].age)                                       
7                                                                                 

退出系統

1 # 退出系統                
2 def exit_stus(self):
   print("
歡迎下次使用")
3   exit()

利用循環來調用上面的信息

 1 # 創建系統對象                         
 2 sys = Sys()                                                      
 3 # 定義一個容器來存儲學生信息                  
 4 students = {}                    
 5 while True:                      
 6     sys.show_menu()              
 7     choice = int(input("請選擇功能:"))
 8     if choice == 1:              
 9         sys.add_stus()           
10     elif choice == 2:            
11         sys.find_stus()          
12     elif choice == 3:            
13         sys.alter_stus()         
14     elif choice == 4:            
15         sys.del_stus()           
16     elif choice == 5:            
17         sys.show_stus()          
18     elif choice == 6:            
19         sys.exit_stus()          
20     else:                        
21         print("您輸入有誤,請重新輸入")     

 最后總結:

   1.首先要剝離以前的面向過程的思維,用面向對象的方式來看待問題

   2.在寫代碼時,不要想的太復雜,簡單話問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM