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

正文內(nèi)容

c語言源程序的自動評判畢業(yè)設(shè)計論文(完整版)

2025-09-10 00:48上一頁面

下一頁面
  

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