最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python學(xué)生信息管理系統(tǒng)修改版

 更新時(shí)間:2018年03月13日 15:39:38   作者:MTbaby  
這篇文章主要為大家詳細(xì)介紹了python學(xué)生信息管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在學(xué)習(xí)之前先要了解sqlite游標(biāo)的使用方法python使用sqlite3時(shí)游標(biāo)的使用方法

繼上篇博客Python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)后,我就覺(jué)得寫的太復(fù)雜了,然后又是一通優(yōu)化、優(yōu)化、優(yōu)化;

本次優(yōu)化主要修改了:

1.使用游標(biāo)的方法連接、增、刪、改、查數(shù)據(jù)庫(kù);
2.一般二級(jí)菜單是不能直接退出程序的,所以去掉了二級(jí)菜單退出程序的功能;
3.增加了連表查詢;
4.但是還有一點(diǎn)很不滿意,就是每次退出后都退出到主菜單而不是當(dāng)前菜單,這點(diǎn)還沒(méi)改好,希望小伙伴能一起學(xué)習(xí)交流!

#-*- coding:utf-8 -*-
import sqlite3
#打開(kāi)本地?cái)?shù)據(jù)庫(kù)用于存儲(chǔ)用戶信息
cx = sqlite3.connect('student.db')

#在該數(shù)據(jù)庫(kù)下創(chuàng)建學(xué)生信息表
cx.execute ('''CREATE TABLE StudentTable(
 ID INTEGER PRIMARY KEY AUTOINCREMENT,
 StuId   INTEGER  NOT NULL,
 NAME   TEXT  NOT NULL,
 CLASS   INT  NOT NULL);''')
print "Table created successfully";

#在該數(shù)據(jù)庫(kù)下創(chuàng)建課程信息表
cx.execute ('''CREATE TABLE CourseTable(
 ID INTEGER PRIMARY KEY AUTOINCREMENT,
 CourseId  INT  NOT NULL,
 Name   TEXT  NOT NULL,
 Teacher   TEXT  NOT NULL,
 Classroom   TEXT  NOT NULL,
 StartTime    CHAR(11) NOT NULL,
 EndTime    CHAR(11) NOT NULL);''')
print "Table created successfully";


#在該數(shù)據(jù)庫(kù)下創(chuàng)建選課情況信息表
cx.execute ('''CREATE TABLE XuankeTable(
 ID INTEGER PRIMARY KEY AUTOINCREMENT,
 StuId   INT   NOT NULL,
 CourseId   INT   NOT NULL);''')
print "Table created successfully";

#以上三個(gè)表創(chuàng)建完后,再次運(yùn)行程序時(shí),需要把三個(gè)建表代碼注釋掉,否則會(huì)提示:該表已存在。即建表只需建一次。


def insert_stu():#錄入學(xué)生信息
 cu = cx.cursor()
 stu_id = input("請(qǐng)輸入學(xué)生學(xué)號(hào):")
 cu.execute("SELECT StuId from StudentTable where StuId = '%s';"%stu_id)
 row = cu.fetchone()
 if row:
  print "sorry,該學(xué)號(hào)已存在,請(qǐng)重新輸入"
 else:
  stu_name = raw_input("請(qǐng)輸入學(xué)生姓名:")
  stu_class = input("請(qǐng)輸入學(xué)生班級(jí):")
  sql1 = "INSERT INTO StudentTable(StuId,NAME,CLASS)"
  sql1 += " VALUES(%d,'%s',%d);"%(stu_id,stu_name,stu_class)
  cu.execute(sql1)
  cx.commit()
  print "恭喜你,學(xué)生錄入成功!"
 cu.close()


def xuanke():#學(xué)生選課
 cu = cx.cursor()
 stu_id = input('請(qǐng)輸入要選課的學(xué)生學(xué)號(hào):')
 sql2 = "select StuId from StudentTable where StuId = %d;"%(stu_id)
 cu.execute(sql2)
 row = cu.fetchone()
 if row:
  sql3 = "select CourseId,Name,Teacher,Classroom, StartTime,EndTime from CourseTable"
  cu.execute(sql3)
  rows = cu.fetchall()
  for row in rows:
   print "CourseId = ", row[0]
   print "Name = ", row[1]
   print "Teacher = ", row[2]
   print "Classroom = ",row[3]
   print "StartTime = ",row[4]
   print "EndTime = ",row[5], "\n"
  cou_id = input("請(qǐng)輸入要選的課程號(hào):")
  sql0 = "select CourseId from CourseTable where CourseId =%d;"%(cou_id)
  cu.execute(sql0)
  row = cu.fetchone()
  if row:
   sql = "select StuId CourseId from XuankeTable "
   sql += "where CourseId = %d and StuId=%d;"%(cou_id,stu_id)
   cu.execute(sql)
   rows = cu.fetchone()
   if row:
    print "該課程已選,不能重復(fù)選課!"
    break
   else:
    sql3 = "insert into XuankeTable (StuId,CourseId) values (%d,%d)"%(stu_id,cou_id)
    cu.execute(sql3)
    cx.commit()
    print "恭喜你,選課成功!"
  else:
   print "sorry,該課程不存在!"
 else:
  print "sorry,沒(méi)有該學(xué)生號(hào)"
 cu.close()



