python:控制台版学生系统-我洪

python运行在控制台版本的学生系统

首先,应该安装的环境和工具:1.python运行环境。2.pycharm

在Java中,控制台版本的系统也是作为必须了解的一部分。

pycharm安装后,新建的大项目其实是一个工作空间,在项目里新建包,格式与Java大同小异,为三段式的类型。例如:com.cn.ui,诸如此类。

前期的导入pymysql和连接MySQL

下面是连接数据库的:

from pymysql import *#导MySQL的包

#定义class
class DataBase:
	def allUser(self):#定义方法
    conn =connect("127.0.0.1", "root", '1234', 'cn')#连接
    cursor = conn.cursor()#游标
    cursor.execute('select * from student')#执行SQL
    data=cursor.fetchall()#拿到数据
    conn.close()#关闭连接
    return data#返回数据


接下来,封装Student对象:
理论上与Java封装对象类似!

class Student:#定义Student类
    __stuId=0#封装私有属性
    __stuName=''
    __stuSex=''
    __stuAge=0
#ps:stuId前面的是两个下划线,代表私有
#python无需定义数据类型,直接是变量名=某值
#定义无参构造
#ps:只有在class里面的方法才会带有self,且self并非是手打出来的,而是编码时连带出来的,相当于自动的。注意不要刻意去手打!
def Student(self):
    pass
#pass的意思是待执行,如果不写pass,会导致下面的代码出现红色警告!

#定义有参构造
def Student(self,stuId,stuName,stuSex,stuAge):
    self.__stuId=stuId
    self.__stuName=stuName
    self.__stuSex=stuSex
    self.__stuAge=stuAge

#这是get的方法
@property
def stuId(self):
    return self.__stuId
#set的方法   
@stuId.setter
def stuId(self,stuId):
    self.__stuId=stuId
#另外的属性同上

如上,Student对象封装完毕!

上面的工作做好后,新建一个python模块,这个模块主要是运行控制台的增删改查操作。
python的模块相当于Java的class文件

#先导入上面的连接模块和对象模块
from com.hc.dao.Connect import *
from com.hc.entity.Student import *

print('欢迎使用Student管理系统!')
#打印一句话

#输出所有的数据
print('-------------------------------------')
print('编号\t   姓名\t     性别\t     年龄')
print('-------------------------------------')
for o in DataBase().allUser():#DataBase是连接中的class,allUser是DataBase中的方法
   print(o[0], '\t\t', o[1],'\t\t',o[2],'\t\t',o[3])
   print('-------------------------------------')


#定义死循环,当对方输入ret才会退出
while True:
   password=input("输入密码:(pass/ret)")
   if password=='hc':
      systems()
      break
   elif password=='ret':
      break
   else:
      print('请重新输入!')

一定要判断对方输入的int或者string数据是否符合要求!
小编写出的这种系统的毫无报错的,历经检验,随便对方如何傻瓜式操作!就是这么任性!
下面是增删改查的具体代码:

inp=input('请输入操作:(all,one,del,ins,upd,ret)')
if inp=='all':
   selAll()

elif inp=='one':
   sname=input('请输入查找student的编号:')
   if intspace(sname):
      o = DataBase().selAUser(int(sname))
      selOne(o)
   else:
      print('请正确输入查找student的编号!')

elif inp == 'del':
   sid = input('请输入删除student的编号:')
   if intspace(sid):
      o = DataBase().selAUser(int(sid))
      if o != '':
         selOne(o)
         inpu = input('是否删除?(yes/no)')
         if inpu == 'yes':
            DataBase().delUserByid(sid)
            print('删除成功!')
         else:
            print('退出删除!')
      else:
         print('此用户不存在!')
      selAll()
   else:
      print('请正确输入删除student的编号!')

elif inp == 'ins':
   student=Student()
   sname = input('请输入新student的姓名:')
   if strspace(sname):
      student.stuName = sname
   else:
      print('输入有误!操作中止!')
      continue
   ssex = input("请输入新student的性别:")

	if strspace(ssex):
   	student.stuSex=ssex
	else:
  	 print('输入有误!操作中止!')
   	continue

	sage = input("请输入新student的年龄:")
	if intspace(sage):
	   student.stuAge=int(sage)
	else:
	   print('输入有误!操作中止!')
	   continue
	
	DataBase().insUser(student)
	print("新增成功!")
	selAll()

elif inp == 'upd':
   sid = input('请输入修改student的编号:')
   if intspace(sid):
      o = DataBase().selAUser(int(sid))
      if o == '':
         print('此用户不存在!')
      else:
         selOne(o)
         student = Student()
         student.stuId = sid
         sname = input('请输入改student的姓名:')
         if strspace(sname):
            student.stuName = sname
         else:
            print('输入有误!操作中止!')
            continue

	ssex = input("请输入改student的性别:")
	if strspace(ssex):
	   student.stuSex = ssex
	else:
	   print('输入有误!操作中止!')
	   continue
	sage = input("请输入改student的年龄:")
	if intspace(sage):
	   student.stuAge = int(sage)
	else:
	   print('输入有误!操作中止!')
	   continue
	DataBase().updUser(student)
	print("修改成功!")
	selAll()
	else:
	   print('输入有误!操作中止!')
	   elif inp=='ret' or inp=='Ret':
	   inpu = input('是否退出?(yes/no)')
	   if inpu != 'yes':
      	print('继续操作!')
	   else:
	      print('系统在3秒后自行关闭!')
	      break  # 退出死循环

ps:一定要严格注意格式,因为python不像Java有{},所以制表符tab很重要!

布置好上面所有代码后,点击run,运行在控制台。

猜你喜欢

转载自blog.csdn.net/qq_43532342/article/details/83471956
今日推荐