




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生信息管理系统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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 球场油漆施工合同协议
- 2025至2030年中国立竿式道口反射镜数据监测研究报告
- 2025至2030年中国移动电话光电源电池数据监测研究报告
- 2025至2030年中国砼收缩膨胀仪(卧式)数据监测研究报告
- 2025至2030年中国甜品叉数据监测研究报告
- 2025至2030年中国洗煤机数据监测研究报告
- 2025至2030年中国柔肤营养蜜数据监测研究报告
- 2025至2030年中国德式电焊钳数据监测研究报告
- 2025至2030年中国大型帐篷数据监测研究报告
- 2025至2030年中国多功能电夹板数据监测研究报告
- 鲁滨逊漂流记选段:叙事技巧分析教案
- 围手术期下肢静脉血栓预防与护理
- 贵州省气象部门招聘考试真题2024
- 《大学生就业指导》期末笔记
- 《诉衷情》(陆游)课件
- 陕西省2024年中考语文现代文阅读真题
- 2025届高考语文二轮复习:文言文知识点与答题技巧汇编 讲义
- Unit 5 Here and now Section A Grammar 说课稿 2023-2024学年人教版英语七年级下册
- 地下综合管廊建设项目可行性研究报告
- 基于多源异构数据的地质知识图谱构建与应用
- 2024年领导干部任前廉政知识考试测试题库及答案
评论
0/150
提交评论