《Python程序设计》课程设计-学生管理系统_第1页
《Python程序设计》课程设计-学生管理系统_第2页
《Python程序设计》课程设计-学生管理系统_第3页
《Python程序设计》课程设计-学生管理系统_第4页
《Python程序设计》课程设计-学生管理系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生信息管理系统201902140231张杨易《Python程序设计》课程设计报告题目学生信息管理系统学院学院班级姓名学号指导教师2020年12月26日《Python程序设计》课程设计计划书设计题目学生信息管理系统已知技术参数和设计要求整个系统可以设计为录入学生信息、查找学生信息、删除学生信息、修改学生信息、统计学生总人数五个模块。信息记录要存放到数据库文件中去;要实现数据的插入、删除、修改和显示功能,因而要实现插入、删除、修改和显示操作;要实现按id进行查询的功能,因而要提供查找操作;另外还应该提供键盘式选择菜单以实现功能选择设计内容与步骤采用数据库技术,共制作五个模块:(1)录入学生信息;(2)查找学生信息;(3)删除学生信息;(4)修改学生信息;(5)统计学生总人数。设计工作计划与进度安排12月28日:设计算法,并验证。12月30日:完成程序。12月30日:检查程序是否满足设计要求并完善。12月30日:完成设计报告。设计考核要求编写程序,调试,测试完成设计报告完成答辩学生信息管理系统张杨易土木工程学院2019级土木1902班1引言学习了Python程序设计这门课程之后,使我对程序设计有了一定的了解,为了熟练掌握Python语言的语法特点、及其数据库处理技术,提高自身编写程序的能力。通过课程设计实现理论知识与实际情况的结合,使所学知识能够在现实社会中起到一定的作用,防止所编写的程序脱离实际,让程序可以更好的发挥作用,以便减轻实际工作中所遇到的繁琐步骤,提高现实工作中的效率。2设计方案2.1设计思路建立一个函数,用来连接数据库、添加、显示、删除、查询、修改数据表记录等信息,完成数据管理的功能。主程序可以调用六个函数,分别完成录入学生信息、查找学生信息、删除学生信息、修改学生信息、统计学生总人数、退出系统等功能。在主程序中可以以1、2、3、4、5、数字键分别可以执行某个功能模块3程序设计与实施3.1主函数及其流程图设计主程序和一系列的功能函数,只有通过这些函数才可实现学生信息管理的功能。主程序界面如下图3.1所示。图3.1系统流程图3.2其余各个功能函数及其流程图……流程图及文本说明。应该有多个部份,课设论文核心内容。4设计结果与分析程序运行会看到如图4.1所示界面。图4.1程序运行主界面输入1显示添加通讯录界面,如下图4.2所示。图4.2XXXXXX输入2按姓名显示记录,通讯录界面如图4.3所示。图4.3XXXXX在主菜单输入3显示删除通讯录界面如下图4.4所示。图4.4XXX在主菜单界面输入数字“3”,执行删除用户。当通讯录执行者输入要删除学生的姓名,系统会搜索数据库并将搜索结果输出。然后征求确认。每次删除成功后系统会询问是否继续删除,然后执行相应操作。删除后,通讯录里的显示记录显示效果如图4.5所示图4.5XXXXXXXXXXXXXXXX删除通讯录记录时首先选择出名字,其次在显示删除后程序才真正的删除,再进入显示界面就不会再显示原来所谓信息。在主菜单输入4显示查询通讯录界面如图4.6所示。图4.6查询信息界面提示通讯录管理人员可以有姓名、电话两种输入方式,在此操作过程中选择1、2分别可以按照姓名电话号码进行快速查询。在主菜单输入6显示修改通讯录界面如图4.7所示。图4.7XXXXX每次修改结束后,系统输出询问是否继续修改信息,然后执行if语句,如果返回值是“Y”,则继续执行修改信息,否则返回主菜单。5源程序#学生成绩数据管理系统.pyimportos

importre

importsqlite3

defmain():

ctrl=True

while(ctrl):

menu()

option=input("请选择:")

option_str=re.sub("\D","",option)

ifoption_strin['0','1','2','3','4','5','6','7']:

option_int=int(option_str)

ifoption_int==0:

