web程序語(yǔ)言設(shè)計(jì)之學(xué)生成績(jī)管理系統(tǒng)&選課系統(tǒng)心得體會(huì)

大三上的web程序課程設(shè)計(jì)需要做一個(gè)mini學(xué)生成績(jī)管理系統(tǒng)迈螟,完成后有這些體會(huì)忘渔,系統(tǒng)已開(kāi)源至Github
https://github.com/86XIng/Student-Achievement-Management-System
團(tuán)隊(duì)介紹:https://86xing.github.io/6XIng.github.io/deeptech/

首頁(yè)
全部課程

課程詳情
登陸頁(yè)面
后臺(tái)管理主頁(yè)面

功能之一:選課功能
  1. 前期需求分析真的很重要

我們小組有王晨旭和劉俊洲的指導(dǎo)诬烹,他們?cè)谲浖捻?xiàng)目經(jīng)驗(yàn)告訴他們要做好需求分析再編碼溪胶,于是我們?cè)谒麄兊闹笇?dǎo)下開(kāi)了很多次會(huì)阔拳,討論出來(lái)一大堆問(wèn)題壶唤。比如課程表的設(shè)計(jì)雳灵,轉(zhuǎn)專(zhuān)業(yè)學(xué)生如何選課,重修的學(xué)生怎么辦闸盔,公選課沒(méi)有固定的班級(jí)怎么和班級(jí)表形成映射悯辙,教室的分配問(wèn)題等等,我們?cè)诎装迳袭?huà)出了E/R圖迎吵,甚至是表的設(shè)計(jì)圖以及我們能想到的初步的解決方案笑撞,雖然這些需求在這次項(xiàng)目中沒(méi)有用到,但也讓我們感受到想做好一個(gè)完整的項(xiàng)目其實(shí)是很不容易的钓觉。

  1. 先分工把目錄定好然后整合

第一次展示的時(shí)候茴肥,我們小組的前后臺(tái)沒(méi)有整合到一起,是因?yàn)槲覀兌际欠珠_(kāi)完成的荡灾,在各自電腦上新建的vs項(xiàng)目瓤狐,無(wú)法合并到一起。吃過(guò)這次虧過(guò)后批幌,我把整個(gè)的項(xiàng)目目錄和空文件先搭建了起來(lái)推送到git上础锐,在云端建立數(shù)據(jù)庫(kù),新控件什么的依賴(lài)包先安上荧缘,避免合并時(shí)因?yàn)槊總€(gè)人生成的webconfig文件不同而報(bào)錯(cuò)皆警。

  1. 每個(gè)人的水平不一樣,一定要多交流

最開(kāi)始說(shuō)要用git倉(cāng)庫(kù)管理的時(shí)候我認(rèn)為git這種東西應(yīng)該是不用特別強(qiáng)調(diào)截粗,看下教程就能滿足我們這次項(xiàng)目需求的信姓,結(jié)果git倉(cāng)庫(kù)的push記錄都是我的,一問(wèn)才知道意推,大家原來(lái)對(duì)這個(gè)東西一頭霧水,光是理解概念就耗費(fèi)了很多時(shí)間珊蟀,于是我在簡(jiǎn)書(shū)上針對(duì)這次項(xiàng)目需要用到的命令給他們做了總結(jié)http://www.reibang.com/p/3ea955d63b7a菊值,效果很好,幾乎每個(gè)人都學(xué)會(huì)了用命令行來(lái)控制git

  1. Md5算法,session的名稱(chēng)及secretkey什么的腻窒,應(yīng)該盡早定下來(lái)

關(guān)于md5加密昵宇,我們小組前期做的時(shí)候全都是用的明文密碼,我們也知道這肯定是要改的儿子,但是什么時(shí)候改瓦哎,怎么改,很長(zhǎng)一段時(shí)間內(nèi)都沒(méi)人定下來(lái)典徊,可能每個(gè)人寫(xiě)的算法不一樣調(diào)用的函數(shù)不相同導(dǎo)致求出的hash不同什么的,于是寫(xiě)了一個(gè)方法以及使用教程恩够,在我們組內(nèi)統(tǒng)一使用http://www.reibang.com/p/73082e546de6卒落。session這個(gè)最后發(fā)現(xiàn)在.net 里調(diào)用十分方便,統(tǒng)一一下名稱(chēng)即可蜂桶,secretkey儡毕,過(guò)期時(shí)間等等無(wú)需關(guān)心、

  1. 富文本編輯器js插件上傳圖片問(wèn)題

