php課程設計,成績管理系統(附源碼)

 

寫的比較簡單

下載地址:https://download.csdn.net/download/Huang0903/12011154(新)

 

 

 

 

 

 

 

 

 

 

 

日期:2018.6.10

 

 

 

目錄

摘要... 3

1. 緒論... 4

1.1課題簡介... 4

1.2 系統背景... 4

1.3系統開發運行環境... 5

2 需求分析... 5

2.1系統需求... 5

2.2 功能要求... 6

2.3可行性分析... 7

2.3.1經濟可行性... 7

2.3.1 管理性... 7

2.3.3 技術性... 8

2.4 安全與完整性要求... 8

2.5 數據字典... 8

3.概念結構設計... 10

3.1系統與實體的聯繫... 10

3.2 各個實體 E-R 圖... 10

3.3 E-R圖轉實爲關係模型... 12

5.物理結構設計... 14

51 確定關係模型的存取方法... 14

5.2 數據流圖... 14

6.效果圖... 15

6.1登錄... 15

6.2.學生界面... 16

6.3教師界面... 18

6.4管理員界面... 21

6.5其他... 25

7.主要代碼... 26

8. 總結... 29

 

 

 

 

 

 

 

 

 

 

 

 

 

摘要

      隨着學校向全國及至世界範圍的持續擴張,學生人數的增加,對於學生的信 息管理也越來越複雜,要求也越來越高,因此需要一個全面、詳細的信息管理系統,以便完成對學生信息的管理。無紙化的環境是技術時代的一個夢想,也是許 多學校和公司越來越意識到的一個真實世界。以前是由學生檔案和公告欄來提供 各種信息及通告新的變化,而現在這個繁雜的工作已被網站和內部計算機網絡所取代。使得學生信息的管理更方便、安全。 根據調查得知,現在廣大學生進行信息提交的主要方式是基於文件、表格等 紙介質的手工處理,學生信息管理部門信息處理工作量大,容易出錯,且管理方面因人而異。然而學校網上學生信息管理系統應該覆蓋各個所需功能,使各級管 理人員和廣大教職工在信息系統的輔助下進行工作,提高管理的整體水平。使得 學生信息管理更方便。學生信息管理系統,可以用集中的數據庫將與人力資源管理相關的信息全 面、有機地聯繫起來,有效地減少了信息更新和查找中的重複勞動,保證了信息 的相容性,從而大大地提高了工作效率,還能使原來不可能提供的分析報告成了可能。在採用和實施學生信息管理系統之後,就會將依賴於人的過程改爲依賴於 計算機系統的過程。學校管理人員只要獲取了相應的權限,就可以隨時進入系統, 直接查閱相應的信息。採用和實施學生信息管理系統不僅僅是爲了提高工作效率。爲了除掉手工記錄的低效率工作方式,運用信息化管理,提高工作效率,開 發本系統。 應該看到,在實施學生信息管理系統後,經過整合的、較爲全面、準確、一 致和相容的信息不僅可以讓學校領導對本學校學生資源的現狀有一個比較全面和準確的認識,同時也可以生成綜合的分析報表供學校領導人在決策時參考。

1. 緒論

1.1課題簡介

      隨着時代的發展,成績管理 成了每個教育部門不可或缺的一部分,它的內容對於學校的有效管理顯得尤爲重要,作爲計算機的一部分,用計算機進行成績管理無疑會把這個過程 變得尤爲簡單。 學生管理系統爲學生提供了簡易的操作和方便的查詢,以及更好的被管理。

1.2 系統背景

