php学生成绩管理系统

合集下载

基于PHP的学生成绩管理系统的设计与实现

基于PHP的学生成绩管理系统的设计与实现

O 引言
随着计算机技术 的发展 , 特 别是 计算 机网络技术与数据库
e ic f i e n c y o f s t ud e n t s c o r e m a na g e me n t a n d f u r t h e r s i mp l i f y t h e ma na g e me n t p r o c e s s ,a s t u d e n t s c o r e ma n a g e me n t s y s t e m s u i t a b l e

4 4 ・
Co mp u t e r Er a No. 8 2 01 3
基于 P H P 的学生成绩管理系统的设计与实现★
李 永新 ’ ,王 超。
( 1 . 南阳农业职业学院计算机 系,河南 南阳 4 7 3 0 6 1 ;2 . 南阳理工学院软件学院)
摘 要 :我 国高等职业教 育迎来 了蓬勃发展 的新局 面, 各院校招 生规模不 断扩 大, 学校 的教 学管理 负担越来越重。为 了 提 高学生成绩管理的效率 , 进 一步简化管理流程 , 描述 了一种适 用于高等院校 的学生成绩管理 系统。该 系统的开发按照
Li Yo n g x i n ,W a n g Ch a o
( J .D e p a r t me n t o f C o m p u t e r S c i e n c e ,Na n y a n g A g r i c u l t u r a l V o c a t i o n a l C o l l e g e ,Na n y a n g ,H e n a n 4 7 3 0 6 1 ,C h i n a ;
中 图分 类 号 : T P 3 9 文 献 标 志码 : A 文章编号 : 1 0 0 6 — 8 2 2 8 ( 2 0 1 3 ) o 8 — 4 4 — 0 2

php学生成绩管理系统报告

php学生成绩管理系统报告

php学生成绩管理系统报告报告标题:基于PHP的学生成绩管理系统一、引言学生成绩管理系统是一个用于管理学校学生成绩的系统,通过对学生成绩的录入、查询、修改和统计等功能的实现,帮助学校管理者更方便、高效地管理学生的学业情况。

本报告介绍了一个基于PHP语言开发的学生成绩管理系统,包括系统的需求分析、系统设计、系统实现以及遇到的问题和解决方案等内容。

二、系统需求分析通过与学校管理者的沟通与需求收集,得出了以下学生成绩管理系统的基本需求:1. 学生信息管理:包括学生基本信息的录入、修改、删除和查询等功能。

2. 课程信息管理:包括课程基本信息的录入、修改、删除和查询等功能。

3. 学生成绩管理:包括成绩的录入、修改和查询等功能。

4. 成绩统计与分析:根据成绩数据进行统计与分析,例如计算每个学生的平均成绩、各科目的平均分等。

三、系统设计根据系统需求,设计了以下系统结构:1. 数据库设计:使用MySQL数据库来存储学生、课程和成绩等相关数据。

2. 前端设计:使用HTML、CSS和JavaScript等前端技术来实现用户界面,包括学生信息管理、课程信息管理和成绩管理等模块的页面展示和交互。

3. 后端设计:使用PHP语言来编写后端逻辑,包括与数据库的交互、数据的增删改查和统计等功能的实现。

四、系统实现在系统实现过程中,遇到了以下问题,并采取了相应的解决方案:1. 数据库连接问题:通过配置正确的数据库连接参数,确保系统能够正确连接到数据库。

2. 数据校验问题:在对表单数据进行录入和修改之前,需要进行数据校验,确保数据的合法性。

3. 数据统计问题:通过SQL查询语句对成绩数据进行统计,得到需要的结果,并通过PHP将结果展示在前端页面。

五、系统测试与维护完成系统实现后,进行了系统测试,包括功能测试、性能测试和安全性测试等。

通过测试,确保系统能够正常工作并满足需求。

在系统维护方面,需要定期对数据库进行备份,确保数据的安全性。

一个php开发的中学成绩管理系统

一个php开发的中学成绩管理系统

⼀个php开发的中学成绩管理系统写在前⾯博客好久没更新了,最近看了MSRA⽜⼈刘未鹏的博客(),深有感触,感觉学习到了很多东西,关于算法学习,思维⽅法,职业发展等等,因此看了好⼏篇他的博客之后我就做了两件事1. 将我之前所有项⽬代码都上传到github上2. 继续坚持写博客正好这个礼拜受某中学委托⽤php写了⼀个成绩管理系统,因此就把系统开发过程记录下来,当做是⼀个总结,也和各位园友交流⼀下,共同提⾼进步。

因为本⼈⽬前还只是在校学⽣,因此知识经验必然存在很⼤不⾜,⽂章内容也难免疏漏粗浅,如有偏颇的地⽅希望⼤家多多理解。

交流进步才是最终⽬的,谢谢!成绩管理系统的⾓⾊及功能1. 1. 管理员1.1 导⼊⽤户信息(包括学⽣和教师)1.2.1 登记考试(包括全县统考、全校统考、班级考试)1.2.2 查询考试信息1.3 导⼊成绩1.4 修改密码1.5 ⽤户查找1. 2. 教师2.1 查看本班所有学⽣成绩(包括各科分数、总分、排名)2.2 修改密码1. 3. 学⽣3.1 查看⾃⼰的所有考试成绩3.2 修改密码具体⽤的技术后台语⾔:Php前台语⾔及框架:html+javascript+jquery部署服务器:linux+nginx开发过程1. 1. 数据库设计数据库中有3个表:grades(分数表)、users(⽤户表)、exams(考试表)users表中⽤户ID是Grades表中userid的外键exams表中考试id是grades中examid的外键1. 2. 登录登录界⾯登录界⾯是在⽹上找到的⼀个⽤jquery制作的很好看的登录界⾯,这⾥提供下下载地址:登录逻辑如果⽤户登录成功读取⽤户的⽤户类型(管理员,教师,学⽣),当然为了避免sql诸如,将⽤户输⼊都做了特殊字符过滤处理,并将⽤户的⽤户名、⽤户类型、⽤户ID等信息读⼊$_session中,然后分别导向不同的页⾯(admin.php、teacher.php、student.php),在这些页⾯⾥也对session重新进⾏验证,避免未授权⽤户直接访问该页⾯。

python超详细实现完整学生成绩管理系统

python超详细实现完整学生成绩管理系统

python超详细实现完整学⽣成绩管理系统⽬录学⽣成绩管理系统简介源代码students.txtmain.pyLogin.pydb.pyMenuPage.pyview.py学⽣成绩管理系统简介⼀个带有登录界⾯具有增减改查功能的学⽣成绩管理系统(⾯向对象思想,利⽤tkinter库进⾏制作,利⽤.txt⽂件进⾏存储数据)源代码仅供学习参考,最好还是⾃⼰多敲多练习(实践是检验真理的唯⼀标准) students.txt⽤于存储数据main.pyfrom tkinter import *from Login import *import tkinter as tkroot = ()root.title('欢迎进⼊学⽣成绩管理系统')LoginPage(root)root.mainloop()Login.pyfrom tkinter import *from tkinter.messagebox import *from MenuPage import *class LoginPage(object):def __init__(self, master=None):self.root = master # 定义内部变量rootself.root.geometry('%dx%d' % (300, 180)) # 设置窗⼝⼤⼩ername = StringVar()self.password = StringVar()self.createPage()def createPage(self):self.page = Frame(self.root) # 创建Frameself.page.pack()Label(self.page).grid(row=0, stick=W)Label(self.page, text='账户: ').grid(row=1, stick=W, pady=10)Entry(self.page, textvariable=ername).grid(row=1, column=1, stick=E)Label(self.page, text='密码: ').grid(row=2, stick=W, pady=10)Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=E) Button(self.page, text='登陆', command=self.loginCheck).grid(row=3, stick=W, pady=10) Button(self.page, text='退出', command=self.page.quit).grid(row=3, column=1, stick=E) def loginCheck(self):name = ername.get()password = self.password.get()if name == 'hacker707' and password == 'admin':self.page.destroy()MenuPage(self.root)else:showinfo(title='错误', message='账号或密码错误!')db.pyimport jsonclass StudentDB(object):def __init__(self):self.students = []self._load_students_data()def insert(self, student):self.students.append(student)print(self.students)def all(self):return self.studentsdef delete_by_name(self, name): # 删除数据for student in self.students:if name == student["name"]:self.students.remove(student)breakelse:return Falsereturn True# 查询def search_by_name(self, name):for student in self.students:if name == student["name"]:return student # 姓名+成绩else:return False# 修改def update(self, stu): # 修改数据name = stu["name"]for student in self.students:if name == student["name"]:student.update(stu)return Trueelse:return False# 加载⽂件def _load_students_data(self):with open("students.txt", "r", encoding="utf-8") as f:text = f.read()if text:self.students = json.loads(text)# 保存数据def save_data(self):with open("students.txt", 'w', encoding="utf-8") as f:text = json.dumps(self.students, ensure_ascii=False)f.write(text)db = StudentDB()MenuPage.pyimport tkinter as tkfrom view import *class MenuPage(object):def __init__(self, master=None):self.root = masterself.root.geometry('%dx%d' % (600, 400))self.create_page()self.input_page = InputFrame(self.root)self.query_page = QuerryFrame(self.root)self.delete_page = DeleteFrame(self.root)self.update_page = UpdateFrame(self.root)self.about_page = AboutFrame(self.root)self.input_page.pack()def create_page(self):# 创建菜单对象menubar = tk.Menu(self.root)# add_command 添加menubar.add_command(label="录⼊", command=self.input_data) # label menubar.add_command(label="查询", command=self.query_data) # label menubar.add_command(label="删除", command=self.delete_data) # label menubar.add_command(label="修改", command=self.update_data) # label menubar.add_command(label="关于", command=self.about_data) # label # 设置菜单栏self.root.config(menu=menubar)# 切换界⾯def input_data(self):self.input_page.pack()self.update_page.pack_forget()self.delete_page.pack_forget()self.about_page.pack_forget()self.query_page.pack_forget()def query_data(self):self.input_page.pack_forget()self.query_page.pack()self.update_page.pack_forget()self.delete_page.pack_forget()self.about_page.pack_forget()def update_data(self):self.input_page.pack_forget()self.update_page.pack()self.delete_page.pack_forget()self.about_page.pack_forget()self.query_page.pack_forget()def delete_data(self):self.input_page.pack_forget()self.update_page.pack_forget()self.delete_page.pack()self.about_page.pack_forget()self.query_page.pack_forget()def about_data(self):self.input_page.pack_forget()self.update_page.pack_forget()self.delete_page.pack_forget()self.about_page.pack()self.query_page.pack_forget()view.pyimport tkinter as tkfrom db import dbfrom tkinter import ttk# 录⼊类class InputFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = master = tk.StringVar()self.math = tk.StringVar()self.chinese = tk.StringVar()self.english = tk.StringVar()self.status = tk.StringVar()self.create_page()def create_page(self):bel(self).grid(row=0, stick=tk.W, pady=10)bel(self, text="姓名:").grid(row=1, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=).grid(row=1, column=1, stick=tk.E)bel(self, text="数学:").grid(row=2, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=self.math).grid(row=2, column=1, stick=tk.E)bel(self, text="语⽂:").grid(row=3, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=self.chinese).grid(row=3, column=1, stick=tk.E)bel(self, text="英语:").grid(row=4, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=self.english).grid(row=4, column=1, stick=tk.E)tk.Button(self, text="录⼊", command=self.recode_student).grid(row=5, column=1, stick=tk.E, pady=10) bel(self, textvariable=self.status).grid(row=6, column=1, stick=tk.E, pady=10)# 录⼊成绩def recode_student(self):student = {"name": .get(),"math": self.math.get(),"chinese": self.chinese.get(),"english": self.english.get(),} # ⼀个学⽣的成绩db.insert(student)# get()得到值# set()设置值self.status.set("插⼊数据成功!")self._clear_data()db.save_data()# 清空⽂本数据def _clear_data(self):.set("")self.math.set("")self.chinese.set("")self.english.set("")# 查询类class QuerryFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = masterself.create_page()# 创建查询界⾯def create_page(self):self.create_tree_view()self.show_data_frame()# grid()tk.Button(self, text="刷新数据", command=self.show_data_frame).pack(anchor=tk.E, pady=5) # Treeviewdef create_tree_view(self):# 表头columns = ("name", "chinese", "math", "english")self.tree_view = ttk.Treeview(self, show='headings', columns=columns)self.tree_view.column("name", width=80, anchor='center')self.tree_view.column("chinese", width=80, anchor='center')self.tree_view.column("math", width=80, anchor='center')self.tree_view.column("english", width=80, anchor='center')self.tree_view.heading("name", text='姓名')self.tree_view.heading("chinese", text='语⽂')self.tree_view.heading("math", text='数学')self.tree_view.heading("english", text='英语')self.tree_view.pack()# 显⽰数据def show_data_frame(self):# 删除原节点 map(int,值)for i in map(self.tree_view.delete, self.tree_view.get_children("")):pass# 拿到列表⾥⾯所有值、students[]students = db.all()# 同时拿到索引跟value值for index, stu in enumerate(students):self.tree_view.insert('', index, values=(stu["name"], stu["chinese"], stu["math"], stu["english"]))class DeleteFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)bel(self, text='删除数据').pack()self.status = tk.StringVar()self.de_name = tk.StringVar() # 获取删除学⽣的姓名self.create_page()# 创建界⾯def create_page(self):bel(self, text="根据姓名删除信息").pack(anchor=tk.W, padx=20)e1 = tk.Entry(self, textvariable=self.de_name)e1.pack(side=tk.LEFT, padx=20, pady=5)tk.Button(self, text='删除', command=self._delete).pack(side=tk.RIGHT)bel(self, textvariable=self.status).pack()# 删除def _delete(self):name = self.de_name.get()print(name)result = db.delete_by_name(name)if result:self.status.set(f'{name}已经被删')self.de_name.set("")else:self.status.set(f'{name}不存在')class UpdateFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = masterbel(self, text='修改界⾯').pack()self.change_frame = tk.Frame(self)self.change_frame.pack() = tk.StringVar()self.math = tk.StringVar()self.chinese = tk.StringVar()self.english = tk.StringVar()self.status = tk.StringVar()self.create_page()def create_page(self):bel(self.change_frame).grid(row=0, stick=tk.W, pady=10)bel(self.change_frame, text="姓名:").grid(row=1, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=).grid(row=1, column=1, stick=tk.E)bel(self.change_frame, text="数学:").grid(row=2, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=self.math).grid(row=2, column=1, stick=tk.E)bel(self.change_frame, text="语⽂:").grid(row=3, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=self.chinese).grid(row=3, column=1, stick=tk.E)bel(self.change_frame, text="英语:").grid(row=4, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=self.english).grid(row=4, column=1, stick=tk.E)# 按钮tk.Button(self.change_frame, text='查询', command=self._search).grid(row=6, column=0, stick=tk.W, pady=10) tk.Button(self.change_frame, text='修改', command=self._change).grid(row=6, column=1, stick=tk.E, pady=10) bel(self.change_frame, textvariable=self.status).grid(row=7, column=1, stick=tk.E, pady=10)# 查询def _search(self):name = .get()student = db.search_by_name(name)if student:self.math.set(student["math"])self.chinese.set(student["chinese"])self.english.set(student["english"])self.status.set(f'查询到{name}同学的信息')else:self.status.set(f'没有查询到{name}同学的信息')# 更改成绩def _change(self):name = .get()math = self.math.get()chinese = self.chinese.get()english = self.english.get()stu = {"name": name,"math": math,"chinese": chinese,"english": english,}r = db.update(stu)if r:self.status.set(f"{name}同学的信息更新完毕")else:self.status.set(f"{name}同学的信息更新失败")class AboutFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = masterself.create_page()def create_page(self):bel(self, text="关于本作品(⼈⽣苦短,我⽤python)").pack(anchor=tk.W)以上就是使⽤python实现学⽣成绩管理系统,如果有改进的建议,欢迎在评论区留⾔奥~这篇⽂章参加了csdn的活动,还请⼤家多多三连⽀持⼀下博主,你们的⽀持就是我创作的动⼒到此这篇关于python超详细实现完整学⽣成绩管理系统的⽂章就介绍到这了,更多相关python 学⽣成绩管理系统内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

创建PHP学生成绩管理系统报告

创建PHP学生成绩管理系统报告

【创建PHP学生成绩管理系统报告】本系统是啊Windows 环境下,基于PHP脚本语言实现的学生成绩管理系统,Web 服务器使用Apache,后台数据库使用MySQL.本系统包含学生信息录入、学生信息查询、成绩信息录入、学生成绩查询等功能,我们还可以在本系统的基础上进行相应的扩展,如增加课程信息录入、课程信息查询、课程成绩排序等相关功能。

P.1 数据库的创建1.创建表本系统继续使用前面的样例数据库:学生成绩管理系统PSSCJ。

PXSCJ数据库的3个表仍为XSB、KCB、和CJB。

基于实际开发的原因,表的结构有所变化,原来的中文列名都改用英文表示,其中学生信息表中新加ZP(照片)列,用于存放学生的照片信息。

2。

创建试图创建学生课程成绩试图,名称为XS-KC-CJ,通过学号将学生表和创建表联系起来,通过课程号(KCH)将成绩表和课程表联系起来。

包含学号(XH)、姓名(XM)、课程号(KCH)、课程名(KCM)、成绩(CJ)等列。

3.创建存储过程创建储存过程CJ-Data,参数为学号(in-xh)、课程号(in-kch)和成绩(in-cj),该存储过程实现的功能是完成学生成绩信息记录的添加删除、修改.4。

创建触发器本系统创建的触发器要实现的功能是:当删除许多记录后,同步删除创建表(CJB)该学生的成绩记录。

可以通过创建学生表(XSB)的DELETE触发器实现次功能。

P。

2 主程序界面的创建目的要求:实现界面的布局、图片的显示和超链接的使用。

实现功能:单击主界面左边框中的图片超链接,可以在右边框中显示各个功能页面。

实现过程:1.)在Apache安装目录下的htdocs文件夹下创建一个stu—project文件夹,本系统的PHP程序文件都在该文件夹下创建。

