基于php的成绩管理设计(含源文件)
歡迎添加微信互相交流學(xué)習(xí)哦!
項目源碼:https://gitee.com/oklongmm/biye
?
1、開發(fā)背景
90年代中期,由于Internet 的迅速普及,使Intranet成為Internet技術(shù)在企業(yè)管理信息系統(tǒng)中的應(yīng)用和延伸,形成了集計算機,計算機網(wǎng)絡(luò)、數(shù)據(jù)庫、分布式計算等于一體的信息技術(shù)綜合體,它打破了時間和地域的界限,使信息交流變得快捷、準(zhǔn)確,為建立現(xiàn)代企業(yè)管理信息系統(tǒng)提供了充足的條件。企業(yè)信息管理系統(tǒng)在此基礎(chǔ)上延伸、擴展,使之上下、內(nèi)外全面貫通。隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)(客戶機和服務(wù)器結(jié)構(gòu))的一種變化或者改進的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),一部分事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn),形成所謂3-tier結(jié)構(gòu)。B/S結(jié)構(gòu)(瀏覽器/服務(wù)器模式),主要是利用了不斷成熟的WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種Script語言(VBScript、JavaScript…)和ActiveX技術(shù),用通用瀏覽器就實現(xiàn)了原來需要復(fù)雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。隨著Windows 98/Windows 2000將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。顯然B/S結(jié)構(gòu)應(yīng)用程序相對于傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用程序?qū)⑹蔷薮蟮倪M步。
2、系統(tǒng)描述
經(jīng)過調(diào)研及分析討論,學(xué)生成績管理系統(tǒng)主要完成以下功能:
(1)學(xué)生個人信息維護:主要是完成學(xué)生個人信息的修改,學(xué)生用戶只能對自己的信息操作。
(2)學(xué)生成績檢索:主要是完成學(xué)生個人成績的查詢,學(xué)生用戶只能對自己的成績進行檢索。
(3)老師個人信息維護:主要是完成老師個人信息的修改,老師用戶只能對自己的信息操作。
(4)學(xué)生成績維護: 主要是完成老師對任課課程的學(xué)生成績進行檢索、添加、修改,老師用戶只能對自己任課課程的成績進行操作。
3、數(shù)據(jù)分析
3.1、數(shù)據(jù)流圖
通過需求分析,得出學(xué)生成績管理系統(tǒng)的教師業(yè)務(wù)處理數(shù)據(jù)流如圖1所示。
?
圖1 教師業(yè)務(wù)數(shù)據(jù)流圖
3.2、數(shù)據(jù)字典
(1)數(shù)據(jù)流的描述
數(shù)據(jù)流編號: D01
數(shù)據(jù)流名稱: 用戶名和密碼
? ? ? 簡述:教師輸入用戶名和密碼驗證
數(shù)據(jù)流來源:教師
數(shù)據(jù)流去向:P01教師信息判斷
數(shù)據(jù)流組成:用戶名和密碼
數(shù)據(jù)流量:50/天
高峰流量:50/天
?? ?
(2)處理邏輯的描述?
處理邏輯編號:P01
處理邏輯名稱:教師登錄權(quán)限判斷
? ? ? ? 簡述:判斷教師登錄權(quán)限的合法性
輸入的數(shù)據(jù)流:教師的用戶名和密碼
處理描述: 根據(jù)教師提供的同戶名和密碼,驗證教師信息,驗證通過則進入主頁面,驗證不通過則返回給教師信息指明為非法用戶。
處理邏輯編號:P02
處理邏輯名稱:教師個人信息查詢
? ? ? ? 簡述:查詢并顯示教師個人基本信息?
處理描述:根據(jù)cookies傳出的教師ID在數(shù)據(jù)庫中查找出該教師的個人基本信息,打印到該頁面。
處理邏輯編號:P03
處理邏輯名稱:教師任課課程學(xué)生成績查詢
? ? ? ? 簡述:查詢并顯示教師任課課程的學(xué)生成績?
處理描述:根據(jù)cookies傳出的教師ID,然后再在數(shù)據(jù)庫中跨表查詢出該教師的任課科目的所有學(xué)生成績,打印到該頁面。
處理邏輯編號:P04
處理邏輯名稱:驗證用戶當(dāng)前密碼,提供修改密碼權(quán)限
? ? ? ? 簡述:教師可以通過該頁面修改自己的賬號的登錄密碼。
處理描述:從數(shù)據(jù)庫中查詢出該教師的當(dāng)前密碼并比較輸入的當(dāng)前密碼,比較兩次輸入的新密碼。
?? ?處理邏輯編號:P05
處理邏輯名稱:教師修改個人信息
? ? ? ? 簡述:教師修改個人的基本信息?
處理描述:根據(jù)cookies傳出的教師ID在數(shù)據(jù)庫中查找出該教師的個人基本信息,打印到該頁面,同時提供了幾項可以修改的選項,教師可以并保持,正確提交后,將修改的信息提交到數(shù)據(jù)庫中。
處理邏輯編號:P06
處理邏輯名稱:錄入學(xué)生成績
? ? ? ? 簡述:錄入該教師任課課程的學(xué)生成績?
處理描述:從數(shù)據(jù)庫中查出該教師任課的課程,并由學(xué)生的姓名和id確定唯一學(xué)生,并錄入學(xué)生的考試成績,保存到數(shù)據(jù)庫中。
處理邏輯編號:P07
處理邏輯名稱:修改該教師任課課程的學(xué)生成績
? ? ? ? 簡述:查詢并顯示學(xué)生的成績,提供修改權(quán)限?
處理描述:查詢出已經(jīng)錄入成績的學(xué)生的成績,允許教師修改學(xué)生的成績,提交后保存到數(shù)據(jù)庫。
處理邏輯編號:P08
處理邏輯名稱:修改教師用戶登錄密碼
? ? ? ? 簡述:驗證教師用戶當(dāng)前密碼,提供修改密碼的權(quán)限
處理描述:驗證當(dāng)前密碼和新密碼的合法性,合法則提交到數(shù)據(jù)庫,非法則跳到p02。
?? ?處理邏輯編號:P09
處理邏輯名稱:退出系統(tǒng)
? ? ? ? 簡述:教師用戶退出系統(tǒng)?
處理描述:教師用戶安全退出系統(tǒng),跳轉(zhuǎn)到登錄頁面。
(3)數(shù)據(jù)存儲的描述
數(shù)據(jù)存儲編號:F01
數(shù)據(jù)存儲名稱:教師用戶驗證信息
? ? ? ? 簡述:教師用戶的用戶名和密碼
?? ??? ?數(shù)據(jù)存儲組成:用戶名+用戶類型+密碼+用戶ID
關(guān)鍵字:用戶ID
相關(guān)聯(lián)的處理:P01、P04
數(shù)據(jù)存儲編號:F02
數(shù)據(jù)存儲名稱:教師個人基本信息
? ? ? ? 簡述:查詢出教師用戶的基本個人信息
數(shù)據(jù)存儲組成:教師姓名+年齡+教師ID+教師密碼 +教師電話號碼+教師性別+教師照片+教師職稱
關(guān)鍵字:教師ID
相關(guān)聯(lián)的處理:P02、P05
?? ??? ??? ?
數(shù)據(jù)存儲編號:F03
數(shù)據(jù)存儲名稱:讀取學(xué)生成績
? ? ? ? 簡述:由學(xué)號查詢該學(xué)生的學(xué)生成績
數(shù)據(jù)存儲組成: 學(xué)生id+學(xué)生姓名+課程名稱+學(xué)生成績+授課老師
關(guān)鍵字:課程ID+學(xué)生ID
相關(guān)聯(lián)的處理:P03
?? ??? ?
數(shù)據(jù)存儲編號:F04
數(shù)據(jù)存儲名稱:存儲修改的信息
? ? ? ? 簡述:存儲修改的信息
數(shù)據(jù)存儲組成: 包括學(xué)生成績塊+用戶密碼塊+用戶個人信息塊
關(guān)鍵字:教師ID+學(xué)生ID+課程ID
相關(guān)聯(lián)的處理:P04、P05、P06、P07、P08
(4)外部實體的描述
外部實體編號:S01
外部實體名稱:教師用戶
簡 ? ? ? ?述:登錄系統(tǒng)的教師用戶
輸入的數(shù)據(jù)流:D002
輸出的數(shù)據(jù)流:D001
4、概念模型設(shè)計
4.1E-R圖
?
圖2 系統(tǒng)E-R圖
5. 邏輯模型設(shè)計及優(yōu)化
5.1數(shù)據(jù)庫表:
表1 學(xué)生個人信息表(student_info表)
字段名?? ?數(shù)據(jù)類型?? ?長度?? ?備注
stu_id?? ?mediumint?? ?8?? ?primary key
stu_name?? ?varchar?? ?20?? ?
stu_person_id?? ?varchar?? ?30?? ?
stu_password?? ?varchar?? ?20?? ?
stu_age?? ?tinyint?? ?3?? ?
stu_sex?? ?varchar?? ?1?? ?
stu_tel?? ?varchar?? ?30?? ?
stu_major?? ?varchar?? ?20?? ?
stu_grade?? ?varchar?? ?20?? ?
stu_class?? ?varchar?? ?20?? ?
stu_photo?? ?varchar?? ?40?? ?
stu_entrance?? ?date?? ??? ?
表2學(xué)生成績表(stu_score表)
字段名?? ?數(shù)據(jù)類型?? ?長度?? ?備注
stud_id?? ?mediumint?? ?8?? ?primary key
course_id?? ?mediumint?? ?8?? ?primary key
score?? ?tinyint?? ?3?? ?
表3課程表(course表)
字段名?? ?數(shù)據(jù)類型?? ?長度?? ?備注
course_id?? ?mediumint?? ?8?? ?primary key
course_name?? ?Varchar?? ?20?? ?
teacher_id?? ?mediumint?? ?8?? ?primary key
表4教師個人信息表(teacher_info表)
字段名?? ?數(shù)據(jù)類型?? ?長度?? ?備注
teacher_id?? ?mediumint?? ?8?? ?primary key
teacher_name?? ?varchar?? ?20?? ?
teacher_password?? ?varchar?? ?20?? ?
course_id?? ?mediumint?? ?8?? ?
teacher_tel?? ?varchar?? ?20?? ?
professional?? ?varchar?? ?20?? ?
teacher_age?? ?tinyint?? ?3?? ?
teacher_sex?? ?varchar?? ?1?? ?
teacher_photo?? ?varchar2?? ?20?? ?
表5課程表(course_info表)
字段名?? ?數(shù)據(jù)類型?? ?長度?? ?備注
course_id?? ?mediumint?? ?8?? ?primary key
course_name?? ?varchar?? ?20?? ?
6、應(yīng)用程序設(shè)計
?
圖3系統(tǒng)登錄界面
?
圖4教師個人信息頁面
?
圖5修改個人信息頁面
?
圖6查看學(xué)生成績頁面
?
圖7錄入學(xué)生成績頁面
?
圖8修改學(xué)生成績頁面
?
圖9修改個人密碼頁面
7、課程設(shè)計心得體會
本次數(shù)據(jù)庫課程設(shè)計收獲很大,當(dāng)然也花了好多的心思和時間,首先,我們?yōu)閳F隊合作,共同開發(fā)這個項目,團隊意識真的很重要,我們就在團隊合作上出了些小問題,經(jīng)過交流得到了解決,問題導(dǎo)致了我們的項目完成時間的推遲,這讓我們意識到團隊的合作是很不容易的,首先是對項目的認識必須統(tǒng)一,當(dāng)我們對項目的需求沒有統(tǒng)一理解時,這將為失敗埋下伏筆,這樣注定失敗,至少是在代碼組合時無法兼容,更嚴(yán)重可能會要全部返工。團隊合作的第二個重點是:合理分工,合理的分工能讓項目完成的更快更好,合作更加的愉快,不合理的分工會導(dǎo)致大家的心態(tài)不一,出現(xiàn)分歧,出現(xiàn)問題,出了問題就無法繼續(xù)項目的開發(fā)了。我們本次分工上也出現(xiàn)了一些問題,主要原因是團隊每個人技術(shù)特長不一,最后還是進行了合理的安排。完成了項目的基本功能。
在實際開發(fā)的過程中給了我很多的實踐經(jīng)驗,課程設(shè)計跟平時的理論課程有很大的區(qū)別,就是動手能力要求高,同時也提高我們的動手能力,課堂上的理論,我們通過項目得到了實際的應(yīng)用。當(dāng)然也發(fā)現(xiàn)了很多自己以前未能發(fā)現(xiàn)的知識上的不知,實踐是檢驗真理的唯一標(biāo)準(zhǔn),也是檢驗自己知識掌握程度的機會,在動手編碼的過程中,我發(fā)現(xiàn)了很多數(shù)據(jù)庫知識上的缺陷,也發(fā)現(xiàn)了自己編碼的不良之處,通過和同學(xué)老師的交流得到了改正,并收獲了很多的實踐經(jīng)驗。
參考文獻
[1] 王珊 薩師煊 .數(shù)據(jù)庫系統(tǒng)概論(第4版).高等教育出版社2006
[2] 卓越科技 .零起點網(wǎng)頁制作培訓(xùn)教程.電子工業(yè)出版社.2009
附錄:
PHP數(shù)據(jù)庫連接源代碼
package com.hnwl.util;
?? ? ? //設(shè)置字符編碼
? ? header('Content-Type:text/html;charset=utf-8');=
?? ?//轉(zhuǎn)換硬路徑常量
?? ?define('ROOT_PATH',substr(dirname(__FILE__),0,-8));
?? ?//創(chuàng)建一個自動轉(zhuǎn)義的狀態(tài)常量?? ?
?? ?//拒絕php低版本
?? ?if(PHP_VERSION<'4.1.0')
?? ?exit('PHP Version is to Low!');
?? ?//引入函數(shù)庫
?? ?require ROOT_PATH.'includes/global.func.php';
?? ?require ROOT_PATH.'includes/mysql.func.php';
?? ?//數(shù)據(jù)庫連接
?? ? ? ?define("DB_USER","root");
? ? ? ? define("DB_PWD","root");
? ? ? ? define("DB_HOST","localhost");
? ? ? ? define("DB_NAME","stu_grade_info");
?//初始化數(shù)據(jù)庫 用 函數(shù)實現(xiàn)
?? ? ? ?_connect();//數(shù)據(jù)庫連接
?? ? ? ?_select_db();//選擇指定的數(shù)據(jù)庫
?? ? ? ?_set_names(); ?//設(shè)置字符集
?? ??? ?
PHP前臺頁面源代碼(登陸頁部分)
<?php
require dirname(__FILE__).'/includes/common.inc.php';//轉(zhuǎn)換成硬路徑速度快
if($_GET['action']=='login'){
?? ? ?include ROOT_PATH.'includes/login.func.php';
? ? ? ? $_clean=array();
? ? ? ? $_clean['user_id']=_check_username($_POST['user_id'],2,20);
? ? ? ? $_clean['password']=_check_password($_POST['password'],3);
? ? ? ? $_clean['level']=$_POST['level'];
? ? ? ? $_clean=_mysql_string($_clean);
? ? ? ??
?? ?if($_clean['level']==1){
?? ??? ?//學(xué)生
?? ??? ?if(!!$_rows=_fetch_array("select stu_id,stu_name from stu_info where stu_id='{$_clean['user_id']}' and stu_password='{$_clean['password']}' ?limit 1")){
?? ??? ??? ? _setcookies($_rows['stu_id'],$_clean['level']);
?? ? ? ? ? ?_close();//關(guān)閉數(shù)據(jù)庫
?? ? ? ? ? ?_location(null,'manage.php');
?? ??? ?}else{
?? ??? ??? ?_alert_back('用戶名或密碼不正確!');
?? ??? ?}
?? ?}else if($_clean['level']==2){
?? ??? ?//教師
?? ? ? if(!!$_rows=_fetch_array("select teacher_id,teacher_name from teacher_info where teacher_id='{$_clean['user_id']}' and teacher_password='{$_clean['password']}' ?limit 1")){
? ? ? ? ? ? ?_setcookies($_rows['teacher_id'],$_clean['level']);
? ? ? ? ? ? _close();//關(guān)閉數(shù)據(jù)庫
? ? ? ? ? ? _location(null,'manage.php');
? ? ? ? }else{
? ? ? ? ?? ?_alert_back('用戶名或密碼不正確!');
? ? ? ? }
?? ?}else{
?? ??? ?_alert_back('非法操作!');
?? ?}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>成績信息管理系統(tǒng)</title>
<link rel="stylesheet" type="text/css" href="style/basic.css"/>
<link rel="stylesheet" type="text/css" href="style/index.css"/>
</head>
<body>
<div id="main">
? ? <h2 class="top">您好,歡迎登陸學(xué)生成績信息管理系統(tǒng)!</h2>
? ??
? ? <div id="login">
? ? ? ? <p class="header">學(xué)生成績信息管理系統(tǒng)</p>
? ? ? ? <img src="images/logo.png"/>
? ? ? ? <form action="index.php?action=login" method="post">
?? ? ? ? ? ?<dl>
?? ??? ? ? ? ? ?<dd> 用 戶 ID:<input type="text" ?name="user_id" /></dd>
?? ??? ? ? ? ? <dd>密 碼:<input type="password" ?name="password" /></dd>
?? ??? ? ? ? ? <dd>身份登陸:<input type="radio" name="level" value="1" checked="checked" class="radio"/>學(xué)生 <input type="radio" name="level" class="radio" value="2" />教師 </dd>
?? ??? ? ? ? ? <dd><input type="submit" ?name="submit" value="登陸" class="submit" /> <input type="reset" ?name="reset" value="重置" class="reset"/></dd>
?? ? ? ? ? ?</dl>
? ? ? ? </form>
? ? </div>
??
</div>
? ?<div id="footer">
? ? ? ? <p>版權(quán)所有 翻版必究</p>
? ? ? ? <p>本程序由<span>再飄一會兒</span>提供 源代碼可以任意修改或發(fā)布(c) 429354764@qq.com </p>
? ? </div>
</body>
</html>
總結(jié)
以上是生活随笔為你收集整理的基于php的成绩管理设计(含源文件)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab fftshift_MATL
- 下一篇: 基于java教学管理系统设计(含源文件)