-
python成绩管理系统界面-python实现简易版学生成绩管理系统
2020-11-01 12:25:45300来行python代码实现简易版学生成绩管理系统,供大家参考,具体内容如下使用链表来实现class Node(object):def __init__(self, data, pointer):self.data = dataself.next = pointer# 创建单链表class ...300来行python代码实现简易版学生成绩管理系统,供大家参考,具体内容如下
使用链表来实现
class Node(object):
def __init__(self, data, pointer):
self.data = data
self.next = pointer
# 创建单链表
class SingleLinkedList(object):
def __init__(self):
self.head = Node(None, None)
self.point = self.head
def append(self, data):
# 末尾追加节点
new_node = Node(data, None)
self.point.next = new_node
self.point = new_node
def insert(self, data, find):
# 插入数据(前向插入数据)
if not self.head.next:
print('链表为空')
return None
new_node = Node(data, None)
self.point = self.head
while self.point.next.data != find:
self.point = self.point.next
if self.point.next is None:
print('没有找到该元素')
return None
new_node.next = self.point.next
self.point.next = new_node
def delete(self, find):
# 删除节点
# 空链表
if not self.head.next:
print('链表为空')
return None
self.point = self.head
while self.point.next.data != find:
self.point = self.point.next
pointer = self.point.next
self.point.next = self.point.next.next
del pointer
def insert_after_head(self, data):
node = Node(data, None)
# bug 产生没写 if 返回
if not self.head.next:
self.head.next = node
return None
node.next = self.head.next
self.head.next = node
def reverse(self):
local_list = SingleLinkedList()
self.point = self.head
count = 0
while self.point.next:
count += 1
self.point = self.point.next
data = self.point.data
local_list.insert_after_head(data)
return local_list
def get_size(self):
count = 0
self.point = self.head
while self.point.next:
self.point = self.point.next
count += 1
return count
def delete_by_tail(self, num):
size = self.get_size()
assert (num <= size)
assert (num > 0)
pos = size - num
count = 0
self.point = self.head
while count < size:
count += 1
self.point = self.point.next
if count == pos:
pointer = self.point.next
self.point.next = self.point.next.next
del pointer
# 求中间节点 只允许遍历一次
def quick_middle(self):
slow_point = self.head
fast_point = self.head
while fast_point.next.next:
slow_point = slow_point.next
fast_point = fast_point.next.next
if not fast_point.next:
break
if fast_point.next:
slow_point = slow_point.next
return slow_point.data
def check_circle(self):
pass
def sort(self):
# get_size()改变了 self.point 的指向
length = self.get_size()
i, j = 0, 0
flag = 1
while i < length:
self.point = self.head.next
while j < length - i - 1:
if self.point.data > self.point.next.data:
temp = self.point.data
self.point.data = self.point.next.data
self.point.next.data = temp
self.point = self.point.next
j += 1
flag = 0
if flag:
break
i += 1
j = 0
def print(self):
# 打印结点
self.point = self.head
while self.point.next:
self.point = self.point.next
print('{} ->'.format(self.point.data), end=' ')
print('')
class StudentControlSystem(SingleLinkedList):
# 打印菜单
def print_menu(self):
print('*' * 30)
print('-' * 13 + '菜单' + '-' * 13)
print('1.增加学生信息')
print('2.删除学生信息')
print('3.修改学生信息')
print('4.查找学生信息')
print('5.显示所有信息')
print('6.排序')
print('0.退出程序')
print('*' * 30)
# 用户输入
def user_input(self, item):
try:
item = int(item)
except:
pass
# 增加信息
if item == 1:
self.add_info()
# 删除信息
elif item == 2:
find = input('请输入删除的学号:')
self.del_info(find=find)
# 修改信息
elif item == 3:
self.modify_info()
# 查找信息
elif item == 4:
self.search_info()
# 显示信息
elif item == 5:
self.display_info()
# 信息排序
elif item == 6:
self.rank_info()
# 退出程序 保存数据
elif item == 0:
with open('database.txt', 'w') as f:
self.point = self.head
while self.point.next:
self.point = self.point.next
f.writelines('{} '.format(self.point.data))
exit()
else:
print('请输入正确的数字')
# id 保证互异性
def unique_id(self, std_id):
self.point = self.head
while self.point.next:
self.point = self.point.next
if self.point.data['id'] == std_id:
return False
return True
# 增加信息
def add_info(self):
# id 不能重复
# 成绩不能超出范围
name = input('姓名:')
std_id = input('学生id:')
while not self.unique_id(std_id=std_id):
print('id重复')
std_id = input('学生id:')
grade = input('学生成绩:')
if eval(grade) < 0 or eval(grade) > 100:
print('超出范围')
grade = input('学生成绩:')
print(name, std_id, grade)
print('请确认无误后保存')
choice = input('y/n')
items = ['y', 'yes', 'Y', 'Yes']
if choice in items:
print(choice)
data = {'id': std_id, 'name': name, 'grade': grade}
self.append(data)
# 删除信息
def del_info(self, find):
print('请确认无误后保存')
choice = input('y/n')
items = ['y', 'yes', 'Y', 'Yes']
if choice in items:
if not self.head.next:
print('链表为空')
return None
self.point = self.head
while self.point.next.data['id'] != find:
self.point = self.point.next
pointer = self.point.next
self.point.next = self.point.next.next
del pointer
# 序列逆序
def reverse(self):
local_list = StudentControlSystem()
self.point = self.head
count = 0
while self.point.next:
count += 1
self.point = self.point.next
data = self.point.data
local_list.insert_after_head(data)
return local_list
# 序列排序
def sort(self, item):
length = self.get_size()
i, j = 0, 0
flag = 1
while i < length:
self.point = self.head.next
while j < length - i - 1:
if int(self.point.data[item]) > int(self.point.next.data[item]):
# self.point.data, self.point.next.data =
# self.point.next.data, self.point.data
temp = self.point.data
self.point.data = self.point.next.data
self.point.next.data = temp
self.point = self.point.next
j += 1
flag = 0
if flag:
break
i += 1
j = 0
# 修改信息
def modify_info(self):
find = input('输入需要修改的学生的id:')
if not self.head.next:
print('链表为空')
return None
self.point = self.head
while str(self.point.next.data['id']) != find:
self.point = self.point.next
if self.point.next is None:
print('没有找到该元素')
return None
name = input('姓名:')
grade = input('学生成绩:')
self.point.next.data['name'] = name
self.point.next.data['grade'] = grade
# 搜索信息
def search_info(self):
find = input('输入需要查找的学生的id:')
if not self.head.next:
print('链表为空')
return None
self.point = self.head
while str(self.point.next.data['id']) != find:
self.point = self.point.next
if self.point.next is None:
print('没有找到该元素')
return None
data = self.point.next.data
print('ID 姓名 成绩')
print('{} {} {}'.format(data['id'], data['name'], data['grade']))
# 信息排序
def rank_info(self):
choice = input('1.成绩排序 2.学号排序:')
order = input('1.升序 2.降序:')
if choice == '1':
item = 'grade'
elif choice == '2':
item = 'id'
else:
return None
self.sort(item=item)
if order == '2':
temp = self.reverse()
temp.display_info()
return None
self.display_info()
# 显示信息
def display_info(self):
self.point = self.head
print('ID 姓名 成绩')
while self.point.next:
self.point = self.point.next
data = self.point.data
print('{} {} {}'.format(data['id'], data['name'], data['grade']))
print('')
def main():
SCS = StudentControlSystem()
try:
with open('database.txt', 'r') as f:
for data in f.readlines():
SCS.append(eval(data))
except:
with open('database.txt', 'w') as f:
pass
while True:
SCS.print_menu()
item = input('请输入你的选择:')
SCS.user_input(item)
if __name__ == "__main__":
main()
运行后
然后就可以插入与查询啦
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持python博客。
-
链表大作业-学生成绩管理系统-界面美观
2015-08-18 14:15:11用链表实现的学生成绩管理系统,增删查,均为链表操作,关闭界面时将链表存到student.txt中,每次打开程序在初始化过程中读txt,创建链表。链表的一个大作业,欢迎交流! -
jsp+myeclipse+mysql做的学生成绩管理系统 登录界面和增删查改
2013-10-03 14:12:09jsp作业,自己用jsp+myeclipse+mysql做的学生成绩管理系统,实现登录界面和增删查改,有数据库 -
python学生成绩管理系统设计报告的图形界面_Python实现GUI学生信息管理系统
2021-01-12 09:06:03本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下项目环境:软件环境:OS:RedHat6.3Lib:PygtkLanguage:PythonSupport tool:Glade3项目简述:①Glade3设计用户的登录窗口,...本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下
项目环境:
软件环境:
OS:RedHat6.3
Lib:Pygtk
Language:Python
Support tool:Glade3
项目简述:
①Glade3设计用户的登录窗口,功能主窗口
②通过Gtk.Builder初始化,载入界面
③在Mysql.py文件中实现Python操作数据库。
④在stuManager.py中实现学生信息的查询,删除,修改,终端登录,图形统计等功能
⑤在Glade中定义函数触发信号,实现功能的连接。
项目测试:
①登录窗口
②主窗口
③删除信息
④修改信息
⑤登录终端
⑥学生成绩
⑦图形统计(没做好)
⑧查找信息
部分代码:
Terminal.py
Stu_Sys.py
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://iotos.iteye.com/blog/2093002
-
C++编程语言实现学生成绩管理系统
2019-03-28 09:42:32学生成绩管理系统的实现,通过C++编程语言实现,可以添加、查询、擅长、更改学生成绩 ,可以继续录入学生信息。点击退出按钮后,退出录入界面。点击返回主界面按钮后,返回学生成绩管理系统的主界面。 -
jsp+myeclipse+mysql做的学生成绩管理系统 登录界面和增删查改-MySQL代码类资源
2021-01-07 02:30:30jsp作业,自己用jsp+myeclipse+mysql做的学生成绩管理系统,实现登录界面和增删查改,有数据库 -
Python实现学生成绩管理系统
2020-12-24 02:19:04本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 基本功能: 输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。 打印... -
linux系统下C语言实现带有图形界面的学生成绩管理系统源代码(包含数据库文件)
2015-08-31 20:20:56linux系统下C语言实现带有图形界面的学生成绩管理系统源代码(包含数据库文件) linux,成绩管理系统,图形界面,C语言,源代码 -
使用Java设计实现一个带有GUI界面的学生成绩管理系统
2020-07-18 08:23:53学生成绩管理系统写在前面: 我是「虐猫人薛定谔」,一个不满足于现状,有梦想,有追求的00后
本博客主要记录和分享自己毕生所学的知识,欢迎关注,第一时间获取更新。
不忘初心,方得始终。
❤❤❤❤❤❤❤❤❤❤
设计要求
使用Java设计实现一个带有GUI界面的学生成绩管理系统。基本功能包括:
-
增添、删除、修改学生基本信息:学号、姓名、出生日期、专业课程分数;
-
统计优秀、良好、中等、及格、不及格的人数百分比,并以柱状图、饼图呈现
【说明:可以使用SWING、AWT自己绘制;也可以使用开源类库,如JFreeChart】 -
按学号查询学生及成绩;
-
按照成绩分数排序;
-
提供数据存储功能(不使用数据库,全部使用流操作文件完成)
思路
程序界面的主背景使用的是暗灰色(个人比较喜欢的背景颜色),而面板背景用的是亮灰色(与暗灰色形成对比),程序是使用idea开发,除了绘制饼图和柱状图部分用了开源类库JFreeChart外,其余代码均为自己实现。
Main类是该程序的入口,MainFrame类中实现程序的主要框架,该类继承自JFrame,Student类对学生进行抽象,其成员包括学号、姓名、出生日期和课程,其中课程是用HashMap来存放的,Key为课程名,Value为课程成绩。
Management类用一个ArrayList来存放学生,该类对外提供添加学生信息、删除学生信息、修改学生信息、从文件导入学生信息等方法。Resource类为资源加载类,该类加载一些图片资源,这些资源用来装饰面板中的按钮。
为了实现定制排序,分别实现了按照学号、姓名、成绩排序的Comparator类,剩余类均为面板类,这些类继承自JPanel,上面添加相应的组件来实现对应的功能,其中LeftPanel为界面左侧面板,上面放了具有相应功能的按钮,用来控制各个面板之间的切换(通过设置各个面板的可见性来实现)
Panel1 ———— 添加学生信息
Panel2 ———— 删除学生信息
Panel3 ———— 修改学生信息
Panel4 ———— 查询学生信息
Panel5 ———— 统计课程成绩
数据的存储是依靠流操作文件来实现的,Management类和Student类均实现了Serializable接口,在程序窗口关闭之前,会将arrayList(存放学生的容器)写入文件,在程序启动的时候,先将数据文件读入,再启动窗口界面,从而实现数据的存储功能
目录结构
效果展示
添加学生信息
删除学生信息
修改学生信息
查找学生信息
统计成绩
从文件导入学生信息(文件需要满足指定的格式)
代码
蒟蒻写博客不易,加之本人水平有限,写作仓促,错误和不足之处在所难免,谨请读者和各位大佬们批评指正。
如需转载,请署名作者并附上原文链接,蒟蒻非常感激
名称:虐猫人薛定谔
博客地址:https://blog.csdn.net/Deep___Learning -
-
java实现学生成绩管理系统
2019-01-05 14:27:06java实现学生成绩管理系统。Java完成算法设计和程序设计并上机调试通过。程序添加适当的注释,程序的书写要采用缩进格式。程序具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的... -
python学生管理系统-python实现学生成绩管理系统
2020-11-01 12:25:13本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下基本功能:输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。...本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下
基本功能:
输入并存储学生的信息:通过输入学生的学号、姓名、和分数,然后就可以把数据保存在建立的student文件里面。
打印学生的所有信息:通过一个打印函数就可以把所有的信息打印在屏幕上。
修改学生信息:这个功能首先通过查询功能查询出该学生是否存在,如果存在就对该学生的信息进行修改,如果不存在则返回到主界面。
删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找到进行删除。
按学生成绩进行排序: 这个功能是按照学生的成绩进行排序,对学生的信息进行操作。
查找学生信息:这个功能通过输入学号,查找该学生的信息,如果有该学号就输出该学生的信息,没有该学号就提示输入的学号不存在。
初始化功能
系统在开始使用之前先进行初始化功能,判断students.txt文件中是否保存的有学生的信息,如果有就把文件的内容读取出来,供接下来的操作使用,如用没有就初始化一个空的列表,用来保存用户的输入,程序中接下来的所有数据都会保存在该列表中相当与一个数据缓冲区。
首先是打开文件操作,对文件中的内容进行读取操作,由于在文件中保存的内容是由空格进行分割的,并且每一个学生的信息都占用一行,首先读出所有的内容,先进行按照换行进行分割,得到每个人的信息,然后再对每个人的信息进行安装空格分隔,得到每个人的详细信息包括用户的姓名,学号,成绩。
def Init(stulist): #初始化函数
print "初始化......"
file_object = open('students.txt', 'r')
for line in file_object:
stu = Student()
line = line.strip(" ")
s = line.split(" ")
stu.ID = s[0]
stu.name = s[1]
stu.score = s[2]
stulist.append(stu)
print "初始化成功!"
成绩排序实现
这部分代码是按照学生成绩的高低进行排序,在实现的时候,首先是把所有人的成绩放到一个列表里面然后使用插入排序,按照成绩的大小对StuList中保存的学生信息的地址进行排序
def Sort(stulist): #按学生成绩排序
Stu = []
sum_count = []
for li in stulist:
temp = []
temp.append(li.ID)
temp.append(li.name)
temp.append(int(li.score1))
temp.append(int(li.score2))
temp.append(int(li.score3))
temp.append(int(li.sum))
sum_count.append(int(li.sum))
Stu.append(temp)
#print sum_count
#print Stu;
#print stulist
insertSort(sum_count, stulist)
#print stulist;
display(stulist)
def insertSort(a, stulist):
for i in range(len(a)-1):
#print a,i
for j in range(i+1,len(a)):
def searchByID(stulist, ID): #按学号查找看是否学号已经存在
def Add(stulist,stu): #添加一个学生信息
if searchByID(stulist, stu.ID) == True:
print stu.name,stu.ID, stu.score1, stu.score2, stu.score3, stu.sum;
nChoose = raw_input("Choose Y/N")
if nChoose == 'Y' or nChoose == 'y':
file_object = open("students.txt", "a")
file_object.write(str(stu.score1))
file_object.write(str(stu.score2))
file_object.write(str(stu.score3))
file_object.write(str(stu.sum))
def Search(stulist, ID): #搜索一个学生信息
print item.ID, ' ' ,item.name,' ', item.score1,' ',item.score2, ' ', item.score3, ' ',item.sum
def Del(stulist, ID): #删除一个学生信息
file_object = open("students.txt", "w")
print stu.ID, stu.name, stu.score1,stu.score2, stu.score3, stu.sum
file_object.write(str(stu.score1))
file_object.write(str(stu.score2))
file_object.write(str(stu.score3))
file_object.write(str(stu.sum))
file_object = open("students.txt", "w")
#print li.ID, li.name, li.score
file_object.write(str(stu.score1))
file_object.write(str(stu.score2))
file_object.write(str(stu.score3))
file_object.write(str(stu.sum))
stu.name = raw_input("请输入学生的姓名")
stu.ID = raw_input("请输入学生的ID")
stu.score1 = int(raw_input("请输入学生语文成绩"))
if stu.score1 <= 100 and stu.score1 > 0 :
stu.score2 = int(raw_input("请输入学生数学成绩"))
if stu.score2 <= 100 and stu.score2 > 0 :
stu.score3 = int(raw_input("请输入学生英语成绩"))
if stu.score3 <= 100 and stu.score3 > 0 :
stu.sum = stu.score1 + stu.score2 + stu.score3
def display(stulist): #显示所有学生信息
print item.ID, ' ' ,item.name,' ', item.score1,' ',item.score2, ' ', item.score3, ' ',item.sum
insertSort(sum_count, stulist)
-
学生系统成绩信息管理系统——包括图形界面系统的设计和直接代码实现系统部分
2018-12-03 18:44:00这资源主要包含两部分,第一个为直接通过代码实现学生成绩和信息的管理系统,第二部分为通过图形界面来实现的学生成绩信息的管理。主要实现功能包括学生成绩、信息的录入,学生信息,成绩的修改、删除、查询、再录入... -
宿舍管理系统代码实现_学生成绩管理系统代码
2020-10-14 07:17:40. 代码实现 一 登录界面 此界面是由 Photoshop 制作而成在做这...在这个界面中 主要处理的是判断当前用户输入的信息是否正确 如果正确 那么它属 于哪种类型用户 因为此管理软件在登录后不同类型的用户显示的窗体与实现 -
C语言实现学生成绩管理系统
2021-02-06 21:34:24C语言实现学生成绩管理系统 该系统是由带头结点的单链表实现的,实现了增删改查等的基本功能。 在打印的时候会有界面的不整齐,但是基本功能都已经实现。 #include<stdio.h> #include<assert.h> #... -
课程设计:c++实现学生成绩管理系统
2020-11-28 10:59:08学生成绩管理系统,对于刚学编程的人来说,是有一些难度的,有循环要考虑,还需要注意界面打印,菜单管理,输入输出控制,文件读写操作,排序算法等等技巧。 学生成绩管理系统,可以分为如下几个功能: 主菜单... -
Eclipse+Java+Swing实现学生成绩管理系统
2020-12-09 19:36:09Java+Swing实现学生成绩管理系统一、系统介绍二、系统展示1.登录页2.主页面3.查询学生成绩4.修改学生成绩5.添加学生成绩6.修改系统密码三、系统实现Student.javaStudentDao.javaLoginFrame.javaMainMenuFrame.java四... -
java 编程实现学生成绩管理系统
2013-06-15 12:34:37怎么用Java编写学生成绩管理系统,要求信息由3个文本文件读出student.txt course.txt grade.txt 然后实现排序 查询 等基本功能 结果由图形界面显示 -
C语言实现字符界面下的学生管理成绩系统
2018-05-07 16:16:51再分为管理员端,教师端,学生端进行功能区分与权限管理。不足之处:仅仅区分了班级未区分专业 本系统不能直接注册账号,注册信息存到文件,管理员可见。未注册时仅可进行申诉 各端主要功能 学生端 教师端... -
Python简单实现学生成绩管理系统
2017-12-27 17:38:08修改学生信息:这个功能首先通过查询功能查询出该学生是否存在,如果存在就对该学生的信息进行修改,如果不存在则返回到主界面。 删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找到进行删除。 ... -
基于SSH实现的学生成绩管理系统
2020-12-12 17:01:37该学生成绩管理系统主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面... -
C语言实现学生成绩管理系统(原码)
2020-03-13 09:09:22C语言实现学生成绩管理系统(单链表实现)很详细容易理解 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> /* 1.菜单设计 2.人机交互 3.数据结构选择 ... -
C语言实现—学生成绩管理系统
2019-07-13 11:58:01开发环境:Linux(ps:已新增...登录“管理员子系统” 登录“教师子系统” 登录“学生子系统” 相关功能:参考码云中的文档 /********************************************************************... -
java程序对学生成绩_Eclipse+Java+Swing实现学生成绩管理系统的实例代码
2021-03-08 06:10:00一、系统介绍本系统实现了用户登录,实现了对学生成绩的增删改查,实现了用户修改密码功能,采用MD5加密算法,数据库使用Mysql8.0.13,界面良好。二、系统展示1.登录页2.主页面3.查询学生成绩4.修改学生成绩5.添加... -
C语言学生成绩管理系统
2019-11-07 14:49:58学生成绩管理系统(C语言)需求代码总结 大学正式上课的第一个月10.8~11.7,学到了很多东西,收获颇多,刚入校只会用现成的,只会调用各种函数,把封装好的东西拿来用。...2. 设计“学生成绩管理系统”的用户界面... -
学生成绩管理系统
2019-07-17 21:55:44这次课设的题目是学生成绩管理系统,做的不是很完善,时间有点急促。实现的功能就是增删改查,分为教师端,学生端,管理员端,教师和学生只有增查改,管理员可以实现删除。教师主要可以查询个人成绩,科目成绩,添加... -
学生成绩管理系统.rar
2020-06-14 09:49:20学生成绩管理系统,是面向对象的课程的大作业。本系统满足:1.图形化界面,有菜单、文件操作,数据使用数组、结构体;2.软件有相对完备的基本功能(信息的录入、处理、输出、保存)3.软件应该有角色划分,并设置不同... -
基于JSP实现的学生成绩管理系统
2018-12-28 08:47:001 引言1.1 任务简介多用户管理:用户分管理员,学生网页界面设计:利用HTML和CSS实现客户端前台设计类间关系的设计、数据库表格设计数据库数据的增(录入)、删、改、查等基本功能JSP中Requests Response内置对象的... -
C语言结构体版学生成绩管理系统
2020-12-20 21:01:45本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 结构体版的学生成绩管理系统 主要功能有 按1 输入学生信息 按2 输出学生信息 按3 查询学生信息 按4 修改学生信息 按5 删除学生...