python报告书.docx

上传人:b****7 文档编号:24992748 上传时间:2023-06-03 格式:DOCX 页数:20 大小:441.20KB
下载 相关 举报
python报告书.docx_第1页
第1页 / 共20页
python报告书.docx_第2页
第2页 / 共20页
python报告书.docx_第3页
第3页 / 共20页
python报告书.docx_第4页
第4页 / 共20页
python报告书.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

python报告书.docx

《python报告书.docx》由会员分享,可在线阅读,更多相关《python报告书.docx(20页珍藏版)》请在冰豆网上搜索。

python报告书.docx

python报告书

 

南阳理工学院

 

《Python程序开发》课程设计报告

 

大学生信息管理系统

 

一、课程设计内容

此课程设计是大学生信息管理系统,通过管理员进行管理操作,对学生信息和成绩的添加,修改,删除等,也可进行单科成绩的升序排列,便于该科老师对学生的了解。

此系统可以提高工作质量和效率,提高信息资源的利用率和管理水平,能够实现大学生信息管理与相关信息的保存和读取。

二、需求分析

业务需求:

现在是信息化的时代,各个高校也有自己的数据库、服务器,相比于之前纸质化、文件化的管理,网络管理更具有安全性、便利性以及降低了人为出错的因素。

功能需求:

能够实现数据库与相关信息的保存和读取;通过数据库访问基本信息;实现学生信息添加、修改、显示等功能;实现数据的增加、删除、修改等基本功能。

用例图:

三、功能设计

管理员用户登录模块:

管理员登录后自动将登录信息存入数据库随后进入操作界面,在对学生信息进行增删查改更新数据库后退出系统。

数据库设计:

E-R图

四、详细实现

4.1登录功能的实现

登录功能:

用户登录时只需输入账号、密码,系统会连接数据库与数据库中的信息进行比对,当信息一致时登录成功,每次输入密码出错都会提示弹窗。

4.2添加学生信息的实现

添加学生信息功能:

管理员将学生的姓名、学号等信息填入方框内,设置变量接受方框内的信息,连接数据库,将接受的信息传入到数据库的student表中,同时提交数据后,会通过连接数据库查找所有的学生信息从而将其展示出来。

4.3修改学生信息的实现

修改学生信息学号、姓名、民族时可以通过查询姓名直接修改,课程成绩也可直接修改,最后把学生修改后的信息和成绩更新到数据库表中,关闭连接。

4.4删除学生信息的实现

删除学生信息功能:

通过输入学生姓名,点击删除,会将该学生的名字返回给后台,后台接受数据,通过连接数据库进行姓名的比对,当查找到该学生信息时,进行删除操作,当删除成功时设置“数据删除成功”弹窗。

4.5查看学生信息的实现

显示学生信息功能:

通过输入要查询的学生姓名,连接数据库查找student表中的所有信息,返回的元组信息,通过for循环遍历将数据添加到页面上进行展示。

4.6成绩排序的实现

先通过查询得到所有学生信息返回一个元组,将元组转换成列表形式通过内置sort方法根据学生成绩进行排序输出。

4.7求平均成绩

显示学生信息功能:

通过输入要查询的学生姓名,连接数据库查找student表中的所有信息,返回的元组信息,通过for循环遍历将成绩返回出来然后进行求平均值

4.7打包exe文件的实现

在Pycharm终端中输入pipinstallpyinstaller进行下载,随后输入pyinstaller-F--onefileMain.py进行打包。

五、源代码

importpymysql

defmysql_show():

try:

db=pymysql.connect(host="localhost",user="root",password="12356789",database="student")

