精华内容
下载资源
问答
  • Python题目:学生信息管理系统-高级版(图形界面+MySQL数据库) 使用图形界面显示,选用list、tuple、dictionary或map等数据结构,操作数据库存储X个学生的三门课的成绩(机器学习、Python程序设计、研究生英语)...

    Python题目:学生信息管理系统-高级版(图形界面+MySQL数据库)

           使用图形界面显示,选用list、tuple、dictionary或map等数据结构,操作数据库存储X个学生的三门课的成绩(机器学习、Python程序设计、研究生英语),并实现以下功能:

    1.添加学生信息
    2.修改学生信息
    3.删除学生
    4.添加学生的成绩
    5.修改学生成绩
    6.按姓名或者学号查找学生,显示学生信息及三门课的成绩,以及排名
    7.学生成绩统计(每门课的平均分、最高分、最低分)

    代码里的注释很清楚了,这里不做讲解了,有任何问题可以评论提问。 

    注意:

    • 数据表不存在则创建表,但自动创建的表是空白的,管理员用户名和密码需要自己数据库中添加一个(也可以运行文章最后的sql语句),为什么会出现这个问题,因为这是个课堂作业,当时没有设计好,现在懒得再改代码了╮(╯﹏╰)╭.......
    • 数据库在代码中(代码里有两处需要修改数据库 用户名、密码 的地方第66行第490行),配置为:
    # 打开数据库连接 连接测试
    db = pymysql.connect("localhost", "root", "root", "student")

           分别表示  主机名:localhost,用户名:root,密码:root,数据库名:student 


    下面是界面的截图

     

     管理员操作界面,拥有增删改查功能,甚至拥有排序功能φ(>ω<*) ,快点击标签栏试试

     

     代码:

    #!/usr/bin/python3
    
    import pymysql
    from tkinter import ttk
    import tkinter as tk
    import tkinter.font as tkFont
    from tkinter import * # 图形界面库
    import tkinter.messagebox as messagebox # 弹窗
    
    
    class StartPage:
    	def __init__(self, parent_window):
    		parent_window.destroy() # 销毁子界面
    
    		self.window = tk.Tk()  # 初始框的声明
    		self.window.title('学生信息管理系统')
    		self.window.geometry('300x470') # 这里的乘是小x
    
    		label = Label(self.window, text="学生信息管理系统", font=("Verdana", 20))
    		label.pack(pady=100)  # pady=100 界面的长度
    
    		Button(self.window, text="管理员登陆", font=tkFont.Font(size=16), command=lambda: AdminPage(self.window), width=30, height=2,
    			   fg='white', bg='gray', activebackground='black', activeforeground='white').pack()
    		Button(self.window, text="学生登陆", font=tkFont.Font(size=16), command=lambda: StudentPage(self.window), width=30,
    			   height=2,fg='white', bg='gray', activebackground='black', activeforeground='white').pack()
    		Button(self.window, text="关于", font=tkFont.Font(size=16), command=lambda: AboutPage(self.window), width=30, height=2,
    			   fg='white', bg='gray', activebackground='black', activeforeground='white').pack()
    		Button(self.window, text='退出系统', height=2, font=tkFont.Font(size=16), width=30, command=self.window.destroy,
    			   fg='white', bg='gray', activebackground='black', activeforeground='white').pack()
    
    		self.window.mainloop() # 主消息循环
    
    
    #管理员登陆页面
    class AdminPage:
    	def __init__(self, parent_window):
    		parent_window.destroy() # 销毁主界面
    
    		self.window = tk.Tk()  # 初始框的声明
    		self.window.title('管理员登陆页面')
    		self.window.geometry('300x450')  # 这里的乘是小x
    
    		label = tk.Label(self.window, text='管理员登陆', bg='green', font=('Verdana', 20), width=30, height=2)
    		label.pack()
    
    		Label(self.window, text='管理员账号:', font=tkFont.Font(size=14)).pack(pady=25)
    		self.admin_username = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory')
    		self.admin_username.pack()
    
    		Label(self.window, text='管理员密码:', font=tkFont.Font(size=14)).pack(pady=25)
    		self.admin_pass = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory', show='*')
    		self.admin_pass.pack()
    
    		Button(self.window, text="登陆", width=8, font=tkFont.Font(size=12), command=self.login).pack(pady=40)
    		Button(self.window, text="返回首页", width=8, font=tkFont.Font(size=12), command=self.back).pack()
    
    		self.window.protocol("WM_DELETE_WINDOW", self.back)  # 捕捉右上角关闭点击
    		self.window.mainloop()  # 进入消息循环
    
    	def login(self):
    		print(str(self.admin_username.get()))
    		print(str(self.admin_pass.get()))
    		admin_pass = None
    
    		# 数据库操作 查询管理员表
    		db = pymysql.connect("localhost", "root", "root", "student")  # 打开数据库连接
    		cursor = db.cursor()  # 使用cursor()方法获取操作游标
    		sql = "SELECT * FROM admin_login_k WHERE admin_id = '%s'" % (self.admin_username.get())  # SQL 查询语句
    		try:
    		# 执行SQL语句
    			cursor.execute(sql)
    			# 获取所有记录列表
    			results = cursor.fetchall()
    			for row in results:
    				admin_id = row[0]
    				admin_pass = row[1]
    				# 打印结果
    				print("admin_id=%s,admin_pass=%s" % (admin_id, admin_pass))
    		except:
    			print("Error: unable to fecth data")
    			messagebox.showinfo('警告!', '用户名或密码不正确!')
    		db.close()  # 关闭数据库连接
    
    		print("正在登陆管理员管理界面")
    		print("self",self.admin_pass)
    		print("local",admin_pass)
    
    		if self.admin_pass.get() == admin_pass:
    			AdminManage(self.window)  # 进入管理员操作界面
    		else:
    			messagebox.showinfo('警告!', '用户名或密码不正确!')
    
    	def back(self):
    		StartPage(self.window) # 显示主窗口 销毁本窗口
    
    
    #学生登陆页面
    class StudentPage:
    	def __init__(self, parent_window):
    		parent_window.destroy() # 销毁主界面
    
    		self.window = tk.Tk()  # 初始框的声明
    		self.window.title('学生登陆')
    		self.window.geometry('300x450')  # 这里的乘是小x
    
    		label = tk.Label(self.window, text='学生登陆', bg='green', font=('Verdana', 20), width=30, height=2)
    		label.pack()
    
    		Label(self.window, text='学生账号:', font=tkFont.Font(size=14)).pack(pady=25)
    		self.student_id = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory')
    		self.student_id.pack()
    
    		Label(self.window, text='学生密码:', font=tkFont.Font(size=14)).pack(pady=25)
    		self.student_pass = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory', show='*')
    		self.student_pass.pack()
    
    		Button(self.window, text="登陆", width=8, font=tkFont.Font(size=12), command=self.login).pack(pady=40)
    		Button(self.window, text="返回首页", width=8, font=tkFont.Font(size=12), command=self.back).pack()
    
    		self.window.protocol("WM_DELETE_WINDOW", self.back)  # 捕捉右上角关闭点击
    		self.window.mainloop()  # 进入消息循环
    
    	def login(self):
    		print(str(self.student_id.get()))
    		print(str(self.student_pass.get()))
    		stu_pass = None
    
    		# 数据库操作 查询管理员表
    		db = pymysql.connect("localhost", "root", "root", "student")  # 打开数据库连接
    		cursor = db.cursor()  # 使用cursor()方法获取操作游标
    		sql = "SELECT * FROM stu_login_k WHERE stu_id = '%s'" % (self.student_id.get())  # SQL 查询语句
    		try:
    			# 执行SQL语句
    			cursor.execute(sql)
    			# 获取所有记录列表
    			results = cursor.fetchall()
    			for row in results:
    				stu_id = row[0]
    				stu_pass = row[1]
    				# 打印结果
    				print("stu_id=%s,stu_pass=%s" % (stu_id, stu_pass))
    		except:
    			print("Error: unable to fecth data")
    			messagebox.showinfo('警告!', '用户名或密码不正确!')
    		db.close()  # 关闭数据库连接
    
    		print("正在登陆学生信息查看界面")
    		print("self", self.student_pass.get())
    		print("local", stu_pass)
    
    		if self.student_pass.get() == stu_pass:
    			StudentView(self.window, self.student_id.get()) # 进入学生信息查看界面
    		else:
    			messagebox.showinfo('警告!', '用户名或密码不正确!')
    
    	def back(self):
    		StartPage(self.window)  # 显示主窗口 销毁本窗口
    
    
    
    # 管理员操作界面
    class AdminManage:
    	def __init__(self, parent_window):
    		parent_window.destroy() # 销毁主界面
    
    		self.window = Tk()  # 初始框的声明
    		self.window.title('管理员操作界面')
    
    		self.frame_left_top = tk.Frame(width=300, height=200)
    		self.frame_right_top = tk.Frame(width=200, height=200)
    		self.frame_center = tk.Frame(width=500, height=400)
    		self.frame_bottom = tk.Frame(width=650, height=50)
    
    		# 定义下方中心列表区域
    		self.columns = ("学号", "姓名", "性别", "年龄")
    		self.tree = ttk.Treeview(self.frame_center, show="headings", height=18, columns=self.columns)
    		self.vbar = ttk.Scrollbar(self.frame_center, orient=VERTICAL, command=self.tree.yview)
    		# 定义树形结构与滚动条
    		self.tree.configure(yscrollcommand=self.vbar.set)
    
    		# 表格的标题
    		self.tree.column("学号", width=150, anchor='center')  # 表示列,不显示
    		self.tree.column("姓名", width=150, anchor='center')
    		self.tree.column("性别", width=100, anchor='center')
    		self.tree.column("年龄", width=100, anchor='center')
    
    		# 调用方法获取表格内容插入
    		self.tree.grid(row=0, column=0, sticky=NSEW)
    		self.vbar.grid(row=0, column=1, sticky=NS)
    
    		self.id = []
    		self.name = []
    		self.gender = []
    		self.age = []
    		# 打开数据库连接
    		db = pymysql.connect("localhost", "root", "root", "student")
    		cursor = db.cursor()  # 使用cursor()方法获取操作游标
    		sql = "SELECT * FROM student_k"  # SQL 查询语句
    		try:
    			# 执行SQL语句
    			cursor.execute(sql)
    			# 获取所有记录列表
    			results = cursor.fetchall()
    			for row in results:
    				self.id.append(row[0])
    				self.name.append(row[1])
    				self.gender.append(row[2])
    				self.age.append(row[3])
    				# print(self.id)
    				# print(self.name)
    				# print(self.gender)
    				# print(self.age)
    		except:
    			print("Error: unable to fetch data")
    			messagebox.showinfo('警告!', '数据库连接失败!')
    		db.close()# 关闭数据库连接
    
    
    		print("test***********************")
    		for i in range(min(len(self.id), len(self.name), len(self.gender), len(self.age))):  # 写入数据
    			self.tree.insert('', i, values=(self.id[i], self.name[i], self.gender[i], self.age[i]))
    
    		for col in self.columns:  # 绑定函数,使表头可排序
    			self.tree.heading(col, text=col,
    							  command=lambda _col=col: self.tree_sort_column(self.tree, _col, False))
    
    		# 定义顶部区域
    		# 定义左上方区域
    		self.top_title = Label(self.frame_left_top, text="学生信息:", font=('Verdana', 20))
    		self.top_title.grid(row=0, column=0, columnspan=2, sticky=NSEW, padx=50, pady=10)
    
    		self.left_top_frame = tk.Frame(self.frame_left_top)
    		self.var_id = StringVar()  # 声明学号
    		self.var_name = StringVar()  # 声明姓名
    		self.var_gender = StringVar()  # 声明性别
    		self.var_age = StringVar()  # 声明年龄
    		# 学号
    		self.right_top_id_label = Label(self.frame_left_top, text="学号:", font=('Verdana', 15))
    		self.right_top_id_entry = Entry(self.frame_left_top, textvariable=self.var_id, font=('Verdana', 15))
    		self.right_top_id_label.grid(row=1, column=0)  # 位置设置
    		self.right_top_id_entry.grid(row=1, column=1)
    		# 姓名
    		self.right_top_name_label = Label(self.frame_left_top, text="姓名:", font=('Verdana', 15))
    		self.right_top_name_entry = Entry(self.frame_left_top, textvariable=self.var_name, font=('Verdana', 15))
    		self.right_top_name_label.grid(row=2, column=0)  # 位置设置
    		self.right_top_name_entry.grid(row=2, column=1)
    		# 性别
    		self.right_top_gender_label = Label(self.frame_left_top, text="性别:", font=('Verdana', 15))
    		self.right_top_gender_entry = Entry(self.frame_left_top, textvariable=self.var_gender,
    											font=('Verdana', 15))
    		self.right_top_gender_label.grid(row=3, column=0)  # 位置设置
    		self.right_top_gender_entry.grid(row=3, column=1)
    		# 年龄
    		self.right_top_gender_label = Label(self.frame_left_top, text="年龄:", font=('Verdana', 15))
    		self.right_top_gender_entry = Entry(self.frame_left_top, textvariable=self.var_age,
    											font=('Verdana', 15))
    		self.right_top_gender_label.grid(row=4, column=0)  # 位置设置
    		self.right_top_gender_entry.grid(row=4, column=1)
    
    		# 定义右上方区域
    		self.right_top_title = Label(self.frame_right_top, text="操作:", font=('Verdana', 20))
    
    		self.tree.bind('<Button-1>', self.click)  # 左键获取位置
    		self.right_top_button1 = ttk.Button(self.frame_right_top, text='新建学生信息', width=20, command=self.new_row)
    		self.right_top_button2 = ttk.Button(self.frame_right_top, text='更新选中学生信息', width=20,
    											command=self.updata_row)
    		self.right_top_button3 = ttk.Button(self.frame_right_top, text='删除选中学生信息', width=20,
    											command=self.del_row)
    
    		# 位置设置
    		self.right_top_title.grid(row=1, column=0, pady=10)
    		self.right_top_button1.grid(row=2, column=0, padx=20, pady=10)
    		self.right_top_button2.grid(row=3, column=0, padx=20, pady=10)
    		self.right_top_button3.grid(row=4, column=0, padx=20, pady=10)
    
    		# 整体区域定位
    		self.frame_left_top.grid(row=0, column=0, padx=2, pady=5)
    		self.frame_right_top.grid(row=0, column=1, padx=30, pady=30)
    		self.frame_center.grid(row=1, column=0, columnspan=2, padx=4, pady=5)
    		self.frame_bottom.grid(row=2, column=0, columnspan=2)
    
    		self.frame_left_top.grid_propagate(0)
    		self.frame_right_top.grid_propagate(0)
    		self.frame_center.grid_propagate(0)
    		self.frame_bottom.grid_propagate(0)
    
    		self.frame_left_top.tkraise() # 开始显示主菜单
    		self.frame_right_top.tkraise() # 开始显示主菜单
    		self.frame_center.tkraise() # 开始显示主菜单
    		self.frame_bottom.tkraise() # 开始显示主菜单
    
    		self.window.protocol("WM_DELETE_WINDOW", self.back)  # 捕捉右上角关闭点击
    		self.window.mainloop()  # 进入消息循环
    
    	def back(self):
    		StartPage(self.window) # 显示主窗口 销毁本窗口
    
    	def click(self, event):
    		self.col = self.tree.identify_column(event.x)  # 列
    		self.row = self.tree.identify_row(event.y)  # 行
    
    		print(self.col)
    		print(self.row)
    		self.row_info = self.tree.item(self.row, "values")
    		self.var_id.set(self.row_info[0])
    		self.var_name.set(self.row_info[1])
    		self.var_gender.set(self.row_info[2])
    		self.var_age.set(self.row_info[3])
    		self.right_top_id_entry = Entry(self.frame_left_top, state='disabled', textvariable=self.var_id,
    										font=('Verdana', 15))
    
    		print('')
    
    	def tree_sort_column(self, tv, col, reverse):  # Treeview、列名、排列方式
    		l = [(tv.set(k, col), k) for k in tv.get_children('')]
    		l.sort(reverse=reverse)  # 排序方式
    		# rearrange items in sorted positions
    		for index, (val, k) in enumerate(l):  # 根据排序后索引移动
    			tv.move(k, '', index)
    		tv.heading(col, command=lambda: self.tree_sort_column(tv, col, not reverse))  # 重写标题,使之成为再点倒序的标题
    
    	def new_row(self):
    		print('123')
    		print(self.var_id.get())
    		print(self.id)
    		if str(self.var_id.get()) in self.id:
    			messagebox.showinfo('警告!', '该学生已存在!')
    		else:
    			if self.var_id.get() != '' and self.var_name.get() != '' and self.var_gender.get() != '' and self.var_age.get() != '':
    				# 打开数据库连接
    				db = pymysql.connect("localhost", "root", "root", "student")
    				cursor = db.cursor()  # 使用cursor()方法获取操作游标
    				sql = "INSERT INTO student_k(id, name, gender, age) \
    				       VALUES ('%s', '%s', '%s', '%s')" % \
    					  (self.var_id.get(), self.var_name.get(), self.var_gender.get(), self.var_age.get())  # SQL 插入语句
    				try:
    					cursor.execute(sql)  # 执行sql语句
    					db.commit()  # 提交到数据库执行
    				except:
    					db.rollback()  # 发生错误时回滚
    					messagebox.showinfo('警告!', '数据库连接失败!')
    				db.close()  # 关闭数据库连接
    
    				self.id.append(self.var_id.get())
    				self.name.append(self.var_name.get())
    				self.gender.append(self.var_gender.get())
    				self.age.append(self.var_age.get())
    				self.tree.insert('', len(self.id) - 1, values=(
    				self.id[len(self.id) - 1], self.name[len(self.id) - 1], self.gender[len(self.id) - 1],
    				self.age[len(self.id) - 1]))
    				self.tree.update()
    				messagebox.showinfo('提示!', '插入成功!')
    			else:
    				messagebox.showinfo('警告!', '请填写学生数据')
    
    	def updata_row(self):
    		res = messagebox.askyesnocancel('警告!', '是否更新所填数据?')
    		if res == True:
    			if self.var_id.get() == self.row_info[0]:  # 如果所填学号 与 所选学号一致
    				# 打开数据库连接
    				db = pymysql.connect("localhost", "root", "root", "student")
    				cursor = db.cursor()  # 使用cursor()方法获取操作游标
    				sql = "UPDATE student_k SET name = '%s', gender = '%s', age = '%s' \
    				 WHERE id = '%s'" % (self.var_name.get(), self.var_gender.get(), self.var_age.get(), self.var_id.get())  # SQL 插入语句
    				try:
    					cursor.execute(sql)  # 执行sql语句
    					db.commit()  # 提交到数据库执行
    					messagebox.showinfo('提示!', '更新成功!')
    				except:
    					db.rollback()  # 发生错误时回滚
    					messagebox.showinfo('警告!', '更新失败,数据库连接失败!')
    				db.close()  # 关闭数据库连接
    
    				id_index = self.id.index(self.row_info[0])
    				self.name[id_index] = self.var_name.get()
    				self.gender[id_index] = self.var_gender.get()
    				self.age[id_index] = self.var_age.get()
    
    				self.tree.item(self.tree.selection()[0], values=(
    					self.var_id.get(), self.var_name.get(), self.var_gender.get(),
    					self.var_age.get()))  # 修改对于行信息
    			else:
    				messagebox.showinfo('警告!', '不能修改学生学号!')
    
    	def del_row(self):
    		res = messagebox.askyesnocancel('警告!', '是否删除所选数据?')
    		if res == True:
    			print(self.row_info[0])  # 鼠标选中的学号
    			print(self.tree.selection()[0])  # 行号
    			print(self.tree.get_children())  # 所有行
    			# 打开数据库连接
    			db = pymysql.connect("localhost", "root", "root", "student")
    			cursor = db.cursor()  # 使用cursor()方法获取操作游标
    			sql = "DELETE FROM student_k WHERE id = '%s'" % (self.row_info[0]) # SQL 插入语句
    			try:
    				cursor.execute(sql)  # 执行sql语句
    				db.commit()  # 提交到数据库执行
    				messagebox.showinfo('提示!', '删除成功!')
    			except:
    				db.rollback()  # 发生错误时回滚
    				messagebox.showinfo('警告!', '删除失败,数据库连接失败!')
    			db.close()  # 关闭数据库连接
    
    			id_index = self.id.index(self.row_info[0])
    			print(id_index)
    			del self.id[id_index]
    			del self.name[id_index]
    			del self.gender[id_index]
    			del self.age[id_index]
    			print(self.id)
    			self.tree.delete(self.tree.selection()[0])  # 删除所选行
    			print(self.tree.get_children())
    
    
    # 学生查看信息界面
    class StudentView:
    	def __init__(self, parent_window, student_id):
    		parent_window.destroy() # 销毁主界面
    
    		self.window = tk.Tk()  # 初始框的声明
    		self.window.title('关于')
    		self.window.geometry('300x450')  # 这里的乘是小x
    
    		label = tk.Label(self.window, text='学生信息查看', bg='green', font=('Verdana', 20), width=30, height=2)
    		label.pack(pady=20)
    
    		self.id = '学号:' + ''
    		self.name = '姓名:' + ''
    		self.gender = '性别:' + ''
    		self.age = '年龄:' + ''
    		# 打开数据库连接
    		db = pymysql.connect("localhost", "root", "root", "student")
    		cursor = db.cursor()# 使用cursor()方法获取操作游标
    		sql = "SELECT * FROM student_k WHERE id = '%s'" % (student_id) # SQL 查询语句
    		try:
    			# 执行SQL语句
    			cursor.execute(sql)
    			# 获取所有记录列表
    			results = cursor.fetchall()
    			for row in results:
    				self.id = '学号:' + row[0]
    				self.name = '姓名:' + row[1]
    				self.gender = '性别:' + row[2]
    				self.age = '年龄:' + row[3]
    		except:
    			print("Error: unable to fetch data")
    		db.close()		# 关闭数据库连接
    
    		Label(self.window, text=self.id, font=('Verdana', 18)).pack(pady=5)
    		Label(self.window, text=self.name, font=('Verdana', 18)).pack(pady=5)
    		Label(self.window, text=self.gender, font=('Verdana', 18)).pack(pady=5)
    		Label(self.window, text=self.age, font=('Verdana', 18)).pack(pady=5)
    
    		Button(self.window, text="返回首页", width=8, font=tkFont.Font(size=16), command=self.back).pack(pady=25)
    
    		self.window.protocol("WM_DELETE_WINDOW", self.back)  # 捕捉右上角关闭点击
    		self.window.mainloop()  # 进入消息循环
    
    	def back(self):
    		StartPage(self.window)  # 显示主窗口 销毁本窗口
    
    
    # About页面
    class AboutPage:
    	def __init__(self, parent_window):
    		parent_window.destroy() # 销毁主界面
    
    		self.window = tk.Tk()  # 初始框的声明
    		self.window.title('关于')
    		self.window.geometry('300x450')  # 这里的乘是小x
    
    		label = tk.Label(self.window, text='学生信息管理系统', bg='green', font=('Verdana', 20), width=30, height=2)
    		label.pack()
    
    		Label(self.window, text='作者:清晨的光明', font=('Verdana', 18)).pack(pady=30)
    		Label(self.window, text='blog.csdn.net/kdongyi', font=('Verdana', 18)).pack(pady=5)
    
    		Button(self.window, text="返回首页", width=8, font=tkFont.Font(size=12), command=self.back).pack(pady=100)
    
    		self.window.protocol("WM_DELETE_WINDOW", self.back)  # 捕捉右上角关闭点击
    		self.window.mainloop()  # 进入消息循环
    
    	def back(self):
    		StartPage(self.window)  # 显示主窗口 销毁本窗口
    
    
    if __name__ == '__main__':
    	try:
    		# 打开数据库连接 连接测试
    		db = pymysql.connect("localhost", "root", "root", "student")
    		# 使用cursor()方法获取操作游标
    		cursor = db.cursor()
    		# 如果数据表不存在则创建表 若存在则跳过
    		# 设置主键唯一
    		sql = """CREATE TABLE IF NOT EXISTS student_k(
    				id char(20) NOT NULL,
    				name char(20) default NULL,
    				gender char(5) default NULL,  
    				age char(5) default NULL,
    				PRIMARY KEY (id)
    				
    				) ENGINE = InnoDB 
    				DEFAULT	CHARSET = utf8
    				"""
    		cursor.execute(sql)
    		# 如果数据表不存在则创建表 若存在则跳过
    		sql = """CREATE TABLE IF NOT EXISTS admin_login_k(
    						admin_id char(20) NOT NULL,
    						admin_pass char(20) default NULL,
    						PRIMARY KEY (admin_id)
    						) ENGINE = InnoDB 
    						DEFAULT	CHARSET = utf8
    						"""
    		cursor.execute(sql)
    		# 如果数据表不存在则创建表 若存在则跳过
    		sql = """CREATE TABLE IF NOT EXISTS stu_login_k(
    						stu_id char(20) NOT NULL,
    						stu_pass char(20) default NULL,
    						PRIMARY KEY (stu_id)
    						) ENGINE = InnoDB 
    						DEFAULT	CHARSET = utf8
    						"""
    		cursor.execute(sql)
    
    		# 关闭数据库连接
    		db.close()
    
    		# 实例化Application
    		window = tk.Tk()
    		StartPage(window)
    	except:
    		messagebox.showinfo('错误!', '连接数据库失败!')
    
    

     下面是我从我电脑数据库转储的SQL文件:

    /*
    Navicat MySQL Data Transfer
    
    Source Server         : mysql
    Source Server Version : 50532
    Source Host           : localhost:3306
    Source Database       : student
    
    Target Server Type    : MYSQL
    Target Server Version : 50532
    File Encoding         : 65001
    
    Date: 2019-11-28 15:09:36
    */
    
    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for `admin_login_k`
    -- ----------------------------
    DROP TABLE IF EXISTS `admin_login_k`;
    CREATE TABLE `admin_login_k` (
      `admin_id` char(20) NOT NULL,
      `admin_pass` char(20) DEFAULT NULL,
      PRIMARY KEY (`admin_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of admin_login_k
    -- ----------------------------
    INSERT INTO `admin_login_k` VALUES ('admin', 'admin');
    
    -- ----------------------------
    -- Table structure for `student_k`
    -- ----------------------------
    DROP TABLE IF EXISTS `student_k`;
    CREATE TABLE `student_k` (
      `id` char(20) NOT NULL,
      `name` char(20) DEFAULT NULL,
      `gender` char(5) DEFAULT NULL,
      `age` char(5) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of student_k
    -- ----------------------------
    INSERT INTO `student_k` VALUES ('182085211003', 'a', '女', '22');
    INSERT INTO `student_k` VALUES ('182085211004', 'b', '女', '18');
    INSERT INTO `student_k` VALUES ('182085211005', 'abc', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211006', 'abc', '女', '24');
    INSERT INTO `student_k` VALUES ('182085211008', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211009', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211010', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211011', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('1820852110111', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211012', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211013', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211014', 'Tom2', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211015', 'Tom1', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211016', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211017', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211018', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211019', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211020', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211021', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('1820852110211', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211022', 'Tom1', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211023', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211024', 'Tom', '男', '23');
    INSERT INTO `student_k` VALUES ('182085211034', 'Tom', '男', '23');
    
    -- ----------------------------
    -- Table structure for `stu_login_k`
    -- ----------------------------
    DROP TABLE IF EXISTS `stu_login_k`;
    CREATE TABLE `stu_login_k` (
      `stu_id` char(20) NOT NULL,
      `stu_pass` char(20) DEFAULT NULL,
      PRIMARY KEY (`stu_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of stu_login_k
    -- ----------------------------
    INSERT INTO `stu_login_k` VALUES ('182085211000', '123456');
    
    -- ----------------------------
    -- Table structure for `t_course`
    -- ----------------------------
    DROP TABLE IF EXISTS `t_course`;
    CREATE TABLE `t_course` (
      `SNO` char(255) NOT NULL,
      `COURSE` char(255) DEFAULT NULL,
      `CREDIT` char(255) DEFAULT NULL,
      `GRADE` char(255) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of t_course
    -- ----------------------------
    INSERT INTO `t_course` VALUES ('08300205', '程序设计', '4', '88');
    INSERT INTO `t_course` VALUES ('08300205', '数据库', '2.5', '90');
    INSERT INTO `t_course` VALUES ('08300205', '力学', '5', '92');
    INSERT INTO `t_course` VALUES ('08080929', '数据库', '2.5', '85');
    INSERT INTO `t_course` VALUES ('09350124', '数据库', '2.5', '92');
    INSERT INTO `t_course` VALUES ('09620233', '数据库', '2.5', '80');
    INSERT INTO `t_course` VALUES ('09300218', '数据库', '2.5', '78');
    INSERT INTO `t_course` VALUES ('09010122', '数据库', '2.5', '87');
    INSERT INTO `t_course` VALUES ('08080929', '程序设计', '4', '86');
    INSERT INTO `t_course` VALUES ('09010122', '程序设计', '4', '80');
    INSERT INTO `t_course` VALUES ('08300516', '程序设计', '4', '76');
    
    -- ----------------------------
    -- Table structure for `t_st`
    -- ----------------------------
    DROP TABLE IF EXISTS `t_st`;
    CREATE TABLE `t_st` (
      `SNO` char(11) NOT NULL,
      `SNAME` char(255) DEFAULT NULL,
      `SSEX` char(255) DEFAULT NULL,
      `AGE` char(255) DEFAULT NULL,
      `DEPT` char(255) DEFAULT NULL,
      PRIMARY KEY (`SNO`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of t_st
    -- ----------------------------
    INSERT INTO `t_st` VALUES ('08080929', '刘超世', '男', '19', '计算机应用技术');
    INSERT INTO `t_st` VALUES ('08300205', '李媛媛', '女', '19', '软件工程');
    INSERT INTO `t_st` VALUES ('09300218', '王海超', '男', '19', '软件工程');
    INSERT INTO `t_st` VALUES ('09350124', '王彤', '女', '19', '通信原理');
    INSERT INTO `t_st` VALUES ('09620233', '陈晓丽', '女', '21', '通信工程');
    

    觉得有用,点个赞再走吧^_^

    展开全文
  • 学生管理系统包括:学生信息登录、注册、删除、添加、查询等功能。最关键的也就是查询系统的实现。至于界面的设计前端事情我们不管。 下面是效果图。 界面效果实在一般,不会前端设计,也不想copy,将就看吧。...

    学生管理系统包括:学生信息登录、注册、删除、添加、查询等功能。最关键的也就是查询系统的实现。至于界面的设计前端事情我们不管。

    下面是效果图。

    界面效果实在一般,不会前端设计,也不想copy,将就看吧。主要是核心实现方法。 代码如下,

    代码步骤即设计步骤。

     

    java代码严格按照了DAO设计模式进行:

    VO类

    package cn.web.vo;
    
    public class Student {
    
       private int id;
       private String name;
       private String adress;
       private float height;
       private float weight;
    public int getId() {
    	return id;
    }
    public void setId(int id) {
    	this.id = id;
    }
    public String getName() {
    	return name;
    }
    public void setName(String name) {
    	this.name = name;
    }
    public String getAdress() {
    	return adress;
    }
    public void setAdress(String adress) {
    	this.adress = adress;
    }
    public float getHeight() {
    	return height;
    }
    public void setHeight(float height) {
    	this.height = height;
    }
    public float getWeight() {
    	return weight;
    }
    public void setWeight(float weight) {
    	this.weight = weight;
    }
       
    }

    DatabseConnection

    package cn.web.dbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    public class DatabaseConnection {
    	private static final String DBDRIVER="com.mysql.jdbc.Driver";
    	private static final String DBURL="jdbc:mysql://localhost:3306/demo";
    	private static final String DBUSER="root";
    	private static final String DBPASSWORD="root";
    	private static Connection conn=null;
    	
    	public DatabaseConnection() throws Exception{
    		//在构造方法中获得数据库的连接
    		Class.forName(DBDRIVER);
    		
    	this.conn=DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
    		
    	}
    
    	public  Connection getConn() {
    		return DatabaseConnection.conn;
    	}
    
    	public  void close(Connection conn) throws Exception {
    		if(DatabaseConnection.conn!=null) {
    			DatabaseConnection.conn.close();
    		}
    	}
    	
    
    }

    DAO接口

    package cn.web.dao;
    
    import java.util.List;
    
    import cn.web.vo.Student;
    
    public interface IStudentDAO {
    	
    public List<Student> findAll() throws Exception;
    
    public List<Student> findAll(String keyWord) throws Exception;//模糊查询方法
    
    public Student findById(int id) throws Exception;
    
    public int findCount() throws Exception;
    
    public boolean doCreate(Student s) throws Exception;
    public List<Student> findByPage(int currentPage,int pageSize) throws Exception;
    
    }
    


    impl类

    package cn.web.impl;
    
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    
    import cn.web.dao.IStudentDAO;
    
    import cn.web.vo.Student;
    
    public class StudentDAOImpl implements IStudentDAO {
    
    	private Connection conn=null;
    	private PreparedStatement pstmt=null;
    	
    	public StudentDAOImpl(Connection databaseConnection) {
    		//通过构造方法获得数据库的连接
    		this.conn=databaseConnection;
    		
    	}
    
    	@Override
    	public List<Student> findAll() throws Exception {
    		
    	     List<Student> all=new ArrayList<Student>();
    	     ResultSet rs=null;
    		 String sql="select * from student";
    		 pstmt=conn.prepareStatement(sql);
    		 rs =pstmt.executeQuery();
    		 while(rs.next()) {
    			 
    		 Student s=new Student();
    			 s.setId(rs.getInt(1));
    			 s.setName(rs.getString(2));
    			 s.setAdress(rs.getString(3));
    			 s.setHeight(rs.getFloat(4));
    			 s.setWeight(rs.getFloat(5));
    		  all.add(s);
    		 }
    		 pstmt.close();
    		 return all;
    		
    	}
    
    public List<Student> findAll(String keyWord) throws Exception {
    		List<Student> all=new ArrayList<Student>();
    	     ResultSet rs=null;
    		 String sql="select * from student where name like ? or adress like ?";//通过地址或姓名进行模糊查找
    		 pstmt=conn.prepareStatement(sql);
    		 pstmt.setString(1, "%"+keyWord+"%");
    		 pstmt.setString(2, "%"+keyWord+"%");
    		 rs =pstmt.executeQuery();
    		 while(rs.next()) {
    			  Student s=new Student();
    			 s.setId(rs.getInt(1));
    			 s.setName(rs.getString(2));
    			 s.setAdress(rs.getString(3));
    			 s.setHeight(rs.getFloat(4));
    			 s.setWeight(rs.getFloat(5));
    		  all.add(s);
    		 }
    		 pstmt.close();
    		 return all;
    		
    	}
    
    
    
    	public Student findById(int id) throws Exception {
    		Student ss=new Student();
    		 ResultSet rs=null;
    		 String sql="select * from student where id=?";
    		 pstmt=conn.prepareStatement(sql);
    		 pstmt.setInt(1, id);
    	      rs =pstmt.executeQuery();
    	      if(rs.next()) {
    		
    			 ss.setId(rs.getInt(1));
    			 ss.setName(rs.getString(2));
    			 ss.setAdress(rs.getString(3));
    			 ss.setHeight(rs.getFloat(4));
    			 ss.setWeight(rs.getFloat(5));
    	}
    	      pstmt.close();
    	       return ss;
    	
    	}
    
    	@Override
    	public boolean doCreate(Student s) throws Exception {
    		boolean flag=false;
    		String sql="insert into student (id,name,adress,height,weight) values (?,?,?,?,?)";
    		 pstmt=conn.prepareStatement(sql);
    		 pstmt.setInt(1,s.getId());
    		 pstmt.setString(2,s.getName());
    		 pstmt.setString(3,s.getAdress());
    		 pstmt.setFloat(4,s.getHeight());
    		 pstmt.setFloat(5,s.getWeight());
    		 if(this.pstmt.executeUpdate()>0) {
    			 flag=true;
    		 } 
    		 pstmt.close();
    		return flag;
    	}
    
    	
    	@Override
    	public List<Student> findByPage(int currentPage, int pageSize) throws Exception{
    		 List<Student> all=new ArrayList<Student>();
    		 ResultSet rs=null;
    		 String sql="select * from student limit ?,?";
    		 pstmt=conn.prepareStatement(sql);
    		 pstmt.setInt(1, currentPage);
    		 pstmt.setInt(2, pageSize);
    		 
    		 rs=pstmt.executeQuery();
    		 while(rs.next()) {
    			  Student s=new Student();
    			 s.setId(rs.getInt(1));
    			 s.setName(rs.getString(2));
    			 s.setAdress(rs.getString(3));
    			 s.setHeight(rs.getFloat(4));
    			 s.setWeight(rs.getFloat(5));
    		   all.add(s);
    		 }
    		 this.pstmt.close();
    		 return all;
    	}
    
    	@Override
    	public int findCount() throws Exception{
    		int count =0;
    		 String sql="select count(1) from student ";
    		 pstmt=conn.prepareStatement(sql);
    		 ResultSet rs=null;
    		 rs=pstmt.executeQuery();
    		 if(rs.next()) {
    			count=rs.getInt(1);
    		 }
    		pstmt.close();
    		return count;
    	}
    
    }

    proxy

    package cn.web.proxy;
    
    import java.util.List;
    
    import cn.web.dao.IStudentDAO;
    import cn.web.dbc.DatabaseConnection;
    import cn.web.impl.StudentDAOImpl;
    import cn.web.vo.Student;
    
    public class StudentDAOProxy implements IStudentDAO {
                    //代理类 调用前面的前面的类  ps:什么吊事也不用做,调用就完了
    	IStudentDAO dao=null;
    	DatabaseConnection dbc=null;
    	
    	public StudentDAOProxy() throws Exception{
    		this.dbc=new DatabaseConnection();
    		this.dao=new StudentDAOImpl(dbc.getConn());
    		
    		
    	}
    	
    	public List<Student> findAll() throws Exception {
    		List<Student> ss=null;
    		ss=this.dao.findAll();
    		return ss;
    	}
    
    	
    	public List<Student> findAll(String keyWord) throws Exception {
    		List<Student> ss=null;
    		ss=this.dao.findAll(keyWord);
    		return ss;
    	}
    
    	@Override
    	public Student findById(int id) throws Exception {
    		Student ss=null;
    		ss=this.dao.findById(id);
    		return ss;
    	}
    
    	@Override
    	public boolean doCreate(Student s) throws Exception {
    		boolean flag=false;
    		if(this.dao.findById(s.getId())!=null) {
    		flag=this.dao.doCreate(s);
    	}
    	 return flag;
    
    }
    
    	@Override
    	public List<Student> findByPage(int currentPage, int pageSize) throws Exception {
    	   List<Student> all;
    		all=dao.findByPage(currentPage, pageSize);
    		return all;
    	}
    
    	@Override
    	public int findCount() throws Exception {
    		
    		return dao.findCount();
    	}
    }

    DAO工厂

    package cn.web.factory;
    
    import cn.web.dao.IStudentDAO;
    import cn.web.proxy.StudentDAOProxy;
    
    public class StudentDAOFactory {
    	public static IStudentDAO getIStudentDAOInstance() throws Exception {
    		return new StudentDAOProxy();
    	}
    
    }
    

     下面是JSP代码

    <%@ page language="java" contentType="text/html; charset=gbk"
        pageEncoding="gbk"%>
    <%@page import="java.util.*" %>
    <%@page import="cn.web.vo.Student" %>
    
    <html>
    <head>
    <meta charset="gbk">
    <title>学生信息查询</title>
    </head>
    <body>
    <%request.setCharacterEncoding("GBK"); %>
    <jsp:useBean id="stud"  scope="request" class="cn.web.factory.StudentDAOFactory"/>
    <%
    List<Student> all=null;
    Student ss=null;
    
    %>
    <%int currentPage = 1 ;	// 为当前所在的页,默认在第1页
    int lineSize = 8 ;		// 每次显示的记录数
    int pageSize = 1 ;		// 表示全部的页数(尾页)
    %>
    <%    String s=request.getParameter("realPage");
          String keyWord=request.getParameter("query");
    if(s!=null){
    	  currentPage = Integer.parseInt(s);
    }
    if("".equals(keyWord)||keyWord==null||"全部".equals(keyWord)||"null".equals(keyWord)){
    	all=stud.getIStudentDAOInstance().findByPage((currentPage-1)*8, 8);
    }else{
    	all=stud.getIStudentDAOInstance().findAll(keyWord);
    }
    
    
    Iterator<Student>it=all.iterator();
    pageSize=stud.getIStudentDAOInstance().findCount()%lineSize==0?
    		stud.getIStudentDAOInstance().findCount()/lineSize:stud.getIStudentDAOInstance().findCount()/lineSize+1;
      
    %>
    
    <script language="javaScript">
     function go(num){
    	 document.getElementById("realPage").value = num;
    	 document.myform.submit();
    }
     
    </script>
    
    <center>
    <form name="myform" action="display.jsp" method="post">
    输入姓名或地址进行查询<input type="text" name="query" width="5" value="<%=keyWord%>">
    <input type="button"   value="查询" onclick="go(1)">
    <table border="1" width="60%">
    <tr>
    <td>学号</td>
    <td>姓名</td>
    <td>地址</td>
    <td>身高</td>
    <td>体重</td>
    </tr>
    
    <%while(it.hasNext()){
    	ss=it.next();%>
    <tr>
    <td><%=ss.getId() %></td>
    <td><%=ss.getName() %></td>
    <td><%=ss.getAdress() %></td>
    <td><%=ss.getHeight() %></td>
    <td><%=ss.getWeight() %></td>
    </tr>
    
    <%} %>
    <tr>
    <td><input type="button" value="首页"  onclick="go(<%=1%>)" 
    <%=currentPage==1?"DISABLED":""%>></td>
    <td><input type="button" value="上一页" onclick="go(<%=currentPage-1%>)"
    <%=currentPage==1?"DISABLED":""%>></td>
    <td><input type="button" value="下一页" onclick="go(<%=currentPage+1%>)"
    <%=currentPage==pageSize?"DISABLED":""%>></td>
    <td>跳转到<select name="jump" onchange="go(this.value)">
    		<%
    			for(int i=1;i<=pageSize;i++){
    		%>
    			<option value="<%=i%>" <%=i==currentPage?"SELECTED":""%>><%=i%></option>
    		<%
    			}
    		%>
    		</select>页</td>
    
    
    
    <td><input type="button" value="尾页" onclick="go(<%=pageSize%>)"
    <%=currentPage==pageSize?"DISABLED":""%>></td>
    
    </tr>
    </table>
    <input type="hidden" name="realPage" value="1">
    </form>
    </center>
    
    </body>
    </html>

     代码就这么多。按顺序看下来慢慢实现吧,不难理解,有疑问  添加QQ:  3492625357

    本来准备今晚写完整个管理系统,但是太困了,先设计完成了查询系统。由于DAO设计模式和代码耦合度低,便于日后完善设计,往后我会把完善后完整学生管理系统发出来。

    展开全文
  • ofbiz实战9——学生信息管理界面

    千次阅读 2017-10-31 09:46:47
    学生信息管理主要有:学生信息查询,修改,删除,重置密码,批量添加,下载模板功能。 查询界面: 点击更新按钮后的修改页面: 点击添加学生按钮后的页面: 点击批量导入学生按钮: 下载的模板excel文件: ...

    学生信息管理主要有:学生信息查询,修改,删除,重置密码,批量添加,下载模板功能。

    查询界面:


    点击更新按钮后的修改页面:


    点击添加学生按钮后的页面:


    点击批量导入学生按钮:


    下载的模板excel文件:



    学生信息管理的主要的功能界面就是以上这些。具体的实现代码下章介绍。

    返回导航页



    展开全文
  • qt 学生成绩计算查询界面设计

    千次阅读 2017-12-07 19:19:40
    点击进入增加记录界面后,可以根据学号或者姓名增加学生记录,点击增加记录按钮后自动填充专业班级等其他信息,并使能成绩录入功能,通过下拉框选择课程,并输入该门课程的成绩,点击提交后,该条记录会在下方的...

    这篇博客主要是从整体上讲解整体思路,包括设计目的、程序架构、涉及到的一些Qt功能的关键要素。

    在这个博客中,只放进我自己在验收时所做的ppt,ppt的内容涵盖了我在上面说到的全部内容。


    点击进入增加记录界面后,可以根据学号或者姓名增加学生记录,点击增加记录按钮后自动填充专业班级等其他信息,并使能成绩录入功能,通过下拉框选择课程,并输入该门课程的成绩,点击提交后,该条记录会在下方的文本框显示,增加多条记录后,点击确认,显示插入成功后即增加了该学生多门课程的成绩


    选择批量导入按钮后,弹出文件选择框,选择csv文件,选择成功后,提示选择的文件路径信息,并显示导入成功。



    本实验主演用到了selectinsert等数据库操作指令,第一行代码表示选择课程表格中的全部信息,第二行表示在课程表格中插入一行课程信息,第三行表示从课程表格中选择ID12345的课程信息

    首先要在pro文件中加入SQL模块,其次需要加入相关头文件,然后在主程序中添加数据库驱动、是指数据库名称、设置数据库登陆用户名、密码等



    使用QSqlQuery使用数据库命令对数据库进行操作


    在成绩的显示中使用了QTextEdit+HTML绘制表格的方式

    其中

    //cellpadding规定单元边沿与其内容之间的空白。

    //align规定表格相对周围元素的对齐方式。

     //border规定表格边框的宽度。


    使用QFileDialog调用文件选择框

    对文件的操作与上个实验类似,不在赘述



    展开全文
  • Java实现简单的学生信息管理界面

    万次阅读 多人点赞 2018-06-26 12:00:04
    主类package 学生信息管理系统; public class Main { public static void main(String[] args) { // TODO 自动生成的方法存根 InterFace Menu=new InterFace(); Menu.menu(); } }添加信息package 学生信息...
  • 学生信息管理系统之第三篇登录界面java代码

    万次阅读 热门讨论 2017-11-01 16:18:12
    class DLFrame extends JFrame implements ActionListener, ... {// 登录界面  JPanel p1 = null;  JPanel p2 = null;  JPanel p3 = null;  JLabel userName = new JLabel("帐号:");  JTextField txtUser
  • 添加学生信息界面: 添加学生实现代码: 需求: 1、点击确定按钮时,能够...2、在确认界面中,确认ok,点击确定按钮能够将学生信息写入到文件中保存起来,同时,将添加学生信息界面恢复到初始值状态。 1...
  • java小程序之学生信息录入界面

    万次阅读 多人点赞 2017-05-25 07:55:00
    因为这学期比赛太多,蓝桥杯,团体程序设计大赛,ACM省赛等原因基本这学期的课程都没上,比赛完后开始去上课,java老师让用java写一个学生信息录入界面,把界面中的信息保存在学生信息.txt文本文档里。。。。最近也...
  • 使用Java Swing开发的学生信息管理系统(界面美观)

    万次阅读 多人点赞 2018-12-31 12:32:29
    设计一个学生基本信息管理系统,实现“系统登录”,“学生信息增加”,“学生信息查询”,“学生信息删除”,“学生信息修改”,“学生信息导入”,“学生信息导出”等功能,具体要求如下: 关注下面的微信公众号,...
  • 本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下项目环境:软件环境:OS:RedHat6.3Lib:PygtkLanguage:PythonSupport tool:Glade3项目简述:①Glade3设计用户的登录窗口,...
  • 学生信息录入系统java代码

    万次阅读 多人点赞 2018-02-09 13:45:33
    学生信息录入系统可以实现学生本身账号密码登陆,然后录入自己关键信息(其中,带*的为必填)最后 会在电脑f盘生成一个自己信息录入完成的文件,并且可以提交信息,进而将文件中的信息展示出来。我觉得这部分的难点...
  • java Swing写学生信息界面

    千次阅读 2017-11-26 13:40:46
    学生信息包括:学号,姓名,学院,专业(下拉列表),班级,籍贯,性别,爱好(多选),备注 。 代码: import java.awt.event.ActionEvent; public class T_one extends JFrame {  //public ...
  • 学生信息管理系统 完整代码

    千次阅读 2020-08-10 00:50:29
    学生信息管理系统 一、开发语言:C语言 二、开发要求:每人提交一份系统研发报告和源代码,基于课程设计报告格式,可以建立小组讨论。2020年08月10日前上交。 三、开发主要功能如下 系统功能包括:用户登陆、信息...
  • java学生管理系统界面设计

    万次阅读 多人点赞 2019-07-05 13:16:30
    关于学生管理系统的界面设计:代码如下: 数据库设计 DROP TABLE IF EXISTS `stu`; CREATE TABLE `stu` ( `stuId` int(11) NOT NULL AUTO_INCREMENT, `stuName` varchar(30) DEFAULT NULL, `stuSex` varchar(30) ...
  • C语言 学生信息管理系统【图文背景丰富+代码

    万次阅读 多人点赞 2020-07-25 11:10:24
    设计一个能够保证信息的准确性和时效性,随时通过计算机对系统进行管理,使得学生信息处于最新状态,保证统计数据和分析准确的具有增删改查学生成绩信息的系统,并为高校学生信息管理提供一种更加高效实用的管理手段...
  • Java 图形界面开发--图文并茂建立学生管理系统

    万次阅读 多人点赞 2016-03-19 19:52:28
    图形用户界面(Graphics User Interface,GUI)是用户与程序交互的窗口,比命令行的界面更加直观并且更好操作。 关注微信公众号(文强的技术小屋),学习更多技术知识,一起遨游知识海洋~ ...
  • 前不久上传了一个控制台版本的学生管理系统,这个是Python界面学生管理系统,这个是使用pycharm开发的一个有界面学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下载
  • Java图形界面开发—学生信息管理系统 完整源码

    千次下载 热门讨论 2017-02-28 21:36:13
    学生信息管理系统,使用Java开发。 1、登录界面可以进行登录操作。有俩种权限选择。分别跳转到不同的界面。 2、使用了事件监听、Java操作SQLserver数据库等知识。 3、图形化界面中使用了JTable等组件,将查询结果...
  • Python学生信息管理系统 (菜单界面、txt保存文件) 目录 Python学生信息管理系统 (菜单界面、txt保存文件) 系统设计目的 功能要求 代码总体框架 关键代码 效果展示 系统设计目的 利用Python编程语言编写...
  • 学生选课系统代码(主界面部分)

    千次阅读 2015-09-27 10:26:45
     this.setTitle("学生选课系统 "+manager.getSysaccount()+",欢迎您!");  teacherMenu.setEnabled(false);  studentMenu.setEnabled(false);  }  if(teacher!=null)  {  this.setTitle("学生...
  • 这是一个基于java和mysql的项目,能实现登录注册、信息查询修改、按课程成绩年级排名、关键词搜索的功能。 源代码上传至github,有需要的免费下载 https://github.com/Babayaodonghai/StudentsManage.git ...
  • 我做的c#登录界面,数据库为acess,我输入一个用户名和密码选择不同的权限能进入不同权限的界面。求怎样能一个用户名密码只能对应一个权限的代码
  • Java60行代码实现swing+mysql学生信息管理系统

    万次阅读 多人点赞 2018-01-23 17:25:50
    swing+mysql实现的学生信息管理系统:数据处理:student类。。。界面显示:swing界面。对数据库做增删改查的4个5个函数入下声明:添加学生信息:public boolean addStuInfo(int sNum, String sName, String sClass, ...
  • 【Python + Mysql + UI】学生信息管理系统(附代码

    万次阅读 多人点赞 2019-06-19 16:57:21
    做了一个学生信息管理的简单数据库程序,写了一点简单的UI界面,功能不是很强大,代码组织也很不科学,洋洋洒洒竟然写了700多行.......分享出来,一起学习 /********************************** @ author:CSDN @...
  • c#实现简单学生信息管理系统

    万次阅读 多人点赞 2019-06-06 21:40:37
    登录、添加学生信息、修改学生信息、删除学生信息查询学生信息 三、实现步骤 1、登陆界面功能实现 老规矩,先贴下主要代码: //构造方法 public Login() { InitializeComponent(); this.label3.Parent = ...
  • Android+SQlite 简单的《学生信息管理系统》(实现基本增删改查) 此代码中还有与其相对应的apk文件(在SIMS/bin目录中),大家可先行放手机上看一下效果。 希望对初学者有一定的帮助。(本人自己编写)
  • 在页面上写代码,我用的是基础的LinearLayout,并嵌套使用,使得界面横竖有序,更为好看 &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="...
  • 学生信息系统界面都很简单,但是好多也暗藏玄机。 我之所以开始做界面,而不是做完界面就写这个窗体的代码,原因有二。 一、做同样的一类事情比较有效率。 例子如下: 我们如果竖着看就是1a2b3c4d这样思维来...
  • 学生信息管理系统的VB程序界面信息与数据库的信息相对应,在编写代码的时候,要清楚的了解,界面与后台信息两者之间的联系,从全局把握。 界面上对班级信息的操作,主要对信息的添加,修改,删除。而对应到数据库则...
  • 学生信息管理系统 此项目包括四个类 StartMySql → 用于启动登录界面 Login → 登录进入操作界面 MySQLGUI → 图形用户界面 OperationMySql → 对数据库数据的操作功能实现 实现概貌: 这个项目的注释真的 真...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,515
精华内容 24,606
关键字:

学生信息查询界面代码