以前一直以為webpages技術(shù)是后臺(tái)渲染扑媚,不能寫(xiě)接口的腰湾,.net寫(xiě)接口只能使用mvc5,有一段時(shí)間甚至在學(xué)mvc5考慮換一個(gè)疆股,但最后掛念于組員可能來(lái)不及學(xué)就放棄了费坊,但是查閱資料的過(guò)程中我發(fā)現(xiàn)有一個(gè)文件后綴名為ashx的神奇東西好像類(lèi)似于接口的意思,網(wǎng)上的教程也比較少旬痹,利用其它平臺(tái)開(kāi)發(fā)的后臺(tái)知識(shí)利用vs平臺(tái)強(qiáng)大的智能提示功能花了一下午附井,探索出來(lái)在webpages框架下寫(xiě)接口的一套流程,并且根據(jù)wangeditor這個(gè)富文本編輯器的說(shuō)明文檔http://www.wangeditor.com/两残,寫(xiě)了一個(gè)簡(jiǎn)單的接口永毅。寫(xiě)接口的過(guò)程中突然意識(shí)到.net做開(kāi)發(fā)的便捷之處,ashx配合綁定的數(shù)據(jù)集人弓,開(kāi)發(fā)起來(lái)特別方便快捷沼死,甚至一句sql語(yǔ)句都沒(méi)有寫(xiě),調(diào)用自己命名的方法代碼看著也整潔了不少崔赌。

另一個(gè)問(wèn)題是如何獲取富文本編輯器里的內(nèi)容意蛀,富文本編輯器封裝了獲取的方法,但是是放在js代碼里的健芭,通過(guò)后臺(tái)代碼無(wú)法直接取得浸间,想了兩種辦法,一種是用ajax請(qǐng)求吟榴,再寫(xiě)一個(gè)接口魁蒜,通過(guò)ajax向后臺(tái)傳值,但是這就得再寫(xiě)一個(gè)接口,或者是在pageload里加代碼兜看,不優(yōu)雅锥咸,否決。另一種解決方法是在論壇里看到的细移,放置一個(gè)隱藏的輸入框搏予,用js把內(nèi)容獲取到后復(fù)制到這個(gè)隱藏input框的value中去,再加上runat=server就可以在后臺(tái)間接獲取到輸入的值了弧轧,測(cè)試了一下雪侥,這種解決方法比較完美,字?jǐn)?shù)上沒(méi)有限制精绎。

  1. 幫劉老師解決新控件綁定圖片時(shí)遇到的問(wèn)題

新控件綁定數(shù)據(jù)做一些開(kāi)發(fā)確實(shí)方便速缨,但是迫于網(wǎng)上教程過(guò)少,而且我們接觸的不多代乃,會(huì)遇到很多這樣那樣的問(wèn)題旬牲,比如說(shuō)圖片無(wú)法綁定的問(wèn)題。我們存在數(shù)據(jù)庫(kù)里的圖片僅僅是圖片的名稱(chēng)搁吓,沒(méi)有相對(duì)和絕對(duì)路徑原茅,在要用到的時(shí)候再另行拼接。劉老師的問(wèn)題是堕仔,新控件無(wú)法像拼接字符串一樣拼接文件路徑擂橘,這一點(diǎn)我一開(kāi)始以為是劉老師沒(méi)有嘗試,最后我嘗試了一晚上摩骨,用各種手段也沒(méi)能利用已有知識(shí)在新控件后臺(tái)代碼里拼接上相對(duì)路徑贝室。劉老師問(wèn)了研究生學(xué)長(zhǎng)和軟件所的同學(xué)都沒(méi)能得到滿意的答復(fù),最后我利用jQuery對(duì)每個(gè)td里含有圖片的路徑進(jìn)行拼接仿吞,勉強(qiáng)讓圖片展示了出來(lái)滑频。至于好點(diǎn)的解決方案,我想應(yīng)該是在數(shù)據(jù)庫(kù)或者數(shù)據(jù)集里解決比較好唤冈,但由于時(shí)間緊迫問(wèn)題接踵而至也未能成功嘗試峡迷。

  1. 幫劉老師解決新控件局部刷新導(dǎo)致密碼框一輸入密碼丟失時(shí)遇到的問(wèn)題