本系统使用到的图片存放在images文件夹下,要使用这些图片可以将images文件夹复制到stu—project文件夹下.2.)创建mainbody。

html文件,形成主界面的整体结构。

PHP学生成绩管理系统综合实验报告

PHP学生成绩管理系统综合实验报告

一、实验目的:1、掌握PHP基本语法及应用。

2、掌握SESSION和COOKIE的使用。

3、掌握使用PHP和页面进行交互。

4、掌握PHP图像处理应用。

5、掌握MySQL数据库的使用及使用PHP操作MySQL数据库。

6、了解系统开发的其他工具及语言。

7、掌握系统开发的基本流程。

二、实验设备及环境:硬件:多媒体计算机软件:Windows系列操作系统、PHP系列运行及编译环境、MySQL数据库、Zend Studio三、实验内容及要求:1、需求分析学生成绩管理系统主要使用者是教师和学生使用,因此,对于本系统的分析可以针对这二者进行分别分析;本系统旨在对PHP进行练习,做出一个简易的学生成绩管理系统。

主要功能如下:学生:登录系统,进入系统,查询自己的成绩;教师:登录系统,进入系统,查询学生信息,查询全部学生成绩,录入学生成绩,管理课表;通过上面的需求分析可以看到,教师的操作相对较多,但是学生的使用人数要远大于教师的人数,因此在性能上应该对学生的部分增加压力支持,这样才能够满足很多学生同时进行成绩查询的需要。

