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

正文內(nèi)容

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

2024-09-03 00:48上一頁面

下一頁面
  

【正文】 ationBuild(VarDisp))。而如果編譯鏈接結(jié)束后,則視為編譯鏈接錯(cuò)誤,“學(xué)號(hào)編譯錯(cuò)誤50”文本文件,作為評(píng)判結(jié)果存至結(jié)果文件夾oute。errorfile=D:\\test\\oute\\+filetitle+編譯錯(cuò)誤50+.txt。編輯此對(duì)話框,首先添加一些必要的用于說明性的靜態(tài)文本,再添加編輯框一用于顯示運(yùn)行的正確的exe程序絕對(duì)路徑;編輯框二用于輸入運(yùn)行正確程序的輸入數(shù)據(jù),此數(shù)據(jù)也用于作為運(yùn)行所有生成的目標(biāo)程序的輸入數(shù)據(jù);編輯框三用于輸出運(yùn)行正確exe程序后的正確輸出結(jié)果,并且在運(yùn)行所有的目標(biāo)程序得到輸出結(jié)果后與此編輯框中的正確輸出結(jié)果比較以得到評(píng)判結(jié)果。 }2. “運(yùn)行正確程序”按鈕:在選擇了題目正確的exe程序之后,在相應(yīng)的正確輸入編輯框輸入數(shù)據(jù),以此數(shù)據(jù)來運(yùn)行正確的exe程序,而如果程序是不需要數(shù)據(jù)輸入運(yùn)行后直接得到數(shù)據(jù)輸出的,則也省略掉數(shù)據(jù)輸入這一步。 = TRUE。 CreatePipe(amp。si)。 CreateProcess(m_exeEdit,NULL,NULL,NULL,TRUE,NULL,NULL,NULL,amp。memcpy(szInPut,put,20)。 UpdateData(false)。 =D:\\test\\result。代碼如下:CString filepath=(i, 0)。通過管道技術(shù),建立兩個(gè)管道來實(shí)現(xiàn)輸入、輸出數(shù)據(jù)的重定向問題。 = TRUE。 CreatePipe(amp。si)。 CreateProcess(m_exeEdit,NULL,NULL,NULL,TRUE,NULL,NULL,NULL, amp。memcpy(szInPut,put,20)。 Sleep(200)。 CopyFile(D:\\test\\,errorfile,false)。CDialog::OnOK()。選擇Visual C++菜單欄中“工具”“定制”“附加項(xiàng)和宏文件”“瀏覽”,在彈出的選擇文件對(duì)話框中首先選擇文件類型為Addins(.dll),,打開,如圖41所示,此時(shí)定制對(duì)話框中顯示已加載了dll文件。測試程序的目的是計(jì)算一個(gè)三位數(shù)的各個(gè)位數(shù)上的數(shù)字之和,所以這里的重定向后正確輸出為:Please import a number :The sum is : 9再點(diǎn)擊“選擇文件”,選擇result文件夾下的所有目標(biāo)程序添加至列表控件,最后點(diǎn)擊“OK”按鈕,運(yùn)行這些目標(biāo)程序并且進(jìn)行評(píng)判。在測試另一組無需數(shù)據(jù)輸入題目的C源程序文件后,結(jié)果也正確。這個(gè)方式在變量的調(diào)用,函數(shù)的調(diào)用方面都具有自身的特點(diǎn),例如平時(shí)使用的MessageBox()函數(shù),在Addin方式下需改為AfxMessageBox(),這些難點(diǎn)是參考MSDN中的相關(guān)說明后基本解決。第五,提高了自己對(duì)于軟件工程的認(rèn)識(shí),以前不太在意的測試工作現(xiàn)在也認(rèn)識(shí)到是軟件開發(fā)過程中的重要問題。 致 謝在本次畢業(yè)論文的撰寫過程中,嚴(yán)迪新老師給予了我極大的幫助和支持。所有編程的骨架都是響應(yīng)和發(fā)送消息。Windows具有很強(qiáng)的面向?qū)ο筇匦浴H绻讳N毀它們,最終將導(dǎo)致資源泄漏(resource leak)。 這個(gè)函數(shù)通過句柄your_HWND給窗口發(fā)送了一條繪制消息。了解這些原理后,就可以開始討論MFC了。 int m_nY1。} 先簡單說說命名約定。 言歸正傳,再回到類的主題上。下面是調(diào)用它們的一些例子:// 下面調(diào)用 CLine()CLine MyLine。在C++中,關(guān)鍵字new用于創(chuàng)建一個(gè)新的對(duì)象,這與C中的ma.Uoc一樣。 所有這些代碼生成一條直線。// 釋放內(nèi)存delete [] pNumbers。請(qǐng)?jiān)倩剡^頭來考察CLine的構(gòu)造函數(shù)。 m_nY2=y2。}// 這個(gè)39。 m_nY2=y2。delete pLine。 CLine m_LineBottom。}。只需繼承類CLine即可達(dá)到目的。假設(shè)有一個(gè)類CSquare,其中有4個(gè)CLine類:class CSquare{ CLine m_LineTop。另一個(gè)例子不使用指針:CLine *pLine = new CLine(0,0,10,10)。 m_nX2=x2。// 清除這個(gè)類占用的內(nèi)存,并調(diào)用~CLine()delete pMyLine。 m_nX2=x2。如果耗盡了計(jì)算機(jī)的所有內(nèi)存,最終導(dǎo)致計(jì)算機(jī)的崩潰。// 將首元素設(shè)置為0pNumbers[0]=0。// 下面調(diào)用CLine(int x1, int y1, int x2, int y2)pMyLine = new CLine(0,0,10,10)。 所有這些代碼生成一條直線。頭3個(gè)稱做構(gòu)造(constructors)函數(shù)??吹絤_pPoint這樣的名字,就會(huì)想到這是一個(gè)指向某個(gè)點(diǎn)的類的其中一個(gè)成員變量(它是一個(gè)指針)。 // 設(shè)置直線數(shù)據(jù) void SetPoints(int x1, int y1, int x2, int y2)。下面用一個(gè)實(shí)例來加以說明,這個(gè)類表達(dá)一條直線。 case WM_KEYDOWN: break。因?yàn)槠渌翱趧倓倧脑摯翱谏弦谱?,操作系統(tǒng)希望重繪窗口。必須用某種方式創(chuàng)建這些句柄。例如,當(dāng)窗口獲取WM_MOVE消息后,它更改窗口的坐標(biāo),并在屏幕上重繪窗口。的確,Windows編程勢不可擋。還有就是對(duì)于一種特殊情況不能發(fā)現(xiàn),即能夠編譯鏈接,程序的內(nèi)容其實(shí)是錯(cuò)誤的,但碰巧輸出結(jié)果與正確答案相同,這里本系統(tǒng)判為正確,而實(shí)際上是錯(cuò)誤的。第三,提高了自己解決自己之前未接觸過的問題的能力,通過請(qǐng)教老師、同學(xué),系統(tǒng)而深入的研究MSDN,網(wǎng)上查找資料等等方式,在解決遇到的各種問題時(shí),都是行之有效的方法。在整個(gè)系統(tǒng)的開發(fā)過程中,遇到的技術(shù)難點(diǎn)有三個(gè)。結(jié)果如圖47所示。圖44 編譯鏈接結(jié)束信息提示框3. 進(jìn)入運(yùn)行/評(píng)判對(duì)話框后,首先點(diǎn)擊“選擇正確程序”按鈕,選則之前生成的正確的exe程序,然后輸入正確的輸入數(shù)據(jù),這里用數(shù)字333。在運(yùn)行這兩個(gè)題目正確的C源程序得到正確的exe文件后,開始進(jìn)入測試。 CopyFile(D:\\test\\,errorfile,false)。 CopyFile(D:\\test\\,rightfile,false)。bytesRead,NULL)==NULL) break。CString put=m_inEdit+\\n。 DWORD dwWritten。 = sizeof(STARTUPINFO)。 = NULL。 = sizeof(SECURITY_ATTRIBUTES)。))。 } } GetDlgItem(IDOK)EnableWindow(true)。列表控件的初始化工作與添加文件對(duì)話框中的列表控件相同。bytesRead,NULL)==NULL) break。CString put=m_inEdit+\\n。 DWORD dwWritten。 = sizeof(STARTUPINFO)。 = NULL。 = sizeof(SECURITY_ATTRIBUTES)。 GetDlgItem(IDC_exe_EDIT)SetWindowText(StrFileName)。 } 實(shí)現(xiàn)運(yùn)行/評(píng)判對(duì)話框調(diào)用編譯鏈接函數(shù),對(duì)所有的C源程序文件進(jìn)行編譯鏈接,處理生成的目標(biāo)文件,并且先一步給出編譯鏈接不正確的C源程序文件的評(píng)判結(jié)果后,彈出運(yùn)行/評(píng)判對(duì)話框。 } }}else{ CString errorfile。d))。 VERIFY_OK(pConfigget_Name(amp。 for (long j = 1 。pGenProject))。VERIFY_OK(pProjectsget_Count(amp。CComPtrIDispatch pWorkspace。CopyFile(StrFile,StrDestFile,false)。新打開一個(gè)工作空間,打開此時(shí)的test工程文件(),最后編譯鏈接此工程文件。//獲取文件路徑和完整文件名 stillfilename=(()(39。//調(diào)用編譯鏈接函數(shù)} 實(shí)現(xiàn)編譯鏈接函數(shù)首先建立編譯鏈接函數(shù),這個(gè)函數(shù)是在Addin方式下建立的,目的是操控Visual C++的開發(fā)環(huán)境,實(shí)現(xiàn)在工作空間打開工程文件,調(diào)用Visual C++自帶的編譯器去編譯鏈接工程。 for (int i = 0 。 AfxGetApp()WriteProfileString(Configure, szRegKey, (i, 0))。 FileName = (pos)。//清空oute文件夾 GetDlgItem(IDC_addfile_BUTTON)EnableWindow(true)。 SetFileAttributes(sPath, FILE_ATTRIBUTE_NORMAL)。 BOOL bFound。 CString sFilePath = ()。 實(shí)現(xiàn)添加文件對(duì)話框建立起DevStudio Addin Wizard工程后,在工作空間,右擊Auto Classes添加一個(gè)對(duì)話框類AddFile,即添加文件對(duì)話框。為防止編譯鏈接時(shí)編譯鏈接兩次,選擇組件配置,移除Win32 Release只保留Win32 Debug。在這里運(yùn)行程序時(shí)的原理和運(yùn)行正確程序時(shí)的一樣,正確的數(shù)據(jù)輸入就采用正確輸入編輯框中的數(shù)據(jù),這樣可以確保程序正確時(shí)得到的輸出與正確輸出相同,方便評(píng)判。這里也是通過列表控件來完成選擇文件的工作,因?yàn)橹郎傻乃心繕?biāo)程序在test文件夾下的result文件夾中,所以在打開文件時(shí)直接定位到此程序所在的文件夾。通過編輯框的方式輸入數(shù)據(jù)方便直觀。之后通過Addin,控制整個(gè)Visual C++的開發(fā)環(huán)境,首先打開工作空間,然后載入工程,之后編譯鏈接,當(dāng)然這些都是Visual C++自動(dòng)完成的,相當(dāng)于按下了Build按鈕,這也就是使用Addin方式的關(guān)鍵所在。在每次循環(huán)中,首先進(jìn)行初始化操作,刪除空白工程文件夾中相關(guān)不用的文件和文件夾,然后通過從注冊(cè)表提取出添加文件對(duì)話框列表控件的項(xiàng)目中的C源程序文件的絕對(duì)路徑,將后綴名為*.c的C源程序文件改名為與建立空白工程時(shí)建立的關(guān)聯(lián)的*.cpp文件。同時(shí)每個(gè)項(xiàng)目中取的是C源程序文件的絕對(duì)路徑(包括文件名),因?yàn)橹蟮暮枚嗖僮餍枰募穆窂剑〉脤W(xué)號(hào)信息時(shí)也比較方便。此功能通過對(duì)話框上的一個(gè)“初始化”按鈕完成。9. 在運(yùn)行目標(biāo)程序時(shí),通過管道技術(shù)來完成輸入輸出數(shù)據(jù)的重定向問題。通過Addin接口,控制整個(gè)Visual C++環(huán)境,打開已放入改了后綴名的C源程序的空白工程文件,然后便可進(jìn)行編譯鏈接。3. 系統(tǒng)以正確輸入數(shù)據(jù)運(yùn)行生成的目標(biāo)程序(exe)。6. 在運(yùn)行目標(biāo)程序時(shí),如何自動(dòng)完成目標(biāo)程序的輸入和輸出。3. 以測試數(shù)據(jù)運(yùn)行生成的目標(biāo)程序??紤]到Addin的方式在使用Visual C++編譯器去編譯鏈接C源程序的時(shí)候更加方便,并且Addin的方式也可以利用Visual C++的可視化界面的開發(fā)功能,所以工作方式采用Visual C++下的Addin方式。(6)可移植性好。C語言和UNIX可以說是一對(duì)孿生兄弟,在發(fā)展過程中相輔相成。但B語言過于簡單,功能有限。人們?cè)O(shè)想能否找到一種既具有一般高級(jí)語言特性,又具有低級(jí)語言特性的語言,集它們的優(yōu)點(diǎn)于一身。由于在編程作業(yè)的提交過程中,很多學(xué)生可能會(huì)把一些有語法錯(cuò)誤以及結(jié)果不正確的程序提交上來,這就需要花費(fèi)老師很多的精力和時(shí)間,效果也不是很好。它適合作為系統(tǒng)描述語言,即可用來編寫系統(tǒng)軟件,也可用來編寫應(yīng)用軟件。 C語言簡介C語言是國際上廣泛流行的、很有發(fā)展前途的計(jì)算機(jī)高級(jí)語言。 1960年出現(xiàn)的ALGOL 60是一種面向問題的高級(jí)語言,它離硬件比較遠(yuǎn),不宜用來編寫系統(tǒng)程序。1973年, %以上用 C改寫。 C語言主要有以下一些特點(diǎn):(1)語言表達(dá)能力強(qiáng)。 開發(fā)環(huán)境經(jīng)過與指導(dǎo)老師的交流,查閱有關(guān)資料,分析系統(tǒng)的整體情況,本系統(tǒng)更加類似于一個(gè)應(yīng)用程序,再結(jié)合自己所學(xué)知識(shí),決定采用微軟的Visual C++集成開發(fā)環(huán)境來開發(fā)整個(gè)程序。在使用Addin方式的時(shí)候,首先需要打開Visual C++環(huán)境,然后加載addin文件(*.dll)。2.3 需要解決問題1. 存放C源程序的文件夾的組織方式和文件夾中C源程序的命名方式。2.4 系統(tǒng)流程 基本流程基本上本系統(tǒng)是一個(gè)順序執(zhí)行的過程,系統(tǒng)的實(shí)現(xiàn)也是一步一步來的。6. 根據(jù)比較結(jié)果得到評(píng)判結(jié)果。然后循環(huán)繼續(xù)直到所有C源程序都完成編譯鏈接。然后每次運(yùn)行生成的目標(biāo)程序得到輸出時(shí)與編輯框中字符串比較,來得到比較結(jié)果。因此這里需要自己添加函數(shù)來清空文件夾,在清空文件夾之后調(diào)用庫函數(shù)RemoveDirectory()來刪除已空文件夾。通過點(diǎn)擊此按鈕,得到“OK”按鈕按下的消息,調(diào)用編譯鏈接函數(shù)。而如果編譯鏈接完成之后在空白工程文件的Debug文件夾中沒有找到生成的目標(biāo)程序,則視為編譯鏈接錯(cuò)誤,直接在結(jié)果文件夾中以學(xué)號(hào)為信息給出評(píng)判結(jié)果。此函數(shù)的數(shù)據(jù)輸出是:編譯鏈接成功后以學(xué)號(hào)命名的存至相同文件夾下的目標(biāo)程序;編譯鏈接錯(cuò)誤后以學(xué)號(hào)為區(qū)分信息的存至結(jié)果文件夾下的評(píng)判結(jié)果。之后通過CreateProcess()函數(shù)運(yùn)
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1