C語(yǔ)言程序設(shè)計(jì)考試系統(tǒng)畢業(yè)設(shè)計(jì)論文.doc_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)考試系統(tǒng)畢業(yè)設(shè)計(jì)論文.doc_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)考試系統(tǒng)畢業(yè)設(shè)計(jì)論文.doc_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)考試系統(tǒng)畢業(yè)設(shè)計(jì)論文.doc_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)考試系統(tǒng)畢業(yè)設(shè)計(jì)論文.doc_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

鐘山職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)論文 C語(yǔ)言程序設(shè)計(jì)考試系統(tǒng)【摘要】:C語(yǔ)言是Combined Language(組合語(yǔ)言)的中英混合簡(jiǎn)稱。是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開(kāi)發(fā)上,而且各類科研都需要用到C語(yǔ)言,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開(kāi)發(fā)。 C語(yǔ)言考試系統(tǒng)采用Microsoft Visual C+和Microsoft SQL Server 2000相結(jié)合,很好的實(shí)現(xiàn)了登錄驗(yàn)證功能。登錄身份有管理員和學(xué)生。管理員是對(duì)整個(gè)考試系統(tǒng)的環(huán)境設(shè)置,其中包括對(duì)各個(gè)題型的題量設(shè)置、定義考試說(shuō)明、考場(chǎng)要求和對(duì)學(xué)生的管理等。學(xué)生登錄實(shí)現(xiàn)了讓有考試權(quán)限的學(xué)生進(jìn)入考試環(huán)境。在這個(gè)環(huán)境下,系統(tǒng)完全實(shí)現(xiàn)了隨機(jī)抽題。 C語(yǔ)言考試系統(tǒng)實(shí)現(xiàn)了嵌入turboc2.0編譯器進(jìn)行程序的編輯;采用了S數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)進(jìn)行數(shù)據(jù)庫(kù)的操作;完成了學(xué)生考試、管理員管理的功能。C語(yǔ)言考試系統(tǒng)提高網(wǎng)絡(luò)教學(xué)質(zhì)量的同時(shí)大大拓展了考試的靈活性,閱卷效率,以及保證了考試的公平性、答案的安全性。 【關(guān)鍵詞】:C語(yǔ)言 考試系統(tǒng) 數(shù)據(jù)庫(kù) 編譯器 文件操作 目錄引 言3矚慫潤(rùn)厲釤瘞睞櫪廡賴。第一章 C語(yǔ)言程序概述4聞創(chuàng)溝燴鐺險(xiǎn)愛(ài)氌譴凈。1.1 C語(yǔ)言的演變及特點(diǎn)4殘騖樓諍錈瀨濟(jì)溆塹籟。1.1.1 C語(yǔ)言的發(fā)展過(guò)程4釅錒極額閉鎮(zhèn)檜豬訣錐。1.1.2 C語(yǔ)言版本41.1.3 C語(yǔ)言的特點(diǎn)5彈貿(mào)攝爾霽斃攬磚鹵廡。1.1.4 C語(yǔ)言與其他語(yǔ)言的差別51.2 C語(yǔ)言的程序結(jié)構(gòu)61.2.1 C源程序的結(jié)構(gòu)特點(diǎn)61.2.2 C語(yǔ)言程序結(jié)構(gòu)組成7謀蕎摶篋飆鐸懟類蔣薔。第二章 C語(yǔ)言考試系統(tǒng)8廈礴懇蹣駢時(shí)盡繼價(jià)騷。2.1 C語(yǔ)言考試系統(tǒng)發(fā)展背景8煢楨廣鰳鯡選塊網(wǎng)羈淚。2.2 C語(yǔ)言考試系統(tǒng)的組成82.2.1 Microsoft Visual C+9鵝婭盡損鵪慘歷蘢鴛賴。2.2.2 SQL SERVER 2000(結(jié)構(gòu)化查詢語(yǔ)言 SQL)10籟叢媽羥為贍僨蟶練淨(jìng)。2.2.3 Turboc2.0編譯器12預(yù)頌圣鉉儐歲齦訝驊糴。第三章 學(xué)生成績(jī)管理模塊系統(tǒng)14滲釤嗆儼勻諤鱉調(diào)硯錦。3.1 學(xué)生成績(jī)管理系統(tǒng)的重要性14鐃誅臥瀉噦圣騁貺頂廡。3.2 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)14擁締鳳襪備訊顎輪爛薔。3.2.1 系統(tǒng)需求14贓熱俁閫歲匱閶鄴鎵騷。3.2.2 總體設(shè)計(jì)14壇摶鄉(xiāng)囂懺蔞鍥鈴氈淚。3.2.3 功能結(jié)構(gòu)設(shè)計(jì)15蠟變黲癟報(bào)倀鉉錨鈰贅。3.2.4 學(xué)生成績(jī)管理系統(tǒng)運(yùn)行過(guò)程16買鯛鴯譖曇膚遙閆擷凄。第四章 C語(yǔ)言考試系統(tǒng)發(fā)展前景展望25綾鏑鯛駕櫬鶘蹤韋轔糴。4.1 C語(yǔ)言考試系統(tǒng)與其他語(yǔ)言系統(tǒng)的對(duì)比25驅(qū)躓髏彥浹綏譎飴憂錦。4.2 C語(yǔ)言考試系統(tǒng)能夠解決的一些問(wèn)題25貓蠆驢繪燈鮒誅髏貺廡。4.3 發(fā)展C語(yǔ)言考試系統(tǒng)的目的與意義26鍬籟饗逕瑣筆襖鷗婭薔???結(jié)27構(gòu)氽頑黌碩飩薺齦話騖。參 考 文 獻(xiàn)28輒嶧陽(yáng)檉籪癤網(wǎng)儂號(hào)澩。引 言 C語(yǔ)言是1972年由美國(guó)的Dennis Ritchie設(shè)計(jì)的,并首次在UNIX操作系統(tǒng)的DEC PDP-11計(jì)算機(jī)上使用。它由早期的編程語(yǔ)言BCPL發(fā)展演變而來(lái)的。在1970年,AT&T貝爾實(shí)驗(yàn)室的Ken Thompson根據(jù)BCPL語(yǔ)言設(shè)計(jì)出較先進(jìn)的并取名為B的語(yǔ)言,隨后C語(yǔ)言問(wèn)世了。隨著微型計(jì)算機(jī)的日益普及,C語(yǔ)言出現(xiàn)了許多版本。由于沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語(yǔ)言版本之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)(ANSI)為C語(yǔ)言制定了一套ANSI標(biāo)準(zhǔn),成為現(xiàn)行的C 語(yǔ)言標(biāo)準(zhǔn)。堯側(cè)閆繭絳闕絢勵(lì)蜆贅。 C語(yǔ)言考試系統(tǒng),是為了配合C語(yǔ)言的教學(xué)而設(shè)計(jì)的。它是C語(yǔ)言課件的一個(gè)重要組成部分。試卷可根據(jù)題庫(kù)中的內(nèi)容即時(shí)生成,可避免考試前的壓題;而且可以采用大量標(biāo)準(zhǔn)化試題,從而使用計(jì)算機(jī)閱卷,大大提高閱卷效率;還可以直接把成績(jī)送到數(shù)據(jù)庫(kù)中,進(jìn)行統(tǒng)計(jì)、排序等操作。試題內(nèi)容放在服務(wù)器上,考生通過(guò)準(zhǔn)考證號(hào)進(jìn)行登錄,考試答案也存放在服務(wù)器中,這樣考試的公平性、答案的安全性可以得到有效的保證。因此,采用無(wú)紙化將是以后考試發(fā)展的必然趨勢(shì)。識(shí)饒鎂錕縊灩筧嚌儼淒。 考試是網(wǎng)絡(luò)教學(xué)的重要部分,日漸普及的網(wǎng)絡(luò)教學(xué)呼喚著功能強(qiáng)大的網(wǎng)絡(luò)考試系統(tǒng)的出現(xiàn)。網(wǎng)絡(luò)考試系統(tǒng)方便了傳統(tǒng)考試中的各個(gè)環(huán)節(jié)。提高了試題治理的自動(dòng)化、標(biāo)準(zhǔn)化、便捷化,也提高了試題的安全性和保密性。試題的自動(dòng)生成,使每個(gè)考生都有一套不同的試題,把固定在單一試卷中的試題發(fā)展到了可以自由組合的題庫(kù),隨著題庫(kù)的建立,組卷變得方便了,測(cè)試的形式也發(fā)生著變化,由所有學(xué)生同考一張?jiān)嚲淼拇笠?guī)模的集體測(cè)試發(fā)展到了同一場(chǎng)考試使用等同考查效力的不同試卷,而且可以跨地域的進(jìn)行同一考試,除了在本地也可以在異地進(jìn)行,打破了以前考試的局限性。在成績(jī)統(tǒng)計(jì)方面,可以方便快捷地實(shí)現(xiàn)成績(jī)統(tǒng)計(jì),如各種均值,方差,分布等的計(jì)算,同時(shí)還可以方便地評(píng)判考試的信度和效度。通過(guò)使用試題自動(dòng)生成系統(tǒng)完全擺脫了紙和筆,考生使用計(jì)算機(jī)答卷,然后通過(guò)網(wǎng)絡(luò)提交試卷,系統(tǒng)自動(dòng)閱卷?;谟?jì)算機(jī)網(wǎng)絡(luò)的考試需要專門的較高水平的技術(shù)支持,網(wǎng)絡(luò)考試已經(jīng)發(fā)展成為一種產(chǎn)業(yè)。凍鈹鋨勞臘鍇癇婦脛糴。 發(fā)展網(wǎng)絡(luò)教學(xué)有著非常深遠(yuǎn)的意義,網(wǎng)絡(luò)教學(xué)在全世界范圍內(nèi)得到了迅速的發(fā)展。在國(guó)外,美國(guó)每年大約有近1700萬(wàn)人通過(guò)網(wǎng)絡(luò)接受教育和培訓(xùn);歐洲網(wǎng)絡(luò)教育規(guī)模也很大,巨大的需求推動(dòng)了網(wǎng)上教育業(yè)的快速發(fā)展。目前,在國(guó)際市場(chǎng)上比較聞名的網(wǎng)上教育軟件產(chǎn)品有:Lotus公司LearningSpace,英屬哥倫比亞大學(xué)計(jì)算機(jī)科學(xué)系開(kāi)發(fā)的WebCT,WBTSystem公司的TopClass和加拿大SimonFraser大學(xué)開(kāi)發(fā)的Virtual-U等。美國(guó)的NTU,英國(guó)的OpenCollege都是十分典型的網(wǎng)絡(luò)教育示例。恥諤銪滅縈歡煬鞏鶩錦。第一章 C語(yǔ)言程序概述1.1 C語(yǔ)言的演變及特點(diǎn)1.1.1 C語(yǔ)言的發(fā)展過(guò)程C語(yǔ)言的原型ALGOL 60語(yǔ)言(也稱為A語(yǔ)言)。1963年,劍橋大學(xué)將ALGOL 60語(yǔ)言發(fā)展成為CPL(Combined Programming Language)語(yǔ)言。1967年,劍橋大學(xué)的Matin Richards 對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL語(yǔ)言。1970年,美國(guó)貝爾實(shí)驗(yàn)室的Ken Thompson將BCPL進(jìn)行了修改,并為它起了一個(gè)有趣的名字“B語(yǔ)言”。意思是將CPL語(yǔ)言煮干,提煉出它的精華。并且他用B語(yǔ)言寫了第一個(gè)UNIX操作系統(tǒng)。而在1973年,B語(yǔ)言也給人“煮”了一下,美國(guó)貝爾實(shí)驗(yàn)室的D.M.RITCHIE在B語(yǔ)言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語(yǔ)言,他取了BGPL的第二個(gè)字母作為這種語(yǔ)言的名字,這就是C語(yǔ)言。為了使UNIX操作系統(tǒng)推廣,1977年Dennis M.Ritchie 發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C語(yǔ)言編譯文本可移植的C語(yǔ)言編譯程序。1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著The C Programming Language,從而使C語(yǔ)言成為目前世界上流行最廣泛的高級(jí)程序設(shè)計(jì)語(yǔ)言。1987年,隨著微型計(jì)算機(jī)的日益普及,出現(xiàn)了許多C語(yǔ)言版本。由于沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語(yǔ)言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國(guó)國(guó)家標(biāo)準(zhǔn)研究所(ANSI)為C語(yǔ)言制定了一套ANSI標(biāo)準(zhǔn), 成為現(xiàn)行的C語(yǔ)言標(biāo)準(zhǔn) 3.C語(yǔ)言的主要特點(diǎn) ,即經(jīng)典的87 ANSI C。C語(yǔ)言發(fā)展迅速, 而且成為最受歡迎的語(yǔ)言之一,主要因?yàn)樗哂袕?qiáng)大的功能。許多著名的系統(tǒng)軟件, 如DBASE PLUS、DBASE 都是由C語(yǔ)言編寫的。用C語(yǔ)言加上一些匯編語(yǔ)言子程序, 就更能顯示C語(yǔ)言的優(yōu)勢(shì)了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。1990年,國(guó)際化標(biāo)準(zhǔn)組織ISO(Intrernational StandardOrganization)接受了87 ANSI C為ISO C的標(biāo)準(zhǔn)(ISO9899-1990)。1994年,ISO修訂了C語(yǔ)言的標(biāo)準(zhǔn)。目前流行的C語(yǔ)言編譯系統(tǒng)大多是以ANSI C為基礎(chǔ)進(jìn)行開(kāi)發(fā)的,但不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語(yǔ)言功能和語(yǔ)法規(guī)則略有差別。鯊腎鑰詘褳鉀溈懼統(tǒng)庫(kù)。1.1.2 C語(yǔ)言版本1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(American National Standards Institute)在標(biāo)準(zhǔn)C基礎(chǔ)上制定了C語(yǔ)言新標(biāo)準(zhǔn),于1983年發(fā)表,稱為ANSI C,它比標(biāo)準(zhǔn)C有了更大的發(fā)展。目前廣泛流行的C語(yǔ)言版本有Microsoft C 或稱 MS C 。Borland Turbo C 或稱 Turbo C。AT&T C ,Quick C等。碩癘鄴頏謅攆檸攜驤蘞。1.1.3 C語(yǔ)言的特點(diǎn)(1)C是中級(jí)語(yǔ)言它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書(shū)寫形式自由,主要用小寫字母表示。它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元。閿擻輳嬪諫遷擇楨秘騖。(2)C是結(jié)構(gòu)式語(yǔ)言結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。C 語(yǔ)言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語(yǔ)句控制程序流向,從而使程序完全結(jié)構(gòu)化。氬嚕躑竄貿(mào)懇彈瀘頷澩。(3)C語(yǔ)言功能齊全。C語(yǔ)言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。C語(yǔ)言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C語(yǔ)言的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。C語(yǔ)言的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。并且引入了指針概念,可使程序效率更高。另外C語(yǔ)言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的的游戲。釷鵒資贏車贖孫滅獅贅。(4) C語(yǔ)言適用范圍大。雖然C語(yǔ)言也是強(qiáng)類型語(yǔ)言,但它的語(yǔ)法比較靈活,允許程序編寫者有較大的自由度。由于C語(yǔ)言允許直接訪問(wèn)物理地址,可以直接對(duì)硬件進(jìn)行操作,因此它既具有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的許多功能,能夠像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元,可用來(lái)寫系統(tǒng)軟件。適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。C語(yǔ)言具有強(qiáng)大的繪圖能力,可移植性好,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,三維,二維圖形和動(dòng)畫,它也是數(shù)值計(jì)算的高級(jí)語(yǔ)言。慫闡譜鯪逕導(dǎo)嘯畫長(zhǎng)涼。1.1.4 C語(yǔ)言與其他語(yǔ)言的差別1. C語(yǔ)言吸取了匯編語(yǔ)言的精華匯編語(yǔ)言是一種面向機(jī)器的低級(jí)語(yǔ)言,盡管它的編程要比高級(jí)語(yǔ)言麻煩得多,但目標(biāo)程序質(zhì)量高,運(yùn)行快,所以在工業(yè)自動(dòng)化控制系統(tǒng)等領(lǐng)域仍然被廣泛使用,顯現(xiàn)出強(qiáng)大的生命力。諺辭調(diào)擔(dān)鈧諂動(dòng)禪瀉類。(1) C語(yǔ)言提供了對(duì)位、字節(jié)及地址的操作,使程序可以直接訪問(wèn)硬件。(2) C語(yǔ)言吸取了宏匯編技術(shù)中的一些靈活處理方式,提供了宏替換命令#define和文件包含的預(yù)處理命令#include。嘰覲詿縲鐋囁偽純鉿錈。(3) C語(yǔ)言程序能與匯編語(yǔ)言程序?qū)崿F(xiàn)無(wú)縫連接,可以在C語(yǔ)言程序中方便地引用匯編語(yǔ)言程序。(4) C語(yǔ)言編譯生成的目標(biāo)程序代碼質(zhì)量高,執(zhí)行效率高,運(yùn)行速度快。與匯編程序生成的目標(biāo)程序代碼執(zhí)行效率相比,只低10%20%,這是其他高級(jí)語(yǔ)言所無(wú)法達(dá)到的。熒紿譏鉦鏌觶鷹緇機(jī)庫(kù)。2. C語(yǔ)言繼承和發(fā)揚(yáng)了高級(jí)語(yǔ)言的優(yōu)勢(shì)(1) 繼承了Pascal語(yǔ)言具有豐富數(shù)據(jù)類型的特點(diǎn),并具有完備的數(shù)據(jù)結(jié)構(gòu)。(2) 吸取了FORTRAN語(yǔ)言中模塊結(jié)構(gòu)的思想,C語(yǔ)言中每個(gè)函數(shù)都是獨(dú)立的,允許單獨(dú)進(jìn)行編譯。這有利于大程序的分工協(xié)作和調(diào)試。鶼漬螻偉閱劍鯫腎邏蘞。(3) 允許遞歸調(diào)用,使有些算法的實(shí)現(xiàn)簡(jiǎn)明、清晰。(4) 發(fā)揚(yáng)了高級(jí)語(yǔ)言面向用戶、可讀性強(qiáng)、容易編程和維護(hù)等特點(diǎn),使C語(yǔ)言易學(xué)、易讀、易懂、易編程、易維護(hù)。(5) 具有良好的可移植性,它沒(méi)有依賴于硬件的輸入輸出語(yǔ)句,便于在不同硬件結(jié)構(gòu)的計(jì)算機(jī)之間移植。1.2 C語(yǔ)言的程序結(jié)構(gòu)1.2.1 C源程序的結(jié)構(gòu)特點(diǎn)一個(gè)實(shí)現(xiàn)某種特點(diǎn)功能的C語(yǔ)言程序(一個(gè)或多個(gè)文件)應(yīng)包含若干個(gè)函數(shù),每個(gè)函數(shù)又是由若干條語(yǔ)句組成的。同其他的高級(jí)語(yǔ)言一樣,C語(yǔ)言的語(yǔ)句用來(lái)向計(jì)算機(jī)系統(tǒng)發(fā)出操作指令。一條語(yǔ)句經(jīng)編譯后會(huì)產(chǎn)生若干條機(jī)器指令。因此,C語(yǔ)言程序的結(jié)構(gòu)形式如圖所示。紂憂蔣氳頑薟驅(qū)藥憫騖。說(shuō)明:(1) 一個(gè)C語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成。(2) 每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成。(3) 一個(gè)源程序不論由多少個(gè)文件組成,都有且只能有一個(gè)main函數(shù),即主函數(shù)。(4) 源程序中可以有預(yù)處理命令(#include命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。穎芻莖蛺餑億頓裊賠瀧。(5) 每一個(gè)說(shuō)明,每一個(gè)語(yǔ)句都必須以分號(hào)結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號(hào)“”之后不能加分號(hào)。 1.2.2 C語(yǔ)言程序結(jié)構(gòu)組成(1) 數(shù)組。數(shù)組是一種非常重要的線性結(jié)構(gòu)的數(shù)據(jù)類型,在程序設(shè)計(jì)中常常使用。同時(shí),語(yǔ)言中,“字符串”可以通過(guò)字符數(shù)組來(lái)實(shí)現(xiàn)。數(shù)組的定義和使用在語(yǔ)言中具有相當(dāng)重要的位置。在介紹數(shù)組的應(yīng)用時(shí),可結(jié)合數(shù)據(jù)結(jié)構(gòu)課程中排序與檢索的常用算法,通過(guò)實(shí)例說(shuō)明數(shù)組的具體應(yīng)用。濫驂膽閉驟羥闈詔寢賻。(2) 指針。指針是語(yǔ)言中最靈活,最活躍的數(shù)據(jù)類型,是語(yǔ)言的核心。要學(xué)習(xí)好語(yǔ)言,必須掌握指針的概念極其應(yīng)用。C語(yǔ)言指針應(yīng)用,在數(shù)據(jù)鏈?zhǔn)酱鎯?chǔ)中,指針是數(shù)據(jù)中不可分割的一個(gè)部分,既使在順序存儲(chǔ)的數(shù)據(jù)中,指針也是數(shù)據(jù)掃描(遍歷)、查找定位、插入、刪除、統(tǒng)計(jì)等各種數(shù)據(jù)加工處理的重要手段和工具。同時(shí)必須指出,指針應(yīng)用不當(dāng)也會(huì)帶來(lái)意想不到的后果。銚銻縵嚌鰻鴻鋟謎諏涼。(3) 函數(shù)。語(yǔ)言是一種函數(shù)式語(yǔ)言,函數(shù)是語(yǔ)言程序的基本組成部分。在教學(xué)中,可以通過(guò)一些實(shí)際例子說(shuō)明,使學(xué)生掌握語(yǔ)言函數(shù)定義、函數(shù)調(diào)用、參數(shù)傳遞等內(nèi)容,樹(shù)立程序模塊的基本思想。擠貼綬電麥結(jié)鈺贖嘵類。(4) 變量存貯屬性。存貯屬性關(guān)系到變量的作用范圍,函數(shù)(模塊)間的程序接口,對(duì)樹(shù)立程序設(shè)計(jì)的全局觀念,變量存貯屬性起重要作用。賠荊紳諮侖驟遼輩襪錈。(5) 文件。在實(shí)際應(yīng)用中,我們一般通過(guò)文件的形式與外設(shè)進(jìn)行交流,“文件”是語(yǔ)言實(shí)際應(yīng)用的主要方式,應(yīng)介紹文件的打開(kāi)、讀、寫、關(guān)閉等基本操作。塤礙籟饈決穩(wěn)賽釙冊(cè)庫(kù)。(6) 結(jié)構(gòu)體。在實(shí)際應(yīng)用中,數(shù)據(jù)結(jié)構(gòu)類型往往以結(jié)構(gòu)體形式出現(xiàn)。只有掌握結(jié)構(gòu)體類型的定義和使用,才能在實(shí)際應(yīng)用中發(fā)揮語(yǔ)言作用。裊樣祕(mì)廬廂顫諺鍘羋藺。第2章 C語(yǔ)言考試系統(tǒng)2.1 C語(yǔ)言考試系統(tǒng)發(fā)展背景在線考試系統(tǒng)就是人們經(jīng)常談?wù)撝械囊粋€(gè)例子,在我國(guó),不論是機(jī)關(guān)單位還是大中小學(xué)校,考試頻率堪稱世界之最,而傳統(tǒng)的考試一般要經(jīng)過(guò)出題,印試卷,安排考場(chǎng),監(jiān)考,收集試卷,評(píng)改試卷,講評(píng)試卷和分析試卷。倉(cāng)嫗盤紲囑瓏詁鍬齊驁。不僅如此,在線考試系統(tǒng)還打破了考場(chǎng)的時(shí)空局限性,考生可以自由選擇考試的時(shí)間和地點(diǎn),而條件是只要具有一臺(tái)能上互聯(lián)網(wǎng)的電腦就行了,考生考試結(jié)束后,即可產(chǎn)即查詢自己的考試分?jǐn)?shù),名次等信息,還可以對(duì)照標(biāo)準(zhǔn)答案對(duì)答錯(cuò)的試題進(jìn)行適當(dāng)?shù)姆治?,全部科目考試結(jié)束后,考生還可以打印自己的成績(jī)單,與傳統(tǒng)考試不同的是,在線考試系統(tǒng)需要管理員添加足夠多的題庫(kù)來(lái)保證每個(gè)考生隨機(jī)抽出來(lái)的題目是不一樣的,保證了考試的公證性。綻萬(wàn)璉轆娛閬蟶鬮綰瀧。C語(yǔ)言是各大學(xué)所有理工科學(xué)生的必修課,是計(jì)算機(jī)專業(yè)編程語(yǔ)言的入門課程,C語(yǔ)言考試系統(tǒng),是為了配合C語(yǔ)言的教學(xué)而設(shè)計(jì)的。它是C語(yǔ)言課件的一個(gè)重要組成部分。試卷可根據(jù)題庫(kù)中的內(nèi)容即時(shí)生成,可避免考試前的壓題;而且可以采用大量標(biāo)準(zhǔn)化試題,從而使用計(jì)算機(jī)閱卷,大大提高閱卷效率;還可以直接把成績(jī)送到數(shù)據(jù)庫(kù)中,進(jìn)行統(tǒng)計(jì)、排序等操作。試題內(nèi)容放在服務(wù)器上,考生通過(guò)準(zhǔn)考證號(hào)進(jìn)行登錄,考試答案也存放在服務(wù)器中,這樣考試的公平性、答案的安全性可以得到有效的保證。因此,采用無(wú)紙化將是以后考試發(fā)展的必然趨勢(shì)。驍顧燁鶚巰瀆蕪領(lǐng)鱺賻。2.2 C語(yǔ)言考試系統(tǒng)的組成完整的C語(yǔ)言考試系統(tǒng)應(yīng)具有題庫(kù)、自動(dòng)組卷模塊、學(xué)生考試模塊、考試成績(jī)管理模塊,用以實(shí)現(xiàn)計(jì)算機(jī)自動(dòng)出卷、答卷、批卷流程的全程管理。而我下面所介紹的就是這4個(gè)模塊的核心元件。瑣釙濺曖惲錕縞馭篩涼。2.2.1 Microsoft Visual C+VC是微軟公司推出的一個(gè)基于Windows系統(tǒng)平臺(tái)、可視化的集成開(kāi)發(fā)環(huán)境,它的源程序按C+語(yǔ)言的要求編寫,并加入了微軟提供的功能強(qiáng)大的MFC類庫(kù)。MFC中封裝了大部分Windows API函數(shù)和Windows控件,它包含的功能涉及到整個(gè)Windows操作系統(tǒng)。MFC不僅給用戶提供了Windows圖形環(huán)境下應(yīng)用程序的框架,而且還提供了創(chuàng)建應(yīng)用程序的組件,這樣我們就可以從一個(gè)較高的起點(diǎn)編程,節(jié)省了大量時(shí)間。另外,它提供了大量的代碼,指導(dǎo)用戶編程是實(shí)現(xiàn)某些技術(shù)和功能。因此VC+提供的高度可視化的應(yīng)用程序開(kāi)發(fā)工具和MFC類庫(kù),可使應(yīng)用程序開(kāi)發(fā)變得簡(jiǎn)單。鎦詩(shī)涇艷損樓紲鯗餳類。C+(1)C+的組成1、C子語(yǔ)言。C+支持C語(yǔ)言的幾乎全部功能,在語(yǔ)法上與C語(yǔ)言僅有極微妙的差別。2、面向?qū)ο蟮腃+。C+首先作為一門面向?qū)ο蟮恼Z(yǔ)言而聞名,這個(gè)特點(diǎn)在這里不再詳述。3、泛型編程語(yǔ)言。C+強(qiáng)大(但容易失控的)模板功能使它能在編譯期完成許多工作,從而大大提高運(yùn)行期效率。櫛緶歐鋤棗鈕種鵑瑤錟。4、STL(C+標(biāo)準(zhǔn)模板庫(kù))。隨著STL的不斷發(fā)展,它已經(jīng)逐漸成為C+程序設(shè)計(jì)中不可或缺的部分,其效率可能比一般的naive代碼低些,但是其安全性與規(guī)范性使它大受歡迎。轡燁棟剛殮攬瑤麗鬮應(yīng)。(2)C+的優(yōu)勢(shì)傳統(tǒng)上認(rèn)為,C+相對(duì)于目前一些新潮的語(yǔ)言,如Java、C#,優(yōu)勢(shì)在于程序的運(yùn)行性能。這種觀念并不完全。一般認(rèn)為,使用Java或C#的開(kāi)發(fā)成本比C+低。但是,如果能夠充分分析C+和這些語(yǔ)言的差別,會(huì)發(fā)現(xiàn)這句話的成立是有條件的。這個(gè)條件就是:軟件規(guī)模和復(fù)雜度都比較小。如果不超過(guò)3萬(wàn)行有效代碼(不包括生成器產(chǎn)生的代碼),這句話基本上還能成立。否則,隨著代碼量和復(fù)雜度的增加,C+的優(yōu)勢(shì)將會(huì)越來(lái)越明顯。造成這種差別的就是C+的軟件工程性。在Java和C#大談軟件工程的時(shí)候,C+實(shí)際上已經(jīng)悄悄地將軟件工程性提升到一個(gè)前所未有的高度。峴揚(yáng)斕滾澗輻灄興渙藺。MFCMFC,微軟基礎(chǔ)類(Microsoft Foundation Classes),同VCL類似,是一種Application Framework,隨微軟Visual C+ 開(kāi)發(fā)工具發(fā)布。MFC 應(yīng)用程序的總體結(jié)構(gòu)通常由開(kāi)發(fā)人員從MFC類派生的幾個(gè)類和一個(gè)CWinApp類對(duì)象(應(yīng)用程序?qū)ο螅┙M成。VC是WinDOS下開(kāi)發(fā)人員使用的專業(yè)C+ SDK(SDK,Standard SoftWare Develop Kit,專業(yè)軟件開(kāi)發(fā)平臺(tái)),MFC就是掛在它之上的一個(gè)輔助軟件開(kāi)發(fā)包。MFC不只是一個(gè)功能單純的界面開(kāi)發(fā)系統(tǒng),它提供的類絕大部分用來(lái)進(jìn)行界面開(kāi)發(fā),關(guān)聯(lián)一個(gè)窗口的動(dòng)作,但它提供的類中有好多類不與一個(gè)窗口關(guān)聯(lián),即類的作用不是一個(gè)界面類,不實(shí)現(xiàn)對(duì)一個(gè)窗口對(duì)象的控制(如創(chuàng)建,銷毀),而是一些在WinDOS(用MFC編寫的程序絕大部分都在WinDOS中運(yùn)行)中實(shí)現(xiàn)內(nèi)部處理的類,如數(shù)據(jù)庫(kù)的管理類等。詩(shī)叁撻訥燼憂毀厲鋨驁。(1)一些重要的MFCCWnd:窗口,它是大多數(shù)“看得見(jiàn)的東西”的父類(Windows里幾乎所有看得見(jiàn)的東西都是一個(gè)窗口,大窗口里有許多小窗口),比如視圖CView、框架窗口CFrameWnd、工具條CToolBar、對(duì)話框CDialog、按鈕CButton,etc;一個(gè)例外是菜單(CMenu)不是從窗口派生的。該類很大,一開(kāi)始也不必學(xué),知道就行了。 則鯤愜韋瘓賈暉園棟瀧。CDocument文檔:負(fù)責(zé)內(nèi)存數(shù)據(jù)與磁盤的交互。最重要的是OnOpenDocument(讀入),OnSaveDocument(寫盤),Serialize(讀寫)。脹鏝彈奧秘孫戶孿釔賻。CView視圖:負(fù)責(zé)內(nèi)存數(shù)據(jù)與用戶的交互。包括數(shù)據(jù)的顯示、用戶操作的響應(yīng)(如菜單的選取、鼠標(biāo)的響應(yīng))。最重要的是OnDraw(重畫窗口),通常用CWnd:Invalidate()來(lái)啟動(dòng)它。另外,它通過(guò)消息映射表處理菜單、工具條、快捷鍵和其他用戶消息。你自己的許多功能都要加在里面,你打交道最多的就是它。 鰓躋峽禱紉誦幫廢掃減。(2)MFC編程的優(yōu)勢(shì)隨著編程語(yǔ)言的推陳出新,MFC一些缺點(diǎn)日益突出。最重要的就是入門門檻相對(duì)其他語(yǔ)言要高,而且同樣完成一個(gè)任務(wù)代碼量相對(duì)較多。但是MFC真的沒(méi)有任何優(yōu)勢(shì)了嗎?不是,面對(duì)底層程序,它能很輕松的與Windows API或驅(qū)動(dòng)程序結(jié)合,就是在自己的代碼中直接使用API函數(shù),而API和驅(qū)動(dòng)程序的資料都是以C語(yǔ)言為基礎(chǔ)的,這使得VC程序員能夠更輕松的使用Windows API。這樣造成了一個(gè)很有意思的現(xiàn)象,即入門時(shí)VC程序員要付出更多的努力來(lái)學(xué)習(xí),但是一旦掌握后,開(kāi)發(fā)其他領(lǐng)域的程序或使用第三方軟件時(shí),如工業(yè)控制類的程序,由于底層的程序都是用C語(yǔ)言編寫,反倒是VC程序員能夠更快的掌握該領(lǐng)域的編程技術(shù)。而很多其他的編程語(yǔ)言甚至找不到相關(guān)的資料。這就說(shuō)明VC(MFC)實(shí)際上是一種入門困難,但是擴(kuò)展學(xué)習(xí)卻很輕松的語(yǔ)言框架。如果既限于某一領(lǐng)域的話VC毫無(wú)優(yōu)勢(shì)可言,但是如果開(kāi)發(fā)一個(gè)新的領(lǐng)域的應(yīng)用程序或者該程序涉及多個(gè)應(yīng)用領(lǐng)域的話,可減少重復(fù)學(xué)習(xí)的頻率和難度,VC(MFC)的優(yōu)勢(shì)會(huì)立刻顯現(xiàn)出來(lái)。稟虛嬪賑維嚌妝擴(kuò)踴糶。2.2.2 SQL SERVER 2000(結(jié)構(gòu)化查詢語(yǔ)言 SQL)1986年,ANSI把SQL作為關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言的美國(guó)標(biāo)準(zhǔn),同年公布了標(biāo)準(zhǔn)SQL文本。目前SQL標(biāo)準(zhǔn)有3個(gè)版本。基本SQL定義是ANSIX3135-89,“Database Language - SQL with Integrity Enhancement”ANS89,一般叫做SQL-89。SQL-89定義了模式定義、數(shù)據(jù)操作和事務(wù)處理。SQL- 89和隨后的ANSIX3168-1989,“Database Language-Embedded SQL”構(gòu)成了第一代SQL標(biāo)準(zhǔn)。ANSIX3135-1992ANS92描述了一種增強(qiáng)功能的SQL,現(xiàn)在叫做SQL-92標(biāo)準(zhǔn)。SQL-92包括模式操作,動(dòng)態(tài)創(chuàng)建和SQL語(yǔ)句動(dòng)態(tài)執(zhí)行、網(wǎng)絡(luò)環(huán)境支持等增強(qiáng)特性。在完成SQL-92標(biāo)準(zhǔn)后,ANSI和ISO即開(kāi)始合作開(kāi)發(fā)SQL3標(biāo)準(zhǔn)。SQL3的主要特點(diǎn)在于抽象數(shù)據(jù)類型的支持,為新一代對(duì)象關(guān)系數(shù)據(jù)庫(kù)提供了標(biāo)準(zhǔn)。陽(yáng)簍埡鮭罷規(guī)嗚舊巋錟。(1)SQL Server 2000特點(diǎn)1.完全的Web支持:SQL Server 2000提供了以 Web 標(biāo)準(zhǔn)為基礎(chǔ)的擴(kuò)展數(shù)據(jù)庫(kù)編程功能。豐富的 XML 和 Internet 標(biāo)準(zhǔn)支持允許使用內(nèi)置的存儲(chǔ)過(guò)程以 XML 格式輕松存儲(chǔ)和檢索數(shù)據(jù)。還可以使用 XML 更新程序容易地插入、更新和刪除數(shù)據(jù)。通過(guò) Web 輕松訪問(wèn)數(shù)據(jù)。也可以使用 HTTP 來(lái)向數(shù)據(jù)庫(kù)發(fā)送查詢、對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的文檔執(zhí)行全文搜索、以及通過(guò) Web 進(jìn)行自然語(yǔ)言查詢。SQL Server 2000分析服務(wù)功能被擴(kuò)展到了 Internet。通過(guò) Web 瀏覽器來(lái)訪問(wèn)和控制多維數(shù)據(jù)。 溈氣嘮戇萇鑿鑿櫧諤應(yīng)。2.高度的可伸縮性和可靠性 使用 SQL Server 2000 可以獲得非凡的可伸縮性和可靠性。通過(guò)向上伸縮和向外擴(kuò)展的能力,SQL Server 滿足了苛刻的電子商務(wù)和企業(yè)應(yīng)用程序要求。SQL Server 2000 利用了對(duì)稱多處理器 (SMP) 系統(tǒng)。SQL Server Enterprise Edition 最多可以使用 32 個(gè)處理器和 64 GB RAM。向外擴(kuò)展可以將數(shù)據(jù)庫(kù)和數(shù)據(jù)負(fù)載分配給多臺(tái)服務(wù)器。通過(guò)增強(qiáng)的故障轉(zhuǎn)移群集、日志傳送和新增的備份策略,SQL Server 2000 達(dá)到了最大的可用性。 鋇嵐縣緱虜榮產(chǎn)濤團(tuán)藺。(2)SQL數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)分為數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的物理結(jié)構(gòu)。數(shù)據(jù)的邏輯結(jié)構(gòu)是從邏輯的角度(即數(shù)據(jù)間的聯(lián)系和組織方式)來(lái)觀察數(shù)據(jù),分析數(shù)據(jù),與數(shù)據(jù)的存儲(chǔ)位置無(wú)關(guān)。數(shù)據(jù)的物理結(jié)構(gòu)是指數(shù)據(jù)在計(jì)算機(jī)中存放的結(jié)構(gòu),即數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的實(shí)現(xiàn)形式,所以物理結(jié)構(gòu)也被稱為存儲(chǔ)結(jié)構(gòu)。這里只研究數(shù)據(jù)的邏輯結(jié)構(gòu),并將反映和實(shí)現(xiàn)數(shù)據(jù)聯(lián)系的方法稱為數(shù)據(jù)模型。懨俠劑鈍觸樂(lè)鷴燼觶騮。(3)SQL數(shù)據(jù)庫(kù)中常用的幾個(gè)系統(tǒng)表1、sysobjects系統(tǒng)對(duì)象表。 保存當(dāng)前數(shù)據(jù)庫(kù)的對(duì)象,如約束、默認(rèn)值、日志、規(guī)則、存儲(chǔ)過(guò)程等sysobjects 重要字段解釋:sysObjects ( Name sysname, -object 名稱 id int, -object id xtype char(2), - object 類型 type char(2), - Object 類型 uid smallint, - object 所有者的ID . -其他的字段不常用到。 )該表中包含該數(shù)據(jù)庫(kù)中的所有對(duì)象,如有那些表 存儲(chǔ)過(guò)程 視圖 等信息2、sysColumns 數(shù)據(jù)庫(kù)字段表。 當(dāng)前數(shù)據(jù)庫(kù)的所有字段都保留在里面。 重要字段解釋:sysColumns ( name sysname, -字段名稱 id int, -該字段所屬的表的ID xtype tinyInt, -該字段類型,關(guān)聯(lián)systypes表 length smallint, -該字段物理存儲(chǔ)長(zhǎng)度 .)比如要查詢某一個(gè)張表的有那些字段和這些字段的長(zhǎng)度 3、sysusers當(dāng)前數(shù)據(jù)庫(kù)的系統(tǒng)組,以及用戶。sysusers( uid smallint, -用戶id name smallint , -名稱 uid varbinary(85) , -屬于一個(gè)登陸 .)對(duì)數(shù)據(jù)庫(kù)的用戶進(jìn)行管理 2.2.3 Turboc2.0編譯器(1) 編譯器的工作原理與總體結(jié)構(gòu)編譯是從源代碼(通常為高階語(yǔ)言)到能直接被計(jì)算機(jī)或虛擬機(jī)執(zhí)行的目標(biāo)代碼(通常為低階語(yǔ)言或機(jī)器語(yǔ)言)的翻譯過(guò)程。典型的編譯器輸出是由包含入口點(diǎn)的名字和地址, 以及外部調(diào)用(到不在這個(gè)目標(biāo)文件中的函數(shù)調(diào)用)的機(jī)器代碼所組成的目標(biāo)文件。一組目標(biāo)文件,不必是同一編譯器產(chǎn)生,但使用的編譯器必需采用同樣的輸出格式,可以鏈接在一起并生成可以由用戶直接執(zhí)行的可執(zhí)行程序。一個(gè)現(xiàn)代編譯器的主要工作流程如下圖:謾飽兗爭(zhēng)詣繚鮐癩別瀘。源代碼 (source code) 預(yù)處理器 (preprocessor) 編譯器 (compiler) 匯編程序 (assembler) 目標(biāo)代碼 (object code) 鏈接器 (Linker) 可執(zhí)行程序 (executables)咼鉉們歟謙鴣餃競(jìng)蕩賺。(2) 編譯參數(shù)的設(shè)置主要通過(guò)IDE的菜單項(xiàng)Project-Settings-C/C+頁(yè)來(lái)完成。我們可以看到這一頁(yè)的最下面Project Options中的內(nèi)容,一般如下:瑩諧齷蘄賞組靄縐嚴(yán)減。1) General:一些總體設(shè)置。Warning level用來(lái)控制警告,其中Level 1是最嚴(yán)重的級(jí)別;Warnings as errors將警告當(dāng)作錯(cuò)誤處理;Optimizations是代碼優(yōu)化,可以在Category的Optimizations項(xiàng)中進(jìn)行更細(xì)的設(shè)置;Generate browse info用以生成.sbr文件,記錄類、變量等符號(hào),可以在Category的Listing Files項(xiàng)中進(jìn)行更多的設(shè)置。Debug info,生成調(diào)試:None,不產(chǎn)生任何調(diào)試;Line Numbers Only,僅生成全局的和外部符號(hào)的調(diào)試到.OBJ文件或.EXE文件,減小目標(biāo)文件的尺寸;麩肅鵬鏇轎騍鐐縛縟糶。2) C+ Language:pointer_to_member representation用來(lái)設(shè)置類定義/引用的先后關(guān)系,一般為Best-Case Always表示在引用類之前該類肯定已經(jīng)定義了;Enable Exception Handling,進(jìn)行同步的異常處理;Enable Run-Time Type Information迫使編譯器增加代碼在運(yùn)行時(shí)進(jìn)行對(duì)象類型檢查;Disable Construction Displacements,設(shè)置類構(gòu)造/析構(gòu)函數(shù)調(diào)用虛函數(shù)問(wèn)題。納疇鰻吶鄖禎銣膩鰲錟。3) Code Generation:Processor表示代碼指令優(yōu)化,可以為80386、80486、Pentium、Pentium Pro,或者Blend表示混合以上各種優(yōu)化。Use run-time library用以指定程序運(yùn)行時(shí)使用的運(yùn)行時(shí)庫(kù),有一個(gè)原則就是,一個(gè)進(jìn)程不要同時(shí)使用幾個(gè)版本的運(yùn)行時(shí)庫(kù)。連接了單線程庫(kù)就不支持多線程調(diào)用,連接了多線程庫(kù)就要求創(chuàng)建多線程的應(yīng)用程序。風(fēng)攆鮪貓鐵頻鈣薊糾廟。4) Customize:Disable Language Extensions,表示不使用微軟為標(biāo)準(zhǔn)C做的語(yǔ)言擴(kuò)展;Eliminate Duplicate Strings,主要用于字符串優(yōu)化,使用這個(gè)參數(shù),使得滅噯駭諗鋅獵輛覯餿藹。char sBuffer = This is a character buffer;char tBuffer = This is a character buffer;sBuffer和tBuffer指向的是同一塊內(nèi)存空間;Enable Function-Level Linking ,告訴編譯器將各個(gè)函數(shù)按打包格式編譯;Enables minimal rebuild,通過(guò)保存關(guān)聯(lián)到.IDB文件,使編譯器只對(duì)最新類定義改動(dòng)過(guò)的源文件進(jìn)行重編譯,提高編譯速度;鐒鸝餉飾鐔閌貲諢癱騮。5) Listing Files:Generate browse info的功能上面已經(jīng)提到過(guò)。這里可以進(jìn)行更多的設(shè)置。Exclude Local Variables from Browse Info表示是否將局部變量的放到.SBR文件中。Listing file type可以設(shè)置生成的列表文件的內(nèi)容:Assembly-Only Listing僅生成匯編代碼文件;Assembly With Machine Code生成機(jī)器代碼和匯編代碼文件;Machine Code,and Source生成機(jī)器碼、源代碼和匯編代碼文件。攙閿頻嶸陣澇諗譴隴瀘。6) Optimizations:代碼優(yōu)化設(shè)置??梢赃x擇Maximize Speed生成最快速的代碼,或Minimize Size生成最小尺寸的程序,或者Customize定制優(yōu)化。趕輾雛紈顆鋝討躍滿賺。第3章 學(xué)生成績(jī)管理模塊系統(tǒng)3.1 學(xué)生成績(jī)管理系統(tǒng)的重要性C語(yǔ)言考試中需要考慮到計(jì)算機(jī)死機(jī)、異常重啟、突然斷電等一些意外事故的發(fā)生,所以我們有必要對(duì)每一位考生的試卷(包括試題和考生的答案以及考試剩余時(shí)間)進(jìn)行保存,以便在適當(dāng)?shù)臅r(shí)候進(jìn)行恢復(fù),由于每一份試卷上的信息量很大,而且類型也不一樣,如果按傳統(tǒng)方法保存的話,將會(huì)是件相當(dāng)復(fù)雜的事情,還好學(xué)生成績(jī)管理系統(tǒng)為我們提供了對(duì)象序列化功能,我們可以新建了一個(gè)RandPaper類,上面包括了隨機(jī)生成的試卷的所有信息,當(dāng)考生登錄后,生成一個(gè)RandPaper對(duì)象,然后將這個(gè)對(duì)象序列化后保存到數(shù)據(jù)庫(kù)中,以后需要恢復(fù)試卷時(shí),從數(shù)據(jù)庫(kù)中讀取后將其反序列化后即可得到原來(lái)對(duì)象的所有屬性值。這個(gè)保存函數(shù)每隔一定時(shí)間要執(zhí)行一次,這里可以采用JavaScritp來(lái)控制。夾覡閭輇駁檔驀遷錟減。3.2 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)3.2.1 系統(tǒng)需求1. 當(dāng)前學(xué)生信息:通過(guò)結(jié)構(gòu)體struct student 來(lái)保存學(xué)生的姓名、學(xué)號(hào)、性別、語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等等相關(guān)信息,并且通過(guò)cin函數(shù)來(lái)給當(dāng)前學(xué)生輸入初始信息。視絀鏝鴯鱭鐘腦鈞欖糲。2. 學(xué)生成績(jī)查詢: 輸入一個(gè)學(xué)號(hào), 在文件中查找此學(xué)生, 若找到則輸出此學(xué)生的全部信息和成績(jī); 若找不到則輸出查找失敗的信息。 同時(shí)也可以全部把各科的平均成績(jī),最高和最低分輸出。偽澀錕攢鴛擋緬鐒鈞錠。3. 新生插入 :通過(guò)給該生的學(xué)號(hào)來(lái)和原班上的學(xué)生的學(xué)號(hào)比較大小,若大就在后,若小則靠前排,然后將該生的信息保存下來(lái)。緦徑銚膾齲轎級(jí)鏜撟廟。4. 輸出全部學(xué)生信息和全部學(xué)生成績(jī)。5. 退出系統(tǒng)。6. 附加說(shuō)明:系統(tǒng)將來(lái)完善的功能有:可以通過(guò)性別來(lái)模糊查詢,也可以通過(guò)姓名的姓氏先進(jìn)行模糊查詢,以便后面精確查找。騅憑鈳銘僥張礫陣軫藹。3.2.2 總體設(shè)計(jì)1.仔細(xì)閱讀系統(tǒng)要求,首先將此系統(tǒng)化分為如下幾個(gè)部分(即如下幾個(gè)函數(shù))(1)輸入初始的學(xué)生信息:其中包括學(xué)生的姓名、學(xué)號(hào)和性別以及學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等相關(guān)信息;可用函數(shù)cin(stu *p1)來(lái)實(shí)現(xiàn)此操作。癘騏鏨農(nóng)剎貯獄顥幗騮。(2)查詢模塊:可用stu *lookdata(stu *p1)來(lái)實(shí)現(xiàn)。找到就輸出此學(xué)生全部信息,包括學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等的成績(jī)。鏃鋝過(guò)潤(rùn)啟婭澗駱讕瀘。(3)插入模塊:可用insert( )函數(shù)來(lái)實(shí)現(xiàn)。其中通過(guò)學(xué)號(hào)的大小來(lái)比較的,并且以此來(lái)排序。 (4)輸出學(xué)生的信息以及成績(jī):通過(guò)學(xué)生的姓名來(lái)查看學(xué)生的語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等相關(guān)成績(jī),同時(shí)也可以分別通過(guò)caverage() 、maverage() 、eaverage() 和comaverage()來(lái)輸出語(yǔ)文、數(shù)學(xué)、英語(yǔ)和計(jì)算機(jī)等成績(jī)的平均分?jǐn)?shù)、最高和最低分?jǐn)?shù)。榿貳軻謄壟該檻鯔塏賽。 (5)退出系統(tǒng):可用一個(gè)函數(shù)exit()來(lái)實(shí)現(xiàn),首先將信息保存到文件中,釋放動(dòng)態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。邁蔦賺陘賓唄擷鷦訟湊。3.2.3 功能結(jié)構(gòu)設(shè)計(jì) 1. 界面設(shè)計(jì):此系統(tǒng)界面采用圖形和數(shù)字化菜單設(shè)計(jì)。主界面初步設(shè)計(jì)如下: 學(xué)生成績(jī)管理系統(tǒng)請(qǐng)選擇相應(yīng)的數(shù)字執(zhí)行相應(yīng)的功能: 1:是否輸入其他數(shù)據(jù) 2:查看數(shù)據(jù) 3:插入數(shù)據(jù) 4:查找數(shù)據(jù) 5:更新數(shù)據(jù) 6:保留數(shù)據(jù) 7:顯示或打印數(shù)據(jù) 8:語(yǔ)文成績(jī)狀況 9:數(shù)學(xué)成績(jī)狀況 10:英語(yǔ)成績(jī)狀況 11:計(jì)算機(jī)成績(jī)狀況 12:幫助 13:退出系統(tǒng)2. 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì): 程序設(shè)計(jì)中用到的結(jié)構(gòu)體類型: 學(xué)生信息結(jié)構(gòu)體類型:typedef struct student char nameMAX; int numMAX; char sexMAX; int chinese; int mathematic; int english; int computer; struct student *next; 3.2.4 學(xué)生成績(jī)管理系統(tǒng)運(yùn)行過(guò)程#includestdio.h#includestddef.h#includestddef.h#includestring.h#define MAX 10typedef struct student /*定義結(jié)構(gòu)體*/ char nameMAX; /*姓名*/ int numMAX; /* 學(xué)號(hào)*/ char sexMAX; /*性別*/ int chinese; /*語(yǔ)文*/ int mathematic; /* 數(shù)學(xué)*/ int english; /*英語(yǔ)*/ int computer; /*計(jì)算機(jī)*/ struct student *next; /*結(jié)構(gòu)體指針*/ stu;stu *head; /*頭指針*/void print() /*顯示或打印函數(shù)*/嶁硤貪塒廩袞憫倉(cāng)華糲。 system(cls); printf(tttScore Manage Systemn); /*成績(jī)管理系統(tǒng)*/ 該櫟諼碼戇沖巋鳧薩錠。 printf(Enter Recordt); /*輸入數(shù)據(jù)*/劇妝諢貰攖蘋塒呂侖廟。 printf(Displayt); /*顯示*/ printf(Insertt); /*插入數(shù)據(jù)*/臠龍訛驄椏業(yè)變墊羅蘄。 printf(Questt); /*訪問(wèn)數(shù)據(jù)*/鰻順褸悅漚縫囅屜鴨騫。 printf(Updatet); /*以前數(shù)據(jù)*/穡釓虛綹滟鰻絲懷紓濼。 printf(Savet); /*保留數(shù)據(jù)*/隸誆熒鑒獫綱鴣攣駘賽。 printf(Fresht); /*更新數(shù)據(jù)*/浹繢膩叢著駕驃構(gòu)碭湊。 printf(Chinese Averaget); /*語(yǔ)文平均成績(jī)*/鈀燭罰櫝箋礱颼畢韞糲。 printf(Math Averaget); /*數(shù)學(xué)平均成績(jī)*/愜執(zhí)緝蘿紳頎陽(yáng)灣熗鍵。 printf(English Averaget); /*英語(yǔ)平均成績(jī)*/貞廈給鏌綞牽鎮(zhèn)獵鎦龐。 printf(Computer Averaget); /*計(jì)算機(jī)平均成績(jī)*/嚌鯖級(jí)廚脹鑲銦礦毀蘄。 printf(Quittn); /*退出*/ void cin(stu *p1) /*輸入相關(guān)數(shù)據(jù)的函數(shù)*/薊鑌豎牘熒浹醬籬鈴騫。 printf(Enter name:n); scanf(%s,&p1-name); printf(Enter num:n); scanf(%d,&p1-num); printf(Enter sex:n); scanf(%s,&p1-sex); printf(Enter score:n); printf(Enter chinese:n); scanf(%d,&p1-chinese); printf(Enter math:n); scanf(%d,&p1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論