具体实现的功能结构图如下:图1.1 功能结构图2、系统概要设计根据上文的需求分析,下面进行系统的基本概要设计:首先系统相对做的比较简易,同时,为了数据传输便利,php文件和静态页面html文件放在项目文件目录下,然后图片资源安排在单独的文件夹中;Php做网页设计来说,他的表现能力相对较差,因此表现还是要通过html进行展示,所以项目由PHP文件和html文件组成。

基本设计如下:基本页面:静态页面,登录主页;学生:动态页面,显示个人成绩教师:静态页面,登录主页,课程插入,成绩输入,学生信息录入,学生信息查询;动态页面,成绩修改,学生信息修改,学生成绩查询,课程录入处理,成绩录入处理,课程管理等;基本项目文件结构图如下:图2.1项目文件结构图3、数据库设计依据上文的设计,对数据库进行设计,建立了5个基本表,将学生信息从学生表中分离出来,可以提升程序执行的速度(在数据量较大的时候),具体如下:教师:用户名,密码课程:课程号,课程名称,学分学生:用户名,密码成绩:学号,课号,成绩学生信息:学号,姓名,年龄,性别,系部E-R图如下:图3.1 学生成绩E-R图4、编码(贴图并分析主要界面的实现过程,重要代码不能超过一页)系统主要通过PHP从数据库中检索出来数据,然后用于界面展示和操作,其中,检索查询左右学生信息的PHP页面主要代码如下:<?phpsession_start();@ $db = new mysqli("localhost","root","root","sgrademangement");if(mysqli_connect_errno()){echo "连接数据库失败";}$query = "select s.sid,s.sname,g.cid,ame,g.sgrade from sinfo s,grade g,course c where s.sid=g.sidand c.cid = g.cid";$result = $db ->query($query);$num_result = $result->num_rows;><form name="form1" method="post"><table width="767" height="324" border="0" align="center">……<?php for($i = 0; $i < $num_result; $i++){$row = $result->fetch_assoc();?><tr><td background="pic/in_20.gif"><?php echo stripslashes($row['sid']);?></td><td background="pic/in_20.gif"><?php echo stripslashes($row['sname']);?></td><td background="pic/in_20.gif"><?php echo stripslashes($row['cid']);?></td><td background="pic/in_20.gif"><?php echo stripslashes($row['cname']);?></td><td background="pic/in_20.gif"><?php echo stripslashes($row['sgrade']); ?></td><td background="pic/in_20.gif"><a href="delete.php">删除</a></td><td background="pic/in_20.gif"><a href="change_grade.php">修改</a></td></tr><?php}//$result->free();$db->close();?>5、测试经过对系统的基本功能进行测试,系统基本实现了需求分析中要实现的功能,运行效果基本满足要求;下面是系统运行截图:图5.1 学生成绩查询图5.2 学生信息查询四、心得体会在此次的学生成绩管理系统程序设计的过程中,我使用Zend Studio进行了一次PHP系统的开发,由于时间以及其它的一些原因,没办法把系统进行比较深入的开发,实在是惭愧,这次设计让我加深了对PHP开发的理解以及思考,同时认识到了一些问题。

