freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語(yǔ)言源程序的自動(dòng)評(píng)判畢業(yè)設(shè)計(jì)論文(完整版)

  

【正文】 Folder(CString sPath){ CFileFind ff。 while(bFound) { bFound = ()。系統(tǒng)的使用從點(diǎn)擊這個(gè)按鈕開始。 準(zhǔn)備工作在開始系統(tǒng)設(shè)計(jì)之前,在Visual C++中新建一個(gè)Win32空白工程,這里工程名為test,然后在此空白工程中新建一個(gè)C++文件。此功能通過(guò)一個(gè)“開始”按鈕完成。此功能通過(guò)一個(gè)“添加文件”完成選取所有目標(biāo)程序,通過(guò)一個(gè)列表控件來(lái)完成添加所有目標(biāo)文件。如果程序需要輸入數(shù)據(jù)之后運(yùn)行的,在“正確輸入”編輯框中輸入正確數(shù)據(jù)。然后因?yàn)槭菍源程序文件加入空白工程文件中編譯。 編譯鏈接函數(shù)此函數(shù)需要完成的功能、遇到的問(wèn)題及解決辦法:編譯鏈接:從注冊(cè)表提取出添加文件對(duì)話框中列表控件的項(xiàng)目總數(shù),以此設(shè)置循環(huán)。在添加文件時(shí)選擇用列表控件的方式,這樣在之后設(shè)置循環(huán)對(duì)每個(gè)C源程序文件進(jìn)行操作時(shí)比較方便。 添加文件對(duì)話框此對(duì)話框需要完成的功能、遇到的問(wèn)題及解決辦法:1. 初始化:在系統(tǒng)運(yùn)行之前刪除空白工程文件中不需要的文件,清空相關(guān)的文件夾。8. 對(duì)于編譯鏈接正確,已經(jīng)生成的目標(biāo)程序,設(shè)置循環(huán),每次循環(huán)中通過(guò)新建一個(gè)進(jìn)程來(lái)運(yùn)行應(yīng)用程序,如果程序正常結(jié)束,則關(guān)閉進(jìn)程,循環(huán)繼續(xù)去運(yùn)行下一個(gè)目標(biāo)程序。4. 編譯鏈接方面,Visual C++不能直接編譯鏈接后綴名為*.c的C源程序,因此提前新建一個(gè)WIN32空白工程文件,然后將C源程序的后綴名改為*.cpp,放至空白工程中,便可以解決不能直接編譯鏈接的問(wèn)題。2. 系統(tǒng)控制Visual C++的編譯器去編譯鏈接提取出的C源程序,得到相應(yīng)的生成的目標(biāo)程序(exe)。5. 通過(guò)何種方式運(yùn)行編譯鏈接之后生成的目標(biāo)程序。2. 控制Visual C++編譯器編譯鏈接源程序。結(jié)合Visual C++開發(fā)環(huán)境來(lái)看,有批處理方式、普通應(yīng)用程序方式、Addin方式。(5) 語(yǔ)法限制不嚴(yán)格,程序設(shè)計(jì)自由度大。隨著 UNIX的日益廣泛使用,C語(yǔ)言也迅速得到推廣。 1971年在PDP11/20上實(shí)現(xiàn)了B語(yǔ)言,并寫了UNIX操作系統(tǒng)。為了提高可讀性和可移植性,最好改用高級(jí)語(yǔ)言,但一般的高級(jí)語(yǔ)言難以實(shí)現(xiàn)匯編語(yǔ)言的某些功能(匯編語(yǔ)言可以直接對(duì)硬件進(jìn)行操作),例如:對(duì)內(nèi)存地址的操作、位操作等)。傳統(tǒng)的教學(xué)方式中,學(xué)生采用FTP,Email甚至手寫的方式提交編程作業(yè),老師一般采用逐一檢查并試運(yùn)行的手工檢查方式,然后給出相應(yīng)的得分。對(duì)于學(xué)習(xí)計(jì)算機(jī)專業(yè)的學(xué)生來(lái)說(shuō),學(xué)好C語(yǔ)言將為今后學(xué)習(xí)其他編程語(yǔ)言打下良好的基礎(chǔ),而隨著計(jì)算機(jī)應(yīng)用的普及,更多的其他非計(jì)算機(jī)專業(yè)也會(huì)需要學(xué)習(xí)編寫簡(jiǎn)單的程序,C語(yǔ)言也是一個(gè)很不錯(cuò)的選擇。它適合作為系統(tǒng)描述語(yǔ)言,即可用來(lái)編寫系統(tǒng)軟件,也可用來(lái)編寫應(yīng)用軟件。1963年英國(guó)的劍橋大學(xué)推出了CPL語(yǔ)言。 后來(lái),C語(yǔ)言多次作了改進(jìn),但主要還是在貝爾實(shí)驗(yàn)室內(nèi)部使用。(2)語(yǔ)言簡(jiǎn)潔、緊湊,使用靈活,易于學(xué)習(xí)和使用。Visual C++是Windows環(huán)境下最強(qiáng)大、最流行的程序設(shè)計(jì)語(yǔ)言之一。 系統(tǒng)目標(biāo)本系統(tǒng)最終目的是為了減輕老師負(fù)擔(dān),利用計(jì)算機(jī)自動(dòng)評(píng)判編程作業(yè),替代手工檢查方式。2. 程序通過(guò)何種方式提取C源程序。下一個(gè)模塊需要用到上一個(gè)模塊的數(shù)據(jù)。圖11 系統(tǒng)流程圖 具體實(shí)現(xiàn)根據(jù)系統(tǒng)應(yīng)該完成的功能,結(jié)合需要解決的問(wèn)題,系統(tǒng)的具體實(shí)現(xiàn)如下:1. 文件夾的組織方式:每一個(gè)題目設(shè)置一個(gè)文件夾,同一題目的所有編程作業(yè)(只交后綴名為*.c的文件)交至對(duì)應(yīng)的唯一文件夾下。6. 對(duì)于編譯鏈接后沒有生成目標(biāo)程序的C源程序,視為編譯鏈接錯(cuò)誤,將此結(jié)果先一步存至評(píng)判結(jié)果處。結(jié)果是相同或是不同。2. 添加文件:初始化之后,從相應(yīng)的存放相同題目的文件夾中提取所有的C源程序文件(過(guò)濾器設(shè)置為只能選取后綴名為*.c的文件),將所有的文件添加至對(duì)話框的一個(gè)列表控件中,列表控件的每一行項(xiàng)目為C源程序文件的絕對(duì)路徑。通過(guò)對(duì)話框的“OK”按鈕完成。處理結(jié)束后進(jìn)行下一個(gè)循環(huán)直到循環(huán)結(jié)束,給出編譯鏈接已完成的信息提示框。 運(yùn)行/評(píng)判對(duì)話框此對(duì)話框需要完成的功能及其解決辦法:1. 輸入數(shù)據(jù)、運(yùn)行正確程序:彈出此對(duì)話框后,進(jìn)入運(yùn)行目標(biāo)程序,評(píng)判階段,首先運(yùn)行此題目正確程序編譯鏈接后生成的exe程序,如果需要輸入數(shù)據(jù)才能運(yùn)行的,先輸入數(shù)據(jù),得到此題目正確的輸出。在正確輸出編輯框中會(huì)顯示出正確的結(jié)果,這樣子也便于觀察。如果比較結(jié)果相同,則視為運(yùn)行正確,將此結(jié)果以學(xué)號(hào)信息為區(qū)別存至結(jié)果文件夾中作為評(píng)判結(jié)果;如果比較結(jié)果不同,則視為運(yùn)行時(shí)錯(cuò)誤,也將此結(jié)果以學(xué)號(hào)信息為區(qū)別存至結(jié)果文件夾作為評(píng)判結(jié)果。此對(duì)話框的數(shù)據(jù)輸入是:題目正確源程序生成的exe文件,正確的測(cè)試數(shù)據(jù)輸入,所有C源程序文件編譯鏈接正確后生成的目標(biāo)程序。首先Visual C++中新建一個(gè)DevStudio Addin Wizard工程,工程名稱為Auto,并且在CCommandsICommands中自動(dòng)添加一個(gè)函數(shù)AutoCommandMethod()。(1). 在此遇見的問(wèn)題是在Visual C++中不能直接刪除一個(gè)不為空的文件夾以及沒有現(xiàn)成的庫(kù)函數(shù)來(lái)清空一個(gè)文件夾,因此自己添加兩個(gè)函數(shù)DeleteFolder和ClearFolder,分別用于刪除文件夾(不管其是否為空)和清空文件夾(清空其中的文件而保留文件夾),函數(shù)代碼如下:a. DeleteFolder函數(shù)void AddFile::DeleteFolder(CString sPath){ CFileFind ff。 } } ()。 if(()) { if(!()) DeleteFolder(sFilePath)。DeleteFolder(DirectoryDebugName)。(1). 列表控件的初始化工作需要首先設(shè)置列表控件的屬性屬性樣式查看報(bào)告,然后在AddFile類的Message中選擇WM_INITDIALOG添加函數(shù)OnInitDialog(),最后在此函數(shù)中添加代碼如下:(0,file,LVCFMT_CENTER,500,1)。for (int i = 0 。 FileName = (pos)。 AfxGetApp()WriteProfileString(Configure, szRegKey, (i, 0))。//DeleteFolder(D:\\test\\Debug)。.39。nWorkspaceNumber)(2). 改名復(fù)制C源程序文件,新建工作空間,打開工程文件,編譯鏈接的代碼如下:long lCount。pDispDocuments))。 VERIFY_OK(m_pApplicationget_Projects(amp。 i++) { long lNumConfigs。 VERIFY_OK(pProjectget_Configurations(amp。 VERIFY_OK(pConfigsItem(Varj, amp。VARIANT vtSaveChanges。CFileFind findexe。}5. 編譯鏈接完所有的C源程序文件,在result文件夾中存儲(chǔ)所有編譯鏈接成功后得到的以學(xué)號(hào)命名的目標(biāo)程序,在oute文件夾中存儲(chǔ)所有編譯鏈接錯(cuò)誤沒有得到目標(biāo)程序的以學(xué)號(hào)為區(qū)別信息的評(píng)判結(jié)果之后,彈出消息提示框,提示編譯鏈接已經(jīng)結(jié)束,點(diǎn)擊確認(rèn)進(jìn)入運(yùn)行/評(píng)判對(duì)話框。1. “選擇正確程序”按鈕:在開始選擇C源程序文件之前,需要老師先在Visual C++下運(yùn)行一次題目正確的程序,得到正確的exe程序。關(guān)于輸入、輸出數(shù)據(jù)的重定向問(wèn)題,通過(guò)建立兩個(gè)管道來(lái)解決,輸入數(shù)據(jù)取正確輸入編輯框中的數(shù)據(jù),輸出數(shù)據(jù)輸出到正確輸出編輯框。hRead,amp。hInputWrite,amp。 = hWrite。pi)。dwWritten,NULL)。 }GetDlgItem(IDC_add_BUTTON)EnableWindow(true)。 while(pos!=NULL) { CString FileName=。\\39。其代碼如下:CString oute。hRead,amp。hInputWrite,amp。 = hWrite。pi)。dwWritten,NULL)。如果有輸出數(shù)據(jù)能存入字符串oute,則將oute與正確輸出編輯框的正確輸出比較。 Event=WaitForSingleObject(,4000)。 第4章 測(cè)試4.1 測(cè)試方案鑒于本系統(tǒng)的目的是用于評(píng)判教學(xué)中學(xué)生編寫的C源程序文件,程序的復(fù)雜度不是很高,輸入輸出數(shù)據(jù)也相對(duì)較為簡(jiǎn)單。圖42 工具欄添加按鈕 系統(tǒng)測(cè)試1. 添加文件對(duì)話框點(diǎn)擊此工具欄中按鈕,彈出添加文件對(duì)話框,點(diǎn)擊“初始化”,啟用“添加文件”、“OK”按鈕。圖45 選擇正確程序,輸入數(shù)據(jù)后運(yùn)行,得到正確輸出,再添加目標(biāo)程序運(yùn)行/評(píng)判結(jié)束后,彈出信息提示框,提示所有評(píng)判工作已經(jīng)完成,點(diǎn)擊“是(Y)”后,退出運(yùn)行/評(píng)判對(duì)話框,這樣再點(diǎn)擊工具欄按鈕便可以進(jìn)行下一條題目的評(píng)判。首先整個(gè)系統(tǒng)在Visual C++開發(fā)環(huán)境下能夠通過(guò)加載DLL文件順利開始運(yùn)行。第三個(gè)問(wèn)題是關(guān)于如何在運(yùn)行目標(biāo)程序時(shí)重定向輸入輸出,即如何自動(dòng)的載入輸入數(shù)據(jù)和將輸出數(shù)據(jù)重定向到一個(gè)字符串中以方便和正確答案比較,最后這個(gè)問(wèn)題是通過(guò)使用通道來(lái)解決。其他的是一些帶有自動(dòng)評(píng)判功能的測(cè)試軟件,多用于大型軟件的測(cè)試,一些代碼測(cè)試則是直接給出錯(cuò)的代碼行。在程序設(shè)計(jì)階段,對(duì)于出現(xiàn)的問(wèn)題,反復(fù)實(shí)驗(yàn),幫助我解決。例如,若移動(dòng)鼠標(biāo),就會(huì)往活動(dòng)窗口上發(fā)送一條消息(此消息定義為WM_MOUSEMOVE)。在非面向?qū)ο笳Z(yǔ)言中,程序員如何區(qū)分這些東西呢?使用句柄。所以,務(wù)必確保在適當(dāng)?shù)臅r(shí)候銷毀不再使用的句柄。暫時(shí)不必深究它們的具體細(xì)節(jié)。 所有的操作都與類有關(guān)。 int m_nY2。于是按微軟的方式,用一個(gè)字母表明其數(shù)據(jù)類型。注意,它們?cè)诠?public)部分的前面。//下面調(diào)用 CLine()pMyLine = new CLine。使用如下代碼可以分配一個(gè)包含100個(gè)整數(shù)的數(shù)組:// 下面調(diào)用CLine()CLine MyLine。在C++中,關(guān)鍵字new用于創(chuàng)建一個(gè)新的對(duì)象,這與C中的malloc一樣。它告訴程序刪除整個(gè)數(shù)組。 m_nX2=0。構(gòu)造函數(shù)的一個(gè)區(qū)別是,它們沒有返回值。表征程序中的有MyLine效域的結(jié)束// 調(diào)用~CLine() (因?yàn)镸yLine越出了作用域) 對(duì)于本例中的類,~CLine()不需要做任何事。}void CLine::Draw(){ // 這里使用的是偽碼 // 它們是繪制直線的操作系統(tǒng)函數(shù) MoveTo(m_nX1, m_nY1)。(0,0,10,10)。 //等等} 也可以使用已有的CLine類創(chuàng)建自定義類。 cpp代碼如下所示:void CColorLine::Draw(long color){ // 這里使用的是偽碼 // 它們是繪制直線的操作系統(tǒng)函數(shù) SetColor(color)。假如想在程序中繪制一條直線,而且希望利用現(xiàn)有的直線類,但這個(gè)類缺少一個(gè)重要的特征:不能通過(guò)它設(shè)置顏色。 以上介紹的是類中的代碼。 return。因?yàn)樵谶@里不需要它做任何事,所以,函數(shù)代碼為空:CLine::~CLine(){ // 不做任何事} 下面,再添加其他兩個(gè)函數(shù)。析構(gòu)函數(shù)是刪除CLine或越出作用域時(shí)自動(dòng)調(diào)用的函數(shù),例如:// 這是Cline類的一個(gè)指針CLine *pMyLine。 m_nY2=0。因而可能會(huì)泄漏內(nèi)存。使用如下代碼可以分配一個(gè)包含100個(gè)整數(shù)的數(shù)組:// 整數(shù)的指針int *pNumbers。// 下面調(diào)用CLine()pMyLine = new CLine。// 下面調(diào)用 CLine(int x1, int y1, int x2, int y2)pMyLine = new CLine(0,0,10,10)。它們并非用于公有目的。不要使用下劃線以及類似的字符。 CLine(int x1, int y1, int x2, int y2)。在開始使用VC++之前,先介紹一些有關(guān)類的必備知識(shí)。例如: void HandleTheMessage(long Message){ switch(Message) { case WM_PAINT: DrawWindow()。假如有一個(gè)窗口,且擁有該窗口的一個(gè)句柄(稱做一個(gè)HWND)??梢允褂肳indows的句柄、文件的句柄、分配內(nèi)存的句柄、圖像的句柄等等。若改變窗口大小,同樣會(huì)往活動(dòng)窗口發(fā)送一條消息(此消息定義為WM_SIZE)。這些都使我受益匪淺。在完成C源程序自動(dòng)評(píng)判系統(tǒng)得開發(fā)后,對(duì)于開發(fā)類似的源程序評(píng)判系統(tǒng)也提供了不少經(jīng)驗(yàn)。首先,大大增加了自己對(duì)于編程的興趣。整個(gè)系統(tǒng)的運(yùn)行過(guò)程力求操作最簡(jiǎn),按照順序和提示一步一步進(jìn)行最簡(jiǎn)單的點(diǎn)擊、輸入等各種,即可以完成對(duì)于大量C源程序文件的評(píng)判各種。圖46 評(píng)判結(jié)束信息提示框最后,在oute文件夾中可以查看評(píng)判結(jié)果,結(jié)果是一個(gè)個(gè)與C源程序文件對(duì)應(yīng)的空白文本文件,文件名是對(duì)應(yīng)的評(píng)判信息。添加完成后,如圖43所示,并點(diǎn)擊“OK“按鈕。將這兩組數(shù)據(jù)以唯一序號(hào)命名,存入兩個(gè)不同的文件夾。 TerminateProcess(,exitcode)。如果結(jié)果不同則視為運(yùn)行時(shí)出錯(cuò),“學(xué)號(hào)運(yùn)行錯(cuò)誤60”文本文件,作為評(píng)判結(jié)果存至結(jié)果文件夾oute。
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1