光陰似箭日月如梭,你們學習已經有了一段時間了,轉眼間,從剛開始如何配置JDK已經到了如今快學完網絡編程了。學了這麼多,眼看就要進入下一個階段了,數據庫編程了,那麼在進入下個階段前,咱們來完成一個綜合性比較強的結業項目,告別JavaSE階段,學完JavaSE,你們已經對編程這塊相信已經有了一個很深的理解,可是僅僅是JavaSE仍是不夠的,咱們還須要學習更多的,更全面知識才足以在接下來的生活中過五關斬六將。爲了提升你們的編程技能和邏輯思惟。特意整理出了一份綜合性比較全面的結業項目。你們各自發揮想象力,創造力,計算力,邏輯力完成下面這道題。java
整個項目涉及到的類以下redis
抽象類 Person ID(id)、 用戶名(username)密碼(password)、性別(age) 管理員類 Admin (繼承Person) 屬性有 ID(id)、 用戶名(username)、性別(age) 老師類 Teacher (繼承Person) 老師教的課程(course)、班級(className) 學生類 Student (繼承Person) 學生的專業(major) 、班級(className)、成績(score) //以上類字段屬性爲基礎,如須要可自行在上面擴展
管理員帳號默認爲admin,老師賬號默認爲t1,學生默認賬號爲s1,t1和s1是默認賬號,用戶用t1和s1登陸進去的時候任何也作不了,只能選擇註冊老師或者註冊學生,(用t1或者s1登陸進去後不須要驗證密碼,直接顯示菜單,用非t1和s1賬號須要驗證密碼)數據庫
項目啓動在控制檯打印以下:編程
顯四三個菜單,用戶選擇對應的序號進行對應的操做和顯示子菜單。每選擇一個菜單至關於肯定了你目前的身份,須要輸入賬號和密碼進行驗證。若是都正確,則提示登陸成功,顯示子菜單。好比輸入1後,控制檯提示瀏覽器
請輸入賬號: 請輸入密碼:
用戶輸入後後臺程序進行驗證,若是成功。就進行下一步操做。安全
下面咱們來看管理員對應的操做有:(也就是輸入1,以管理員的身份進入系統):服務器
以管理員的身份進入系統,控制檯打印以下:網絡
*********************************************************** 一、查看全部學生 (注:這裏顯示全部的學生) 二、查看全部老師 (注:這裏顯示全部的老師) 三、分類查看 四、添加班級 五、添加課程 // 當用戶輸入3後,3下面對應的子菜單有 *********************************************************** 一、按性別查看 (具體輸入值爲男或者女) 二、按班級查看 (輸入2以後在控制檯繼續顯示,一、按班級查看老師 二、按班級查看學生) 三、查當作績大於_分的學生(這裏輸入具體數字,輸入後把大於多少分的匹配出來) 四、查當作績小於_分的學生(同上) 五、查當作績等於_分的學生(同上) 六、查看具體學生的信息(提示輸入學生的姓名和ID,防止有重名同窗) 七、查看學生的平均成績 八、按成績降序查看全部學生 九、按成績升序查看全部學生 十、查看當前老師和學生的總數 十一、顯示成績綜合信息 (打印以下信息) //這裏針對11 打印的信息以下 (60分及格) 學生總成績 學平生均成績 及格學生所佔百分比 未及格學生所在百分比 345分 80分 80% 20% *********************************************************** /* 當用戶輸入4 添加班級 控制檯提示請輸入班級名稱,用戶輸入班級名稱後,程序保存到後臺,最好能保存到文件中,下次啓動程序直接去讀取使用,不用每次都輸入。 當用戶輸入5 添加課程 控制檯提示請輸入課程名稱,用戶輸入課程名稱後,程序保存到後臺,最好能保存到文件中,下次啓動程序直接去讀取使用,不用每次都輸入。 以上不論是添加班級仍是添加課程,程序都要判斷用戶輸入的有沒有重複的,好比第一次輸入的是計算機班,第二次若是在輸入計算機班的話就是重複的,控制檯提示當天班級已經存在,請從新輸入 */
以老師的身份進去系統,控制檯打印以下:(注:老師只能看見他班級下面的學生,下面全部的菜單均是,好比按性別查看,也是看的他班級下面的)多線程
一、查看全部學生 二、按性別查看學生(選擇2以後輸入男或者女進行查看) 三、查當作績大於_分的學生(這裏輸入具體數字,輸入後把大於多少分的匹配出來) 四、查當作績小於_分的學生(同上) 五、查當作績等於_分的學生(同上) 六、查看具體學生的信息(提示輸入學生的姓名和ID,防止有重名同窗) 七、查看學生的平均成績 八、按成績降序查看全部學生 九、按成績升序查看全部學生 十、顯示成績綜合信息 (這裏統計的信息和管理員端同樣,只不過是統計本班級下面的,用戶能夠選擇導出,和學生端查當作績的狀況同樣,具體看學生端這塊) ========================================= 十一、註冊老師賬號 //當用戶選擇11的時候控制檯以下: 請輸入您的姓名: 請輸入您的密碼: 請輸入您的性別: 請輸入您的年齡: 請選擇您的課程: 請選擇您的班級: /* 這裏注意,課程由管理員端添加,當用戶輸入完年齡後,系統自動列出管理員添加的課程,用戶能夠 輸入現有的課程,程序接收到後進行判斷用戶輸入的課程名字是否存在,若是存在的話就添加成功。 選擇班級也同樣 老師類裏邊有一個id,繼承自person類,系統判斷目前有多少個老師,自動生成老師總個數+1的序號設置上去 */ 十二、修改老師信息 //當用戶輸入12後,控制檯顯示子菜單以下: 一、修改年齡 二、修改性別 三、修改密碼(若是選擇3,請提示用戶輸入原密碼) 注:用戶的信息最好存儲到文件,避免程序啓動每次添加
以學生的身份進入系統,當用戶輸入3以後工具
以學生的身份進入系統後控制檯打印以下菜單: 一、查看本班全部學生 二、按性別查看本班學生(提示用戶輸入男或者女) 三、查找本班學生(輸入學生的姓名) 四、按課程查看(有的學生是同班不一樣課程,當輸入4的時候系統自動查詢管理員添加的全部的課程,列出來) 五、查看所在班的老師信息(打印所在班級的老師) //用戶輸入5後打印以下信息 老師姓名 性別 年齡 所在班級 所授課課程 張麗麗 女 12 1班 計算機 六、註冊/修改學生賬號 ********************************************* //當用戶輸入6以後,控制檯顯示以下菜單 一、註冊學生賬號 //當用戶輸入1以後,控制檯打印以下信息 請輸入您的姓名: 請輸入您的密碼: 請輸入您的年齡: 請輸入您的性別: 請輸入您的綜合成績: 請輸選擇您的課程:(系統自動列出管理員添加的全部課程,用戶輸入後,判斷是否是存在的) 請選擇您的班級:(系統自動列出管理員添加的全部班級,用戶輸入後,判斷是否是存在的) //學生類裏邊有個id,繼承自Person,類的id系統自動判斷當前班級有多我的,根據人數+1生成 二、修改學生信息 //用戶輸入2的狀況下,控制檯打印如下子菜單 一、修改年齡 二、修改性別 三、修改班級(系統自動列出,同上) 四、修改課程(系統自動列出,同上) 五、修改密碼(若是選擇5,請提示用戶輸入原密碼) 注:用戶的信息最好存儲到文件,避免程序啓動每次添加 三、註銷學生 (刪除學生) ********************************************* 七、查看本班成績狀況 //當用戶輸入7之後,控制檯顯示以下: 本班總成績 本班平均成績 及格學生所在比例 未及格學生所在比例 345 89 70% 60% 100~80分人數 80~60分人數 60~40分人數 40分如下人數 6 8 8 1 ======= 導出當前結果請輸入 p ,把當前的結果保存到記事本,文件路徑爲當前的類路徑,同包下,記事本標題爲:A班學生成績.txt ========
經常使用工具菜單
當用戶輸入4以後,進入經常使用工具菜單,(此菜單主要包含了學生對javase的理解和綜合使用)
輸入4以後,控制檯打印以下: 一、計算質數(請輸入一個數,計算後該數之內有多少個質數,在控制檯打印來一共有多少個,分別是什麼) 二、查看電腦信息 //當用戶輸入2後,在控制檯打印 當前電腦磁盤空間總共有:400G 當前電腦內存空間總共有:8G 當前電腦系統的版本是:xxxx 當前電腦共有磁盤:4個,分別是 C盤、D盤、E盤、F盤 。。。。其餘信息同窗們本身收集,越詳細越好 三、查看目錄 //當用戶輸入3以後,在控制檯打印出來當前目錄下面全部的文件名,好比用戶輸入的是C盤,如下是我電腦C盤的信息。 Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2019/2/12 14:02 360安全瀏覽器下載 d----- 2019/1/10 7:50 AppData d----- 2019/1/29 13:10 downloads d----- 2018/9/14 19:07 DRMsoft d----- 2018/1/19 20:06 EFI d----- 2019/2/3 20:09 FFOutput d----- 2018/11/26 14:37 gofile d----- 2018/11/17 12:32 golog d----- 2018/1/19 21:24 Intel d----- 2019/2/12 13:42 KuGou d----- 2019/2/3 21:20 LDSGameMaster d----- 2018/8/1 19:52 logs d----- 2018/6/9 8:36 lpwz d----- 2018/10/6 10:17 MinGW d----- 2018/1/19 21:28 NVIDIA d----- 2018/4/12 7:38 PerfLogs d-r--- 2019/4/13 14:14 Program Files d-r--- 2019/4/9 16:25 Program Files (x86) d----- 2019/1/18 18:05 QMLogEx d----- 2019/2/1 21:24 temp d----- 2018/12/16 20:03 tourism d-r--- 2018/10/3 18:04 Users d----- 2019/4/19 21:45 Windows d----- 2018/2/11 22:43 Windows10Upgrade -a---- 2019/4/11 9:03 24568651 aow_drv.log -a---- 2007/11/7 8:00 17734 eula.1028.txt -a---- 2007/11/7 8:00 17734 eula.1031.txt -a---- 2007/11/7 8:00 5686 vcredist.bmp -a---- 2007/11/7 8:09 1442522 VC_RED.cab -a---- 2007/11/7 8:12 232960 VC_RED.MSI 四、壓縮文件 //當用戶輸入4的時候,提示用戶輸入文件路徑,用戶把文件路徑輸入後判斷這個路徑是否是目錄,若是是目錄的話壓縮這個目錄裏邊全部的文件,若是是文件,壓縮單獨一個文件,壓縮後的文件放在原目錄同級目錄下 五、播放音樂 //當用戶輸入5的時候,系統按照序號把電腦的的上的mp3檢索出來,顯示前10個,用戶輸入對應的序號後播放對應的,這裏啓用多線程進行播放,用戶輸入2後,開啓一個線程去播放序號爲2的音樂,用戶輸入3後,結束原來播放2的線程,從新開啓一個線程去播放序號爲3的音樂 六、Socket通訊相關(選作題) //當用戶輸入6的時候,控制檯顯示菜單以下: 一、開啓一個服務端 二、給服務端發送一個消息,服務器接收到後原樣返回 七、從網上下載一個首歌 //當用戶輸入7後,控制檯提示用戶輸入一個有效的mp3網址,用戶輸入後程序去把這個mp3下載下來放到同包目錄下面,下載完成後提示下載完成,是否播放,選是進行播放 八、讀取文件顯示到控制檯 //當用戶輸入8以後,程序要求輸入一個txt文本的路徑,判斷路徑是否是存在的,若是存在,就把內容讀出來打印到控制檯,若是不存在,提示不存在,請從新輸入。 九、經常使用效驗 //當用戶輸入9以後,控制檯顯示子菜單爲: 一、效驗電話號碼 二、效驗郵箱 三、效驗密碼強度 四、效驗是否爲字母 五、效驗是否爲數字 六、效驗是否爲中文 十、打開文件 //當用戶輸入10以後,在控制檯輸入一個路徑,系統檢測路徑是否存在有效,若是有效,調用bat命令打開文件。
以上爲JavaSE階段結業綜合項目。項目爲初始版本。
幾點要求
以上就是整個項目的流程,此項目並不難,可是邏輯稍微有點繞,可是我相信你們只要願意思考,對大家來講都不是問題,問題是大家不去思考。天行健,君子以自強不息。
有問題能夠在下面留言,技術問題能夠私聊我。