新控件對(duì)密碼框進(jìn)行了封裝,密碼會(huì)由于省市下拉框聯(lián)動(dòng)時(shí)的頁(yè)面刷新而消失你虹,而普通的輸入框則沒(méi)這個(gè)問(wèn)題绘搞,由于軟件所和研究生學(xué)長(zhǎng)從來(lái)沒(méi)在新控件里同時(shí)用到密碼框和聯(lián)動(dòng)效果,這個(gè)問(wèn)題只能自己想辦法解決傅物,用老師上課講的updatapanel的話夯辖,一展開(kāi)編輯欄就會(huì)觸發(fā)postback事件,我想著可能是有更高級(jí)的辦法董饰,讓劉老師都試了其他的update類(lèi)的控件都不行蒿褂,于是便放棄這種思路圆米,轉(zhuǎn)為前端的方法。我的方法和論壇里的很多人類(lèi)似啄栓,藏一個(gè)隱藏的輸入框娄帖,當(dāng)鍵盤(pán)輸入時(shí),把密碼同時(shí)賦值給那個(gè)隱藏的輸入框昙楚,然后頁(yè)面刷新的時(shí)候再把隱藏輸入筐里的值賦值給密碼框近速,單純站在用戶的角度上測(cè)試的時(shí)候也沒(méi)什么問(wèn)題,但是安全性上可能有所損失堪旧。

  1. 文件名值清零問(wèn)題削葱,本次開(kāi)發(fā)中遇到的最大的坑
public partial class manage_admin_manager_manage_course_change_course_info : System.Web.UI.Page

{

 liuchuxiongTableAdapters.課程表TableAdapter CourseTable = new liuchuxiongTableAdapters.課程表TableAdapter();

 int index = 0;

 string relativePath=null;

 ……}

在做編輯課程信息的時(shí)候,劉老師遇到了這樣一個(gè)奇怪的問(wèn)題淳梦,讓晨旭和俊洲看析砸,也覺(jué)得沒(méi)毛病,但是就是在插入和刪除的時(shí)候谭跨,圖片的路徑就清零了干厚,這可能是我們這個(gè)項(xiàng)目中遇到的最大的坑李滴,得益于vs強(qiáng)大的調(diào)試功能螃宙,排除了獲取文件名失敗,存儲(chǔ)圖片失敗所坯,相對(duì)路徑錯(cuò)誤谆扎,數(shù)據(jù)庫(kù)插入失敗,數(shù)據(jù)集錯(cuò)誤等等等等一大堆懷疑對(duì)象后我偶然間發(fā)現(xiàn)了問(wèn)題所在芹助,一個(gè)最容易忽視的問(wèn)題堂湖,每次執(zhí)行updata方法或者insert方法后都會(huì)從頭也就是從我貼的代碼開(kāi)始重新對(duì)變量賦值,relativePath也就是在這個(gè)時(shí)候清零的状土,這就涉及到高級(jí)程序語(yǔ)言設(shè)計(jì)的知識(shí)了无蜂,只是這次被劉老師遇到了,我覺(jué)得我們?cè)谝院蟮拈_(kāi)發(fā)中也很可能遇到蒙谓。我的解決方法就是聲明一個(gè)靜態(tài)類(lèi)斥季,類(lèi)中放一個(gè)靜態(tài)成員變量為relativePath,當(dāng)然也可以使用構(gòu)造函數(shù)的辦法累驮。這個(gè)坑比較深酣倾,也暴露出我們對(duì)高級(jí)程序語(yǔ)言的理解還不合格,只知其然而不知其所以然谤专。

  1. 選課多頁(yè)面同時(shí)開(kāi)啟時(shí)的邏輯問(wèn)題

