python学生管理系统代码实现
作者:zhubinqiang 发布时间:2023-10-31 07:55:04
标签:python,管理系统
本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下
类
class Student:
stuID = ""
name = ""
sex = "M"
classID = "NULL"
#set ID
def setStuID(self,stuID):
self.stuID = stuID
def setName(self,name):
self.name = name
def setSex(self,sex):
self.sex = sex
def setClassID(self,classID):
self.classID = classID
def getStuId(self):
return self.stuID
def getName(self):
return self.name
def getSex(self):
return self.sex
def getClassID(self):
return self.classID
主函数
import os
import re
import sys
import string
import student
#save file
global FILEPATH
FILEPATH = "student.db"
#temporary file
global TEMPFILE
TEMPFILE = "temp.db"
#This is menu
def menu():
while True :
print "1.Add a student information"
print "2.Query student information"
print "3.Delete a student information"
print "0.Quit"
opt = raw_input("Select:")
if opt == "1":
while True:
addStudent()
opt2 = raw_input("Continue Add(Y/N)?:")
if opt2 == "Y" or opt2 == "y" or opt2 == "":
continue
else:
break
elif opt == "2":
while True:
query()
opt2 = raw_input("Continue Query(Y/N)?:")
if opt2 == "Y" or opt2 == "y" or opt2 == "":
continue
else:
break
elif opt == "3":
while True:
delMenu()
opt2 = raw_input("Continue Delete(Y/N)?:")
if opt2 == "Y" or opt2 == "y" or opt2 == "":
continue
else:
break
elif opt == "0" :
exitProgram()
break
else:
print "Error input"
#Add a student
def addStudent() :
stu = student.Student()
while True:
stuID = raw_input("ID(001-999):")
#match ID 001-999
p = re.match("^[0-9]{3}$", stuID)
if p :
if stuID == "000":
print "ID must be 001-999"
continue
if isIDExist(stuID):
print "ID = %s already exist!" % stuID
continue
else :
stu.setStuID(stuID)
break
else:
print "ID must be 001-999"
while True:
stuName = raw_input("Name(a-z,A-Z,5 char):")
#match name a-z A-Z 5 char
p = re.match("^[a-zA-Z]{1,5}$",stuName)
if p :
stu.setName(stuName)
break
else :
print "Name format error must a-z,A-Z,within 5 char"
while True:
stuSex = raw_input("Sex(default is M):")
#default value
if stuSex == "":
stu.setSex("M")
print "Sex:M"
break
if stuSex =="M" or stuSex == "m":
stu.setSex(string.upper(stuSex))
break
#if stuSex == "M" or stuSex == "m" || stuSex == "F" stuSex == "f":
p = re.match("^M|m|F|f$",stuSex)
if p :
stu.setSex(string.upper(stuSex))
break
else :
print "Sex(M/f)"
while True:
stuClass = raw_input("Class(01-99):")
#default value
if stuClass == "":
stu.setClassID("NULL")
print "CLASS:NULL"
break
#match 00-99
p = re.match("^[0-9]{2}$",stuClass)
if p :
#get rid of 00
if stuClass == "00":
print "Class must 01-99"
continue
stu.setClassID(stuClass)
break
else:
print "Class must 01-99"
#save to file
file1 = open(FILEPATH,"a")
print "ID\tNAME\tSEX\tCLASS"
print stu.getStuId(),"\t",stu.getName(),"\t",stu.getSex(),"\t",stu.getClassID()
file1.write(stu.getStuId()+"\t"+stu.getName()+"\t"+stu.getSex()+"\t"+stu.getClassID()+"\n")
print "Add student success!"
file1.close()
#Delete student menu
def delMenu():
print "1.Delete by ID"
print "2.Delete contains ID"
opt = raw_input("Select:")
if opt == "1":
delStudentByID()
elif opt == "2":
delStudentContainsID()
else:
print "Error input"
#Delete contains id
def delStudentContainsID():
contID = raw_input("ID:")
if getInfoContainsID(contID)==0 :
print "Can't find ID contains \"%s\" student" % contID
return
opt = raw_input("Are you sure delete all(Y/N):")
if not opt == "y" or opt == "Y":
return
f = open(FILEPATH,"r")
tmp = open(TEMPFILE,"a")
i=0
for eachLine in f:
items = eachLine.split("\t")
# if not re.match(contID, items[0]):
if items[0].count(contID) ==0:
tmp.write(eachLine)
else:
i+=1
f.close()
tmp.close()
os.remove(FILEPATH)
os.rename(TEMPFILE, FILEPATH)
print "Deleted %d data" % i
#get contains ID information
def getInfoContainsID(stuID):
f = open(FILEPATH)
i=0
for eachLine in f:
items = eachLine.split("\t")
if not items[0].count(stuID) ==0:
# if re.match(stuID,items[0]):
i+=1
if i==1:
print "ID\tNAME\tSEX\tCLASS"
print eachLine,
if i==0:
return 0
else :
return i
f.close()
#Delete student by ID
def delStudentByID():
delID = raw_input("Delete ID:")
if not isIDExist(delID) :
print "Can't find ID = %s student information" % delID
return
getInfoByID(delID)
opt = raw_input("Are you sure delete it(Y/N):")
if not (opt == "Y" or opt == "y"):
return
f = open(FILEPATH,"r")
tmp = open(TEMPFILE,"a")
for eachLine in f:
split = eachLine.split("\t")
if not delID == split[0]:
tmp.write(eachLine)
tmp.close()
f.close()
os.remove(FILEPATH)
os.rename(TEMPFILE, FILEPATH)
print "Delete success!"
#Query menu
def query():
print "1.Query student by ID"
print "2.Query all students"
opt = raw_input("Select:")
if opt == "1":
queryByID()
elif opt == "2":
queryAll()
#default is query all
elif opt == "":
queryAll()
else :
print "Error Input!"
#query ID exist
def isIDExist(ID):
f = open(FILEPATH)
flag = 0
for eachline in f:
temp = eachline.split("\t")
if temp[0] == ID:
flag+=1
f.close()
if flag == 0 :
return False
else:
return True
#get information by ID for delete student
def getInfoByID(stuID):
f = open(FILEPATH)
i=0
for eachLine in f:
items = eachLine.split("\t")
if items[0] == stuID:
i+=1
if i==1:
print "ID\tNAME\tSEX\tCLASS"
print eachLine
f.close()
#Query student by ID
def queryByID():
queryID = raw_input("ID:")
f = open(FILEPATH)
# lines = f.readlines()
# print lines[0].strip()
# for line in lines:
# a = line.split()
# if queryID == a[1].strip():
# print line.strip()
flag = 0
for eachline in f:
#split by "\t" get as C array temp[4]
temp = eachline.split("\t")
# print temp[0] , temp[1] , temp[2] , temp[3]
if temp[0] == queryID:
flag+=1
if flag == 1:
print "ID\tNAME\tSEX\tCLASS"
print eachline,
if flag == 0 :
print "Can't find ID = %s student information" % queryID
f.close()
# f = open(FILEPATH)
# readLines = f.readlines()
# for eachLine in f:
# eachLine
#
# if eachLine == queryID:
# print eachLine
# f.close()
#Query all students
def queryAll():
f = open(FILEPATH,"r")
i=0
for eachLine in f:
i+=1
if i==1:
print "ID\tNAME\tSEX\tCLASS"
print eachLine,
f.close()
if i==0:
print "No data!"
def exitProgram():
print "Thank you Bye!"
# sys.exit()
def init():
if os.path.exists(FILEPATH) :
print "Load file successful"
else:
try:
f = open(FILEPATH,"w")
except Exception:
print "Can't open file"
sys.exit()
finally:
f.close()
if __name__ == '__main__':
init()
menu()
更多学习资料请关注专题《管理系统开发》。
来源:http://blog.csdn.net/zhubinqiang/article/details/7630645
0
投稿
猜你喜欢
- 这篇文章主要介绍了python线程信号量semaphore使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 利用python的递归来执行求和、计数、求最大元素的方法简直溜到爆,这里粘贴一下代码:列表的递归求和:def sum(list): if l
- 启动mysql server 失败,查看/var/log/mysqld.err080329 16:01:29 [ERROR] Can'
- 函数局部变量 全局变量 及其作用域#简单类型(int str等)变量的局部变量与全局变量及其作用域的关系name = "xxx&q
- 关于DHT协议DHT协议作为BT协议的一个辅助,是非常好玩的。它主要是为了在BT正式下载时得到种子或者BT资源。传统的网络,需要一台中央服务
- 一、DAFONT 英文字体很多,分类很详细,字体多数都是免费,唯一的缺点中文字体少了些.http://www.dafont.co
- 本文实例讲述了JS实现淡入淡出图片效果的方法。分享给大家供大家参考,具体如下:效果:鼠标移入时,图片由半透明逐渐变成清晰,移出时,由清晰变为
- 前言圣诞节快到了,是不是想用python画一个可爱的圣诞树,我在各大网站都查了一下,都不太美观,然后我就学习了一下别人的代码改写了一下,自己
- Python函数函数就是把具有独立功能的代码块封装成一个小模块,可以直接调用,从而提高代码的编写效率以及重用性, 需要注意的是, 函数需要被
- python版本为python3.51.要求1)输入用户名密码2)认证成功后显示欢迎信息3)输错三次后锁定2.需求分析1)用户信息存储在文件
- 一. 创建列表列表(list)作为Python中基本的数据结构,是存储数据的容器,相当于其它语言中所说的数组。模拟出的结构如下:创建列表有两
- 简洁版Windows10系统下,按Win+R键启动运行,输入cmd,进入命令窗口输入conda info --envs,查看conda 环境
- 目标在本章中,将了解:如何生成OpenCV-Python bindings如何将新的OpenCV模块扩展到PythonOpenCV-Pyth
- 关于端口扫描器端口扫描工具(Port Scanner)指用于探测服务器或主机开放端口情况的工具。常被计算机管理员用于确认安全策略,同时被攻击
- optim.Adam()解读torch.optim是一个实现了多种优化算法的包,大多数通用的方法都已支持,提供了丰富的接口调用,未来更多精炼
- 前段时间我通过观察韩国网站和其他作品发现了普遍存在黄金分割这样一个规律,不过只跟色相有关,明度、纯度还没做研究,今天看到论坛一篇“网页配色之
- 对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。 1、这里是一个使用日期函数的例子。
- 到2019年初,Python3已经更新到了Python
- 本文是小编针对JS删除数组里的某个元素这个大家经常遇到的经典问题整理了在各种情况下的函数写法以及遇到问题的分析,以下是全部内容:删除数组指定
- TensorFlow是一款优秀的深度学习框架,支持多种常见的操作系统,例如Windows10,Mac Os等等,同时也支持运行在NVIDIA