基於Qt的高考志願系統填報查詢的設計與實現
摘 要
在當今社會教育的迅速發展下,高考人數的規模和增長速度也是空前的。高考已經變成了家長和社會高度關注的事情,但是高考只是一個開始,高考結束后的志願填報是每一個家長和學生非常難抉擇的事情,學生第一次面臨之自己的職業選擇,家長也努力着規划者孩子的未來。
本文首先對基於Qt的高考志願系統的技術選型進行介紹,然后分型系統技術、經濟和社會的可行性,然后根據需求分析的實際要求實現基於Qt的高考志願系統。基於Qt的高考志願系統主要有用戶和管理員兩個角色,管理員的功能主要有管理員登陸、錄入相關學校成績、錄入相關學校的信息、用戶管理等,用戶的主要功能有用戶登錄、查詢學校近幾年分數線並展示曲線圖、根絕成績篩選學校、查看一些學校的簡介。
關鍵字:Qt,高考,志願填報,Java,Spring Boot
Design and Implementation of Qt-based College Entrance Examination Application Inquiry System
Abstract
With the rapid development of social education, the scale and growth rate of college entrance examination are unprecedented. College entrance examination has become a matter of great concern to parents and society, but the college entrance examination is only the beginning. After the college entrance examination, voluntary filling is a very difficult matter for every parent and student. For the first time, students are faced with their own career choices, and parents also strive to make efforts to the future of planners and children.
This paper first introduces the technology selection of the volunteer system of college entrance examination based on QT, then divides the system into technology, economy and social feasibility, and then realizes the volunteer system based on QT according to the actual requirements of demand analysis. The volunteer system of college entrance examination based on QT mainly has two roles: user and administrator. The functions of administrators are login, entry of relevant school scores, information of relevant schools, user management, etc. the main functions of users include user login, query the school's recent years' dividing lines and display curve, filter schools through root results, and view some schools' brief introduction.
Key Words:Qt, College entrance examination , Voluntary filling , Java , Spring boot
目 錄
摘 要.......................................................... I
Abstract........................................................... II
引 言........................................................... 1
1.緒論............................................................. 1
1.1 研究的目的及其意義.......................................... 1
1.2 本文的系統結構.............................................. 1
2.系統需求分析..................................................... 2
2.1 可行性分析.................................................. 2
2.1.1經濟可行性............................................. 2
2.1.2技術可行性............................................. 2
2.1.3 法律可行性............................................ 2
2.2需求分析.................................................... 3
2.2.1 系統用戶角色分析...................................... 3
2.2.2 系統的功能性需求分析.................................. 3
3.總體設計......................................................... 3
3.1 系統的功能架構設計.......................................... 3
3.2 系統主要功能設計及介紹...................................... 4
3.3 系統數據庫設計.............................................. 5
3.3.1 數據庫的設計原則...................................... 5
3.3.2 數據庫概要設計........................................ 5
4.詳細設計及實現................................................... 6
4.1 開發工具與平台.............................................. 6
4.2 數據庫的實現................................................ 6
4.3 主要功能的實現............................................. 10
4.3.1 用戶注冊............................................. 10
4.3.2 用戶登錄............................................. 11
4.3.3 管理員進行用戶管理................................... 12
4.3.4 學校標簽管理......................................... 12
4.3.5 學校信息管理......................................... 13
4.3.6 學生查詢分數線信息................................... 15
5 .系統的測試..................................................... 16
5.1 系統測試的目的............................................. 16
5.2 測試的方法................................................. 16
5.3 系統的功能性測試........................................... 16
結 論......................................................... 19
參考文獻.......................................................... 20
致 謝......................................................... 21
引 言
為了更好地可以選擇一個令人滿意的院校和技術專業,考生和其父母都是會向教師或者相關教育雲平台咨詢高考志願填報有關的一些難題,可是,這總是會耗費很多的精力,大多數情況下也抓不住問題的重點,因而,設計一個有關高考志願填報分析的教育網站系統顯得尤為關鍵和重要,它不僅可以協助考生對自身合適的學校和技術專業展開評定分析,還能為考生提出具有參考性的建議,為家長和考生的選擇提供便捷,解決選擇難,報考難的問題。
1緒論
1.1 研究的目的及其意義
在當今社會教育的迅速發展下,高考人數的規模和增長速度也是空前的。高考已經變成了家長和社會高度關注的事情,但是高考只是一個開始,高考結束后的志願填報是每一個家長和學生非常難抉擇的事情,學生第一次面臨之自己的職業選擇,家長也努力着規划者孩子的未來。可是高考的填報是一個繁雜的過程,他需要通過考生的考試成績,喜好,理想,本人家庭經濟情況等多方面原因來對院校和專業進行選擇。
1.2 本文的系統結構
論文從五個章節進行論述,每個章節的內容概括如下:
第一章:緒論。本章節主要說明了本次選題所研究的目的和意義,並對本文的系統結構進行了簡要描述。
第二章:可行性分析與需求分析。本章節主要從多個角度對形同是否可行進行了詳細的分析和闡述。
第三章:總體設計。本章節主要是從系統的軟件架構、主要的功能設計以及數據庫的邏輯設計和概要設計上開展的。
第四章:系統的實現。本章節主要從系統的實現工具和功能模塊上進行了說明。
第五章:系統的測試。本章節主要分析了系統測試的方式方法,並使用適合本系統的方式方法來書寫測試用例進而進行系統的相關測試。
2系統需求分析
2.1 可行性分析
一個軟件好不好,可行性分析十分重要。可行性分析是要決定軟件“做,還是不做”。可行性分析的四大要素分別是經濟性、技術、社會環境和人力。做可行性分析不能以偏概全,也不能所有的事都進行疊加,因為可行性分析必須為決策提供有價值的證據。所以,可行性分析是十分重要的。
2.1.1經濟可行性
“基於Qt的高考志願系統的設計與實現”,服務器端使用的是IntelliJ IDEA Community Edition 版本,這個版本使IntelliJ IDEA的社區版本擁有了IntelliJ IDEA的絕大部分功能,客戶端的開發工具使用的是Visual Studio Code,數據庫軟件使用的MySQL,MySQL是當前使用最為廣泛的開源數據庫。所以,在對本系統開發的過程中,其開發成本主要集中在后期對系統的維護以及對該應用程序的推廣上。
2.1.2技術可行性
微軟公司的Visual Studio Code和Jetbrains公司的IntelliJ IDEA軟件,都是日常開發過程中使用比較多的工具。前者比較輕量,本質上是一個文本編輯器,配合開源社區的各種插件也能變得十分強大;后者功能大而全,Java開發者想要的各種功能都有,除此之外各種插件也是一應俱全,是一個現階段來說比較理想的Java開發工具。
MySQL是關系數據庫,是最深得大家喜愛的開源數據庫,很多相關企業都使用MySQL作為數據庫。它使用C和C++編寫,支持各種操作系統,為多種編程語言都提供了API,是一個比較理想的數據庫系統。
2.1.3 法律可行性
該系統的開發軟件中JetBrains IntelliJ IDEA Community、Microsoft Visual Studio Code、Qt Creator均使用了社區開源版本,不會存在法律版權糾紛。軟件的開發過程中使用的其他商業軟件也均為已授權或付費版。
2.2需求分析
2.2.1 系統用戶角色分析
本系統的用戶角色主要有兩個,分為管理員以及用戶。管理員是系統開發階段指定生成的用戶名不可更改,但是可以自己修改密碼,管理員擁有系統的做高權限,主要是維護系統的信息流。用戶是一個虛擬的賬號,通過注冊取得,用戶除了個人信息外還具有系統其他數據的查詢功能。
2.2.2 系統的功能性需求分析
本系統主要就是對高校的基本型信息和錄取分數線的信息進行了管理,相當於一個管理后台和一個展示前台。所以針對管理后台需要的功能有登錄、注銷、密碼修改、學校基本信息管理、學校專業信息管理、學校專業分數線管理、用戶管理等。針對展示前台的主要功能有:注冊、登錄、注銷、主界面顯示、學校基本信息查詢功能、分數查詢、專業檢索等。
3總體設計
3.1 系統的功能架構設計
本系統的管理員的后台功能有:登錄、注銷、修改密碼、學校基本信息管理、學校專業信息管理、學校專業分數線管理、用戶管理等幾大模塊。用戶的主要功能有:用戶注冊、用戶登錄,用戶注銷登錄,主界面顯示功能,學校基本信息查詢功能,分數查詢,專業檢索幾大功能模塊
圖1 功能架構圖
Fig.1 Functional architecture diagram
3.2 系統主要功能設計及介紹
學校管理功能:管理員登錄到系統后台可以選擇學校管理功能模塊,該模塊下可以錄入一個學校的基本信息,例如學校名稱、創辦時間、學校官網、師資力量、院系專業、學校類別、學校性質等等一系列數據。也可以修改以前錄入的數據,還可以刪除不需要的學校及其信息。
分數線管理功能:管理員登錄到系統后台可以選擇分數線管理功能模塊,該模塊下可以將學校相關的分數像錄入到系統中,會分專業(可選),分年份的錄入系統。
系統賬戶的登錄功能:用戶使用其賬號密碼登錄,當密碼不正確或者賬號密碼不匹配的時候會給出相應的提示。
查詢各學校的歷年分數線功能:學校的名稱由用戶在搜索框輸入后,可以獲取到該學校的最近幾年來的分數線情況,考試可以輸入自己的成績,然后系統篩選出符合分數線的學校的信息。
在本系統也可以查看收錄學校的一些學校相關信息,例如學校歷史、學校類型、是否有重點實驗室等等。
用戶信息管理界面。在這個界面用戶可以修改自己的用戶密碼等信息。
3.3 系統數據庫設計
3.3.1 數據庫的設計原則
在完成了可行性分析后,功能設計就可以往下進行了。而功能設計又都會涉及到數據流的處理。因此在整個功能設計的過程中,數據庫設計起到了至關重要的作用,其質量也影響着軟件最終的質量。所以數據庫設計的規范性就是開發人員比較關心的內容,通常在數據庫設計的過程中會有以下幾個原則:
一個項目一個數據庫,數據庫名稱使用小寫命名;
數據表名稱使用名詞或動賓短語,必須填寫描述信息;
字段命名使用完整名稱,不用縮寫;
使用的字符集盡量是UTF-8或者UTF-8MB4,數據引擎盡量使用InnoDB;
多個單詞下划線分隔。
3.3.2 數據庫概要設計
本系統的數據模型采用E-R圖,即實體聯系圖這種簡單明了的表達方式對實體進行描述,E-R圖比較接近人類的思維模式,而且很容易通過E-R圖將設計思想轉換為實際數據庫的數據模型。根據該系統可進行的相關操作過程提煉出以下實體:
圖2 數據庫ER圖
Fig.2 Database ER diagram
4詳細設計及實現
4.1 開發工具與平台
系統的后端開發采用由總部位於捷克共和國的首都布拉格的JetBrains公司開發的IntelliJ IDEA軟件作為開發的集成環境,這個工具的功能多而且強大,在計算機行業Java開發工具中獲得很好的評價。
IDEA具有智能代碼自動提示功能,可以減少程序員的工作,諸如智能提取、豐富的導航模式、編碼輔助和智能編輯等22種特色功能,在代碼調試方面表現的尤為突出,它可以對很多Java相關技術進行調試。
4.2 數據庫的實現
數據庫主要是采用了MySQL數據庫,版本為5.7.數據庫的存儲引擎選擇了InnoDB,因為InnoDB存儲引擎具有外鍵約束的功能。為了數據庫能夠存儲更廣泛的字符,數據庫的字符集使用了utf8mb4的編碼格式。整體數據庫中的表實現,如下1到6所示:
(1)用戶表
(2)角色表
(3)權限資源表
(4)學校類型表
(5)學校基本信息表
(6)學校分數線表
4.3 主要功能的實現
4.3.1 用戶注冊
用戶來到注冊頁面,會提示是否進行注冊。若用戶選擇否,則進入登錄流程;若用戶選擇是,則進入注冊過程,會要求用戶輸入賬號和密碼等相關信息,相關信息會在系統內部進行驗證。如果信息不符合要求,填入的信息將自動清空,並向用戶提示錯誤;如果信息符合要求,則注冊成功,流程結束。注冊的整體流程如圖3所示。
圖3 注冊流程圖
Fig.3 Registration flow chart
圖4 注冊界面
Fig.4 Registration interface
4.3.2 用戶登錄
用戶進入到登錄頁面,如果沒有賬號和密碼,可以進入到注冊制流程進行注冊,如果已有賬號和密碼,在登錄頁面上,如果輸入用戶名和密碼並單擊“登錄”按鈕以在后台發送數據,則將后台帳戶和密碼與數據庫進行比較,如果帳戶和密碼正確,就會顯示登錄成功,如果帳戶和密碼不正確,將顯示錯誤。 用戶重新輸入信息后,再次單擊“登錄”按鈕。
圖5 登錄流程圖
Fig.5 Login flow chart
圖6 登錄界面
Fig.6 Login interface
4.3.3 管理員進行用戶管理
管理員在登錄界面登錄成功之后,就可以進入后台,對數據進行管理。可以選擇用戶管理下的用戶列表進行用戶的管理,在這里可以添加一個新的用戶刪除用戶和修改用戶的一些數據。
圖7 用戶列表界面圖
Fig.7 User list interface
4.3.4 學校標簽管理
管理員成功登錄到后台后,即可進行學校標簽的相關操作,如果沒有登錄的話會先跳到登錄頁面,讓管理員進行登錄,登錄之后可對學校標簽進行管理,在學校標簽管理界面的上面有搜索欄,可以輸入學校的標簽,點擊“搜索”按鈕,即可搜索已經添加過的學校標簽,如果沒有的話會返回空數據,點擊“添加學校標簽”按鈕,點擊添加按鈕,跳入到添加學校標簽新界面,輸入了學校標簽的必要信息之后,點擊提交按鈕,將數據提交到后台,然后后台將數據存入到數據庫,在每一個學校標簽的后面可以擊“編輯”按鈕或者“刪除”按鈕來管理學校標簽,點擊編輯按鈕是會跳出新的頁面,編輯當前的學校標簽,點擊刪除按鈕,會給予相應的提示,確認是否真的要刪除。
圖8 學校標簽列表
Fig.8 List of school labels
圖9 搜索學校標簽
Fig.9 Search school labels
圖10 添加學校標簽界面
Fig.10 Add school label interface
4.3.5 學校信息管理
首先管理員要登錄后台管理系統,才能進行學校信息的相關操作,如果管理員沒有登錄,則進入登錄頁面登錄后才能進行合作,當管理員登錄之后選擇學校管理學校簡介,然后可以點擊添加按鈕,添加新的學校信息,選擇學校的名稱和一些必要信息之后點擊提交數據的時候,會檢查必要的信息是否完整,當必要的信息完整之后,會將提交的數據提交給后台,然后后台將數據存儲到數據庫當中,如果必要的資料不完整,則將提示相應的錯誤信息,然后補充必要的字段之后,再次提交數據之后才可完成學校新增數據。
圖11 添加學校信息流程圖
Fig.11 Add school information flowchart
圖12 添加學校信息界面
Fig.12 Add school information interface
4.3.6 學生查詢分數線信息
普通用戶登錄到后台可以選擇學校,然后查詢學校的文理科分數線,當用戶選定好學校和理科文科之后,點擊提交按鈕,將數據提交到后台,后台將從數據庫中查詢近5年的分數線,然后返回給前台,通過echarts圖表進行渲染,得到近5年分數線的一個增長趨勢圖。
圖13 學校分數線趨勢界面
Fig.13 School score trend interface
5 系統的測試
5.1 系統測試的目的
系統測試是將需要進行測試的軟件整體,作為計算機系統的一個元素,使其與其他系統元素和環境結合起來進行的一個整體的測試。系統測試的主要目的在於通過與軟件的需求定義做比較,來發現軟件與需求不符合或互相矛盾甚至是錯誤的問題,進而促進開發在軟件交付之前,進行再次的修改和訂正,以達到編寫更好的軟件的目的。
5.2 測試的方法
系統測試的方法主要是有以下幾種:
(1) 功能測試。功能測試是測試時最基本的測試內容。整體上來看,功能測試就是對軟件產品的每一個成型的功能進行驗證,通過編寫的測試用例,進行逐項的測試,以檢查產品是否達到了用戶要求的功能。
(2) 性能測試。性能測試是在確保軟件的功能實現正確、符合軟件需求的前提下,通過一些自動化測試工具附加上一些特定的條件對軟件進行使用,同時收集服務端的各種程序指標,來判斷軟件是是否存在性能上的問題或隱患。
本論文主要對系統性能進行測試。
5.3 系統的功能性測試
測試模塊 |
系統登錄模塊測試 |
測試目的 |
測試當用戶輸入不同的用戶名和密碼時,系統是否能進行相應處理並給出提示。 |
測試方法 |
黑盒測試 |
測試數據 |
1輸入不存在的用戶名:李四,正確的密碼:t123 2輸入正確的用戶名:張三,錯誤的密碼:b123 3輸入正確的用戶名:張三,正確的密碼:t123 |
預期結果 |
1 提示“用戶名或密碼錯誤” 2提示“登陸成功”界面跳轉到系統主界面 |
實際結果 |
與預想一致。 |
結論 |
用戶登錄模塊正常 |
表1 登錄模塊測試表
Table .1 Login module test table
測試模塊 |
系統注冊模塊測試 |
測試目的 |
|
測試方法 |
黑盒測試 |
測試數據 |
|
預期結果 |
1 提示“手機號或郵箱已存在,請重新輸入” 2 提示“手機號或郵箱非法,請重新輸入” 3 提示“注冊成功”界面跳轉到系統主界面 |
實際結果 |
與預想一致。 |
結論 |
用戶注冊模塊正常 |
表2 注冊系統測試表
Table .2 Registration system test table
測試模塊 |
學校管理模塊測試 |
測試目的 |
測試學校信息是否能夠進行修改,系統是否能進行相應處理並給出提示。 |
測試方法 |
黑盒測試 |
測試數據 |
|
預期結果 |
1 提示“成功” 2提示“成功 |
實際結果 |
與預想一致。 |
結論 |
學校管理模塊正常 |
表3 學校管理測試
Table .3 Coach management test
測試模塊 |
我的信息模塊測試 |
測試目的 |
測試我的信息是否能夠進行相應修改,系統是否能進行相應處理並給出提示。 |
測試方法 |
黑盒測試 |
測試數據 |
|
預期結果 |
1 提示“內容不能為空,請重新輸入” 2提示“成功 |
實際結果 |
與預想一致。 |
結論 |
我的管理模塊正常 |
表4 我的信息測試表
Table .4 My information test form
結 論
畢業設計對我來說是一個非常珍貴難得的實踐機會,這不僅是課本上的理論知識,還結合了實際鍛煉,能夠讓我把學習到的知識得以利用起來。
在這幾個月時間里,我從搜集資料開始,一點點學習、積累知識,並通過各種調查方法對互聯網上存在的各種資料進行查閱和整理,互聯網這個平台非常廣闊,但能用的資料卻不容易取得,經過長時間的努力,最終開發出了這個系統。在這整個過程中,我遇到了很多問題,也曾因此而十分頭疼,不過在強大的互聯網幫助下,這些問題都被我一一擊破了。經過這幾個月的開發和實踐,我深深體會到了學好程序開發,是一件非常辛苦的事情,除了個人對程序的耐心和細心,面向理論、面向需求和面向實際也是不可或缺的一部分,這樣才能開發一款好的實用的系統。
這個畢業設計的成功完成給我帶來了很大的信心。讓我對以后的職業規划和發展充滿希望。在這過程中,我也受益頗多,像Qt技術和C++,以前雖然學習過,但遠遠沒有這次設計帶來的印象深刻,讓我從實踐中學習到了很多。
在這幾個月的畢業設計中,我感覺我體會到了上課時沒有體會到的一些感受,程序開發遠遠沒有我想的那么簡單容易,他要求開發人員心思細膩,知識足夠豐富,還有實踐能力。對於經驗不足的人來說,在程序開發時,編發的時候總會出現這樣那樣的一些錯誤,需要有足夠的耐心去慢慢尋找、改正,因此在開發過程中,耐心也是非常重要的,需要有超乎尋常的耐心。這次畢業設計,不管是專業知識、動手能力還是耐心,我都有了比較明顯的提高,尤其是對於開發系統的一些技術,有了深刻的認識,也有了一些經驗。
參考文獻
[1]李盼. 高考志願填報分析系統的設計與實現[D]. 湖北:華中科技大學,2018.
[2]李致遠. 升學之路在線平台高考志願推薦子系統的設計與實現[D].鄭州大學,2020.
[3]郭敏. 基於QT的在線考試系統設計與實現[D].電子科技大學,2020.
[4]劉福偉. 高考志願智能填報系統設計與實現[D].浙江理工大學,2020.
[5]鄭松濤. 基於QT的助教辦公自動化系統客戶端的分析與設計[D].北京郵電大學,2019.
[6] Qt Creator 快速入門 [M].第三版 北京航空航天大學出版社:霍亞飛,2017 1:476
[7]李艷傑.MySQL數據庫中數據參照完整性和一致性的設計與實現[J].信息技術與信息化,2020(11):102-104.
[8]盛莉.基於MySQL的數據管理平台設計[J].信息與電腦(理論版),2020,32(22):152-153.
[9]歐陽桂秀.JDBC技術在學生成績管理系統中的應用[J].科技傳播,2020,12(22):99-102.
[10]李曉燕,馬娟.高考志願填報策略探析[J].寧夏師范學院學報,2020,41(11):84-86+91.
[11]滕廣華.基於PyQt5的動態交通標志牌管理軟件的設計與實現[J].電子技術與軟件工程,2020(20):26-28.
[12]張靜.新高考背景下高中生生涯規划和志願選擇[J].金屬世界,2020(05):15-18.
[13]楊吉才,卜一川,劉姣娜.“人工智能+大數據”背景下高考志願人人會平台設計構思[J].無線互聯科技,2020,17(15):89-91.
[14]於浩. 基於Qt的增強現實可視化儀表界面設計[D].青島理工大學,2020.
[15]陶文玲,侯冬青.PyQt5與Qt設計師在GUI開發中的應用[J].湖南郵電職業技術學院學報,2020,19(01):19-21.
[16]郭敏. 基於QT的在線考試系統設計與實現[D].電子科技大學,2020.
[17]黃怡昕. 基於Qt的電網繼電保護信息管理軟件設計與實現[D].電子科技大學,2020.
[18]Johan Thelin. Foundations of Qt Development[M].Apress:2007-01-01.
致 謝
閑雲譚影日悠悠,物換星移幾度秋,曾幾何時,自己還是一個無知懵懂的少年,每天的快樂還是沉浸在書本里,瘋狂吸允着知識,時間是一個鐵面將軍,他只是知道流逝,不會和你講一絲絲情面,大學時光是短暫且快樂的,轉眼自己已經是一個即將畢業的孩子,在此夏風輕輕起,鮮花送香,鳥兒歌唱之際,我對幫助過我的老師,同學,獻上自己最崇高的敬意,謝謝你們的包容,謝謝你們陪我成長,在此特別感謝我的指導老師潘娜老師,從課題的選擇,到期間遇到的問題,都是老師您耐心的解答,在我迷茫,彷徨之際,給了我莫大的鼓勵,使我心思更加縝密,謝謝您。在此我同時也要對我的同學道一聲感謝,謝謝耐心的幫我整改語句的邏輯,幫助我整改遇到的問題。
即將畢業的我,回望自己的慢慢大學路,想起這大學期間的點點滴滴,像是電影一般在腦海中播放,有開心,有迷茫,有悲傷,有興奮,情不自禁的想說一句,遇見你們真好!也感謝養育的我父母,讓我能夠堅強,讓我不斷成長,讓我向着更高更遠的地方前行,事間千萬種愁苦,總是離別最令人五味雜陳,寫到此處不禁想起,聚散苦匆匆,此恨無窮。今年花勝去年紅。可惜明年花更好,知與誰同?我們都已經不是孩童,是時候肩膀扛起一些責任,如果能在自己獨善其身的同時,再為社會,為他人做出一點貢獻,此生便是無憾了吧!
再次向幫助過的我人致以謝意,我們都將有一個更好的未來,那么我們一定會有更好的相見。