学生成绩管理系统毕业设计python

学生成绩管理系统毕业设计python

学生成绩管理系统毕业设计一、概述学生成绩管理系统是学校教务管理工作中的重要组成部分,它可以帮助学校高效地管理学生成绩信息,实现成绩的录入、统计、分析和报表生成等功能。

随着计算机技术的发展,利用计算机来开发学生成绩管理系统已成为教育信息化建设的重要方向。

本文将以Python语言为基础,设计一个学生成绩管理系统的毕业设计。

二、需求分析1. 系统功能(1)成绩录入:支持教师和管理员录入学生成绩信息。

(2)成绩查询:学生和家长可以通过系统查询学生成绩信息。

(3)成绩统计:根据学生成绩信息,系统可以进行成绩统计分析。

(4)报表生成:系统可以生成学生成绩报表,方便学校管理人员进行查阅。

2. 系统性能(1)界面友好:系统界面简洁、美观,操作方便,提高用户体验。

(2)高效性能:系统能够快速响应用户的请求,保证系统的高效运行。

(3)数据安全:系统对学生成绩信息进行严格保密,确保数据安全。

三、技术选型1. 开发语言:Python 3.x2. 开发框架:Django3. 数据库:SQLite四、系统设计1. 数据库设计(1)学生表:保存学生的基本信息,如尊称、学号、班级等。