隨着社會信息量的與日俱增,學校需要有一個學生成績管理系統,以方便對學生的成績 進行有效的管理。學生成績管理系統是一個學校不可缺少的重要部分,它的內容對於學校的決策者和管理者來說都至關重要,所以學生成績管理系統應該爲用戶提供充足的信息和快捷 的查詢手段。當前成教學院沒有一個完善的成績信息管理平臺,計算機使用主要基於 Microsoft Office,不能發揮有效的作用。而且隨着我國教育改革的不斷深入以及自學教育 的不斷擴招,參加考試的人越來越多,考試科目的多樣化,使得成教學院對自學考試成績的管理越趨繁瑣、複雜,工作業務繁雜,工作量大,這種傳統的學生管理模式已經暴露出種種 弊端:難以統一調配和處理,效率極低,缺乏科學性以及合理性。隨着計算機應用的普及與深入,利用計算機能夠對所有自學考試成績進行統一管理,並進行分析,大大減少教學祕書 的工作量,提高工作效率,爲教學辦公帶來了極大的方便。通過操作手冊,使用者可以瞭解本軟件的基本工作原理及使用說明。操作人員只需輸入一些簡單的漢字、數字,就可以存儲、 查找、修改、打印學生成績信息等。本系統開發的總體任務是實現學生成績管理的系統化、規範化、自動化、達到提高學生成績管理效率的目的,本系統本着實用性、通用、開放和安 全的原則,使數據庫開發軟件開發製作,實現了學生信息管理、課程信息管理、學生成績管理、成績查詢等功能。該設計方法易於推廣至其它信息化管理系統的設計,充分利用計算機 作爲輔助工具,實現學生考試成績從傳統的手工管理到計算機管理,對提高管理效率和節約大量的人力、物力有一定的推動作用。本系統一切從實際出發,充分考慮了成績的內部管理、信息交流等方面的複雜需求,實現成績的有效管理,真正爲學生成績管理提供一個電子平臺。合理的數據庫結構設計可以提高數據存儲的效率,保證數據的完整性和一致性。同時,合理 的數據庫結構也有利於程序的實現。

1.3系統開發運行環境

       操作系統:win10

       軟件:AppServ(php+apache+mysql),nginx(代理)

2 需求分析

2.1系統需求

當今社會,計算機的使用已經深入到日常生活和工作的方方面面,它逐漸成 爲人們學習和工作時必不可少的工具。雖然目前爲止已經開發出了成千上萬的軟件系統,但它們並不能滿足用戶的各種特殊需要,因此人們不得不開發屬於自己 的軟件,能夠滿足自己的特殊需求。學生管理系統是教育事業單位必不可少的。 它的內容對學校的管理者來說至關重要,學生成績管理系統應該能夠提供快捷的查詢功能以及能夠及時修改、增添、刪除信息等功能。傳統的人工管理文件檔案 的方式存在很多缺點,例如:效率低、保密性差、另外時間一長,信息量的不斷 擴增,都給查找、更新何維護帶來很大困難。使用計算機對學生成績進行管理,具有手工管理不可比擬的優點。例如:檢索迅速、查找方便、存儲信息量大、保 密性好、及時更新並進行維護等。計算機管理學生成績能夠提高學校的管理效率, 是科學化、正規化管理的重要途徑,型心計算機管理將不斷深入到學校的各項事務的管理當中。

2.2 功能要求

(1)教職工:

對學生成績有一個整體的瞭解,在今後的教學中能有所改進。同時可 以對自己教授的課程進行修改,進一步瞭解學生的個人情況,便於因材施教。當學生的個人信息發生改變時,老師能夠及時進行修改。例如學生轉校、後來轉 到本系、或者畢業生離開學校等,老師能夠根據具體情況對學生信息進行添加、 修改、刪除等。能夠管理課程信息,合理安排老師教授的課程,及時爲學生提供選課信息。老師能夠對課程名、課程編號、學分等進行修改和更新。能夠對學生 成績進行發佈、修改、刪除,清晰地瞭解學生的成績情況,以便做出總結和改進。

(2)學生:

能夠查詢個人的學習成績和總體學生的成績,以便做出新的定位。

成績查詢:成績修改、成績添加、成績刪除等。

課程查詢:課程修改、課程添加、課程刪除等。

學生查詢:學生信息修改、學生信息添加、學生信息刪除等