陳雪做的選課和退課頁(yè)面躁锡,由于我們使用的后臺(tái)系統(tǒng)框架是允許多窗口同時(shí)運(yùn)行的,這就導(dǎo)致了置侍,先同時(shí)打開(kāi)選課和退課頁(yè)面映之,然后在選課后打開(kāi)已經(jīng)開(kāi)啟的退課頁(yè)面拦焚,退課頁(yè)面需要手動(dòng)刷新才能看到新選的課,反之亦然惕医。如何使一個(gè)靜態(tài)頁(yè)面在后臺(tái)數(shù)據(jù)有更新時(shí)刷新耕漱,我想到了用ajax不斷向后臺(tái)請(qǐng)求,后臺(tái)一有更新就立即刷新頁(yè)面抬伺,但是這也有問(wèn)題螟够,如果多名學(xué)生同時(shí)選同一門(mén)課由于后臺(tái)數(shù)據(jù)不斷更新頁(yè)面也會(huì)一直刷新導(dǎo)致無(wú)法正常選課。還有一種可以解決的就是websocket技術(shù)峡钓,參考網(wǎng)頁(yè)股票交易系統(tǒng)妓笙,實(shí)時(shí)更新數(shù)據(jù),但是能力不夠無(wú)法完成能岩,最后折中取巧寞宫,令每當(dāng)鼠標(biāo)移入或移出頁(yè)面時(shí)自動(dòng)刷新一次,雖然體驗(yàn)還是不夠完美拉鹃,但現(xiàn)階段只有這樣才能解決這個(gè)問(wèn)題

  1. 還有很多很多其它的小問(wèn)題迫于時(shí)間和篇幅便不再贅述辈赋,但正如曾老師暑期實(shí)習(xí)時(shí)所說(shuō),對(duì)于計(jì)算機(jī)這個(gè)專(zhuān)業(yè)的學(xué)生:坑膏燕,只會(huì)越踩越多钥屈。學(xué)海無(wú)涯,只能以此來(lái)勉勵(lì)自己坝辫,雖然這是我們自己做出的第一個(gè)可以用的系統(tǒng)篷就,但功能和業(yè)務(wù)邏輯都還非常簡(jiǎn)單,甚至不能稱(chēng)之為一個(gè)系統(tǒng)近忙,前路還長(zhǎng)竭业,有更多的坑等著我們?nèi)ヌゲ取?/li>
首頁(yè)1

首頁(yè)2

首頁(yè)3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末及舍,一起剝皮案震驚了整個(gè)濱河市未辆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锯玛,老刑警劉巖咐柜,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異更振,居然都是意外死亡炕桨,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)肯腕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)献宫,“玉大人,你說(shuō)我怎么就攤上這事实撒℃⑼荆” “怎么了涉瘾?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)捷兰。 經(jīng)常有香客問(wèn)我立叛,道長(zhǎng),這世上最難降的妖魔是什么贡茅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任秘蛇,我火速辦了婚禮,結(jié)果婚禮上顶考,老公的妹妹穿的比我還像新娘赁还。我一直安慰自己,他們只是感情好驹沿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布艘策。 她就那樣靜靜地躺著,像睡著了一般渊季。 火紅的嫁衣襯著肌膚如雪朋蔫。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天却汉,我揣著相機(jī)與錄音驯妄,去河邊找鬼。 笑死病涨,一個(gè)胖子當(dāng)著我的面吹牛富玷,可吹牛的內(nèi)容都是我干的璧坟。 我是一名探鬼主播既穆,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼雀鹃!你這毒婦竟也來(lái)了幻工?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤黎茎,失蹤者是張志新(化名)和其女友劉穎囊颅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體傅瞻,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡踢代,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嗅骄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胳挎。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖溺森,靈堂內(nèi)的尸體忽然破棺而出慕爬,到底是詐尸還是另有隱情窑眯,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布医窿,位于F島的核電站磅甩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏姥卢。R本人自食惡果不足惜卷要,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望独榴。 院中可真熱鬧却妨,春花似錦、人聲如沸括眠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掷豺。三九已至捞烟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間当船,已是汗流浹背题画。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留德频,地道東北人苍息。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像壹置,于是被迫代替她去往敵國(guó)和親竞思。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)钞护、插件盖喷、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,109評(píng)論 4 62
  • 又是忙叨叨的一天吶,一句話难咕,又沒(méi)學(xué)習(xí)课梳,又有一屁股事情等著我。上午提著電腦余佃,拿著書(shū)暮刃,好不容易到達(dá)圖書(shū)館,發(fā)現(xiàn)除了那本...
    獨(dú)行者87閱讀 149評(píng)論 0 1
  • 如何在龐大的信息流中保持專(zhuān)注 ** App 越來(lái)越多爆土,生活越來(lái)越亂** 隨著手機(jī)硬件能力越來(lái)越強(qiáng)椭懊,我們的手機(jī)能夠去...
    殘照以為記閱讀 496評(píng)論 0 1
  • 投射自己有更多時(shí)間看書(shū),讀課程 投射自己每天穩(wěn)定情緒雾消,情緒激動(dòng)時(shí)學(xué)會(huì)打斷或者舒緩 投射女兒在學(xué)校能找到很多正能量的...
    劉莉愛(ài)的吸引力閱讀 231評(píng)論 0 0