(2)课程表:保存课程的信息,如课程名、学分、教师等。

(3)成绩表:保存学生的成绩信息,包括学生学号、课程编号、成绩等字段。

2. 界面设计(1)登入界面:提供用户名和密码输入框,区分不同角色的用户登入。

(2)菜单界面:根据用户角色不同,提供不同的菜单选项,如成绩录入、成绩查询、报表生成等。

(3)成绩录入界面:支持教师和管理员录入学生成绩信息。

(4)成绩查询界面:支持学生和家长查询学生成绩信息。

(5)报表生成界面:支持生成学生成绩统计报表。

3. 功能模块设计(1)用户管理模块:管理用户的登入和权限。

(2)成绩管理模块:实现成绩的录入、查询、统计和报表生成。

(3)班级管理模块:管理学生所属的班级信息。

(4)课程管理模块:管理学校开设的课程信息。

五、系统实现1. 环境搭建搭建Python开发环境,并安装Django框架和SQLite数据库。

毕业论文-基于PHP学生成绩管理系统设计

毕业论文-基于PHP学生成绩管理系统设计

华科学院HUAKE INSTITUTE OF TAIYUAN UNIVERSITY OFSCIENCE & TECHNOLOGY毕业设计(论文)题目:基于PHP学生成绩管理系统设计学生姓名学号班级所属院(系)计算机科学与技术指导教师2015 年 6 月 1 日目录Abstract (III)1 系统概述 (1)1.1 开发背景及意义 (1)1. 2方案论证 (1)1.3 开发工具的选择 (1)2 系统分析 (2)2.1 目标设计 (2)2.2 可行性分析 (2)2.2.1 技术可行性分析 (2)2.2.2 经济可行性 (3)2.2.3 操作可行性 (3)2.3 系统功能分析 (3)2.4 系统性能要求 (4)2.5 系统的功能模块 (5)3 数据库设计 (5)3.1 MYSQL数据库简介 (5)3. 2 系统E-R图 (6)3.3 数据库设计 (6)4 系统的具体实现 (8)4.1 系统开发平台 (8)4.1.1 软件环境 (8)4.1.2 硬件环境 (9)4.2 系统采用的体系结构 (9)4.3 系统流程图及数据流图 (9)4.3.1系统流程图 (9)4.3.2 系统数据流程图 (11)4.4 PHP访问系统数据库的实现 (12)4.4.1 PHP与系统数据库连接的实现 (12)4.4.2 数据库增加记录的实现 (13)4.4.3数据库修改记录的实现 (16)4.4.4数据库删除记录的实现 (18)4.4.5 查询的实现 (20)4.5用户操作权限的控制的实现 (23)摘要随着计算机的发展和技术网络的发展,它是世界上日益普及的东西,随着互联网/内联网使用,在众多的网络服务当中,网络给人的感觉找到一丝新鲜感,其中,PHP进行复杂的数据库操作,有非常强烈的互动,帮助用户控制管理和简单,方便学习和青睐,同时可以很容易地学习,成为目前比较热门的网络技术。

