数据结构论坛

注册

 

发新话题 回复该主题

python3实现学生管理系统 [复制链接]

1#
北京看白癜风比较好专科医院 https://disease.39.net/yldt/bjzkbdfyy/

本节我们来用python写一个学生管理系统,一般在学完c语言后,都会有一个大作业,而学生管理系统是选择最多的,我们下面用python完成学生管理系统.

话不多说,直接上代码:

#-*-coding:UTF-8-*-

#注:该学生信息是以单链表的数据结构来存储的,即每一个学生信息都是一个链表节点,节点中包含

#下一个学生的信息节点,还可以用列表结构来存储学生信息,那样更简单快捷,本节主要

#是熟悉链表的基本操作,故用链表结构来存储。

classstudent/p>

def__init__(self,id1,name,score,next1=None)/p>

self.id1=id1

self.name=name

self.score=score

self.next1=next1

classStu/p>

def__init__(self)/p>

self.head=None

defadd1(self,id1,name,score)/p>

ifself.headisNone:

temp=student(id1,name,score)

self.head=temp

else:

temp=self.head

whiletemp.next1:

temp=temp.next1

temp.next1=student(id1,name,score)

defdelete1(self,id1):

ifself.headisNone:

print("链表没有元素,无法删除")

elifself.head.id1==id1:

self.head=self.head.next

else:

temp=self.head

flag=0

whiletemp.next1isnotNone:

iftemp.next1.id1==id1:

temp.next1=temp.next1.next1

flag=1

break

temp=temp.next1

ifflag==1:

print("删除信息成功")

elifflag==0:

print("没有该学号,删除信息失败")

defupdate1(self,id1):

temp=self.head

whiletempisnotNone:

iftemp.id1==id1:

break

temp=temp.next1

flag=1

whileflag:

print("选出你要修改的数据")

print("1:学号
  2:姓名3:得分\n")

a=int(input("输出数字:"))

ifa==1:

b=int(input("输入修改后的学号:"))

temp.id1=b

flag=0

elifa==2:

b=input("输入修改后的姓名:")

temp.name=b

flag=0

elifa==3:

b=int(input("输入修改后的得分:"))

temp.score=b

flag=0

else:

print("输入数字错误,重新输入\n")

print("修改数据信息成功\n")

deffind1(self):

temp=self.head

iftempisNone:

print("链表元素是空的\n")

else:

flag=1

ff=1

whileflag:

print("输入数字决定你要按什么条件查找\n")

print("1:学号
  2:姓名\n")

a=int(input("输入数字:"))

ifa==1:

b=int(input("输入学号:"))

print("查找学号为%d的学生信息如下:"%b)

print("\n")

whiletemp:

iftemp.id1==b:

ff=0

print("学号:%d姓名:%s得分:%d\n"%(temp.id1,temp.name,temp.score))

break

temp=temp.next1

flag=0

elifa==2:

b=input("输入姓名:")

print("查找姓名为%s的学生信息如下:"%a)

print("\n")

whiletemp:

iftemp.name==b:

ff=0

print("学号:%d姓名:%s得分:%d\n"%(temp.id1,temp.name,temp.score))

temp=temp.next1

flag=0

else:

print("数字输入错误,重新输入\n")

ifff==1:

print("抱歉,没有找到该学生信息\n")

deffindall(self):

temp=self.head

iftempisNone:

print("信息库为空\n")

else:

print("所有学生信息如下:\n")

whiletemp:

print("学号:%d姓名:%s得分:%d"%(temp.id1,temp.name,temp.score))

print("\n")

temp=temp.next1

defmain1(self):

print("------------------------欢迎来到学生管理系统----------------------:")

whileTrue:

print("1:添加学生信息
  
  
  2:删除学生信息")

print("3:修改学生信息4:查找学生信息")

print("5:输出所有学生信息
  
  6:退出\n")

a=int(input("输入相应的数字:"))#用int强制转化为整数

ifa==1:

temp1=int(input("输入学生学号:"))

temp2=input("输入学生姓名:")

temp3=int(input("输入学生得分:"))#和前面一样,用int强制转化为整数

self.add1(temp1,temp2,temp3)

print("\n")

elifa==2:

temp=int(input("输入删除学生的学号:"))

self.delete1(temp)

print("\n")

elifa==3:

temp=int(input("输入要修改的学生学号:"))

self.update1(temp)

print("\n")

elifa==4:

self.find1()

print("\n")

elifa==5:

self.findall()

print("\n")

elifa==6:

break

else:

print("输入错误,重新输入")

if__name__==__main__:

a=Stu()

a.main1()

为了防止格式乱,我将其弄成图片格式,如下所示:

下面简单讲解一下代码里面各个函数的作用:

我们定义了两个类,其中student类包含单个学生的学号,姓名,分数等所有信息.

下面的Stu类则是封装了student类的各个操作方法,比如add1,delete1,update1,find1等函数,下面分别讲一下各个函数的作用:

1:add1函数

这个函数主要就是添加学生信息

2: delete1函数:

这个函数主要就是删除学生信息,他是根据用户输入的一个学号来删除的,没有找到就输出没有该学生信息

3: update1函数:这个函数就是修改学生信息,根据用户输入的学号来修改信息的,然后后面会询问你是要修改学号,还是姓名,输入对应的数字来决定相应要修改的数据

4: find1函数:

这个函数就是查找学生信息,可以按照学号或者姓名来查找学生信息

indall函数:

这个函数就是打印输出所有学生的信息

6:main1函数:

函数的主题部分,通过他来调用上面的函数

说明一下,我们这个学生管理系统是用链表结构来完成的,即每个学生信息都是一个链表节点,next1节点是后继学生的信息.当然也可以用其他数据结构来完成,这里就不写了

分享 转发
TOP
发新话题 回复该主题