irpas技术客

Python学生成绩管理系统(源码+数据库)_小码姑娘_学生成绩管理系统python代码

大大的周 6867

文章目录 前言一、sqlite是什么?二、实验步骤1.封装数据库操作类dbHelper.py2.设计学生类students.py3.结果4.SQLiteExpertPersSetup64(软件下载) 总结


前言 学生成绩管理系统可以实现学生基本信息的管理,要求以下功能: (1)输入并存储学生的信息:输入学生的学号、姓名和分数,把数据保存在建立的db文件里面. (2)打印学生信息:通过打印函数把学生所有信息打印在屏幕上. (3)修改学生信息:首先通过查询功能查询出该学生是否存在,如果存在就对该学生 的信息进行修改,如果不存在则返回主界面. (4)删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找并进行删除. (5)按学生成绩进行排序:按照学生总分从高到低进行排序. (6)查找学生信息:输入学生学号,查找该学生的相关信息如果查找到就输出该学生的信息,如果没有该学号就提示输入的学号不存在-
一、sqlite是什么? SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是用C写的,而且体积很小,所以经常被集成到各种应用程序中,甚至在IOS和Android的APP中都可以集成。 二、实验步骤 1.封装数据库操作类dbHelper.py

代码如下(示例):

import sqlite3 import traceback class dbHelper: def __init__(self,db_url): self.__db_url=db_url def __con(self): self.con=sqlite3.connect(self.__db_url) #创建能执行的增删改的操作 def exec_sql_noparams(self,sql): try: self.__con() cur=self.con.cursor() n=cur.execute(sql) self.con.commit()#提交 return n.rowcount except Exception as e: self.con.rollback()#回滚 traceback.print_exc() finally: cur.close() self.con.close() def exec_sql(self,sql,params): try: self.__con() cur = self.con.cursor() n = cur.execute(sql,params) self.con.commit() return n.rowcount except Exception as e: self.con.rollback() traceback.print_exc() finally: cur.close() self.con.close() def exec_sql_many(self,sql,seq_params): try: self.__con() cur = self.con.cursor() n = cur.executemany(sql, seq_params) self.con.commit() return n.rowcount except Exception as e: self.con.rollback() traceback.print_exc() finally: cur.close() self.con.close() def query(self,sql): try: self.__con() cur = self.con.cursor() n = cur.execute(sql) return cur.fetchall() except Exception as e: traceback.print_exc() finally: cur.close() self.con.close() def query_params(self,sql,params): try: self.__con() cur = self.con.cursor() n = cur.execute(sql,params) return cur.fetchall() except Exception as e: traceback.print_exc() finally: cur.close() self.con.close() 2.设计学生类students.py

代码如下(示例):