本文首先介绍了operationprinciple PHP技术、工作流程及其运行环境和编程PHP文档的特点,以及如何处理PHP需求环境好,因为每个人都有一个更好地了解PHP,同时也有利于使用PHP技术。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

*******************实践教学*******************兰州理工大学计算机与通信学院2013年春季学期题目:学生成绩管理系统专业班级:软件工程基地班******学号:********目录一.系统分析与设计 (1)1.1摘要 (1)1.2需求分析 (1)1.3系统功能分析 (2)1.4系统功能模块设计 (2)二.详细设计 (4)2.1数据库设计与实现 (4)2.2设计登录窗口 (6)2.3设计“学生成绩查询系统”模块 (8)2.4管理员窗口模块的制作 (11)三.优缺点分析 (13)3.1优点 (13)3.2缺点 (13)一.系统分析与设计1.1摘要在当今社会,互联网空前的发展,给人们的工作和生活带来了极大的便利和高效。

信息化,电子化已经成为节约运营成本,提高工作效率的首选。

考虑到当前大量企业的人事管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏。

因此根据部分企业提供的需求,设计此企业人事管理系统,以帮助企业达到人事管理办公自动化、节约管理成本、提高企业工作效率的目的。

PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。

PHP安装它可以比 CGI 或者 Perl 更快速的执行动态网页。