2.3可行性分析

爲了使系統在學院的管理中發揮更大的作用,實現工作過程的計算機化,提高工作效率 和工作質量,現提出如下的系統開發目標:

      1.提供了成績查詢的平臺,可以用來發布成績

      2.任何學生都能上去查看自己的成績

3.學生可以憑藉自己的學號進行查詢

      4.管理員可以進行數據的添加

可行性研究的目的是用最小的代價在儘可能短的時間內確定問題是否能夠解決。也就是說 可行性研究的目的不是解決問題,而是確定問題是否值得去解,研究在當前的具體條件下,開發新系統是否具備必要的資源和其它條件。

2.3.1經濟可行性

主要從對項目的經濟上進行分析評價,一方面是支出的費用,包括設備購置費、管理 和維護費用、人員工資和培訓費等,另一個是取得的收益。這是個超小型的管理系統,從投入的人力,財力與物力來講是非常之小的,只要一臺電腦,一臺打印機,這個系統就可以搞 起來,考慮到學校裏有電腦,現只要購置一臺打印機就可以了。從節省人力方面,可以讓管理人員從繁與複雜的工作中解脫出來,做更多的工作,可以給教學管理提高一個層次

2.3.1 管理性

        學生成績管理系統是對學生成績進行管理的一個簡單系統,主要又成績的輸入、輸出、 瀏覽、打印、數據備份等組合而成,因此可適用於任何學校用作成績管理。該系統管理方法科學,相應的管理制度成熟,所記錄的原始數據準確,且操作簡單、快速,對管理人員的計算級應用技術要求不高,可被一般管理人員所接受,所以在管理上具備一定的可行性,便與普遍採用

2.3.3 技術性

在開發本應用軟件時,我是按照軟件週期進行開發的。而我所設計的學生成績管理系統 是一個用php和 Mysql 加前端js框架實現的前後端分離開發的應用系統。

2.4 安全與完整性要求

建立數據庫用戶,對其權限進行設置。確定各表主鍵、索引、參照完整性、 用戶定義完整性。

2.5 數據字典

學生表(學號,姓名,性別,系別,學生年齡)

課程表(課程號,課程名,課時,學分)

成績表(課程號,學生號,成績。)

老師表(老師姓名,老師編號,所授課程,聯繫電話)

名字:老師信息 描述:學生成績管理系統中存儲的所有老師的信息 定義:老師信息=老師姓名+所授課程+教師編號+聯繫電話

名字:學生信息

描述:學生成績管理中存儲的所有學生信息

定義:學生信息=學生學號+學生姓名+學生性別+學生系別+學生年齡

位置:存儲 輸出供查詢

 

名字:課程信息

描述:多個必要課程信息組成

定義:課程信息=課程號+課程名+課時+學分

位置:存儲 輸出供查詢 名字:用戶表信息

描述:用戶個人的信息 定義:用戶信息=用戶名

位置:存儲 輸出供查詢

 

名字:學生成績信息

輸入:學生姓名

輸出:相應的學生成績信息

 

名字:查詢信息

描述:用戶提出的具體查詢請求

定義:查詢信息=[課程查詢信息]+[學生查詢信息] 

位置:課程表 學生表 成績表

 

名字:添加信息

輸入:學號、學生姓名、學生性別、系別、學生年齡

輸出:新輸入的學生信息

 

名字:刪除信息

輸入:選中所要刪除的學生信息

輸出:刪除完成系統的實體與聯繫

3.概念結構設計

3.1系統與實體的聯繫

由需求分析的結果可知,本系統設計的實體包括:

(1)學生基本信息:學號,姓名,學院,班級,年齡,性別。(2)課程基本信息:課程名,課程號,學時。

(3)教師基本信息:教師號,教師姓名,職稱,年齡,性別,學院

(4)學院基本信息:學院名、學院號、院長姓名

 這些實體間的聯繫包括:

(1)每位學生可以學習多門課程,每門課程可供多位學生學習。