import os import sqlite3 import traceback from dbHelper import dbHelper class Student: def __init__(self): self.name = '' self.ID = '' self.score1 = 0#语文 self.score2 = 0#数学 self.score3 = 0#英语 self.sum =0 #计算总分的方法 def sumscore(self): self.sum=self.score1+self.score2+self.score3 #输入学生的信息 def input(self): self.name=input("请输入学生的姓名:") self.ID=input("请输入学生的学号:") self.score1=int(input("请输入学生语文的分数:")) self.score2=int(input("请输入学生数学的分数:")) self.score3=int(input("请输入学生英语的分数:")) self.sumscore() #判断学号是否存在 def searchByID(stulist, ID): for item in stulist: if item.ID == ID: return True else: return False #添加学生 def Add(stulist,stu): DB = dbHelper("db/students.db") if searchByID(stulist,stu.ID) == True: print("学号已存在") return False print("是否保存学生信息?") nChoose=input("输入Y/N") if nChoose == 'Y' or nChoose == 'y': stulist.append(stu) sql = "INSERT INTO students (name,ID,score1,score2,score3,sum) VALUES (?,?,?,?,?,?)" DB.exec_sql(sql,(stu.name,stu.ID,stu.score1,stu.score2,stu.score3,stu.sum)) print("保存成功") #删除学生信息 def Del(stulist,ID): DB = dbHelper("db/students.db") flag = False # 判断是否有该学生学号的变量 for item in stulist: if item.ID==ID: stulist.remove(item) flag == True sql = "delete from students where ID = ?" DB.exec_sql(sql, (ID,)) print("删除成功") if flag == False: pass print("没有该学号") #修改学生信息(删除旧学生信息,添加一个新学生信息) def Change(stulist,ID): flag = False for item in stulist: if item.ID==ID: stulist.remove(item) flag == True sql="delete from students where ID=?" DB.exec_sql(sql,(ID,)) stu = Student() stu.input() Add(stulist, stu) if flag != False: return print("没有该学生学号") #显示所有学生列表 def display(stulist): sql = "select * from students " print("姓名 学号 语文 数学 英语 总分") for item in DB.query(sql): print("{} {} {} {} {} {}".format(item[0], item[1],item[2], item[3],item[4], item[5])) #成绩排序 def Sort(): sql="select * from students order by sum desc" print(" 姓名 学号 语文 数学 英语 总分") DB.query(sql) for item in DB.query(sql): print("{} {} {} {} {} {}".format(item[0], item[1], item[2], item[3], item[4], item[5])) #查询学生信息 def Search(stulist,ID): print("姓名 学号 语文 数学 英语 总分") flag = False for item in stulist: if item.ID == ID: flag == True sql = "select * from students where ID=?" for item in DB.query_params(sql, (ID,)): # DB.quert_params:Mysql有参查询数据语句 print("{} {} {} {} {} {}".format(item[0], item[1], item[2], item[3], item[4], item[5])) if flag == False: pass print("没有该学生的学号") #初始化 def Init(stulist): print("初始化。。。") sql="select * from students" for item in DB.query(sql): stu = Student() stu.ID=item[0] stu.name=item[1] stu.score1=int(item[2]) stu.score2 = int(item[3]) stu.score3 = int(item[4]) stu.sum = item[5] stulist.append(stu) print("初始化成功") main() def main(): while True: print("******************") print("******菜单********") print("***1.增加学生信息***") print("***2.查询学生信息***") print("***3.删除学生信息***") print("***4.修改学生信息***") print("***5.显示学生信息***") print("***6.排序学生成绩***") print("***0.退出学生系统***") print("******************") nChoose=input("请输入你的选择:") if nChoose == '1': stu=Student() stu.input() Add(stulist,stu) if nChoose == '2': ID = input("请输入需要查询的学生学号ID:") Search(stulist,ID) if nChoose == '3': ID = input("请输入需要删除的学生学号ID:") Del(stulist,ID) if nChoose == '4': ID = input("请输入需要修改的学生学号ID:") Change(stulist,ID) if nChoose == '5': display(stulist) if nChoose == '6': Sort() if nChoose == '0': print("成功退出!") break #主程序 if __name__=='__main__': stulist=[] DB = dbHelper("db/students.db") Init(stulist) 3.结果

4.SQLiteExpertPersSetup64(软件下载)

软件安装下载步骤(点击)


总结

一、数据库表数据增删改查 1、增加:insert into 表名称 (字段1,字段2,字段3……) values (被插入的值1,值2,值3……) 2、删除:delete from 表名称 where 字段 = 条件 3、修改:update 表名称 set 字段1=值1,字段2=值2,…… where字段 = 条件 4、查找:select 查询的字段 from 表名称 where 字段 = 条件(带条件的),select * from 表名称(查询整张表的所有数据)

二、连接数据库SQLite封装及使用 1、导入模块 2、连接数据库,返回连接对象 3、调用连接对象的方法,执行SQL语句,进行增删改的操作,如进行了增添或者修改数据的操作,需调用commit()方法提交修改才能生效; 4、调用连接对象的cursor()方法返回游标对象,然后调用游标对象的方法执行查询语句,查询数据库。 5、关闭连接对象和游标对象 6、使用try except来处理异常,成功就提交到数据库,发生错误则回滚



1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #的信息进行