7.5 实践项目 学生成绩管理
7.5.1 项目目标
学 生 成 绩 记 录 包 括 学 号 (pNo) 、 姓 名 (pName) 、 语 文 成 绩 (pChinese) 、 数 学 成 绩
(pMath)、英语成绩(pEnglish),它们存储在 MySQL 的 MyDB 数据库的 marks 表中。程序
的功能包括:
显示成绩:显示全部学生成绩记录;
增加成绩:增加新的成绩记录;
更新成绩:更新指定学号的成绩记录;
删除成绩:删除指定学号的成绩记录;
导出成绩:把数据库成绩导出到 marks.txt 文件;
导入成绩:从指定的文本文件导入成绩到数据库中;
7.5.2 项目设计
1、数据库设计
成绩存储在 MyDB 的 marks 表中,marks 表的建立命令如下:
create table marks (pNo varchar(16) primary key,pName varchar(16) ,pChinese
float,pMath float,pEnglish float)
2、增加成绩、更新成绩、删除成绩
这些功能与前面很多示例很相似,不再赘述。
3、导出成绩
把数据库的成绩按一定文件格式导出到文本文件是十分有用的,本程序导出的文件
marks.txt 格式如下:
学号,姓名,语文,数学,英语
111,张三,67.0,78.0,90.0
222,James,57.0,78.0,45.0
其中第一行是标题,第二行后是数据,每条记录占一行,各个字段的值用逗号分开,导
出函数设计如下:
def export(self):
try:
f=open("marks.txt","wt")
self.cursor.execute("select * from marks")
f.write("学号,姓名,语文,数学,英语\n")
rows = self.cursor.fetchall()
for row in rows:
f.write(row["pNo"]+","+row["pName"]+","+str(row["pChinese"])+","+str(row["pMath"])
+","+str(row["pEnglish"])+"\n")
f.close()
print("成绩导出完毕")
except Exception as err: