摘" 要:針對高校畢業(yè)論文傳統(tǒng)管理方法存在的問題,以昆明幼兒師范高等??茖W(xué)校為例,分析了畢業(yè)論文管理上的難點(diǎn),并提出了相應(yīng)的解決方案。使用用例圖設(shè)計(jì)了系統(tǒng)的主要功能,使用狀態(tài)圖設(shè)計(jì)了系統(tǒng)的主要流程,同時(shí)構(gòu)建了系統(tǒng)數(shù)據(jù)庫。使用ASP.NET語言實(shí)現(xiàn)了高校畢業(yè)論文管理系統(tǒng)中指導(dǎo)教師出題和學(xué)院審核模塊、上傳開題報(bào)告和論文模塊、學(xué)院分配評審教師模塊和教師審核論文模塊。系統(tǒng)的應(yīng)用能夠規(guī)范高校畢業(yè)論文的管理,提高工作效率。
關(guān)鍵詞:畢業(yè)論文管理;狀態(tài)圖;E-R圖;ASP.NET
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A" 文章編號:2096-4706(2024)10-0118-06
Design and Implementation of College Graduation Thesis Management System Based on ASP.NET
JIANG Yinhu
(Kunming Preschool Teachers College, Kunming" 651700, China)
Abstract: In response to the problems in traditional management methods for college graduation theses, taking Kunming Preschool Teachers College as an example, this paper analyzes the difficulties in graduation thesis management and proposes corresponding solutions. The main functions of the system are designed using use case diagrams, the main processes are designed using state diagrams, and the system database is constructed. It uses ASP NET language to implement the modules for guiding teachers to set questions and college review, uploading proposal reports and papers, assigning and reviewing teachers to colleges, and reviewing papers for teachers in the college graduation thesis management system. The application of the system can standardize the management of college graduation theses and improve work efficiency.
Keywords: graduation thesis management; state diagram; E-R; ASP.NET
0" 引" 言
高校畢業(yè)論文是教育工作實(shí)踐的一部分[1],能夠全方位訓(xùn)練學(xué)生發(fā)現(xiàn)問題、分析問題、解決問題的能力[2],體現(xiàn)了高校人才培養(yǎng)方案完成的質(zhì)量和水平,一定程度上也體現(xiàn)了高校教學(xué)質(zhì)量的高低[3]。每個(gè)專業(yè)的人才培養(yǎng)方案里都明確了畢業(yè)論文的要求,同時(shí),畢業(yè)論文也是實(shí)現(xiàn)人才培養(yǎng)目標(biāo)的重要教學(xué)環(huán)節(jié)。近年來,如何提高畢業(yè)論文的管理效率成為很多高校所面臨的課題。以昆明幼兒師范高等專科學(xué)校為例,畢業(yè)論文管理仍采用傳統(tǒng)的人工管理模式,這樣做流程多、不規(guī)范,增加了學(xué)院、指導(dǎo)教師、班主任、學(xué)生的工作量,工作效率較低,出錯(cuò)率較高,也不利于論文的收集與存檔。設(shè)計(jì)并開發(fā)一個(gè)適用于高校的畢業(yè)論文管理系統(tǒng)有利于規(guī)范學(xué)生畢業(yè)論文的管理,提高學(xué)院、指導(dǎo)教師和學(xué)生的工作效率。
1" 需求分析
在傳統(tǒng)的畢業(yè)論文管理過程中,由學(xué)院組織專業(yè)的任課教師開展畢業(yè)論文的出題工作,出完題目后匯總至學(xué)院,學(xué)院審核完成后由學(xué)院將題目分配到每一個(gè)班上,學(xué)生根據(jù)該專業(yè)的畢業(yè)論文題目和指導(dǎo)教師進(jìn)行選題,選完題目后,再由班級匯總至學(xué)院,學(xué)院將選擇結(jié)果反饋至指導(dǎo)教師處,學(xué)生在指導(dǎo)教師的指導(dǎo)下完成論文的撰寫和修改工作,最后將審核通過的終稿提交至學(xué)院進(jìn)行存檔。
通過開發(fā)畢業(yè)論文管理系統(tǒng),可以把流程進(jìn)一步優(yōu)化。通過管理系統(tǒng),指導(dǎo)教師出題,學(xué)院審題,學(xué)生選題、上傳開題報(bào)告,指導(dǎo)教師審核開題報(bào)告,學(xué)生上傳初稿,系統(tǒng)完成評審教師分配,教師評審論文初稿、組織答辯,學(xué)生上傳終稿,教師完成評價(jià)。
2" 系統(tǒng)設(shè)計(jì)
2.1" 系統(tǒng)功能設(shè)計(jì)
統(tǒng)一建模語言(Unified-Modeling Language, UML)又稱標(biāo)準(zhǔn)建模語言,其為軟件開發(fā)的所有階段提供模型化與可視化支持[4]。通過使用UML圖形中的用例圖來描述系統(tǒng)的參與者、參與者完成的用例(任務(wù))、用例(任務(wù))之間的關(guān)系。
通過對高校畢業(yè)論文管理的需求分析,系統(tǒng)將主要完成以下功能:指導(dǎo)教師發(fā)布論文題目,學(xué)院管理人員審核論文題目,學(xué)生對畢業(yè)論文進(jìn)行選題并上傳開題報(bào)告,指導(dǎo)教師審核開題報(bào)告,學(xué)生上傳論文初稿,評審教師審核論文初稿,學(xué)生上傳論文終稿,評審教師評價(jià)論文終稿。系統(tǒng)用例圖如圖1所示。
1)信息管理和用戶登錄用例。用戶輸入正確的用戶名和密碼后方可登錄系統(tǒng),在系統(tǒng)中,可對個(gè)人信息進(jìn)行管理:修改密碼和部分個(gè)人信息等。
2)發(fā)布論文題目用例。教師發(fā)布畢業(yè)論文的題目,在學(xué)院未審核前,可對自己發(fā)布的論文題目進(jìn)行修改、刪除操作。
3)審核論文題目用例。學(xué)院管理人員可對指導(dǎo)教師發(fā)布的論文題目進(jìn)行審核,如果通過審核,出題人將不能再對該論文題目進(jìn)行修改和刪除操作。
4)畢業(yè)論文選題用例。學(xué)院審核通過的畢業(yè)論文題目,可供學(xué)生進(jìn)行選題,當(dāng)論文題目選擇的學(xué)生滿員后,該題目將不能再被學(xué)生選擇。
5)上傳開題告與審核開題報(bào)告用例。學(xué)生完成選題后,可根據(jù)指導(dǎo)教師的要求上傳開題報(bào)告。指導(dǎo)教師對學(xué)生上傳的開題報(bào)告進(jìn)行審核,審核通過后才可進(jìn)行論文初稿的撰寫。
6)上傳和審核畢業(yè)論文初稿用例。學(xué)生在系統(tǒng)中上傳論文初稿,評審教師對初稿進(jìn)行審核,每篇論文將有3名教師進(jìn)行審核,通過才可進(jìn)行答辯。
7)畢業(yè)論文終稿評價(jià)用例。完成答辯后,學(xué)生根據(jù)答辯修改意見修改論文,并上傳論文的終稿,評審教師根據(jù)答辯結(jié)果和論文修改情況給出評價(jià)結(jié)果。
2.2" 業(yè)務(wù)流程設(shè)計(jì)
在業(yè)務(wù)流程設(shè)計(jì)部分,可使用UML的狀態(tài)圖來構(gòu)建系統(tǒng)的動態(tài)模型。狀態(tài)圖描述了系統(tǒng)的主要流程和系統(tǒng)的狀態(tài)遷移情況。系統(tǒng)狀態(tài)圖如圖2所示。
指導(dǎo)教師發(fā)布論文題目,論文狀態(tài)為“未審核”,學(xué)院進(jìn)行審核,審核不通過,則返回給指導(dǎo)教師進(jìn)行修改;審核通過,論文狀態(tài)將設(shè)置為“已通過審核”。通過審核的論文題目可供學(xué)生選題,學(xué)生選題后判斷該論文題目是否已經(jīng)被學(xué)生選滿,如果沒有選滿,仍可供學(xué)生選題,如果該題目被選滿,論文狀態(tài)調(diào)整為“該題目已選滿”,等待開題。如果可開題,則學(xué)生上傳開題報(bào)告,論文狀態(tài)設(shè)置為“已上傳開題報(bào)告”,指導(dǎo)教師審核學(xué)生的開題報(bào)告,審核通過后,學(xué)生可上傳論文初稿。學(xué)生上傳論文初稿后,論文狀態(tài)設(shè)置為“初稿已上傳”,評審教師評審論文初稿,評審不通過,學(xué)生可有2次修改機(jī)會,修改超過2次,則業(yè)務(wù)結(jié)束;論文初稿評審?fù)ㄟ^,則學(xué)生可參加答辯,答辯不通過,業(yè)務(wù)結(jié)束;答辯完成并通過后,學(xué)生上傳論文終稿,論文狀態(tài)設(shè)置為“已上傳論文終稿”,評審教師對論文終稿進(jìn)行評價(jià)。
3" 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
數(shù)據(jù)庫技術(shù)是指依托于計(jì)算機(jī)硬件基礎(chǔ)及軟件平臺所開發(fā)出的一種專門針對數(shù)據(jù)存儲、管理的技術(shù)[5],數(shù)據(jù)庫技術(shù)具有靈活性、獨(dú)立性以及共享性等多種特點(diǎn)[6]。通過數(shù)據(jù)庫技術(shù)能夠?qū)?shù)據(jù)進(jìn)行快速的插入、更新、刪除和檢索,目前主流的數(shù)據(jù)庫為關(guān)系型數(shù)據(jù)庫。
3.1" E-R模型設(shè)計(jì)
在關(guān)系型數(shù)據(jù)庫中,每一個(gè)數(shù)據(jù)表都是客觀存在的實(shí)體,這些數(shù)據(jù)實(shí)體之間的關(guān)系把數(shù)據(jù)聯(lián)系到一起??赏ㄟ^E-R模型描述關(guān)系型數(shù)據(jù)庫的實(shí)體以及這些實(shí)體存在的關(guān)系。在圖形表示上,用長方形內(nèi)加文字來表示實(shí)體,菱形內(nèi)加文字來表示關(guān)系。系統(tǒng)主要E-R圖如圖3所示。
每個(gè)學(xué)院有多個(gè)教師和專業(yè),學(xué)院與教師之間、學(xué)院與專業(yè)之間存在著1對多的關(guān)系;每個(gè)專業(yè)又有多個(gè)班級,每個(gè)班級有多名學(xué)生,專業(yè)與班級之間、班級與學(xué)生之間存在著1對多的關(guān)系;每個(gè)畢業(yè)論文可以有多個(gè)學(xué)生選擇,每個(gè)學(xué)生只能選擇1個(gè)論文題目,畢業(yè)論文與學(xué)生選題存在1對多的關(guān)系,學(xué)生與學(xué)生選題存在著1對1的關(guān)系;每位教師可出多個(gè)論文題目,每個(gè)論文可由多個(gè)教師評審,教師與畢業(yè)論文的出題上存在著1對多的關(guān)系,教師與畢業(yè)論文的評審上存在著多對多的關(guān)系,論文評審與論文之間也存在著多對多的關(guān)系。
3.2" 主要數(shù)據(jù)庫表的實(shí)現(xiàn)
在數(shù)據(jù)庫的實(shí)現(xiàn)上,使用了Microsoft SQL Server數(shù)據(jù)庫,Microsoft SQL Server是由Microsoft公司研發(fā)的一種基于C/S架構(gòu)的數(shù)據(jù)庫管理系統(tǒng)[7],操作難度低,安全程度高,是當(dāng)下最為常用的服務(wù)器體系類數(shù)據(jù)庫[8]。數(shù)據(jù)庫主要表的實(shí)現(xiàn)如表1至表5所示。
4" 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)使用ASP.NET(C#)語言進(jìn)行開發(fā)。ASP.NET是在ASP( Active Server Pages)基礎(chǔ)上推出的新一代網(wǎng)站開發(fā)技術(shù)[9],是一個(gè)統(tǒng)一的面向?qū)ο蟮腤eb開發(fā)平臺[10]。它集成了多種語言開發(fā)環(huán)境,如C#、VB、C++等,它將Web開發(fā)中的界面與代碼分離,能夠快速開發(fā)Web程序,并有利于代碼的可維護(hù)性和可讀性。畢業(yè)論文題目管理界面如圖4所示。
4.1" 指導(dǎo)教師出題和學(xué)院審核模塊
4.1.1" 指導(dǎo)教師出題模塊
教師發(fā)布論文題目時(shí),將數(shù)據(jù)插入數(shù)據(jù)庫中,同時(shí)設(shè)置論文狀態(tài)為“未審核”(用數(shù)字1表示),在該狀態(tài)下,指導(dǎo)教師可對該題目進(jìn)行修改、刪除。主要代碼如下:
string PaperInfoAdd = string.Format(\"insert into [PaperInfo](PaperName,TeacherID,SpecialityIDStr,Notes,Status) values('{0}','{1}','{2}','{3}',{4})\", paperName, teacherID, specialityIDStr, notes, status);" //發(fā)布論文題目的SQL語句
int i = SqlDB.ExecuteSql(connectionString, PaperInfoAdd);
if(igt;0) {MessRes.Text = \"畢業(yè)論文題目已出,等待學(xué)院審核 ,在學(xué)校審核完成前可對所出論文題目進(jìn)行修改。\";}
else" MessRes.Text = \"出題失敗,請檢查數(shù)據(jù)后再試\";
4.1.2" 學(xué)院審核模塊
教師發(fā)布論文題目后,學(xué)院管理人員對論文題目進(jìn)行審核,將論文狀態(tài)設(shè)置為“已通過審核”(用數(shù)字2表示)。主要代碼如下:
string updateStatus = string .Format(\"update [PaperInfo] set [Status]=2 where [PaperID]={0}\",paperID);" //審核通過,將論文狀態(tài)設(shè)置為“已通過審核”的SQL語句
int i = SqlDB.ExecuteSql(connectionString, updateStatus);
if (i gt; 0){ Res.Text = \"已審核通過。\"; }
else" Res.Text = \"審核失敗,請檢查數(shù)據(jù)后再試\";
4.2" 上傳開題報(bào)告和論文模塊
學(xué)生選擇了論文題目后,將開題報(bào)告?zhèn)魅胂到y(tǒng)中,并將論文狀態(tài)設(shè)置為“已上傳開課報(bào)告”(用數(shù)字4表示),而上傳論文的主要代碼與上傳開題報(bào)告的類似。主要代碼如下:
string fileName = Path.GetFileName(filePath);" //
byte[] fileContent = File.ReadAllBytes(filePath);" //將該路徑的文件轉(zhuǎn)化為字節(jié)組
string updateOpeningReport = string.Format(\"update [PaperInfo] set [OpeningReport]=@fs where [PaperID]={0}\", paperID);
int i = SqlDB.ExecuteSqlInsertFile(connectionString, updateOpeningReport,fileContent);//上傳開題報(bào)告文件。
if (i gt; 0) { string updateStatus = string.Format(\"update PaperInfo set Status={0}\", 3);" //將論文狀態(tài)設(shè)置為“已上傳”。
if (SqlDB.ExecuteSql(connectionString, updateStatus) gt; 0)
{" MessRes.Text = \"已上傳了開題報(bào)告。\";" }}
else" MessRes.Text = \"上傳失敗,請檢查數(shù)據(jù)后再試\";
4.3" 學(xué)院分配評審教師模塊
完成論文初稿上傳后,學(xué)院通過系統(tǒng)為每一篇論文隨機(jī)分配3位不重復(fù)的評審教師,而每位評審教師都有審核論文數(shù)量的最大值。主要代碼如下:
string selectPaper = string.Format(\"select PaperID from PaperInfo where SpecialityID='{0}'\", specialityID);" //選擇專業(yè)編號為specialityID的所有論文編號
string selectTeacherID= string.Format(\"select TeacherID from PaperInfo where SpecialityID='{0}' Group by TeacherID\", specialityID);//選擇專業(yè)編號為specialityID的所有指導(dǎo)教師編號
DataTable stPaper = SqlDB.ExecuteDataSet(connectionString, selectPaper).Tables[0];
DataTable stTeacherID = SqlDB.ExecuteDataSet(connectionString, selectTeacherID).Tables[0];
int teacherCount = stTeacherID.Rows.Count;" //獲取指導(dǎo)教師總數(shù)
int paperCount = stPaper.Rows.Count;" " //獲取該專業(yè)的論文數(shù)
int max = (int)Math.Ceiling((double)paperCount* paperMax / teacherCount);" //計(jì)算每位指導(dǎo)教師審核論文的最大數(shù)量,每篇論文會有paperMax位教師審核
int[] d = new int[teacherCount];" "http://定義數(shù)組,數(shù)組的長度與指導(dǎo)教師數(shù)一致,用來標(biāo)記該指導(dǎo)教師是否超出了最大審核數(shù)量max
for (int x=0; x lt; teacherCount; x++)
{ d[x] = 0;" " "http://初始化數(shù)組,值為0,代表每位指導(dǎo)教師目前審核的論文為0篇}
int[,] k = new int[paperCount,teacherCount];
for (int x = 0; x lt; paperCount; x++)
for (int y = 0; y lt; teacherCount; y++)
{ k[x,y] = 0;" "http://初始化多維數(shù)組,為0則代表論文與教師還沒有審核關(guān)系}
Random rd = new Random();" //創(chuàng)建隨機(jī)數(shù)對象
int inrd;" " " "http://定義隨機(jī)數(shù),用于給論文隨機(jī)分配審核教師
for (int i = 0; i lt; paperCount; i++)
for (int j = 0; j lt; paperMax; j++)
{inrd = rd.Next(0, teacherCount);" //產(chǎn)生隨機(jī)的審核教師
while (d[inrd] == max || k[i, inrd] ==1)" //當(dāng)該論文的隨機(jī)審核教師已達(dá)審核論文的最大數(shù)或者該教師已在審核該論文,則重新產(chǎn)生隨機(jī)的審核教師
{ inrd = rd.Next(0, teacherCount);//如果該教師所指導(dǎo)的論文數(shù)量已達(dá)到了最大值,將重新產(chǎn)生隨機(jī)數(shù) }
string InsertPaperReview = string.Format(\"insert into PaperReviewInfo(PaperID,TeacherID) values({0},{1})\", stPaper.Rows[i][0].ToString(), stTeacherID.Rows[inrd][0].ToString());
SqlDB.ExecuteSql(connectionString, InsertPaperReview);//將論文分配給教師審核的結(jié)果存入數(shù)據(jù)庫中
d[inrd] = d[inrd] + 1;" "http://將該審核教師審核論文數(shù)加1
k[i, inrd] = 1;" " " " " //標(biāo)記論文被教師審核中" " " " " " "}
4.4" 教師審核論文模塊
教師在初稿審核階段,通過更新數(shù)據(jù)庫PaperReviewInfo表中的信息完成論文的評審。主要代碼如下:
string PaperReviewInfoUpdate = string.Format(\"update [PaperReviewInfo] set DraftEvaluate='{0}',DraftkIsPass={1} where PaperID={2} and TeacherID ='{3}'\", draftEvaluate, draftkIsPass,paperID, teacherID);//更新PaperReviewInfo數(shù)據(jù)表的SQL語句
int i = SqlDB.ExecuteSql(connectionString, PaperReviewInfoUpdate);
if (i gt; 0 )
{if (draftkIsPass == 1)
MessRes.Text = \"論文的初稿已完成評審。\";
else MessRes.Text = \"評審未通過,已反饋給學(xué)生\";" }
else" "MessRes.Text = \"審核失敗,請檢查數(shù)據(jù)后再試!\";
5" 結(jié)" 論
文章以昆明幼兒師范高等??茖W(xué)校為例,使用UML統(tǒng)一建模語言中的用例圖、狀態(tài)圖構(gòu)建系統(tǒng)的初步模型,使用E-R圖和SQL Server實(shí)現(xiàn)數(shù)據(jù)庫,使用ASP.NET語言開發(fā)系統(tǒng)。通過對高校畢業(yè)論文管理系統(tǒng)的分析、設(shè)計(jì)與實(shí)現(xiàn),有利于高校改變畢業(yè)論文的管理方法,提高畢業(yè)論文的管理效率,進(jìn)一步推進(jìn)學(xué)校的信息化發(fā)展。
參考文獻(xiàn):
[1] 孫超.高校畢業(yè)論文管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)研究 [J].信息記錄材料,2021,22(11):175-176.
[2] 邊超.基于B/S架構(gòu)高校畢業(yè)論文管理系統(tǒng)的設(shè)計(jì)——以中國礦業(yè)大學(xué)銀川學(xué)院為例 [J].企業(yè)科技與發(fā)展,2020(12):64-67.
[3] 李輝,朱可欽,王嘉瑋.基于多方數(shù)字簽名和認(rèn)證的畢業(yè)論文管理系統(tǒng)設(shè)計(jì) [J].長江信息通信,2024,37(1):115-117.
[4] 王涵.基于UML與Qt狀態(tài)機(jī)的聯(lián)鎖仿真試驗(yàn)記錄分析方法研究 [D].蘭州:蘭州交通大學(xué),2023.
[5] 彭娟.計(jì)算機(jī)數(shù)據(jù)庫技術(shù)在信息管理中的應(yīng)用研究 [J].經(jīng)濟(jì)師,2022(11):249-250.
[6] 王釗.數(shù)據(jù)庫技術(shù)在信息管理中的應(yīng)用 [J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2023,13(1):142-144.
[7] 崔鵬.SQL索引及SQL語句的應(yīng)用技巧分析 [J].職業(yè),2019(10):98-99.
[8] 許謙,李元棟,王彧之.基于SQL Server的高校信息資源管理系統(tǒng)設(shè)計(jì) [J].現(xiàn)代電子技術(shù),2020,43(20):115-118.
[9] 顏杰群.以HTML5和ASP.NET開發(fā)中小型藥店線上管理系統(tǒng) [J].常州信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2021,20(1):29-32+41.
[10] 張常泉.基于ASP.NET的高校黨建工作績效評價(jià)管理系統(tǒng)設(shè)計(jì) [J].計(jì)算機(jī)時(shí)代,2023(1):137-140.
作者簡介:蔣銀虎(1984—),男,漢族,云南昆明人,講師,碩士學(xué)位,研究方向:軟件工程、C#開發(fā)、數(shù)據(jù)庫。