- ②图要求用c语言写此项目,那我就巩固一下我的python吧!首先,我在mysql中创建了stuinfo表,如①图所示,然后通过python中的pysql模块进行连接:
-
import pymysql #利用pymysql连接mysql数据库 db=pymysql.connect(host='localhost',user='root',password='999521',port=3306,db='school') cur=db.cursor()
#1.增加一条学生信息
def add():
Id=input("请输入学号")
name=input("请输入名字")
bedroom=input("请输入宿舍房间号")
qq=input("请输入qq号")
tel=input("请输入手机号")
sql='''insert into stuinfo values(%s,%s,%s,%s,%s)'''
cur.execute(sql,(Id,name,bedroom,qq,tel))
db.commit()
2.删除一个学生的记录
#2.删除一条学生信息
def remove():
Id=input("请输入要删除的学生的idn")
sql='''delete from stuinfo where stuId=%s '''
cur.execute(sql,(Id))
db.commit()
3.显示所有的学生的记录
#3.显示所有学生信息
def showall():
sql='''select * from stuinfo'''
cur.execute(sql)
data=cur.fetchall()
for i in data:
print('学号:',i[0],'名字:',i[1],'宿舍房间号:',i[2],'qq:',i[3],'手机号:',i[4])
is_save=input("是否对以上数据进行保存?(是否)n")
if is_save=='是':
save_file(data)
else:
print(' ')
cur.close()
4.排序功能,包括按照学号排序和按照姓名字母序排序显示所有的同学的记录
#4.根据stuId或name进行排序
def orderstyle():
ordercol=input("请输入一个排序列: nstuId或name")
asc_desc=input("请输入排序方式: nasc或desc")
sql='''select * from stuinfo order by %s %s'''%(ordercol,asc_desc) #对输入的内容进行调用格式化排序
cur.execute(sql)
data=cur.fetchall()
for i in data:
print('学号:',i[0],'名字:',i[1],'宿舍房间号:',i[2],'qq:',i[3],'手机号:',i[4])
5.查询功能,包括按学号查询同学的信息或者其他
#5.按学号查询学生的信息或者其他
def select_where():
where=input("请选择你要按什么进行查询: n1.stuId 2.其他n")
if where=='1':
stuId=input('请输入你要查询的stuIdn')
sql='''select * from stuinfo where stuId=%s'''%stuId
cur.execute(sql)
data=cur.fetchall()
for i in data:
print('学号:',i[0],'名字:',i[1],'宿舍房间号:',i[2],'qq:',i[3],'手机号:',i[4])
save_file(i)
cur.close()
else:
select=input("请选择你要按什么查询: n name bedroom qq teln")
whe=input('请输入你要按%s查询的条件:'%select)
sql='''select * from stuinfo where %s=%s'''%(select,''%s''%whe) #对输入的内容必须加‘’,sql语言才会进行条件判断
cur.execute(sql)
data=cur.fetchall()
for i in data:
print('学号:',i[0],'名字:',i[1],'宿舍房间号:',i[2],'qq:',i[3],'手机号:',i[4])
save_file(i)
cur.close()
6.修改功能
#6.修改功能,按照任意列
def update():
col=input("请输入要修改的col名: nstuId name bedroom qq teln")
lastInfo=input("请输入修改后的内容") #修改后的内容
whereCol=input("请选择一个条件列: nstuId name bedroom qq teln")#条件列
whereInfo=input("请输入条件列的判断条件:n")#条件内容
sql='''update stuinfo set %s=%s where %s=%s'''%(col,''%s''%lastInfo,whereCol,''%s''%whereInfo)
cur.execute(sql)
db.commit()
7.保存信息到文件
#7.保持为文件
import numpy as np
def save_file(x):
L=np.array(x).ndim #获取传入的数组的维度ndim()
if L==1: #如果为1D则转成2D,以防执行下列语句时把数据写到同一列
a=np.array([['%s,%s,%s,%s,%s'%(x[0],x[1],x[2],x[3],x[4])]])
np.savetxt('C:\Users\Administrator\Desktop\aa.csv',a,header='id,name,bedroom,qq,tel',delimiter=',',fmt='%s',comments="#")
else: #否则为2D,代码实现中只出现了1D和2D,所以就写了双分支语句
np.savetxt('C:\Users\Administrator\Desktop\aa.csv',x,header='id,name,bedroom,qq,tel',delimiter=',',fmt='%s',comments="#")
8.查看文件内容
#8.查看文件内容
def show_file():
def load_file():
id,name,bedrom,qq,tel=np.loadtxt('C:\Users\Administrator\Desktop\aa.csv',usecols=(0,1,2,3,4),
delimiter=",",unpack=True,dtype='i,O,O,O,O')
return id,name,bedrom,qq,tel
id,name,bedroom,qq,tel=load_file()
for i in range(len(id)):
print('学号:',id[i],'名字:',name[i],'宿舍房间号:',bedroom[i],'qq:',qq[i],'手机号:',tel[i])
9.搭建项目框架
#搭建项目框架,文字选择界面
def project():
r=input('请从下列菜单中选择一个操作序号:n 1.添加一条学生记录 n 2.删除一条学生记录 n 3.显示所有学生记录 n 4.根据stuId或name进行
排序 n 5.按学号或其他进行查找学生记录 n 6.修改学生记录 n')
if r=='1':
add()
elif r=='2':
remove()
elif r=='3':
showall()
elif r=='4':
orderstyle()
elif r=='5':
select_where()
elif r=='6':
update()
else:
print('你输错操作信息了!')
#以上只是利用对现在所学的理解,对该项目做了一个简单的了解,希望通过今后所学对此项目有一个更完善的界面化管理,做到清晰,美观,更加完善。你们也要加油呀! ! !