print('数据库连接成功!

')

cur=db.cursor()

a=str(input("请输入要查询学生的姓名:

"))

sql='select*fromstudentwherename=%s'

value=a

cur.execute(sql,value)

results=cur.fetchall()

forrowinresults:

name=row[0]

id=row[1]

adress=row[3]

sex=row[2]

jiqi=row[4]

python=row[5]

yingyu=row[6]

print('学号:

%s\n姓名:

%s\n地址:

%s\n性别:

%s\n机器学习成绩:

%s\nPython程序设计成绩:

%s\n英语成绩:

%s\n:

'%(

name,id,adress,sex,jiqi,python,yingyu))

exceptpymysql.Errorase:

print("数据查询失败"+str(e))

db.rollback()

db.close()

defmysql_paixu():

try:

db=pymysql.connect(host="localhost",user="root",password="12356789",database="student")

print('数据库连接成功!

')

cur=db.cursor()

print("1.机器学习")

print("2.python程序设计")

print("3.英语")

a=int(input("请选择要排序的成绩:

"))

ifa==1:

print("升序排列为:

")

sql='SELECT*FROMstudentORDERBYjiqi'

cur.execute(sql)

mit()

results=cur.fetchall()

forrowinresults:

name=row[0]

id=row[1]

adress=row[3]

sex=row[2]

jiqi=row[4]

python=row[5]

yingyu=row[6]

print('学号:

%s\n姓名:

%s\n地址:

%s\n性别:

%s\n机器学习成绩:

%s\nPython程序设计成绩:

%s\n英语成绩:

%s\n:

'%(

name,id,adress,sex,jiqi,python,yingyu))

ifa==2:

print("升序排列为:

")

sql='SELECT*FROMstudentORDERBYpython'

cur.execute(sql)

mit()

results=cur.fetchall()

forrowinresults:

name=row[0]

id=row[1]

adress=row[3]

sex=row[2]

jiqi=row[4]

python=row[5]

yingyu=row[6]

print('学号:

%s\n姓名:

%s\n地址:

%s\n性别:

%s\n机器学习成绩:

%s\nPython程序设计成绩:

%s\n英语成绩:

%s\n'%(

name,id,adress,sex,jiqi,python,yingyu))

ifa==3:

print("升序排列为:

")

sql='SELECT*FROMstudentORDERBYyingyu'

cur.execute(sql)

mit()

results=cur.fetchall()

forrowinresults:

name=row[0]

id=row[1]

adress=row[3]

sex=row[2]

jiqi=row[4]

python=row[5]

yingyu=row[6]

print('学号:

%s\n姓名:

%s\n地址:

%s\n性别:

%s\n机器学习成绩:

%s\nPython程序设计成绩:

%s\n英语成绩:

%s\n'%(

name,id,adress,sex,jiqi,python,yingyu))

exceptpymysql.Errorase:

print("数据更新失败"+str(e))

db.rollback()

db.close()

defmysql_delete():

try:

db=pymysql.connect(host="localhost",user="root",password="12356789",database="student")

print('数据库连接成功!

')

cur=db.cursor()

a=str(input("请输入要删除的学生的姓名:

"))

sql='deletefromstudentwherename=%s'

value=a

cur.execute(sql,value)

mit()

print('数据删除成功')

exceptpymysql.Errorase:

print("数据删除失败"+str(e))

db.rollback()

db.close()

defmysql_update_chengji():

try:

db=pymysql.connect(host="localhost",user="root",password="12356789",database="student")

print('数据库连接成功!

')

cur=db.cursor()

s=str(input("请选择要修改的学生姓名:

"))

print("1.机器学习")

print("2.python程序设计")

print("3.英语")

a=int(input("请选择要修改的成绩:

"))

ifa==1:

b=str(input("请输入新的机器学习的成绩:

"))

sql='updatestudentsetjiqi=%swherename=%s'

value=(b,s)

cur.execute(sql,value)

mit()

print('数据更新成功')

ifa==2:

c=str(input("请输入新的python程序设计的成绩:

"))

sql='updatestudentsetpython=%swherename=%s'

value=(c,s)

cur.execute(sql,value)

mit()

print('数据更新成功')

ifa==3:

d=str(input("请输入新的英语的成绩:

"))

sql='updatestudentsetyingyu=%swherename=%s'

value=(d,s)

cur.execute(sql,value)

mit()

print('数据更新成功')

exceptpymysql.Errorase:

print("数据更新失败"+str(e))

db.rollback()

db.close()

defmysql_update_xinxi():

try:

db=pymysql.connect(host="localhost",user="root",password="12356789",database="student")

print('数据库连接成功!

')

cur=db.cursor()

s=str(input("请选择要修改的学生姓名:

"))

name=str(input("请输入修改的学生姓名:

"))

adress=str(input("请输入修改的学生的地址:

"))

sex=str(input("请输入修改学生的性别:

"))

id=str(input("请输入修改的学生的学号:

"))

jiqi=str(input("请输入修改的学生的机器学习成绩:

"))

python=str(input("请输入修改的学生的python程序设计成绩:

"))

yingyu=str(input("请输入修改的学生的英语成绩:

"))

sql='updatestudentsetid=%s,name=%s,sex=%s,adress=%s,jiqi=%s,python=%s,yingyu=%swherename=%s'

value=(id,name,sex,adress,jiqi,python,yingyu,s)

cur.execute(sql,value)

mit()

print('数据更新成功')

exceptpymysql.Errorase:

print("数据更新失败"+str(e))

db.rollback()

db.close()

defmysql_insert():

try:

db=pymysql.connect(host="localhost",user="root",password="12356789",database="student")

print('数据库连接成功!

')

cur=db.cursor()

name=str(input("请输入添加的学生姓名:

"))

adress=str(input("请输入添加的学生的地址:

"))

sex=str(input("请输入添加的学生的性别:

"))

id=str(input("请输入添加的学生的学号:

"))

jiqi=str(input("请输入添加的学生的机器学习成绩:

"))

python=str(input("请输入添加的学生的python程序设计成绩:

"))

yingyu=str(input("请输入添加的学生的英语成绩:

"))

sql='insertignoreintostudent(id,name,sex,adress,jiqi,python,yingyu)values(%s,%s,%s,%s,%s,%s,%s)'

value=(id,name,sex,adress,jiqi,python,yingyu)

a=cur.execute(sql,value)

mit()

ifa==0:

print("您添加的信息已存在,请重新添加!

!

!

")

else:

print('数据插入成功')

exceptpymysql.Errorase:

print("数据插入失败"+str(e))

db.rollback()

db.close()

defjisuan_avgchengji():

try:

db=pymysql.connect(host="localhost",user="root",password="12356789",database="student")

print('数据库连接成功!

')

cur=db.cursor()

a=str(input("请输入要计算学生成绩的姓名:

"))

sql='select*fromstudentwherename=%s'

value=a

cur.execute(sql,value)

results=cur.fetchall()

forrowinresults:

name=row[0]

id=row[1]

adress=row[3]

sex=row[2]

jiqi=row[4]

python=row[5]

yingyu=row[6]

print('学号:

%s\n姓名:

%s\n地址:

%s\n性别:

%s\n机器学习成绩:

%s\nPython程序设计成绩:

%s\n英语成绩:

%s\n'%(

name,id,adress,sex,jiqi,python,yingyu))

sum_chengji=(jiqi+python+yingyu)/3

print("平均成绩:

",sum_chengji)

exceptpymysql.Errorase:

print("数据查询失败"+str(e))

db.rollback()

db.close()

defmain():

whileTrue:

print("--------------------------")

print("请输入以下命令进行操作:

")

print("\t1添加学生信息")

print("\t2修改学生信息")

print("\t3删除学生信息")

print("\t4修改学生成绩")

print("\t5查看学生信息")

print("\t6对学生成绩进行排序")

print("\t7计算学生平均成绩")

print("\texit退出系统!

")

cmd=input("请输入命令:

")

ifcmd=='exit':

#退出系统!

break

elifcmd=='1':

#添加学生信息

print("--------------------------")

whileTrue:

s=input("请选择是否继续(按任意键继续,输入q返回上级菜单):

")

ifs=='q':

break

else:

mysql_insert()

elifcmd=='2':

#修改学生信息

print("--------------------------")

whileTrue:

s=input("请选择是否继续(按任意键继续,输入q返回上级菜单):

")

ifs=='q':

break

else:

mysql_update_xinxi()

elifcmd=='3':

#删除学生

print("--------------------------")

whileTrue:

s=input("请选择是否继续(按任意键继续,输入q返回上级菜单):

")

ifs=='q':

break

else:

mysql_delete()

elifcmd=='4':

#修改学生成绩

print("--------------------------")

whileTrue:

s=input("请选择是否继续(按任意键继续,输入q返回上级菜单):

")

ifs=='q':

break

else:

mysql_update_chengji()

elifcmd=='5':

print("--------------------------")

whileTrue:

s=input("请选择是否继续(输入q返回上级菜单):

")

ifs=='q':

break

else:

mysql_show()

elifcmd=='6':

#按姓名或者学号查找学生,显示学生信息及三门课的成绩,以及排名

print("--------------------------")

whileTrue:

s=input("请选择是否继续(输入q返回上级菜单):

")

ifs=='q':

break

else:

mysql_paixu()

elifcmd=='7':

#按姓名或者学号查找学生,显示学生信息及三门课的成绩,以及排名

print("--------------------------")

whileTrue:

s=input("请选择是否继续(输入q返回上级菜单):

")

ifs=='q':

break

else:

jisuan_avgchengji()

user=str(input("请输入登录的用户名:

"))

password=str(input("请输入登录的密码:

"))

ifuser=='root'andpassword=='123456':

print("登陆成功,欢迎您的使用!

!

!

")

main()

else:

print("登录失败,请重新登录!

!

!

")

六、运行及调试

1.管理员登录页面:

运行大学生信息管理系统.py文件进入登录页面,管理员需在登录页面输入正确的用户名和密码。

2.添加学生信息:

3.修改学生信息:

4.查看学生信息:

5.查看成绩排名:

6.查看学生的平均成绩

 

七、课程设计小结

通过此次课程设计,使我更加扎实的掌握了有关python方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。

过而能改,善莫大焉。

在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。

最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。

这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。

在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!

 我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。

更重要的是,在实验课上,我们学会了很多学习的方法。

而这是日后最实用的,真的是受益匪浅。

要面对社会的挑战,只有不断的学习、实践,再学习、再实践。

这对于我们的将来也有很大的帮助。

以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。

就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1