print('您已退出学生信息管理系统')

ctrl=False

elifoption_int==1:

insert()

elifoption_int==2:

search()

elifoption_int==3:

delete()

elifoption_int==4:

modify()

elifoption_int==5:

sort()

elifoption_int==6:

total()

else:

print('输入错误请重新输入')

#菜单

defmenu():

print('学生信息管理系统\n')

print('功能菜单\n')

print('1录入学生信息\n')

print('2查找学生信息\n')

print('3删除学生信息\n')

print('4修改学生信息\n')

print('5排序\n')

print('6统计学生总人数\n')

print('0退出系统\n')

print('\n')

print('说明:通过数字键或↑↓方向键选择菜单\n')

definsert():

studentList=[]

mark=True

whilemark:

id=input('请输入id:')

ifnotid:

break

name=input('请输入名字')

ifnotname:

break

try:

english=int(input('请输入英语成绩:'))

python=int(input('请输入Python成绩:'))

c=int(input('请输入C语言成绩:'))

except():

print('请输入整数成绩!')

continue

student={'id':id,'name':name,'english':english,'python':python,'c':c}

cur.execute("insertintostu(id,name,english,python,c,total)values('%s','%s','%d','%d','%d','%d')"%(student['id'],student['name'],student['english'],student['python'],student['c'],student['c']+student['english']+student['python']))

inputMark=input('是否继续添加(y/n):')

ifinputMark=='y':

mark=True

else:

mark=False

print('学生信息录入完成!')

#删除

defdelete():

mark=True

whilemark:

studentID=input('请输入要删除的学生ID:')

sql="deletefromstuwhereid='%s'"%studentID

try:

cur.execute(sql)

mit()

print('删除学生信息成功!')

except:

print('删除失败...')

Mark=input('是否继续删除(y/n):')

ifMark=='y':

mark=True

else:

mark=False

#排序

defmodify():

mark=True

whilemark:

studentID=input('请输入需要修改的学生ID')

name=input('请输入姓名:')

english=int(input('请输入英语成绩:'))

python=int(input('请输入Python成绩:'))

c=int(input('请输入c语言成绩:'))

sql="updatestusetname='%s',english='%d',python='%d',c='%d',total='%d'whereid='%s'"%(name,english,python,c,english+python+c,studentID)

try:

cur.execute(sql)

mit()

print('修改学生信息成功!')

except:

print('修改失败...')

inputMark=input('是否继续修改其他学生信息(y/n):')

ifinputMark=='y':

mark=True

else:

mark=False

#查询

defsearch():

mark=True

whilemark:

studentID=input('请输入需要查询的学生ID')

sql="select*fromstuwhereid='%s'"%studentID

try:

cur.execute(sql)

result=cur.fetchall()

name=result[0][1]

english=int(re.sub("\D","",result[0][2]))

python=int(re.sub("\D","",result[0][3]))

c=int(re.sub("\D","",result[0][4]))

print("姓名:'%s',英语成绩:'%d',Python成绩:'%d',C成绩:'%d',总分:'%d'"%(name,english,python,c,english+python+c))

print('查询学生信息成功!')

except:

print('查询失败...')

inputMark=input('是否继续查询(y/n):')

ifinputMark=='y':

mark=True

else:

mark=False

#统计

deftotal():

cur.execute("select*fromstu")

result=cur.fetchall()

ifresult:

print('一共有%d名学生!'%len(result))

else:

print('还没有录入学生信息!')

#排序

defsort():

sql=('select*fromstu')

cur.execute(sql)

result=cur.fetchall()

result_a=['id','name','english','python','c']

result_dic=[]

foriinrange(len(result)):

result_dic.append(dict(zip(result_a,result[i])))

student_new=result_dic

ascORdesc=input('请选择(0升序;1降序):')

ifascORdesc=='0':

ascORdescBool=False

elifascORdesc=='1':

ascORdescBool=True

else:

print('您的输入有误,请重新输入!')

sort()

mode=input('请选择排序方式(1按英语成绩排序;2按Python成绩排序;3按C语言成绩排序;4按总成绩排序):')

ifmode=='1':

student_new.sort(key=lambdax:x['english'],reverse=ascORdescBool)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论