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

正文內(nèi)容

c語言源程序的自動評判畢業(yè)設(shè)計論文-全文預(yù)覽

2025-08-26 00:48 上一頁面

下一頁面
  

【正文】 ,在相應(yīng)的正確輸入編輯框輸入數(shù)據(jù),以此數(shù)據(jù)來運行正確的exe程序,而如果程序是不需要數(shù)據(jù)輸入運行后直接得到數(shù)據(jù)輸出的,則也省略掉數(shù)據(jù)輸入這一步。代碼如下:CFileDialog Dlg(TRUE,*.exe,NULL,OFN_FILEMUSTEXIST|OFN_ALLOWMULTISELECT,可執(zhí)行文件(*.exe)|*.exe|,NULL)。編輯此對話框,首先添加一些必要的用于說明性的靜態(tài)文本,再添加編輯框一用于顯示運行的正確的exe程序絕對路徑;編輯框二用于輸入運行正確程序的輸入數(shù)據(jù),此數(shù)據(jù)也用于作為運行所有生成的目標程序的輸入數(shù)據(jù);編輯框三用于輸出運行正確exe程序后的正確輸出結(jié)果,并且在運行所有的目標程序得到輸出結(jié)果后與此編輯框中的正確輸出結(jié)果比較以得到評判結(jié)果。if(AfxMessageBox(StrInfo,MB_YESNO)==IDYES) { run RunDlg。errorfile=D:\\test\\oute\\+filetitle+編譯錯誤50+.txt。 {if((D:\\test\\result\\)) { CString newexefile=D:\\test\\result\\+filetitle+.exe。而如果編譯鏈接結(jié)束后,則視為編譯鏈接錯誤,“學(xué)號編譯錯誤50”文本文件,作為評判結(jié)果存至結(jié)果文件夾oute。=VT_I4。 VERIFY_OK(m_pApplicationBuild(VarDisp))。 CComVariant VarDisp = pConfig。 j++) { CComVariant Varj = j。 VERIFY_OK(pConfigsget_Count(amp。IID_IBuildProjectpProject(pGenProject)。 CComPtrIGenericProject pGenProject。 for (long i = 1 。CComQIPtrIProjects, amp。pWorkspace))。 CComQIPtrIDocuments, amp。 CComPtrIDispatch pDispDocuments。wsprintf(RegKey, %d, nWorkspaceNumber1)。for (int nWorkspaceNumber = nNumWorkspaces。//獲 取文件標題(學(xué)號),即文件名去掉后綴3. 取得注冊表中存入的添加文件對話框中列表控件的項目總數(shù)和每個項目中選取的C源程序文件的絕對路徑,并以項目總數(shù)設(shè)置循環(huán)。)1)。CString filetitle。 在添加文件對話框完成所有工作后,點擊“OK”按鈕,發(fā)出按鈕按下的消息,在AutoCommandMethod()函數(shù)中調(diào)用build()函數(shù)。此消息的實現(xiàn)是在系統(tǒng)切入點AutoCommandMethod()函數(shù)出,點擊工具欄按鈕后彈出添加文件對話框,進行完選取C源程序文件的操作后,點擊“OK”按鈕,AutoCommandMethod()函數(shù)得到按下“OK”按鈕的消息,然后調(diào)用編譯鏈接函數(shù),進入下一步工作,這里AutoCommandMethod()函數(shù)相關(guān)代碼如下:AddFile AddFileDlg。 i++) { char szRegKey[50]。 (0, 0, LVIF_TEXT, FileName,0, 0, 0, 0)。 if(()==IDOK) { POSITION pos=()。 i++){ char szRegKey[50]。(0, 0, LVIF_TEXT, FileName,0, 0, 0, 0)。(3). 對于選擇多個文件添加至列表控件中,需要設(shè)置指針,通過GetStartPosition()函數(shù)使指針指向選取的第一個文件開始,直至最后一個文件,然后通過GetNextPathName()函數(shù)來將選取的C源程序文件的絕對路徑添加入列表控件,代碼如下:POSITION pos=()。// 設(shè)置“OK”按鈕禁用,點擊“初始化”后啟用}2. “添加文件”按鈕:點擊之后彈出選擇文件對話框,完成選擇所有的C源程序文件,然后將所有的C源程序文件添加至對話框的列表控件中,列表控件的每一行項目為C源程序文件的絕對路徑。ClearFolder(DirectoryResultName)。DeleteFile(StrDestFile)。 } DeleteFile(sFilePath)。 while(bFound) { bFound = ()。 RemoveDirectory(sPath)。 } else { if(()) { SetFileAttributes(sFilePath, FILE_ATTRIBUTE_NORMAL)。 bFound = (sPath + \\*.*)。1. “初始化”按鈕:此按鈕完成的功能是刪除Debug文件夾、清空result和oute文件夾。這時編譯鏈接工程之后,生成DLL文件,加載此文件后,工具欄會添加一個按鈕,此按鈕實現(xiàn)的是AutoCommandMethod()的函數(shù)功能。在每次開始使用系統(tǒng)之前,進行的初始化操作就包括刪除Debug文件夾、清空result和oute文件夾。3.2 系統(tǒng)模塊具體實現(xiàn)在這一節(jié)中,將會對各個模塊中系統(tǒng)那個實現(xiàn)的難點、遇到的問題、解決的方法、重點技術(shù)問題的給出詳細的說明。因為是教學(xué)中的C源程序文件作業(yè),相對較為簡單,所以設(shè)置運行時間為4秒,如果進程運行超時還沒有自動結(jié)束,則強制結(jié)束,判為運行時錯誤。直到處理完所有的目標程序,至此運行、評判結(jié)束。3. 運行目標文件、進行評判:完成選取所有目標程序后,以列表控件的項目總數(shù)即目標程序總數(shù)設(shè)置循環(huán)。選取暫存文件夾中所有C源程序文件編譯鏈接正確后生成的所有以學(xué)號命名的目標程序至列表控件,列表控件項目為選取的目標程序的絕對路徑。而如果不需輸入數(shù)據(jù)即可得到輸出數(shù)據(jù)的話就不用輸入數(shù)據(jù)即可。在編譯鏈接結(jié)束后,進入運行/評判階段,首先需要運行正確的程序,這是老師之前通過編譯鏈接正確題目程序得到的正確的exe程序。此函數(shù)的數(shù)據(jù)輸入是:列表控件中的項目總數(shù)和列表控件每個項目中C源程序文件的絕對路徑。在每次循環(huán)開始前,都需要對test文件夾進行處理,刪除Debug文件夾,清空result、oute文件夾,這些問題同添加文件對話框問題中的初始化一樣,都需要自己編寫函數(shù)來清空文件夾和刪除非空文件夾。編譯鏈接完成之后如果在空白工程文件的Debug文件夾中找到生成的目標程序,則以此C源程序文件中的學(xué)號信息來命名此目標程序(即,)并且將改名后的目標程序復(fù)制到暫存所有生成的目標程序的文件夾中,以備運行時使用。此對話框的數(shù)據(jù)輸出是:列表控件中的項目總數(shù)和列表控件每個項目中C源程序文件的絕對路徑。3. 確認:新建對話框時,默認的代碼,無實際功能。此功能通過對話框的一個“添加文件”按鈕和一個列表控件完成。而在Visual C++中是不能直接刪除非空的文件夾的,也沒有清空文件夾的函數(shù),文件是可以通過庫函數(shù)DeleteFile()直接刪除的。 第3章 詳細設(shè)計3.1 系統(tǒng)模塊化分根據(jù)系統(tǒng)所應(yīng)該完成的功能,以及考慮到使用的方便性,將系統(tǒng)劃分為三個模塊,其中包括兩個基本對話框和一個函數(shù)。11. 在開始循環(huán)運行所有目標程序之前,需要老師首先運行此題目正確程序生成的應(yīng)用程序,并且輸入運行數(shù)據(jù)(如無需數(shù)據(jù)輸入則省略此步驟),得到正確的輸出數(shù)據(jù),存入一個編輯框。同時通過列表框提取已經(jīng)生成的所有以學(xué)號命名的目標程序。5. 循環(huán)過程中,編譯鏈接后生成目標程序的C源程序,從空白工程文件的Debug文件夾中復(fù)制其目標程序到暫存的文件夾,并用其學(xué)號來命名生成的目標程序。3. 設(shè)置一個基本對話框,通過列表控件來提取選擇的一個文件夾下的所有C源程序。5. 系統(tǒng)將輸出數(shù)據(jù)與正確答案進行比較。1. 系統(tǒng)從文件夾提取出所有的C源程序。8. 采用何種方式比較輸出結(jié)果和正確答案,以及如何存儲比較結(jié)果。4. 如何處理編譯鏈接時出錯,沒有生成目標程序的C源程序。5. 根據(jù)比較結(jié)果得到評判結(jié)果。2.2 系統(tǒng)功能詳細的分析整個系統(tǒng)功能應(yīng)該包括:1. 從文件夾抽取源程序。通過這個接口,Addin能夠掌管Visual C++環(huán)境,并且執(zhí)行特定的任務(wù),例如在Visual C++環(huán)境下打開工作空間,編譯工程等等。 工作方式分析整個系統(tǒng),最主要的功能是:編譯鏈接源程序,運行目標程序,目標程序輸入輸出的重定向。首先需要解決的問題是確定整個系統(tǒng)的開發(fā)環(huán)境和工作方式,然后是確定系統(tǒng)所要達到的目標,接著分析系統(tǒng)所應(yīng)完成的功能以及可能遇到的問題,最后給出具體實現(xiàn)的步驟。(4)語言生成的代碼質(zhì)量高?,F(xiàn)在C語言已風(fēng)靡全世界,成為世界上應(yīng)用最廣泛的幾種計算機語言之一。1977年出現(xiàn)了不依賴于具體機器的C語言編譯文本《可移植C語言編譯程序》,使C移植到其它機器時所做的工作大大簡化了,這也推動了UNIX操作系統(tǒng)迅速地在各種機器上實現(xiàn)。最初的C語言只是為描述和實現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設(shè)計的。1970年美國貝爾實驗室的 Ken Thompson以 BCPL語言為基礎(chǔ),又作了進一步簡化,設(shè)計出了很簡單的而且很接近硬件的 B語言,并用 B語言寫第一個UNIX操作系統(tǒng),在PDP7上實現(xiàn)。 C語言是在B語言的基礎(chǔ)上發(fā)展起來的,它的根源可以追溯到ALGOL 60。由于匯編語言依賴于計算機硬件,程序的可讀性和可移植性都比較差。因此,有必要開發(fā)一套簡單易用的C語言源程序的自動評判系統(tǒng),幫助老師檢查學(xué)生的編程作業(yè),提高老師工作效率,減輕老師負擔(dān)。只有通過自己編寫程序,才能更好的掌握理論知識,發(fā)現(xiàn)不足,取得進步。蘇州科技學(xué)院畢業(yè)論文目 錄第1章 引言 11.1 背景介紹 1 研究背景簡介 1 C語言簡介 1第2章 概要設(shè)計 32.1 方案設(shè)計 3 開發(fā)環(huán)境 3 工作方式 3 系統(tǒng)目標 32.2 系統(tǒng)功能 32.3 需要解決問題 42.4 系統(tǒng)流程 4 基本流程 4 具體實現(xiàn) 5第3章 詳細設(shè)計 73.1 系統(tǒng)模塊化分 7 添加文件對話框 7 編譯鏈接函數(shù) 8 運行/評判對話框 93.2 系統(tǒng)模塊具體實現(xiàn) 10 準備工作 10 實現(xiàn)添加文件對話框 11 實現(xiàn)編譯鏈接函數(shù) 15 實現(xiàn)運行/評判對話框 19第4章 測試 264.1 測試方案 264.2 運行界面 26 準備系統(tǒng)運行 26 系統(tǒng)測試 27結(jié)論 30致謝 32參考文獻 33附錄A 外文參考文獻(譯文) 34附錄B 外文參考文獻(原文) 4867第1章 引言1.1 背景介紹 研究背景簡介C語言是目前國際上廣泛流行的、重要的計算機高級語言之一。學(xué)習(xí)C語言,首先是要學(xué)習(xí)理論知識,閱讀編程思想,閱讀源代碼,其次就是動手實踐上機編寫程序了。當(dāng)前,采用計算機對源程序直接進行評判還不是很普遍。 早期的操作系統(tǒng)等系統(tǒng)軟件主要是用匯編語言編寫的(包括 UNIX操作系統(tǒng)在內(nèi))。于是,C語言就在這種情況下應(yīng)運而生了。1967年英國劍橋大學(xué)的Matin Richards對 CPL語言作了簡化,推出了BCPL語言。1972年至 1973年間,貝爾實驗室的 (取 BCPL的第二個字母)。直到1 975年UNIX第6版公布后 ,C語言的突出優(yōu)點才引起人們普遍注意。1978年以后,C語言已先后移植到大、中、小、微型機上,已獨立于UNIX和PDP了。(3)數(shù)據(jù)類型豐富,具有很強的結(jié)構(gòu)化控制語句。 第2章 概要設(shè)計2.1 方案設(shè)計本課題的任務(wù)是完成一個C源程序的自動評判系統(tǒng)。Visual C++可以用來開發(fā)各種類型、不同規(guī)模和復(fù)雜程度的應(yīng)用程序,開發(fā)效率很高,生成的應(yīng)用軟件代碼品質(zhì)優(yōu)良。Visual C++ AddIn基本上就是實現(xiàn)了IDSAddIn接口的COM對象。要求學(xué)生將編寫好的作業(yè)交至指定文件夾,然后老師運行本系統(tǒng),編譯鏈接,運行生成目標程序,通過比較程序輸出與標準答案,可以得到每個源程序的評判結(jié)果。4. 程序輸出與標準輸出比較。3. 用程序控制Visual C++編譯器去編譯鏈接C源程序。7. 對于運行目標程序時異常情況的處理。系統(tǒng)流程圖如圖11所示。4. 系統(tǒng)提取運行目標程序(exe)得到的輸出數(shù)據(jù)。2. 每個文件夾中C源程序的命名方式:以學(xué)號命名,后綴名為*.c,這樣每個文件夾中的C源程序是唯一的,在評判時能更直觀的得到結(jié)果。在這里要設(shè)置循環(huán),對列表框中的每一個C源程序都進行編譯鏈接。7. 編譯鏈接全部完成后,設(shè)置彈出一個對話框,用于輸入測試數(shù)據(jù)、運行正確的目標程序,得到正確答案。10. 對于目標程序運行時可能出現(xiàn)的種種異常情況,例如死循環(huán)等,通過設(shè)定一個時間,超出這個時間后進程強制結(jié)束來處理,進程強制結(jié)束后主循環(huán)繼續(xù),同時判定為運行時錯誤。12. 最后的評判結(jié)果:沒有生成目標程序,判為編譯鏈接出錯50分;生成了目標程序,但是輸出與正確答案不同,判為運行錯誤60分;生成了目標程序,并且輸出結(jié)果與正確答案相同,判為程序正確100分。在系統(tǒng)運行選擇C源程序文之前,需要對相關(guān)文件夾和文件進行處理,有刪除文件夾、清空文件夾、刪除文件。完成添加C源程序后,取得項目總數(shù)的信息存入注冊表,并且以項目總數(shù)設(shè)置循環(huán),將每個C源程序文件的絕對路徑信息存入注冊表,然后調(diào)用編譯鏈接函數(shù)。因為在Addin方式下,對話框類和Addin類之間的數(shù)據(jù)傳遞比較特
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1