(2)每門課可以由多個老師教,每個老師可以教多門課程

(3)學生每選一門課就可以得到一個成績,不選此課就不能取得該課程成績

3.2 各個實體E-R 圖

(1)學生表:

                  

(2)教師表

        

 

(3)課程表

                  

(4)成績表

                  

(5)總體實體練習圖

                  

3.3 E-R圖轉實爲關係模型

(1)學生表

 

屬性名

數據描述

 數據類型

是否爲空

 備註

sno 

學號

Char(8)

 不允許爲空 

主鍵

sname 

姓名

Char(10) 

不允許爲空

 

Ssex

性別

Char(2) 

不允許爲空

 

Ssex 

性別

C har(2) 

不允許爲空

 

sbirth 

出生日期

atetime(8) 

  允許爲空

 

class 

所在班級

Char(4) 

不允許爲空

 

type 

 

Char(7) 

允許爲空

 

(2)教師表

 

屬性名

數據描述

數據類型

是否爲空

備註

tno 

教師編號

char(5) 

不允許爲空

主鍵

tname 

姓名

varchar(10) 

不允許爲空

 

depart 

部門

varchar(8) 

不允許爲空

 

Tsex 

性別

char(2) 

不允許爲空

 

Tbirth 

出生日期

datetime , 

允許爲空

 

prof 

職稱

char(6) 

允許爲空

 

(3)課程表

 

屬性名

數據描述

數據類型

是否爲空

備註

cno 

課程號

Char(5) 

不允許爲空

主鍵

 

cname 

課程名稱

varchar(10) 

不允許爲空

tno 

教師編號

char(3) 

不允許爲空

 

(4)成績表

 

屬性名

數據描述

數據類型

是否爲空

備註

sno 

學號

Char(8) 

不允許爲空

主鍵

cno 

課程號

Char(5) 

不允許爲空

主鍵

degree 

成績

Float(8) 

不允許爲空

 

5.物理結構設計

51 確定關係模型的存取方法

在將概念模型轉換成物理模型之後,我們可以對物理模型進行設計,雙擊 物理模型的關係,可以對該關係的名稱、註釋等信息進行查詢。可對該關係的屬性列進行設計,可分別設置其名稱、碼、數據類型以及主碼、是否爲空等。在實 際設計中最常用的存取方法是索引發,使用索引可以大大減少數據的查詢時間, 在建立索引時應遵循:在經常需要搜索的列上建立索引;在主關鍵字上建立 索引;在經常用於連接的列上建立索引,即在外鍵上建立索引;在經常需要根據 範圍進行搜索的列上創建索引,因爲索引已經排序,其指定的範圍是連續的等規則。才能充分利用索引的作用避免因索引引起的負面作用。

5.2 數據流圖

該數據流圖主要體現教職工對學生信息、課程信息和學生成績的管理,然後 存儲的信息作用於查詢系統。在學生能夠操作的只有成績查詢,

如圖所示:

 

功能流程圖

6.效果圖

6.1登錄

(1)學生

 

      

 

(2)教師

 

(3)管理員

 

6.2.學生界面

(1)首頁            

 

 

 

 

 

 

 

(2)個人信息

      

(3)成績查詢

       默認當前學期:

 

      

 

 

 

選擇學期:

      

(4)本學期課表

 

6.3教師界面

       (1)歡迎界面

                    

(2)查詢教授的課程

 

(3)錄入成績

 

 

 

 

(4)已錄警告

      

(5)錄入

 

(6)選擇查看教授的課程已錄入的成績

 

6.4管理員界面

         (1)學生管理界面

              查詢所有:

 

分類模糊查詢:

 

 

 

 

添加學生:

 

編輯信息:

 

              刪除學生:

 

(2)教師管理

              查詢所有:

 

 

分類模糊查詢:

 

 

 

 

 

 

添加教師:

 

 

編輯信息:

 

 

              刪除學生:

 

(3)課程管理

 

(4)排課管理

      

                    