def stu_id_search():#按照學(xué)生學(xué)號(hào)查詢學(xué)生信息
 cu = cx.cursor()
 search_stu_id = input("請(qǐng)輸入要查詢的學(xué)號(hào):")
 sql4 = "SELECT ID,StuId,NAME, CLASS from StudentTable "
 sql4 += "where StuId= %d;" % (search_stu_id)
 cu.execute(sql4)
 row = cu.fetchone()
 if row: 
  print
  print "您要查詢的學(xué)生信息為:"
  print "ID = ", row[0]
  print "StuId = ", row[1]
  print "NAME = ", row[2]
  print "CLASS = ",row[3], "\n"
 else:
  print "sorry,沒(méi)有該學(xué)生信息!"
 cu.close()


def stu_id_cou():#按照學(xué)生學(xué)號(hào)查詢?cè)搶W(xué)生所選課程
 cu = cx.cursor()
 stu_id = input("請(qǐng)輸入要查詢學(xué)生號(hào):")
 sql5 = "select StuId from StudentTable where StuId = %d;"%(stu_id)
 cu.execute(sql5)
 row = cu.fetchone()
 if row :
  sql6 = "select A.*,B.*,C.* from XuankeTable A, CourseTable B, StudentTable C \
  where A.StuId = %d and A.CourseId=B.CourseId and A.StuId=C.StuId"%(stu_id)#連表查詢
  cu.execute(sql6)
  rows = cu.fetchall()
  for row in rows:
   print "該學(xué)生所選課程為:"
   print "StuId=",row[1]
   print "CourseId=",row[2]
   print "Name = ", row[7]
   print "Teacher = ", row[8]
   print "Classroom = ",row[9]
   print "StartTime = " ,row[10]
   print "EndTime = ",row[11],"\n"
   print
 else:
  print "sorry,沒(méi)有該學(xué)生選課信息!"
 cu.close()


def cou_id_search(): #按照課程號(hào)查詢課程信息
 cu = cx.cursor()
 cou_id = input("請(qǐng)輸入要查詢的課程號(hào):")
 sql7 = "select CourseId ,Name,Teacher,Classroom,StartTime,EndTime from CourseTable "
 sql7 += "where CourseId = %d;"%(cou_id)
 cu.execute(sql7)
 row = cu.fetchone()
 if row:
  print "您要查詢的課程信息為:"
  print "CourseId = ",row[0]
  print "Name = ", row[1]
  print "Teacher = ", row[2]
  print "Classroom = ",row[3]
  print "StartTime = " ,row[4]
  print "EndTime = ",row[5],"\n"
 else:
  print "sorry,沒(méi)有該課程信息!"
 cu.close()


def cou_id_stu():#按照課程號(hào)查詢選擇該課程的學(xué)生列表
 cu = cx.cursor()
 cou_id = input('請(qǐng)輸入課程號(hào):')
 sql8 = "select CourseId from XuankeTable where CourseId =%d;"%(cou_id)
 cu.execute(sql8)
 row = cu.fetchone()
 if row:
  sql9 = "select A.*,B.*,C.* from XuankeTable A, CourseTable B, StudentTable C \
  where A.CourseId = %d and A.CourseId=B.CourseId and A.StuId=C.StuId"%(cou_id)
  cu.execute(sql9)
  rows = cu.fetchall()
  for row in rows:
   print
   print "選擇該課程的學(xué)生為:"
   print "StuId = ", row[1]
   print "CourseId = ", row[2]
   print "NAME = ", row[14]
   print "CLASS = ",row[15],"\n"
 else:
  print "sorry,沒(méi)有該課程信息!"
 cu.close()

def menu():
 print '1.進(jìn)入學(xué)生信息系統(tǒng)(學(xué)生信息錄入)'
 print '2.進(jìn)入學(xué)生選課系統(tǒng)(學(xué)生選課操作)'
 print '3.進(jìn)入學(xué)生選課信息系統(tǒng)(學(xué)生信息查詢和選課情況查詢)'
 print '4.退出程序'

def student():
 print '1.錄入學(xué)生信息'
 print '2.返回主菜單'

def Course():
 print '1.開(kāi)始選課'
 print '2.返回主菜單'

def information():
 print '1.按學(xué)號(hào)查詢學(xué)生信息'
 print '2.按學(xué)號(hào)查看學(xué)生選課課程列表'
 print '3.按課程號(hào)查看課程信息'
 print '4.按課程號(hào)查看選課學(xué)生列表'
 print '5.返回主菜單'


