2018 - Python3.7 学生信息管理系统 - 源码

一、源码 

注:添加班级和删除班级尚未完成

import time
import datetime

# 判断班级是否存在
def isClass():

	classtext = '\t\t'

	for c in classLists :
		classtext+=c[1:]+"."+c+"\t"

	classtext+="-1.添加班级\t-2.删除班级\t0.退出系统\n\n\t\t请输入指令:"

	classoption = input(classtext)

	if classoption == '0' :
		return '0'

	flag = False
	for c in classLists :
		if c[1:] == classoption :
			flag = True

	if flag :
		return classoption
	else :
		print("\n\t\t你输入的班级不存在,请查证后重试\n")
		return '00'

# 添加学生信息
def addUser(cloption):
	# 输入的姓名
	name = input('''
		请输入学生姓名:''')
				
	# 获取当前系统时间的毫秒数 并转换为str类型
	notime = str(int(round(time.time() * 1000)))
				
	# 得到毫秒数最后一位 并转换为int类型 然后去余2 判断是否为男/女
	sex = ''
	if int(notime[len(notime)-1:]) % 2 == 0 :
		sex = '男'
	else :
		sex = '女'

	# 添加学生

	flag = False

	# 判断班级是否存在
	for key in classUserMaps.keys() :
		if key == "T"+cloption :
			flag = True
			break;
	
	if flag :
		classUserMaps['T'+cloption]['XH'+notime]={'no':'XH'+notime,'name':name,'sex':sex,'age':'18','address':'湖南省长沙市'}
	else :
		classUserMaps['T'+cloption]={'XH'+notime:{'no':'XH'+notime,'name':name,'sex':sex,'age':'18','address':'湖南省长沙市'}}

	userInfo = classUserMaps['T'+cloption]['XH'+notime]

	print('\n\t\t--------------------------------------------------------------------------------------------------------------------------')
	print('\t\t-\tAdd-Yes -> 学生信息为 -> ','班级:','T'+cloption,' 学号:',userInfo['no'],' 姓名:',userInfo['name'],' 性别:',userInfo['sex'],' 年龄:',userInfo['age'],' 地址:',userInfo['address'],end="\t-\n")
	print('\t\t--------------------------------------------------------------------------------------------------------------------------')


# 修改学生信息
def editUser(cloption):
	# 输入的学号
	
	no = ''

	noflag = False

	while True :
		no = input('''
		请输入学生学号:''')
		if no == '0' :
			break;
		if no == "" :
			print('\n\t\t你还未输入学生学号,请输入后重试')
			continue
		for ckey,cval in classUserMaps.items() :
			if ckey == 'T'+cloption :
				for ukey,uval in cval.items() :
					if ukey == no :
						noflag = True
						break;
				break;
		if noflag :
			break;
		print('\n\t\t在'+'T'+cloption+'未找到该与之学号匹配的学生')

	while True :
		clno = input('''
		请输入班级号:''')
		if clno == '0' :
			break;
		if clno != "" :
			if clno[0:1] != "T" :
				clno = "T"+clno
			# 统计,判断该班级是否存在
			if classLists.count(clno) != 0 :
				userInfo = classUserMaps['T'+cloption].pop(no)

				flag = False

				# 判断班级是否存在
				for key in classUserMaps.keys() :
					if key == clno :
						flag = True
						break;
				
				if flag :
					classUserMaps[clno][userInfo['no']]=userInfo
				else :
					classUserMaps[clno]={userInfo['no']:userInfo}

				print('\n\t\t--------------------------------------------------------------------------------------------------------------------------')
				print('\t\t-\tEdit-Yes -> 学生信息为 -> ','班级:',clno,' 学号:',userInfo['no'],' 姓名:',userInfo['name'],' 性别:',userInfo['sex'],' 年龄:',userInfo['age'],' 地址:',userInfo['address'],end="\t-\n")
				print('\t\t--------------------------------------------------------------------------------------------------------------------------')

				break;
		print("\t\t你输入的班级号有误\n")

# 删除学生信息
def delUser(cloption) :
	# 输入的学号
	
	no = ''

	noflag = False

	while True :
		no = input('''
		请输入学生学号:''')
		if no == '0' :
			break;
		if no == "" :
			print('\n\t\t你还未输入学生学号,请输入后重试')
			continue
		for ckey,cval in classUserMaps.items() :
			if ckey == 'T'+cloption :
				for ukey,uval in cval.items() :
					if ukey == no :
						noflag = True
						break;
				break;
		if noflag :
			break;
		print('\n\t\t在'+'T'+cloption+'未找到该与之学号匹配的学生')

	while True :
		isdel = input('''
		1.确认	2.取消
		
		是否确认删除:''')
		if isdel == '1' :
			classUserMaps['T'+cloption].pop(no);
			break;
		elif isdel == '2' :
			break;
		else :
			print('\n\t\t你输入的指令有误')



# 查询学生信息
def selUser():
	print("\n\t\t->Xlm<-")
	for cl in classLists :
		for ckey,cval in classUserMaps.items() :
			if cl == ckey :
				print('\n\t\t班级:'+cl)
				for ukey,userInfo in cval.items() :
					print('\n\t\t学号:',userInfo['no'],' 姓名:',userInfo['name'],' 性别:',userInfo['sex'],' 年龄:',userInfo['age'],' 地址:',userInfo['address'])
	print("\n\t\t->Xlm<-")

# 获得当前日期毫秒数
noTime = int(round(time.time() * 1000))

title = ''' 
							     
							     	* Xlm 学生信息管理系统 *


'''

print(title)

optionTitle = '''
		1.增加学生信息		2.修改学生信息		3.删除学生信息		4.查询学生信息		0.返回到班级选项
		
		请输入指令:'''

classLists = ['T201','T202','T203','T204','T205']

#学生信息数据 {字典:{字典:{字典}}}

classUserMaps = {'T202':{'XH'+str(noTime):{'no':'XH'+str(noTime),'name':'柠萌','sex':'女','age':'18','address':'湖南省长沙市'}}}

while True :

	# 判断班级是否存在
	cloption = isClass();

	# 退出
	if cloption == '0' :
		break
	# 输入的班级有误
	elif cloption == '00' :
		continue
	else :

		while True :

			option = input(optionTitle)
			if option == '1':

				# 添加学生信息
				addUser(cloption);

			elif option == '2':

				# 修改学生信息
				editUser(cloption);

			elif option == '3':
				
				# 删除学生信息
				delUser(cloption)

			elif option == '4':
				
				# 查询学生信息
				selUser();

			elif option == '0':
				print()
				break;

二、可能会出现编码问题

因为有中文注释

注:默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。

解决方法如下

我们为源码文件指定编码即可。

# -*- coding: gbk -*-

三、效果图

2018 - Python3.7 学生信息管理系统 - 源码_第1张图片

 

你可能感兴趣的:(2018 - Python3.7 学生信息管理系统 - 源码)