Python综合案例猜数字实验论文1500字,Python案例
Yyds干货库存
一、系统需求分析1。需求分析学生管理系统的开发是采用面向对象的编程思想完成的,具体如下:
系统要求:学生数据存储在文件中。
系统功能:添加学生、删除学生、修改学生信息、查询学生信息、显示所有学生信息、保存学生信息、退出系统。
2.角色分析在面向对象编程的思想中,我们必须找到实体来具体实现操作。
通过系统实现添加学生。
通过系统实现删除学生。
.
最后可以得出一个结论:这个通信管理系统的主体是通讯录管理系统本身。
需要注意的事项
(1)为了便于代码的维护,一般一个角色一个程序文件。
项目要有主程序入口,习惯是main.py
3.创建项目创建类file=studentmanager.py。
创建项目条目文件=main.py
二。系统代码开发1。学生信息存储代码分析学生=[{},{},{}]
学生姓名
学生年龄
见习电话
学生的信息(姓名、年龄、电话号码),可以用字典来表示。但是我们已经学过面向对象了,它的学生信息完全可以用对象来实现。
学生(主题)=属性(姓名、年龄、电话号码)
2.student.py文件的编写要求:
学员信息包括:姓名、年龄、电话号码。
添加__str__ magic方法,方便查看学生对象的信息。
#定义学生类
班级学生():
#定义魔术方法来初始化属性信息。
def __init__(本人,姓名,年龄,手机):
self.name=name
年龄=年龄
自我移动=移动
#定义魔法方法,用来打印出学生信息。
def __str__(self):
返回“{self。姓名}、{自我。年龄}、{自我。手机} 3。编写代码studentManager.py
类StudentManager(对象):
#定义__init__ magic方法来初始化操作
def __init__(self):
#定义一个列表,将来用于保存所有学生信息
Self.student_list=[]未来数据的存储格式如下:
自我。学生名单=[P1,P2,P3,P4,] 4.学生管理系统的具体功能要求:
数据存储位置:file (student.data)
加载文件数据,修改数据,并保存到文件。数据存储形式:列表存储学员对象。
系统功能:
添加学生信息。
删除学生信息。
修改学生信息。
查询学生信息。
显示所有学生的信息。
保存学生信息。
退出系统
编写程序代码实现以上所有功能:
逻辑代码类StudentManager(对象):
#定义__init__ magic方法来初始化数据
def __init__(self):
#初始化student_list属性,该属性将用于保存将来所有的学生对象信息
self.student_list=[]
#定义load_student()方法
定义加载_学生(自己):
及格
#定义静态show_help()方法
@静态方法
定义show_help():
打印(- * 40)
打印(“传智教育通讯录管理系统V2.0”)
打印( 1。添加学生信息’)
打印( 2。删除学生信息’)
打印( 3。修改学生信息’)
打印( 4。查询学生信息’)
打印( 5。显示所有学员信息’)
# V2.0新功能
打印( 6。保存学生信息’)
打印( 7。退出系统’)
打印(- * 40)
定义添加_学生(自己):
及格
def del_student(自我):
及格
def mod_student(自己):
及格
定义显示_学生(自己):
及格
定义显示全部(自己):
及格
定义保存_学生(自己):
及格
#定义一个run()方法,专门用来调用管理系统中的各种函数。
定义运行(自身):
# 1.调用一个学生加载方法来加载文件中的所有学生信息。加载完成后,获取的所有学生信息都将保存在student_list属性中。
self.load_student()
# 2.显示帮助信息,提示用户输入要实现的功能号。
虽然正确:
#显示帮助信息
self.show_help()
#提示用户输入要操作的功能号。
User_num=int(input(请输入要操作的函数的编号:))
如果用户数量==1:
self.add_student()
elif用户数量==2:
self.del_student()
elif用户数量==3:
self.mod_student()
elif用户数量==4:
self.show_student()
elif用户数量==5:
self.show_all()
elif用户数量==6:
self.save _学生()
elif用户数量==7:
打印(感谢您使用传智教育通讯录管理系统V2.0,欢迎下次使用!)
破裂
否则:
打印(信息输入不正确,请重新输入.)编译main.py导入文件#从studentManager模块导入StudentManager类函数
从学生管理器导入学生管理器
#定义进入代码
if __name__==__main__ :
student_manager=StudentManager()
Student_manager.run()编写add_student()方法添加学生。实现需求:用户输入学生姓名,年龄,手机号,将学生添加到系统中。
步骤:
用户输入姓名、年龄和手机号码。
创建学生对象(真正添加到列表中的是对象)。
将学生对象添加到列表[]=append()
从学生导入学生
.
.
.
定义添加_学生(自己):
#提示用户输入学生信息
Name=input(请输入学员的姓名:)
Age=int(输入(请输入学习者的年龄:))
Mobile=input(请输入学员的电话号码:)
#使用Student类实例化一个对象
学生=学生(姓名、年龄、手机)
#调用student_list属性追加student对象的信息。
self.student_list.append(学生)
Print(学生信息已添加成功)Write del_student()学生删除方法实现要求:用户输入目标学生的姓名,如果存在则删除该学生。
步骤:
用户输入目标学生的姓名
遍历学生数据表。如果用户输入的学生姓名存在,则删除;否则会提示该学生不存在。
def del_student(自我):
#提示用户输入要删除的学生的姓名
Name=input(请输入要删除的学生的姓名:)
#遍历student_list属性(基本列表)
对于self.student_list中的I:
如果i.name==name:
找到#个要删除的学员,将其删除。
self.student_list.remove(i)
打印(f 学生{姓名}信息删除成功)
破裂
否则:
打印(您要删除的学生不存在.)写mod_student()学生修改方法实现def mod_student(self):
#提示用户输入要修改的学生姓名
Name=input(请输入要修改的学生姓名:)
#遍历student_list属性以确定要修改的学生姓名是否存在。
对于self.student_list中的I:
如果i.name==name:
I.name=input(请输入修改后的学生姓名:)
I.age=int(input(请输入修改后的学生年龄:))
I.mobile=input(请输入修改后的学员电话号码:)
打印(f 学生信息修改成功,修改信息如下=学生姓名:{i.name},学生年龄:{i.age},学生电话:{i.mobile} )
破裂
否则:
打印(您要修改的学生信息不存在.)编写show_student()学生查询方法实现def show_student(self):
#提示用户输入要查询的学生姓名。
Name=input(请输入要查询的学生姓名:)
#遍历student_list属性
对于self.student_list中的I:
如果i.name==name:
打印(一)
破裂
否则:
打印(您要查找的学生信息不存在.)编写show_all()方法查询所有学生实现def show_all(self):
#直接遍历列表
对于self.student_list中的I:
Print(i)编写save_student()方法。学生信息保存功能的要求是将所有学生信息保存到一个存储数据的文件中。
步骤:
打开文件读写文件关闭文件
思考:
文件中写入的数据是学生对象的内存地址吗?
答:一定不能是对象的内存地址,因为内存地址可能会随着系统运行随时改变。
文件中的数据要求的数据类型是什么?答:必须是字符串,可以用str()转换
扩展:将对象转换为字典格式=__dict__ class A(object):
a=0
def __init__(self):
self.b=1
aa=A()
#返回实例属性和值的字典
打印(aa。__dict__) Case: demo.py
从学生导入学生
student_list=[]
学生=学生(汤姆,23, 10086 )
学生_列表.追加(学生)
打印(学生。_ _ dict _ _) # {name: Tom , age: 23, mobile: 10086}案例:将[Object 1,Object 2,Object 3]中的所有对象转换为字典
从学生导入学生
student_list=[]
学生=学生(汤姆,23, 10086 )
学生_列表.追加(学生)
学生=学生(哈利,25, 10010 )
学生_列表.追加(学生)
#[学生1,学生2,学生3,]
# list1=[]
#对于学生列表中的I:
# list1.append(i.__dict__)
#打印(列表1)
list 1=[学生列表中I的i. _ _字典]
打印(列表1)最终代码:
#将self.student_list转换为字符串,并将其保存在student.data文件中。
定义保存_学生(自己):
#打开文件
f=打开( student.data , w ,编码=utf-8 )
#将列表中的对象转换为词典
new _ list=[I . _ _ dict _ _ for I in self . student _ list]
#文件读写(写)
f.write(str(new_list))
#关闭文件
f.close()
#提示用户数据已成功保存
打印(学生信息保存成功)编写load_student()方法的学生加载函数,实现load_student()方法的功能:系统启动运行run()方法后,保存在student.data文件中的学生信息=load=self.student_list。
Student.data=张三、李四、王五
下次再运行系统。
self . student _ list=[张三,李四,王五]
添加刘钊
self . student _ list=[张三,李四,王五,刘钊]
要求:每次进入系统,修改的数据都是文件中的数据。
步骤:
尝试以“R”模式打开学生数据文件,如果文件不存在,则以“W”模式打开文件。
如果文件存在,则读取数据Read data=str string type[{},{ },{}]将数据类型转换为列表并将列表中的字典i[name]转换为对象i.name将学生数据存储到学生列表self.student_list中关闭文件。
#定义load_student()方法
定义加载_学生(自己):
#捕捉异常
尝试:
f=打开( student.data , r ,编码=utf-8 )
除了:
f=打开( student.data , w ,编码=utf-8 )
否则:
#如果文件存在并且没有异常,则执行else语句
content=f.read()
#将字符串转换为原始数据类型[{},{},{}]
数据=评估(内容)
#将列表中的所有词典转换为对象
self . Student _ list=[Student(I[ name ],i[age],i[mobile]) for i in data]
最后:
f.close()
转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。