《Python程序設計》課程設計-學生管理系統(tǒng)_第1頁
《Python程序設計》課程設計-學生管理系統(tǒng)_第2頁
《Python程序設計》課程設計-學生管理系統(tǒng)_第3頁
《Python程序設計》課程設計-學生管理系統(tǒng)_第4頁
《Python程序設計》課程設計-學生管理系統(tǒng)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

學生信息管理系統(tǒng)201902140231張楊易《Python程序設計》課程設計報告題目學生信息管理系統(tǒng)學院學院班級姓名學號指導教師2020年12月26日《Python程序設計》課程設計計劃書設計題目學生信息管理系統(tǒng)已知技術(shù)參數(shù)和設計要求整個系統(tǒng)可以設計為錄入學生信息、查找學生信息、刪除學生信息、修改學生信息、統(tǒng)計學生總?cè)藬?shù)五個模塊。信息記錄要存放到數(shù)據(jù)庫文件中去;要實現(xiàn)數(shù)據(jù)的插入、刪除、修改和顯示功能,因而要實現(xiàn)插入、刪除、修改和顯示操作;要實現(xiàn)按id進行查詢的功能,因而要提供查找操作;另外還應該提供鍵盤式選擇菜單以實現(xiàn)功能選擇設計內(nèi)容與步驟采用數(shù)據(jù)庫技術(shù),共制作五個模塊:(1)錄入學生信息;(2)查找學生信息;(3)刪除學生信息;(4)修改學生信息;(5)統(tǒng)計學生總?cè)藬?shù)。設計工作計劃與進度安排12月28日:設計算法,并驗證。12月30日:完成程序。12月30日:檢查程序是否滿足設計要求并完善。12月30日:完成設計報告。設計考核要求編寫程序,調(diào)試,測試完成設計報告完成答辯學生信息管理系統(tǒng)張楊易土木工程學院2019級土木1902班1引言學習了Python程序設計這門課程之后,使我對程序設計有了一定的了解,為了熟練掌握Python語言的語法特點、及其數(shù)據(jù)庫處理技術(shù),提高自身編寫程序的能力。通過課程設計實現(xiàn)理論知識與實際情況的結(jié)合,使所學知識能夠在現(xiàn)實社會中起到一定的作用,防止所編寫的程序脫離實際,讓程序可以更好的發(fā)揮作用,以便減輕實際工作中所遇到的繁瑣步驟,提高現(xiàn)實工作中的效率。2設計方案2.1設計思路建立一個函數(shù),用來連接數(shù)據(jù)庫、添加、顯示、刪除、查詢、修改數(shù)據(jù)表記錄等信息,完成數(shù)據(jù)管理的功能。主程序可以調(diào)用六個函數(shù),分別完成錄入學生信息、查找學生信息、刪除學生信息、修改學生信息、統(tǒng)計學生總?cè)藬?shù)、退出系統(tǒng)等功能。在主程序中可以以1、2、3、4、5、數(shù)字鍵分別可以執(zhí)行某個功能模塊3程序設計與實施3.1主函數(shù)及其流程圖設計主程序和一系列的功能函數(shù),只有通過這些函數(shù)才可實現(xiàn)學生信息管理的功能。主程序界面如下圖3.1所示。圖3.1系統(tǒng)流程圖3.2其余各個功能函數(shù)及其流程圖……流程圖及文本說明。應該有多個部份,課設論文核心內(nèi)容。4設計結(jié)果與分析程序運行會看到如圖4.1所示界面。圖4.1程序運行主界面輸入1顯示添加通訊錄界面,如下圖4.2所示。圖4.2XXXXXX輸入2按姓名顯示記錄,通訊錄界面如圖4.3所示。圖4.3XXXXX在主菜單輸入3顯示刪除通訊錄界面如下圖4.4所示。圖4.4XXX在主菜單界面輸入數(shù)字“3”,執(zhí)行刪除用戶。當通訊錄執(zhí)行者輸入要刪除學生的姓名,系統(tǒng)會搜索數(shù)據(jù)庫并將搜索結(jié)果輸出。然后征求確認。每次刪除成功后系統(tǒng)會詢問是否繼續(xù)刪除,然后執(zhí)行相應操作。刪除后,通訊錄里的顯示記錄顯示效果如圖4.5所示圖4.5XXXXXXXXXXXXXXXX刪除通訊錄記錄時首先選擇出名字,其次在顯示刪除后程序才真正的刪除,再進入顯示界面就不會再顯示原來所謂信息。在主菜單輸入4顯示查詢通訊錄界面如圖4.6所示。圖4.6查詢信息界面提示通訊錄管理人員可以有姓名、電話兩種輸入方式,在此操作過程中選擇1、2分別可以按照姓名電話號碼進行快速查詢。在主菜單輸入6顯示修改通訊錄界面如圖4.7所示。圖4.7XXXXX每次修改結(jié)束后,系統(tǒng)輸出詢問是否繼續(xù)修改信息,然后執(zhí)行if語句,如果返回值是“Y”,則繼續(xù)執(zhí)行修改信息,否則返回主菜單。5源程序#學生成績數(shù)據(jù)管理系統(tǒng).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('您已退出學生信息管理系統(tǒng)')

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('學生信息管理系統(tǒng)\n')

print('功能菜單\n')

print('1錄入學生信息\n')

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

print('3刪除學生信息\n')

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

print('5排序\n')

print('6統(tǒng)計學生總?cè)藬?shù)\n')

print('0退出系統(tǒng)\n')

print('\n')

print('說明:通過數(shù)字鍵或↑↓方向鍵選擇菜單\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('請輸入整數(shù)成績!')

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('是否繼續(xù)添加(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('是否繼續(xù)刪除(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('是否繼續(xù)修改其他學生信息(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('是否繼續(xù)查詢(y/n):')

ifinputMark=='y':

mark=True

else:

mark=False

#統(tǒng)計

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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論