用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

PHP具有非常强大的功能,所有的CGI 的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。

本系统是以PHP设计语言和MySQL数据库为工具的综合测评系统,其开发步骤主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

主要实现的功能是实现对学期班级综合测评的一整套电子化操作;主要实现的操作有:班级管理员注册,班级成员互评操作,班级管理员登录管理成绩,综合测评结果查询,账户密码修改。

1.2需求分析近年来,随着中学的办学规模越来越大,在校学生数也日益增多,随之而来的是教务管理工作日趋复杂繁重,要耗费大量人力、物力,已愈来愈成为学校日常管理工作的一个瓶颈。

学生成绩管理是教务、教学管理中一个重要组成部分,也是比较烦琐的工作。

在学生成绩管理事务中,一般有成绩输入:对各年级各班各学期学生的各科成绩进行输入;成绩统计:需要对每个学生的成绩进行处理,例如排名次,成绩汇总,成绩升降;成绩报表:将学生成绩以报表形式输出等等。

每次考试都需要大量的人力、物力,为了减轻中学生成绩管理工作量和实现现代化的科学管理,特设计这个系统。

并根据中学的实际情况,制定以下数据和功能需求。

1.3系统功能分析本阶段就是分析该系统的主要功能以及它所解决的用户面临的问题,最后由用户确认该系统的功能和用处。

(1)、学生信息的输入和存储,包括学号、姓名、专业名、性别、出生日期、总学分和备注等。

(2)、课程信息的输入和存储,包括课程号、课程名、开课时间、学时和学分等。

(3)、对学生信息的修改、增加、删除、修改以及定向的查询等。

(4)、对课程信息的修改、增加、删除、修改以及定向的查询等。

(5)、可以进行用户的添加和存储,包括用户名、密码、用户权限。

(6)、用户输入用户名和密码后系统根据其在用户表注册的权限进入不同的应用系统。

(7)、学生登录时系统根据其用户名(即学号)进入对应的学生成绩查询系统,可以进行本人的所选课程成绩的查询、打印以及所选课程的信息,不同的学生用户进入各自的成绩查询系统避免了能查询其他学生成绩的问题。

(8)、教师登录时系统根据用户名(这里用户名与课程号对应即一名教师任教一门课)进入对应的教师管理系统,可以进行该课程学生成绩的录入、修改及置零。

(9)、学生、教师和管理员的登录密码都可以进行修改(10)、本系统界面色彩跳动不大布局简单整洁。

1.4系统功能模块设计根据上述的分析以及模块化程序设计要求得如图所示的功能模块图。

图 1.4.1 系统功能模块二.详细设计2.1数据库设计与实现数据库结构的好坏直接影响到系统的实现效果和数据操作效率以及能否保证数据的一致性、完整性和安全。

所以数据库在一个信息系统中占有非常重要的地位。

1.数据库设计根据学生成绩管理系统的功能要求,通过分析系统要涉及的相关实体以及要收集、存储和操纵的数据信息,得到如图2.1所示的系统E-R图。

根据系统E-R 图得到以下关系模式。

学生基本信息(学号,姓名,专业名,性别,出生日期,总学分,备注)。

课程(课程号,课程名,开课学期,学时,学分)。

成绩(学号,课程号,成绩,学分)。

教师(教师号,课程号,课程名,姓名,性别,出生日期)为了系统的使用安全,要建立用户管理,而用户使用权限分为学生、教师和管理员三类,因此需要建立一个存储用户信息的关系。

用户(姓名,密码,权限)2.创建数据库在php开发环境中打开数据库画板,然后依次建立以下各表。

1)“学生”表表名:xs主键:xh各列表属性见表2-1。

表2-1 “学生”表的属性列名数据类型宽度空值标识Xh char 6 no 学号Xm char 8 no 姓名Zym char 10 yes 专业名Xb bit no 性别Date date no 出生日期Total tinyint yes 总学分Bz char 20 yes 备注2)“课程”表表名:kc主键:kch各列表属性见表2-2表2-2 “课程”表的属性列名数据类型宽度空值标识Kch char 3 no 课程号Kcm char 16 no 课程名Kkdate tinyint no 开课学期Xsdate tinyint no 学时Xf tinyint yes 学分3)“成绩”表表名:xs_cj主键:xh和kch各列表属性见表2-3表2-3 “成绩”表的属性列名数据类型宽度空值标识Xh char 6 no 学号kch char 3 no 课程号kcm char 10 yes 课程名cj tinyint yes 成绩xf tinyint yes 学分4)“教师”表表名:jiaoshi主键:jsh各列表属性见表2-4表2-4 “教师”表的属性列名数据类型宽度空值标识jsh char 3 no 教师号kch char 3 no 课程号kcm char 16 no 课程名xm char 8 no 姓名xb bit no 性别rq date no 出生日期5)“用户”表表名:dl主键:yhm各列表属性见表2-5表2-5 “用户”表的属性列名数据类型宽度空值标识yhm char 6 no 用户名mm char 6 no 密码qx char 10 no 权限6)“选课”表表名:xskc主键:xh和kch各列表属性见表2-6表2-6 “选课”表的属性列名数据类型宽度空值标识Xh Char 6 No 学号Kch Char 3 N0 课程号kcm char 10 yes 课程名各个表之间通过外键形成如图2.3所示的关联关系。