6.5其他

         退出登錄:

 

 

修改密碼:

 

7.主要代碼

       1.database.php

              <?php

return [

    // 數據庫類型

    'type'            => 'mysql',

    // 服務器地址

    'hostname'        => '127.0.0.1',

    // 數據庫名

    'database'        => 'grademanager',

    // 用戶名

    'username'        => 'root',

    // 密碼

    'password'        => '123456',

    // 端口

    'hostport'        => '3306',

    // 連接dsn

    'dsn'             => '',

    // 數據庫連接參數

    'params'          => [],

    // 數據庫編碼默認採用utf8

    'charset'         => 'utf8',

    // 數據庫表前綴

    'prefix'          => '',

    // 數據庫調試模式

    'debug'           => true,

    // 數據庫部署方式:0 集中式(單一服務器),1 分佈式(主從服務器)

    'deploy'          => 0,

    // 數據庫讀寫是否分離 主從式有效

    'rw_separate'     => false,

    // 讀寫分離後 主服務器數量

    'master_num'      => 1,

    // 指定從服務器序號

    'slave_no'        => '',

    // 是否嚴格檢查字段是否存在

    'fields_strict'   => true,

    // 數據集返回類型

    'resultset_type'  => 'array',

    // 自動寫入時間戳字段

    'auto_timestamp'  => false,

    // 時間字段取出後的默認時間格式

    'datetime_format' => 'Y-m-d H:i:s',

    // 是否需要進行SQL性能分析

    'sql_explain'     => false,

];

2.登錄代碼

// 登錄

              public function login() {

                     $t =model('CommonResData');

                     if (input('post.username')&&  input('post.password')) {

                            $username =input('post.username');

                            $password =input('post.password');

                            $identity =input('post.identity');

                            if ($identity == 0){

                                          $t->data= Db::query("select admin_name from admin where admin_id=$username andadmin_password='$password'");

                                   if($t->data) {

                                                 $t->code= 0;

                                                 $t->data= $t->data[0]['admin_name'];

                                                        //return JSON($t->resData($t->code,$t->data));

                                   } else {

                                                 $t->code= 3;

                                                 $t->data= '沒有該用戶或密碼錯誤';

                                   }

                            } else if ($identity== 1) {

                                   $t->data =Db::query("select teacher_name from teacher where teacher_id=$username andteacher_password='$password'");

                                   if($t->data) {

                                                 $t->code= 0;

                                                 $t->data= $t->data[0]['teacher_name'];

                                                        //return JSON($t->resData($t->code,$t->data));

                                   } else {

                                                 $t->code= 3;

                                                 $t->data= '沒有該用戶或密碼錯誤';

                                   }

                            } else if ($identity== 2) {

                                   $t->data =Db::query("select student_name from student where student_id = $usernameand student_password='$password'");

                                   if($t->data) {

                                                 $t->code= 0;

                                                 $t->data= $t->data[0]['student_name'];

                                   } else {

                                                 $t->code= 3;

                                                 $t->data= '沒有該用戶或密碼錯誤';

                                   }

                            } else {

                                          $t->code= 2;

                                          $t->data= '登錄失敗';

                            }

                                   Session::set('islogin',$username);

                                   Session::set('identity',$identity);

                 returnJSON($t->resData($t->code,$t->data)); 

                     } else {

                                   $t->code =2;

                                   $t->data ="用戶名密碼不能爲空";

                 returnJSON($t->resData($t->code,$t->data));

                     }

}

 

 

 

 

 

 

 

 

 

 

 

3.判斷是否登錄

        public function isLogin()

    {

 

        $isLogin = Session::get('islogin');

        $t = model('CommonResData');

        if (!$isLogin) {

            $t->code = 1;

            $t->data = '未登錄';

            return;

        } else {

            $t->code = 0;

            session('islogin', $isLogin);

        }

    }

8. 總結

在此次的學生成績管理系統程序設計的過程中,我充分認識到......

 


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章