while True:
 menu()
 print
 x = raw_input('請(qǐng)輸入您的選擇菜單號(hào):')
 if x == '1':
  #進(jìn)入學(xué)生信息系統(tǒng)
  student()
  stu = raw_input('您已進(jìn)入學(xué)生錄入系統(tǒng),請(qǐng)?jiān)俅屋斎脒x擇菜單:')
  print
  if stu == '1':
   insert_stu()
   continue
  if stu == '2':
   continue
  else:
   print "輸入的選項(xiàng)不存在,請(qǐng)重新輸入!"
   continue

 if x == '2':
  #進(jìn)入選課信息系統(tǒng)
  Course()
  cou = raw_input('您已進(jìn)入學(xué)生選課系統(tǒng),請(qǐng)?jiān)俅屋斎脒x擇菜單:')
  print
  if cou == '1':
   xuanke()
   continue
  if cou == '2':
   continue
  else:
   print "輸入的選項(xiàng)不存在,請(qǐng)重新輸入!"
   continue

 if x == '3':
  #進(jìn)入學(xué)生選課信息表
  information()
  inf = raw_input('您已進(jìn)入學(xué)生選課信息系統(tǒng),請(qǐng)?jiān)俅屋斎脒x擇菜單:')
  print
  if inf == '1':
   stu_id_search()
   continue
  if inf == '2':
   stu_id_cou()
   continue
  if inf == '3':
   cou_id_search()
   continue
  if inf == '4':
   cou_id_stu()
   continue
  if inf == '5':
   continue
  else:
   print "輸入的選項(xiàng)不存在,請(qǐng)重新輸入!"
   continue

 if x == '4':
  print "謝謝使用!"
  exit()
 else:
  print "輸入的選項(xiàng)不存在,請(qǐng)重新輸入!"
  continue

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python通過(guò)future處理并發(fā)問(wèn)題

    Python通過(guò)future處理并發(fā)問(wèn)題

    這篇文章主要介紹了Python通過(guò)future處理并發(fā)問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-10-10
  • Python字符串格式化str.format()方法的實(shí)現(xiàn)

    Python字符串格式化str.format()方法的實(shí)現(xiàn)

    字符串的格式化是一個(gè)非常重要的功能,用于創(chuàng)建包含變量值的字符串,本來(lái)就來(lái)介紹一下Python字符串格式化str.format()方法的實(shí)現(xiàn),感興趣的可以了解一下
    2023-11-11
  • jupyter lab的目錄調(diào)整及設(shè)置默認(rèn)瀏覽器為chrome的方法

    jupyter lab的目錄調(diào)整及設(shè)置默認(rèn)瀏覽器為chrome的方法

    這篇文章主要介紹了jupyter lab的目錄調(diào)整及設(shè)置默認(rèn)瀏覽器為chrome的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • pycharm 實(shí)現(xiàn)本地寫代碼,服務(wù)器運(yùn)行的操作

    pycharm 實(shí)現(xiàn)本地寫代碼,服務(wù)器運(yùn)行的操作

    這篇文章主要介紹了pycharm 實(shí)現(xiàn)本地寫代碼,服務(wù)器運(yùn)行的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python json.loads兼容單引號(hào)數(shù)據(jù)的方法

    python json.loads兼容單引號(hào)數(shù)據(jù)的方法

    今天小編就為大家分享一篇python json.loads兼容單引號(hào)數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python多線程學(xué)習(xí)資料

    Python多線程學(xué)習(xí)資料

    Python中使用線程有兩種方式:函數(shù)或者用類來(lái)包裝線程對(duì)象
    2012-12-12
  • 神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式

    神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式

    這篇文章主要介紹了神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Python?shapely庫(kù)的具體使用

    Python?shapely庫(kù)的具體使用

    本文主要介紹了Python?shapely庫(kù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Python中讀取Excel最快的幾種常見(jiàn)方法

    Python中讀取Excel最快的幾種常見(jiàn)方法

    本文詳細(xì)介紹了使用Python讀取Excel文件的多種方法,介紹了pandas、openpyxl、xlrd、xlwt、pyexcel、Tablib、LibreOffice、DuckDB和Calamine等庫(kù)的用法和特點(diǎn),每種方法適用于不同的場(chǎng)景,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Python檢測(cè)PE所啟用保護(hù)方式詳解

    Python檢測(cè)PE所啟用保護(hù)方式詳解

    Python通過(guò)pywin32模塊調(diào)用WindowsAPI接口,可以實(shí)現(xiàn)對(duì)特定進(jìn)程加載模塊的枚舉輸出并檢測(cè)該P(yáng)E程序模塊所啟用的保護(hù)方式,感興趣的可以了解一下
    2022-10-10

最新評(píng)論

宜兰县| 曲阜市| 高邮市| 阿瓦提县| 花莲县| 葵青区| 白沙| 台北县| 丽江市| 东方市| 务川| 彝良县| 枣阳市| 天长市| 丹东市| 温宿县| 社旗县| 汤原县| 涿州市| 渝北区| 文成县| 通州区| 新兴县| 安平县| 策勒县| 平和县| 阳高县| 溆浦县| 罗城| 闵行区| 米易县| 满城县| 无棣县| 牟定县| 泰顺县| 万盛区| 喀喇| 临沂市| 凯里市| 基隆市| 枣强县|