图2.1.1关联关系2.2设计登录窗口1.连接数据库数据库链接模块主代码://数据库链接"conn.php"<?php$dbcnx = @mysql_connect("localhost", "root", "aaa");//连接MYSQL数据库,使用PHP函数方式,数据库用户名和密码正确if (!$dbcnx){ echo( "<P>无法连接到数据库.</P>" );exit();}mysql_select_db("zhcp");if (!@mysql_select_db("zhcp")){echo( "<P>没有找到对应的数据库</P>" );exit();}mysql_query('set names utf8');>//数据库关闭"clconn.php"<?phpmysql_close(); //记得关闭数据库连接>2.登录窗口设计创建登录窗口w_dl,调节大小,在窗口上放置1个图片(p_1)、3个静态文本(st_1、st_2、st_3)、2个单行编辑器(sle_1、sle_2)、3个单选钮(rb_1、rb_2、rb_3)、2个命令按钮(cb_1、cb_2)。

各个控件大小位置按照图4.1调整图2.2.1<TD>用户名:</TD><TD><INPUT class=textbox id=txtUserName name=txtUserName></TD><TD width=120>&nbsp;</TD></TR><TR height=40><TD>密码:</TD><TD><INPUT class=textbox id=txtUserPassword type=password name=txtUserPassword></TD>2.3设计“学生成绩查询系统”模块1、系统主窗口如图2.3.1图 2.3.12、其对应的选单为图2.3.2图2.3.2(1)“密码修改”对应的代码为open(w_mmxiugai)<td>密码</td><td><input type="text" name="password" value='<?php echo ($row['password']);?>'/></td>“关闭”对应的代码为int retret=MessageBox("提示","确定退出?",exclamation!,YesNo!,2)if ret=1 thenclose(parentwindow)elsereturnend if(2)“所修课程”对应的代码为open(w_kc)close(parentwindow)w_kc.dw_1.settransobject(sqlca)w_kc.dw_1.retrieve(yh)(3)“课程成绩”对应的代码为open(w_xscj)close(parentwindow)w_xscj.dw_1.settransobject(sqlca)w_xscj.dw_1.retrieve(yh)(4)“关于”对应的代码为open(w_zz)注意:这里的w_mmxiugai、w_kc、cw_xscj、w_zz窗口是后面待建的3、密码修改窗口如图2.3.3该窗口被命名为w_mmxiugai(1)【关闭】按钮的为close(parent)图2.3.34、学生所选课程查询窗口如图2.3.4该窗口被命名为w_kc【返回】按钮的clicked事件脚本为open(w_x1)close(parent)图2.3.4 该窗口里的数据窗口控件的对象如图2.3.5图2.3.5 5、学生所选课程成绩查询窗口为图2.3.6图2.3.6该窗口被命名为w_xscj【返回】按钮为open(w_x1)close(parent)其中的数据窗口对象如图2.3.7图2.3.72.4管理员窗口模块的制作该模块采用选项卡的模式进行制作1、选项卡默认界面为密码修改2、课程管理窗口如图2.4.2数据窗口对象如图2.4.1图2.4.1图2.4.2【增加】按钮的代码为$query="insertintot_user(id,password,name,Email)values('$id','$password','$name','$Email')";mysql_query("SET NAMES GBK");if(mysql_query($query)){echo "<script>url='main.php';window.location.href=url;</script> ";}else{echo "保存失败";}【删除】按钮代码为$query = "delete from t_user where id='$id'";mysql_query("SET NAMES GBK");if(mysql_query($query)){echo "<script>url='main.php';window.location.href=url;</script> ";}else{echo "删除失败";}【保存】按钮的代码为dw_1.update()Messagebox(“提示”,”已存入数据库”)3、用户管理窗口如图2.4.4数据窗口对象如图2.4.3图2.4.3图2.4.4三.优缺点分析3.1优点1、该系统最大的优点就是一对一效应不管学生还是教师用自己的帐号和密码登录后只会进入与自己信息相关的窗口,学生只能查看自己的课程和成绩,教师只能看选自己所教授课程的学生的信息以及对其成绩进行相关操作,2、用户登录以及密码修改时如果有操作错误系统会自动提醒用户,比如修改密码时两次新密码输入不一致系统就会提醒。

相关文档
最新文档