1、完成一个学生信息管理系统,系统练习面向对象、函数、字符串等知识。实现知识的综合应用。 使用类、函数、数据库等来实现
方法一(用数据库)
from pymysql import connect
class Student():
def __init__(self):
self.conn = connect(host='localhost', user='root', password='123456',
database='caoyougen', charset='utf8')
self.cursor = self.conn.cursor()
def __del__(self):
self.cursor.close()
self.conn.close()
def execute_show_sql(self, sql):
self.cursor.execute(sql)
for i in self.cursor.fetchall():
if len(i) > 2:
print('序号:{} 姓名:{} 学号:{} 性别:{} 年龄:{}'.format(i[0], i[1], i[2], i[3], i[4]))
else:
print('序号:{} 姓名:{}'.format(i[0], i[1]))
def execute_zsg_sql(self, sql):
try:
self.cursor.execute(sql)
self.conn.commit()
print('*****执行操作成功!*****')
except:
print('*****执行操作失败!*****')
def input_menu(self):
self.name = input("请输入学生姓名:")
self.id = int(input("请输入您的学号:"))
self.sex = input("请输入学生性别(男/女):")
self.age = int(input("请输入您的年龄:"))
def add(self):
self.input_menu()
sql= "insert into student values(null,'{}', '{}', '{}', '{}');".format(self.name, self.id,
self.sex, self.age)
self.execute_zsg_sql(sql)
def drop(self):
sql = 'select s_no, s_name from student;'
self.execute_show_sql(sql)
self.student_num = input("请输入要删除的学生的序号:")
sql1 = 'DELETE from student where S_no = "{}";'.format(self.student_num)
self.execute_zsg_sql(sql1)
def modify(self):
sql = 'select s_no, s_name from student;'
self.execute_show_sql(sql)
self.student_num = input("请输入要修改的学生的序号:")
self.input_menu()
sql1 = 'update student set s_name="{}", s_id="{}", s_sex="{}", s_age="{}" where S_no = "{}";'\
.format(self.name, self.id, self.sex, self.age,self.student_num)
self.execute_zsg_sql(sql1)
def show(self):
sql = 'select s_no, s_name from student;'
self.execute_show_sql(sql)
self.student_num = input("请输入要查询的学生的序号:")
sql1= 'SELECT * from student where S_no = "{}";'.format(self.student_num)
self.execute_show_sql(sql1)
def show_all(self):
sql = ' select * from student;'
self.execute_show_sql(sql)
@staticmethod
def print_menu():
print('''*** 欢迎使用学生管理系统(请选择系统菜单) ***
*** 1.增加学生信息 ***\n*** 2.删除学生信息 ***
*** 3.修改学生信息 ***\n*** 4.自定义查询学生信息 ***
*** 5.查询全部学生信息 ***\n*** 6.退出系统 ***''')
return input("请输入功能对应的数字:")
def run(self):
while True:
number = self.print_menu()
if number == '1':
self.add()
elif number == '2':
self.drop()
elif number == '3':
self.modify()
elif number == '4':
self.show()
elif number == '5':
self.show_all()
elif number == '6':
q = input("确定要退出系统吗?(Y/N): ")
if q == "Y":
print('*****成功退出!*****')
break
else:
print("输入有误,请重新输入")
print('================********************================', '\n')
def main():
aa = Student()
aa.run()
if __name__ == '__main__':
main()
数据库中sql语句:
create table student(
s_no int not null auto_increment primary key,
s_name varchar(10) not null,
s_id int not null,
s_sex enum('男','女') not null,
s_age int not null);
方法二(不用数据库)
def print_menu():
print('''*** 欢迎使用学生管理系统(请选择系统菜单) ***
*** 1.增加学生信息 ***\n*** 2.删除学生信息 ***
*** 3.修改学生信息 ***\n*** 4.查询学生信息 ***
*** 5.查询全部学生信息 ***\n*** 6.退出系统 ***''')
student = []
def add():
name = input("请输入学生姓名:")
id = input("请输入您的学号:")
sex = input("请输入学生性别(男/女):")
age = input("请输入您的年龄:")
dict = {}
dict['姓名'] = name
dict['学号'] = id
dict['性别'] = sex
dict['年龄'] = age
student.append(dict)
print('添加成功!', '\n')
def drop():
i = 1
for enum in student:
n = enum['姓名']
print('序号:{} 姓名:{}'.format(i, n))
i += 1
student_id = int(input("请输入要删除的学生的序号:"))
student.remove(student[student_id - 1])
print('删除成功!', '\n')
def modify():
i = 1
for enum in student:
n = enum['姓名']
print('序号:{} 姓名:{}'.format(i, n))
i += 1
student_id = int(input("请输入要修改的学生的序号:"))
new_name = input("请输入学生姓名:")
new_id = input("请输入学生学号:")
new_sex = input("请输入学生性别:(男/女)")
new_age = input("请输入学生的年龄:")
student[student_id - 1]['姓名'] = new_name
student[student_id - 1]['学号'] = new_id
student[student_id - 1]['性别'] = new_sex
student[student_id - 1]['年龄'] = new_age
def show():
i = 1
for enum in student:
n = enum['姓名']
print('序号:{} 姓名:{}'.format(i, n))
i += 1
student_id = int(input("请输入要查询的学生的序号:"))
print(student[student_id-1], '\n')
def show_all():
for enum in student:
print(enum)
print()
def main():
while True:
print_menu()
number = input("请输入功能对应的数字:")
if number == '1':
add()
elif number == '2':
drop()
elif number == '3':
modify()
elif number == '4':
show()
elif number == '5':
show_all()
elif number == '6':
q = input("确定要退出系统吗?(Y/N): ")
if q == "Y":
break
else:
print("输入有误,请重新输入")
print('================********************================')
if __name__ == '__main__':
main()