南郵軟件設(shè)計(jì)報(bào)告_第1頁(yè)
南郵軟件設(shè)計(jì)報(bào)告_第2頁(yè)
南郵軟件設(shè)計(jì)報(bào)告_第3頁(yè)
南郵軟件設(shè)計(jì)報(bào)告_第4頁(yè)
南郵軟件設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩85頁(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)介

1、軟件設(shè)計(jì)報(bào)告姓名姓名:琳琳學(xué)號(hào):學(xué)號(hào):B12060421 2015 年年 5 月月 16 日日2015 年年 6 月月 16 日日目目 錄錄第一章 軟件設(shè)計(jì)介紹.1第二章 軟件開(kāi)發(fā)平臺(tái)簡(jiǎn)介.2第三章軟件設(shè)計(jì)的內(nèi)容.33.1分?jǐn)?shù)統(tǒng)計(jì)軟件(A1).33.1.1 設(shè)計(jì)題目及要求 .33.1.2 設(shè)計(jì)思想及程序流程框圖 .33.1.3 邏輯功能程序 .33.1.4 結(jié)果及完善方向 .33.2打字軟件(A2).33.2.1 設(shè)計(jì)題目及要求 .33.2.2 設(shè)計(jì)思想及程序流程框圖 .33.2.3 邏輯功能程序 .33.2.4 結(jié)果及完善方向 .33.3文本編輯器(A3).33.3.1 設(shè)計(jì)題目及要求 .3

2、3.3.2 設(shè)計(jì)思想及程序流程框圖 .43.3.3 邏輯功能程序 .43.3.4 結(jié)果及完善方向 .43.4加密軟件(A4).43.4.1 設(shè)計(jì)題目及要求 .43.4.2 設(shè)計(jì)思想及程序流程框圖 .43.4.3 邏輯功能程序 .43.4.4 結(jié)果及完善方向 .43.5進(jìn)制轉(zhuǎn)換器(A5).43.5.1 設(shè)計(jì)題目及要求 .43.5.2 設(shè)計(jì)思想及程序流程框圖 .43.5.3 邏輯功能程序 .43.5.4 結(jié)果及完善方向 .53.6學(xué)生成績(jī)核算系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(B1).53.6.1 設(shè)計(jì)題目及要求 .53.6.2 設(shè)計(jì)思想及程序流程框圖 .53.6.3 邏輯功能程序 .53.6.4 結(jié)果及完善方向

3、.53.7模擬電信計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(B2).53.7.1 設(shè)計(jì)題目及要求 .53.7.2 設(shè)計(jì)思想及程序流程框圖 .53.7.3 邏輯功能程序 .53.7.4 結(jié)果及完善方向 .5第四章 心得體會(huì).60第一章第一章 軟件設(shè)計(jì)介紹軟件設(shè)計(jì)介紹一、所涉及的課程及知識(shí)點(diǎn)一、所涉及的課程及知識(shí)點(diǎn)高級(jí)語(yǔ)言程序設(shè)計(jì):常量、變量、表達(dá)式的基本知識(shí);函數(shù)的定義與調(diào)用;文件讀寫;數(shù)組、指針、結(jié)構(gòu)體等自定義類型的使用;排序等知識(shí)。二、目的與任務(wù)二、目的與任務(wù)目的:目的:通過(guò)集中時(shí)間上機(jī)實(shí)驗(yàn),對(duì)學(xué)生的程序設(shè)計(jì)能力進(jìn)行一次綜合訓(xùn)練,使學(xué)生充分發(fā)揮已有的編程能力,熟悉編譯環(huán)境。選擇若干課題,進(jìn)行審題、分析、設(shè)計(jì)和調(diào)

4、試,在程序準(zhǔn)備、程序?qū)崿F(xiàn)、完成文檔、答辯驗(yàn)收過(guò)程中,將全面鞏固已學(xué)過(guò)的編程知識(shí),全面提高編程技能,在編程風(fēng)格、調(diào)試器的使用、測(cè)試技術(shù)等方面得到全面訓(xùn)練。學(xué)生在程序設(shè)計(jì)過(guò)程中,學(xué)生需要查找各種資料獲取有用信息解決實(shí)際問(wèn)題,自學(xué)相關(guān)知識(shí),提高文檔書(shū)寫能力,加強(qiáng)團(tuán)隊(duì)合作意識(shí),提高口頭表達(dá)能力。任務(wù):任務(wù):軟件設(shè)計(jì)課題共分 A 、B 兩檔。A 檔共 5 題,題目較簡(jiǎn)單,第一周完成;B 檔共 2 題,題目是綜合性的,較復(fù)雜,第二周完成。三、主要儀器設(shè)備三、主要儀器設(shè)備硬件:硬件:微型計(jì)算機(jī)軟件:軟件:C、C+、Visual C+等四、參考書(shū)四、參考書(shū)【1】朱立華,王立柱C 語(yǔ)言程序設(shè)計(jì)北京:人民郵電出版

5、社,2009【2】朱立華,朱建,俞瓊面向?qū)ο蟪绦蛟O(shè)計(jì)及 C+北京:人民郵電出版社,2008【3】張引等C 程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)浙江:浙江大學(xué)出版社,20071第二章第二章 軟件開(kāi)發(fā)平臺(tái)簡(jiǎn)介軟件開(kāi)發(fā)平臺(tái)簡(jiǎn)介軟件開(kāi)發(fā)平臺(tái)是一種軟件開(kāi)發(fā)工具,是以通用技術(shù)架構(gòu)(例如軟件開(kāi)發(fā)平臺(tái)是一種軟件開(kāi)發(fā)工具,是以通用技術(shù)架構(gòu)(例如MVCMVC)為基礎(chǔ),集成常用建模工具、二次開(kāi)發(fā)包、基礎(chǔ)解決方案等而)為基礎(chǔ),集成常用建模工具、二次開(kāi)發(fā)包、基礎(chǔ)解決方案等而成。可以大幅縮減編碼率,使開(kāi)發(fā)者有更多的時(shí)間關(guān)注客戶的需求,成??梢源蠓s減編碼率,使開(kāi)發(fā)者有更多的時(shí)間關(guān)注客戶的需求,在項(xiàng)目的需求、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、部署、維護(hù)等

6、各個(gè)階段均可提在項(xiàng)目的需求、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、部署、維護(hù)等各個(gè)階段均可提供強(qiáng)大的支持。軟件開(kāi)發(fā)平臺(tái)有兩種平臺(tái)模式,一種是傳統(tǒng)的供強(qiáng)大的支持。軟件開(kāi)發(fā)平臺(tái)有兩種平臺(tái)模式,一種是傳統(tǒng)的 c/sc/s架構(gòu)模式,一種是現(xiàn)在比較流行的架構(gòu)模式,一種是現(xiàn)在比較流行的 b/sb/s 架構(gòu)模式。架構(gòu)模式。軟甲件開(kāi)發(fā)平臺(tái)的分類,一般有三種:一種是軟甲件開(kāi)發(fā)平臺(tái)的分類,一般有三種:一種是 SUNSUN 公司的公司的 SUNSUN ONEONE 框架平臺(tái),一種是框架平臺(tái),一種是 LAMP,LAMP,它是它是 LinuxLinux、ApacheApache、MysqlMysql、PHPPHP 四項(xiàng)四項(xiàng)技術(shù)的縮寫,還有

7、一種是技術(shù)的縮寫,還有一種是.NET.NET Framework(Framework(一般簡(jiǎn)稱為一般簡(jiǎn)稱為 NETNET 框架平臺(tái)框架平臺(tái)) )。LAMPLAMP 是一組常用來(lái)搭建動(dòng)態(tài)網(wǎng)站或者服務(wù)器的開(kāi)源軟件,本身是一組常用來(lái)搭建動(dòng)態(tài)網(wǎng)站或者服務(wù)器的開(kāi)源軟件,本身都是各自獨(dú)立的程序,但是因?yàn)槌1环旁谝黄鹗褂?,擁有了越?lái)越都是各自獨(dú)立的程序,但是因?yàn)槌1环旁谝黄鹗褂茫瑩碛辛嗽絹?lái)越高的兼容度,共同組成了一個(gè)高的兼容度,共同組成了一個(gè) WebWeb 應(yīng)用程序平臺(tái)。隨著開(kāi)源潮流的應(yīng)用程序平臺(tái)。隨著開(kāi)源潮流的蓬勃發(fā)展,開(kāi)放了源代碼的蓬勃發(fā)展,開(kāi)放了源代碼的 LAMPLAMP 已經(jīng)與已經(jīng)與 J2EEJ2E

8、E 和和.NET.NET 平臺(tái)形成了三平臺(tái)形成了三足鼎立之勢(shì),并且該軟件開(kāi)發(fā)的項(xiàng)目在軟件方面的投資成本較低,足鼎立之勢(shì),并且該軟件開(kāi)發(fā)的項(xiàng)目在軟件方面的投資成本較低,因此手袋整個(gè)因此手袋整個(gè) ITIT 界的關(guān)注。從網(wǎng)站的流量上來(lái)說(shuō),界的關(guān)注。從網(wǎng)站的流量上來(lái)說(shuō),70%70%以上的訪問(wèn)以上的訪問(wèn)流量都是流量都是 LAMPLAMP 來(lái)提供的,來(lái)提供的,LAMPLAMP 是最強(qiáng)大的網(wǎng)站解決方案。是最強(qiáng)大的網(wǎng)站解決方案。LAMPLAMP 是是基于基于 LinuxLinux、ApacheApache、MySQLMySQL 和和 PHPPHP 的開(kāi)放資源網(wǎng)絡(luò)開(kāi)發(fā)平臺(tái),這個(gè)的開(kāi)放資源網(wǎng)絡(luò)開(kāi)發(fā)平臺(tái),這個(gè)術(shù)語(yǔ)來(lái)

9、自歐洲,在那里這些程序常用來(lái)作為一種標(biāo)準(zhǔn)開(kāi)發(fā)環(huán)境。名術(shù)語(yǔ)來(lái)自歐洲,在那里這些程序常用來(lái)作為一種標(biāo)準(zhǔn)開(kāi)發(fā)環(huán)境。名字來(lái)源于每個(gè)程序的第一個(gè)字母。每個(gè)程序在所有權(quán)里都符合開(kāi)發(fā)字來(lái)源于每個(gè)程序的第一個(gè)字母。每個(gè)程序在所有權(quán)里都符合開(kāi)發(fā)源代碼標(biāo)準(zhǔn):源代碼標(biāo)準(zhǔn):LinuxLinux 是開(kāi)放系統(tǒng),是開(kāi)放系統(tǒng),ApacheApache 是最通用的網(wǎng)絡(luò)服務(wù)器,是最通用的網(wǎng)絡(luò)服務(wù)器,2MySQLMySQL 是帶有基于網(wǎng)絡(luò)管理附加工具的關(guān)系數(shù)據(jù)庫(kù),是流行是帶有基于網(wǎng)絡(luò)管理附加工具的關(guān)系數(shù)據(jù)庫(kù),是流行的對(duì)象腳本語(yǔ)言,他包含了多數(shù)其他語(yǔ)言的優(yōu)秀特征來(lái)使得它的網(wǎng)的對(duì)象腳本語(yǔ)言,他包含了多數(shù)其他語(yǔ)言的優(yōu)秀特征來(lái)使得它的網(wǎng)絡(luò)

10、開(kāi)發(fā)更加有效。雖然這些開(kāi)放源代碼程序本身并不是專門設(shè)計(jì)成絡(luò)開(kāi)發(fā)更加有效。雖然這些開(kāi)放源代碼程序本身并不是專門設(shè)計(jì)成同另外幾個(gè)程序一起工作的,但由于他們都是影響較大的開(kāi)源軟件,同另外幾個(gè)程序一起工作的,但由于他們都是影響較大的開(kāi)源軟件,擁有許多共同特征,這就導(dǎo)致了這些組件經(jīng)常在一起使用。在過(guò)去擁有許多共同特征,這就導(dǎo)致了這些組件經(jīng)常在一起使用。在過(guò)去的幾年里,這些軟件的兼容性不斷完善,在一起的應(yīng)用情形變得更的幾年里,這些軟件的兼容性不斷完善,在一起的應(yīng)用情形變得更加普遍。越來(lái)越多的供應(yīng)商、用戶和企業(yè)投資者日益認(rèn)識(shí)到,經(jīng)過(guò)加普遍。越來(lái)越多的供應(yīng)商、用戶和企業(yè)投資者日益認(rèn)識(shí)到,經(jīng)過(guò)單個(gè)組件的開(kāi)源軟件

11、組成的平臺(tái)用來(lái)構(gòu)建以及運(yùn)行各種商單個(gè)組件的開(kāi)源軟件組成的平臺(tái)用來(lái)構(gòu)建以及運(yùn)行各種商業(yè)應(yīng)用和協(xié)作構(gòu)建各種網(wǎng)絡(luò)應(yīng)用程序變?yōu)橐环N可能和實(shí)踐,變得更業(yè)應(yīng)用和協(xié)作構(gòu)建各種網(wǎng)絡(luò)應(yīng)用程序變?yōu)橐环N可能和實(shí)踐,變得更加具有競(jìng)爭(zhēng)力,更加吸引客戶。無(wú)論是性能、質(zhì)量還是價(jià)加具有競(jìng)爭(zhēng)力,更加吸引客戶。無(wú)論是性能、質(zhì)量還是價(jià)格都將成為企業(yè)、政府信息化所必須考慮的平臺(tái)。格都將成為企業(yè)、政府信息化所必須考慮的平臺(tái)。平臺(tái)是一種新型的軟件平臺(tái),可用來(lái)在網(wǎng)絡(luò)計(jì)算機(jī)系平臺(tái)是一種新型的軟件平臺(tái),可用來(lái)在網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)開(kāi)發(fā)和運(yùn)行高交互性、動(dòng)態(tài)的、安全的小程序和應(yīng)用程統(tǒng)開(kāi)發(fā)和運(yùn)行高交互性、動(dòng)態(tài)的、安全的小程序和應(yīng)用程序。平臺(tái)有三種三種版本

12、,這使軟件開(kāi)發(fā)人員、服務(wù)提供序。平臺(tái)有三種三種版本,這使軟件開(kāi)發(fā)人員、服務(wù)提供商和設(shè)備生產(chǎn)商可以針對(duì)特定的市場(chǎng)進(jìn)行開(kāi)發(fā)。商和設(shè)備生產(chǎn)商可以針對(duì)特定的市場(chǎng)進(jìn)行開(kāi)發(fā)。開(kāi)發(fā)平臺(tái)是一種用于建立服務(wù)器應(yīng)用程序和開(kāi)發(fā)平臺(tái)是一種用于建立服務(wù)器應(yīng)用程序和桌面應(yīng)用程序的軟件組件,用該平臺(tái)創(chuàng)建的應(yīng)用程桌面應(yīng)用程序的軟件組件,用該平臺(tái)創(chuàng)建的應(yīng)用程序在序在(通用語(yǔ)(通用語(yǔ)言運(yùn)行環(huán)境)的控制下進(jìn)行。是一個(gè)軟件引擎,用來(lái)加載應(yīng)言運(yùn)行環(huán)境)的控制下進(jìn)行。是一個(gè)軟件引擎,用來(lái)加載應(yīng)用程序,確認(rèn)他們可以沒(méi)有錯(cuò)誤的執(zhí)行,進(jìn)行相應(yīng)的安全許可驗(yàn)證,用程序,確認(rèn)他們可以沒(méi)有錯(cuò)誤的執(zhí)行,進(jìn)行相應(yīng)的安全許可驗(yàn)證,執(zhí)行應(yīng)用程序,然后在運(yùn)行結(jié)

13、束后將他們刪除。類庫(kù)集提供了使應(yīng)執(zhí)行應(yīng)用程序,然后在運(yùn)行結(jié)束后將他們刪除。類庫(kù)集提供了使應(yīng)用程序可以讀寫數(shù)據(jù)、在上通信、訪問(wèn)數(shù)用程序可以讀寫數(shù)據(jù)、在上通信、訪問(wèn)數(shù)3據(jù)庫(kù)等的代碼。所有的類庫(kù)都建立在一個(gè)基礎(chǔ)的類庫(kù)之上,他提供據(jù)庫(kù)等的代碼。所有的類庫(kù)都建立在一個(gè)基礎(chǔ)的類庫(kù)之上,他提供管理使用最為頻繁的數(shù)據(jù)類型(例如數(shù)值或文本字符串)的功能,管理使用最為頻繁的數(shù)據(jù)類型(例如數(shù)值或文本字符串)的功能,以及諸如文件輸入輸出等底層功能。以及諸如文件輸入輸出等底層功能。VisualVisual StudioStudio 是是微軟公司微軟公司推出的推出的開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境,VisualVisual Studio

14、Studio 可以用來(lái)創(chuàng)建可以用來(lái)創(chuàng)建 WindowsWindows 平臺(tái)下的平臺(tái)下的 WindowsWindows 應(yīng)用程序應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來(lái)創(chuàng)建網(wǎng)絡(luò)服務(wù)、智和網(wǎng)絡(luò)應(yīng)用程序,也可以用來(lái)創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和能設(shè)備應(yīng)用程序和 OfficeOffice 插件插件。VisualVisual StudioStudio 是目前最流行的是目前最流行的WindowsWindows 平臺(tái)平臺(tái)應(yīng)用程序開(kāi)發(fā)應(yīng)用程序開(kāi)發(fā)環(huán)境。環(huán)境。VisualVisual StudioStudio 20082008 包括各種增強(qiáng)功能,例如包括各種增強(qiáng)功能,例如可視化設(shè)計(jì)可視化設(shè)計(jì)器器(使用(使用 .NE

15、T.NET FrameworkFramework 3.53.5 加速開(kāi)發(fā))加速開(kāi)發(fā)) 、對(duì)、對(duì) WebWeb 開(kāi)發(fā)工具的大量開(kāi)發(fā)工具的大量改進(jìn),以及能夠加速開(kāi)發(fā)和處理所有類型數(shù)據(jù)的語(yǔ)言增強(qiáng)功能。改進(jìn),以及能夠加速開(kāi)發(fā)和處理所有類型數(shù)據(jù)的語(yǔ)言增強(qiáng)功能。VisualVisual StudioStudio 20082008 為開(kāi)發(fā)人員提供了所有相關(guān)的工具和框架支持,為開(kāi)發(fā)人員提供了所有相關(guān)的工具和框架支持,幫助創(chuàng)建引人注目的、令人印象深刻并支持幫助創(chuàng)建引人注目的、令人印象深刻并支持 AJAXAJAX 的的 WebWeb 應(yīng)用程序應(yīng)用程序。開(kāi)發(fā)人員能夠利用這些豐富的開(kāi)發(fā)人員能夠利用這些豐富的客戶端客戶

16、端和服務(wù)器端框架輕松構(gòu)建以和服務(wù)器端框架輕松構(gòu)建以客戶為中心的客戶為中心的 WebWeb 應(yīng)用程序,這些應(yīng)用程序可以集成任何后端數(shù)據(jù)應(yīng)用程序,這些應(yīng)用程序可以集成任何后端數(shù)據(jù)提供程序、在任何當(dāng)前提供程序、在任何當(dāng)前瀏覽器瀏覽器內(nèi)運(yùn)行并完全訪問(wèn)內(nèi)運(yùn)行并完全訪問(wèn) ASPASP NETNET 應(yīng)用程序應(yīng)用程序服務(wù)服務(wù)和和 MicrosoftMicrosoft 平臺(tái)。平臺(tái)。支持多種程序設(shè)計(jì)語(yǔ)言如:支持多種程序設(shè)計(jì)語(yǔ)言如:、等,實(shí)現(xiàn)了、等,實(shí)現(xiàn)了語(yǔ)言互用性。而只能用語(yǔ)言。隨著開(kāi)源潮流的蓬語(yǔ)言互用性。而只能用語(yǔ)言。隨著開(kāi)源潮流的蓬勃發(fā)展,開(kāi)放源代碼的已經(jīng)與和商業(yè)軟勃發(fā)展,開(kāi)放源代碼的已經(jīng)與和商業(yè)軟4件形成

17、三足鼎立之勢(shì)。件形成三足鼎立之勢(shì)。5第三章第三章 軟件設(shè)計(jì)的內(nèi)容軟件設(shè)計(jì)的內(nèi)容3.13.1 分?jǐn)?shù)統(tǒng)計(jì)軟件(分?jǐn)?shù)統(tǒng)計(jì)軟件(A1A1).1 設(shè)計(jì)題目及要求設(shè)計(jì)題目及要求課題內(nèi)容:課題內(nèi)容:設(shè)計(jì)一個(gè)分?jǐn)?shù)統(tǒng)計(jì)程序。包括學(xué)生信息的輸入輸出以及排序。通過(guò)該課題全面熟悉數(shù)組、字符串、文件的使用,掌握程序設(shè)計(jì)的基本方法及友好界面的設(shè)計(jì)。課題要求:課題要求:(1)輸入某班級(jí)學(xué)生的姓名、分?jǐn)?shù);(2)對(duì)(1)的分?jǐn)?shù)進(jìn)行降冪排列并輸出;(3)具有輸入輸出界面。.2 設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想為設(shè)計(jì)思想為:建立學(xué)生結(jié)構(gòu)體數(shù)組,結(jié)構(gòu)體成員包括存儲(chǔ)姓名的字符型數(shù)組以

18、及存儲(chǔ)分?jǐn)?shù)的整型,使用 for 循環(huán)語(yǔ)句從輸入處獲取 n 個(gè)學(xué)生的姓名和成績(jī),成績(jī)輸入的信息存入結(jié)構(gòu)體數(shù)組。再選擇按成績(jī)降冪排名,將結(jié)構(gòu)體數(shù)組從頭進(jìn)行輸出。算法流程框圖為:算法流程框圖為:開(kāi) 始輸入學(xué)生人數(shù)清屏輸入是否正確?輸入學(xué)生姓名 name和分?jǐn)?shù) gradeN.3 邏輯功能程序邏輯功能程序#include#include#includestruct student /存放學(xué)生信息的結(jié)構(gòu)體char name20; /字符型數(shù)組存放姓名int grade; /成績(jī)類型temp,std100;int main() int err; char x5; int n; int i;

19、 int m; char ch20; system(color F9); do system(cls); printf( nn); printf( * n); printf(t n); printf( O(_)O 歡迎使用本系統(tǒng) O(_)O n); printf(t n ); printf( * n); printf( n); printf( 請(qǐng)輸入學(xué)生個(gè)數(shù) nn);do printf(tt 學(xué)生個(gè)數(shù): );err=0;i=0;自動(dòng)降冪排序輸出排序后的成績(jī)單 結(jié) 束7scanf(%s,x); /輸入選項(xiàng)getchar();while(xi!=0) /依次檢查輸入的字符串是否為數(shù)字 if(xi9

20、|xi0) err=1; i+;if(err) printf(ntt 請(qǐng)輸入數(shù)字!n);while(err);n=atoi(x); /將字符型數(shù)組 x 轉(zhuǎn)換成整型 nfor(i=0;in;i+) /循環(huán) N 次輸入學(xué)生信息 printf(ntt 請(qǐng)輸入第%d 個(gè)人的信息ntt 姓名:,i+1); scanf(%s,); getchar(); printf(tt 分?jǐn)?shù):); scanf(%d,&stdi.grade);if (stdi.grade100)printf ( 您的輸入錯(cuò)誤,請(qǐng)重新輸入:n); printf(tt 分?jǐn)?shù):);scanf(%d,&stdi

21、.grade); getchar();printf( 輸入信息:n);printf( * n);printf( 姓名 成績(jī) nn);for(i=0;in;i+)printf( %s %dn,,stdi.grade); printf(nn * n);printf(n 排序后信息:n);for(m=0;mn;m+) for(i=0;in-m-1;i+)if(stdi.gradestdi+1.grade)temp=stdi;stdi=stdi+1;stdi+1=temp; /成績(jī)按降冪排序printf(n 您所輸入的學(xué)生名次如下:nn);8 printf( * n); printf

22、( 名次 姓名 成績(jī) nn);for(i=0;in;i+) printf( 第 %d 名 %s %dn,i+1,,stdi.grade); printf(nn * n); printf(t n);printf(t 您是否還需要繼續(xù)?(請(qǐng)按 Y 鍵繼續(xù)/任意鍵退出)); /選擇是否繼續(xù)printf(t n);scanf(%s,ch); printf(t 感謝使用此軟件,歡迎下次光臨 O(_)O n); while(ch0=Y|ch0=y); /與開(kāi)頭組成 do-while 結(jié)構(gòu)循環(huán) printf(t); return 0;.4 結(jié)果及完善方向結(jié)果及完善方向?qū)嶒?yàn)結(jié)

23、果:A.初始界面:B.輸入學(xué)生信息之后直接排序,界面如圖所示:9C.若所輸入的學(xué)生成績(jī)?cè)谟行Х秶?100)之外系統(tǒng)將會(huì)提示輸入錯(cuò)誤,界面如下圖:程序分析:程序分析:10 此程序功能上滿足基本的題目要求,能夠做到輸入學(xué)生的姓名和成績(jī),能夠按成績(jī)降冪排列并輸出。完善方向:完善方向: 基本功能已實(shí)現(xiàn),對(duì)于實(shí)際的系統(tǒng),接下來(lái)完善的功能的是能夠選擇不同的科目進(jìn)行輸入,能夠選擇進(jìn)行降冪或者升冪排序,同時(shí)能添加或刪除學(xué)生信息,對(duì)于成績(jī)相同的學(xué)生進(jìn)行并列排名。3.23.2 打字軟件打字軟件(A2A2).1 設(shè)計(jì)題目及要求設(shè)計(jì)題目及要求課題內(nèi)容:課題內(nèi)容:設(shè)計(jì)一個(gè)打字程序。包括隨機(jī)產(chǎn)生字符串,

24、以及字符串比較和統(tǒng)計(jì)。通過(guò)此課題,熟練掌握數(shù)組、格式輸出、字符串處理等。課題要求:課題要求:(1)隨機(jī)產(chǎn)生一字符串,每次產(chǎn)生的字符串內(nèi)容、長(zhǎng)度都不同;(2)根據(jù)(1)的結(jié)果,輸入字符串,判斷輸入是否正確,輸出正確率;(3)具有輸入輸出界面。.2 設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想為:設(shè)計(jì)思想為:利用函數(shù)庫(kù)里提供的產(chǎn)生隨機(jī)函數(shù) rand()產(chǎn)生隨機(jī)的字符串長(zhǎng)度,默認(rèn)將長(zhǎng)度定位在 1至 10 個(gè)字符。再產(chǎn)生一串由大小寫字母以及數(shù)字組成的隨機(jī)字符串,每產(chǎn)生一個(gè)字符串就按字保存至數(shù)組里。顯示產(chǎn)生的字符串,開(kāi)始打字后,將輸入字符串保存至數(shù)組,打字完畢。再與產(chǎn)生字符進(jìn)行逐

25、個(gè)比較,若相同,則正確個(gè)數(shù)加 1,最終得出正確率,輸出顯示。11算法流程框圖為:算法流程框圖為:.3 邏輯功能程序邏輯功能程序#include #include #include #include void main(void) int i,num,flag,m=0,k,over=1;char str100; /產(chǎn)生隨機(jī)數(shù)組char str1100; /輸入隨機(jī)數(shù)組char c;float p;開(kāi) 始隨機(jī)產(chǎn)生字符串輸入字符串依次比較,計(jì)算正確率輸出正確率是否繼續(xù) 結(jié) 束YN12system(color F9);while(over) /選擇是否繼續(xù) num=0; /產(chǎn)生字符長(zhǎng)度

26、 num 初始化為 0m=0; /統(tǒng)計(jì)正確個(gè)數(shù)變量 m 初始化為 0system(cls); /清除屏幕 printf(nnn); printf( * n); printf( O(_)O 歡迎使用本系統(tǒng) O(_)O n); printf( * n);printf( * 打字軟件 * n); srand(time(NULL); /提取系統(tǒng)時(shí)間,以時(shí)間為 seed 產(chǎn)生隨機(jī)數(shù) num=1+ rand()%10; /產(chǎn)生長(zhǎng)度不大于 10 的字符串 for(k=0;knum;k+) flag=rand()%3; /隨機(jī)產(chǎn)生小于 3 的數(shù) if(flag=0) strk=A+rand()%26; /產(chǎn)生

27、大寫字母 else if(flag=1) strk=a+rand()%26; /產(chǎn)生小寫字母 else strk=0+rand()%9; /產(chǎn)生數(shù)字strk=0; printf(nntt *n);printf(隨機(jī)字符串個(gè)數(shù):tt%dn,num); printf(隨機(jī)產(chǎn)生的字符串:t%sn,str); printf(tt *nn); printf(請(qǐng)輸入上面的字符串:); scanf(%s,str1);/輸入字符串getchar();for(i=0;str1i!=0&stri!=0;i+) /進(jìn)行比較 if(stri=str1i) m+; /m 為正確字符個(gè)數(shù) p=(float) m/

28、num; printf(nnn * nn); printf( 正確率為:%.1f%n,p*100);printf( 正確個(gè)數(shù)為:%dn,m); printf(n * nnn);printf( n);printf( 是否還需繼續(xù)練習(xí)?(任意鍵繼續(xù)/N 鍵退出)n);scanf(%c,&c);/輸入選項(xiàng)getchar();if(c=N|c=n) over=0;13 .4 結(jié)果及完善方向結(jié)果及完善方向A.A.初始界面:即隨機(jī)產(chǎn)生的字符串為輸出頁(yè)面初始界面:即隨機(jī)產(chǎn)生的字符串為輸出頁(yè)面B.B.當(dāng)輸入的字符串與隨機(jī)產(chǎn)生的字符串一致時(shí),正確率為當(dāng)輸入的字符串與隨機(jī)產(chǎn)生的字符串一致時(shí)

29、,正確率為 100%100%,如圖:,如圖:14C.C.當(dāng)輸入的字符串與隨機(jī)產(chǎn)生的字符串不一致時(shí),程序?qū)⒂?jì)算正確率并給出輸當(dāng)輸入的字符串與隨機(jī)產(chǎn)生的字符串不一致時(shí),程序?qū)⒂?jì)算正確率并給出輸入正確的個(gè)數(shù),如圖:入正確的個(gè)數(shù),如圖:程序結(jié)果分析:程序結(jié)果分析: 此程序能保證每次產(chǎn)生的字符串不一樣,且能正確地輸出準(zhǔn)確率,基本完成了打字訓(xùn)15練的任務(wù)。考慮到程序的實(shí)用性,可以為程序添加計(jì)時(shí)功能、記錄保存功能等,可以使使用者更加靈活地運(yùn)用打字軟件。程序完善方向:程序完善方向: 對(duì)于這個(gè)程序,不足的就是可以添加計(jì)時(shí)功能,在打字前,可以詢問(wèn)用戶是否進(jìn)行計(jì)時(shí),還可以添加功能,由用戶自己選擇可從從其他文件導(dǎo)入一

30、段字符串。3.3 文本編輯器文本編輯器(A3).1 設(shè)計(jì)題目及要求設(shè)計(jì)題目及要求課題內(nèi)容:課題內(nèi)容:設(shè)計(jì)一個(gè)簡(jiǎn)單的文本編輯器,該系統(tǒng)要求對(duì)一個(gè)文本文件中的內(nèi)容進(jìn)行各種常規(guī)操作,如:插入、刪除、查找、替換等功能。通過(guò)此課題,熟練掌握文本文件的操作及用字符數(shù)組或字符指針實(shí)現(xiàn)字符串操作的功能。 課題要求:課題要求:(1)編輯文本;(2)保存、打開(kāi)指定位置的文本文件;(3)具有輸入輸出界面。.2 設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想為:設(shè)計(jì)思想為:在主菜單可選擇建立文本、編輯文本、讀取文本和退出程序。以只寫方式編輯文本,若文本不存在則提示“不能打開(kāi)文件”

31、 ,打開(kāi)的文件則輸入的內(nèi)容以“#”作為結(jié)束標(biāo)識(shí);讀取文件時(shí),提示需要讀取的目標(biāo)文本路徑,將文本里的內(nèi)容輸出。算法流程框圖為:算法流程框圖為: 開(kāi) 始輸出功能菜單輸入選項(xiàng) choosechoose=1choose=2choose=4choose=3NNN.3 邏輯功能程序邏輯功能程序#include #include #include void menu1() printf( nn);printf( * O(_)O 歡迎使用此軟件 O(_)O *nn);printf( * 文本編輯器 * nn); printf( 1.建立文件 2.查看文件 3.編輯文件 0.退出 1.查找

32、2.刪除 3.插入 4.替換 0.返回上級(jí)菜單 n);int output() char filepath30;/路徑 FILE *fp; char ch; printf(n 請(qǐng)輸入文件路徑(如 D:name.txt: ); scanf(%s,filepath);/輸入路徑 getchar();/接收 Enter 字符 fp=fopen(filepath,r); printf(n 文件內(nèi)容如下:n); rewind(fp);/返回文件首,輸出整個(gè)文件的內(nèi)容 do ch=fgetc(fp); putchar(ch); while(ch!=EOF);fclose(fp);return 0;int

33、edit(int n) int i=0,x=0,fc=0,fch=0,fs=0,ft=0,a;char *p; int c=0,j; char test500;char m;char ch;18char hou;char huan; char filepath30;/路徑 char t;FILE *fp; switch(n) case 1:/查找功能 printf(n 請(qǐng)輸入文件路徑: ); scanf(%s,filepath);/輸入路徑 getchar();/接收 Enter 字符 fp=fopen(filepath,r); printf(n 文件內(nèi)容如下:n); rewind(fp);/

34、返回文件首,輸出整個(gè)文件的內(nèi)容 do ch=fgetc(fp); putchar(ch); testi=ch; i+; while(ch!=EOF); testi=0;/串尾標(biāo)識(shí)符fclose(fp);p=test;doa=0,x=0;printf(n 請(qǐng)輸入要查找字符:);scanf(%c,&t);getchar();while(xi) if(t=*(p+x)printf(n 您要查找的字為:%c,它是第 %d 個(gè)n,t,x+1); a=1; x+; 19if(a=0) printf(n 對(duì)不起,您要找的字不存在!n); printf(n 是否還需要繼續(xù)查找?(任意鍵繼續(xù)/0 退出)

35、n);scanf(%c,&m); if(m=0) fc=1; while(!fc);break;case 2:/刪除功能do int a=0,x=0; printf(n 請(qǐng)輸入文件路徑(如 D:name.txt: ); scanf(%s,filepath);/輸入路徑 getchar();/接收 Enter 字符 fp=fopen(filepath,r); printf(n 文件內(nèi)容如下:n); rewind(fp);/返回文件首,輸出整個(gè)文件的內(nèi)容 do ch=fgetc(fp); putchar(ch); testi=ch; i+; while(ch!=EOF); testi=0;

36、/串尾標(biāo)識(shí)符fclose(fp);printf(n 請(qǐng)輸入要?jiǎng)h除字符:);scanf(%c,&t);getchar(); while(x(i-a) if(testx=t) a+;for (c=x;c(i-a);c+)20 testc=testc+1; testi-a-1=0; x-; x+; fp=fopen(filepath,w); for(j=0;j(i-a);j+) ch=testj; fputc(ch,fp); fclose(fp); if(a=0) printf(n 對(duì)不起,此字符不存在,無(wú)法刪除!n); printf(n 文件已保存!n);getchar(); printf

37、(n 是否還需要繼續(xù)刪除?(任意鍵繼續(xù)/0 退出)n);scanf(%c,&m);if(m=0) fs=1;while(!fs); break; case 3:/插入功能 do int a=0; i=0; /i 的復(fù)位printf(n 請(qǐng)輸入文件路徑: ); scanf(%s,filepath);/輸入路徑 getchar();/接收 Enter 字符 fp=fopen(filepath,r); printf(n 文件內(nèi)容如下:n); rewind(fp);/返回文件首,輸出整個(gè)文件的內(nèi)容 do ch=fgetc(fp); putchar(ch);21 testi=ch; i+; wh

38、ile(ch!=EOF); testi=0;/串尾標(biāo)識(shí)符fclose(fp);p=test;printf(n 請(qǐng)輸入要插入到哪個(gè)字符后面:n);scanf(%c,&hou);getchar(); while(xi+a) if(hou=*(p+x)a=1; x+;if(a=0) printf(n 此字符不存在,輸入有誤!n);getchar(); return 0; printf(n 請(qǐng)輸入要插入的字符:n); scanf(%c,&t); getchar();int x=0,b=0; while(xx;j-) testj+1=testj; 22 testx+1=t; testi+

39、b+1=0;b+; x+; fp=fopen(filepath,w); for(j=0;ji+1;j+) ch=testj; fputc(ch,fp); fclose(fp); printf(n 文件已保存!n);getchar(); printf(n 是否還需要繼續(xù)插入?(任意鍵繼續(xù)/0 退出)n); scanf(%c,&m); if(m=0) fch=1; while(!fch); break; case 4:/替換功能doint a=0; printf(n 請(qǐng)輸入文件路徑(如 D:name.txt: ); scanf(%s,filepath);/輸入路徑 getchar();/接

40、收 Enter 字符 fp=fopen(filepath,r); printf(n 文件內(nèi)容如下:n); rewind(fp);/返回文件首,輸出整個(gè)文件的內(nèi)容 do ch=fgetc(fp); putchar(ch); testi=ch; i+; while(ch!=EOF);23 testi=0;/串尾標(biāo)識(shí)符fclose(fp);p=test; printf(n 請(qǐng)輸入文章中要替換的字符:n);scanf(%c,&t); getchar(); while(xi) if(t=*(p+x) a=1; x+; if(a=0) printf(n 對(duì)不起,找不到您要替換的字符!n); get

41、char(); return 0; printf( 請(qǐng)輸入您想要替換的字符: n);scanf(%c,&huan); getchar();int x=0;while(xi) if(t=*(p+x) testx=huan; x+; 24 fp=fopen(filepath,w); for(j=0;ji+1;j+) ch=testj; fputc(ch,fp); fclose(fp); printf(n 文件已保存!n);getchar(); printf(n 是否還需要繼續(xù)替換?(任意鍵繼續(xù)/0 退出)n); scanf(%c,&m); if(m=0) ft=1;while(!f

42、t); break; case 0: break; default:printf(n 輸入錯(cuò)誤!); return 0; return 0;void main() system(color f9); int i=0,quitflag=0,a;/標(biāo)志符 int n; char ch;char filepath30;/路徑FILE *fp; while(!quitflag)/若為選擇退出則繼續(xù) system(cls);/清屏menu1(); printf(請(qǐng)選擇:);scanf(%d,&a);/輸入選擇getchar();/接收 Enter 鍵字符switch(a)25 case 1:/寫

43、入文件 printf( 請(qǐng)輸入文件路徑(如 D:name.txt): ); scanf(%s,filepath);/輸入路徑 getchar();/接收 Enter 字符 fp=fopen(filepath,w+); if(fp=NULL) printf(文件不存在!n); else printf(請(qǐng)輸入內(nèi)容(以#結(jié)束)n); while(ch=getchar()!=#)/若不為#繼續(xù)輸入 fputc(ch,fp); fclose(fp); printf(n 文件已保存!n); break; case 2:/查看文件 output(); getchar(); break; case 3:/編輯

44、文件 menu2(); printf(請(qǐng)選擇:); scanf(%d,&n); edit(n); break; case 0: quitflag=1;break;/若輸入 0,則退出標(biāo)志符為 1 default:printf(輸入錯(cuò)誤!); .4 結(jié)果及完善方向結(jié)果及完善方向A.A.初始界面:初始界面:26B.B.建立文本:建立文本:C.C.讀取文本:讀取文本:27D.D.編輯文本子界面:編輯文本子界面:E.E.查找:查找:28F.F.若輸入多個(gè)字符則以第一個(gè)為準(zhǔn):若輸入多個(gè)字符則以第一個(gè)為準(zhǔn):G.G.若輸入不存在的字符,系統(tǒng)將提示并重新輸入若輸入不存在的字符,系統(tǒng)將提

45、示并重新輸入29H.H.刪除:刪除:I.I.插入:插入:30J.J.替換:替換:程序結(jié)果分析程序結(jié)果分析: 本程序可以根據(jù)指定文件名進(jìn)行建立文件、讀取文件、編輯文件等操作。31程序完善方向程序完善方向: 在編輯文本階段,只是以覆蓋的方式進(jìn)行編輯,這樣會(huì)導(dǎo)致文件以前的內(nèi)容完全丟失。應(yīng)該在編輯函數(shù)中增加“追加編輯”的功能,這樣可以使使用者靈活的通過(guò)“覆蓋方式”“追加方式”進(jìn)行文件編輯。3.4 加密軟件加密軟件(A4).1 設(shè)計(jì)題目及要求設(shè)計(jì)題目及要求課題內(nèi)容:課題內(nèi)容:設(shè)計(jì)一個(gè)加密程序。包括明文與密鑰的轉(zhuǎn)換。通過(guò)此課題,熟練掌握數(shù)組、格式輸出、字符串處理、類型轉(zhuǎn)換等。課題要求:課題

46、要求:(1)輸入任意一段明文 M,以及密鑰 K;(2)根據(jù)以下公式將其轉(zhuǎn)換為密文 C。 Ci = mi + K ,其中 i = 0,1,n-1 , K 為密鑰;(3)具有輸入輸出界面。.2 設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想為設(shè)計(jì)思想為: 輸入明文,保存在字符串中,輸入密鑰,以字符數(shù)組形式獲取,若為數(shù)字字符,則取其數(shù)值,若為其他,則取其 ASCII 碼值,最后轉(zhuǎn)換成十進(jìn)制數(shù),將每個(gè)字符+密鑰后生成密文字符,然后按順序輸出顯示密文。算法流程框圖為算法流程框圖為: 輸入明文和密鑰 密鑰轉(zhuǎn)換 加密 解密 輸出明文輸出密文NY 開(kāi)始3.3 邏輯功能程

47、序邏輯功能程序#include#include#include#include#includevoid menu();int itn(char s);void Jiami(char m,int k);void Jiemi(char m,char y);int main() char m1000; /輸入的明文 char y1000; /輸入的密鑰 char s10; char m11000; char ch; int k,choice; int i,n;system(color fd); do system(cls); menu();printf(nnn *n); printf( 請(qǐng)輸入一段明

48、文:); gets(m); strcpy(m1,m); printf(n 請(qǐng)輸入密鑰(按#號(hào)鍵結(jié)束):); for(i=0;i+) /密鑰輸入不顯示字符,顯示* ch=getch(); if(ch=#) yi=0; break; putchar(*); yi=ch; 結(jié)束33 k=itn(y); Jiami(m,k); printf( 是否需要解密?(y/n): ); ch=getchar(); getchar(); if(ch=y|ch=Y) Jiemi(m1,y); printf(n 繼續(xù)請(qǐng)按 1,退出請(qǐng)按 0:); scanf(%d,&n); getchar(); if(!n)

49、printf(nnttt* 謝謝使用!*nn); while(n); return 0;void menu() printf(nnnt*O(_)O歡迎進(jìn)入此軟件O(_)O*n);printf(t*n);printf(t 加密系統(tǒng) n);printf(t*nn);int itn(char s) /輸入字符串轉(zhuǎn)換為數(shù)值 int i,k=0,l;l=strlen(s); for(i=0;i127)k=k%128;return k;void Jiami(char m,int k) /加密 int i,l; l=strlen(m);printf(tttnn * 密文如下:* nn); for(i=0;i

50、l;i+) / 其間為可打印字符mi=mi+k;if(mi126)34mi=mi-127;if(mi33)mi=mi+33; printf(%c,mi); printf(nn n);void Jiemi(char m,char y) int count=0,i,f; char s1000,ch; do f=0; printf(n 請(qǐng)輸入密鑰(按#號(hào)鍵結(jié)束):); for(i=0;i+) /密鑰輸入不顯示字符,顯示* ch=getch(); if(ch=#) si=0; break; putchar(*); si=ch; if(strcmp(s,y)=0) printf(nn 解密成功,明文為:

51、);puts(m); else printf( 密鑰錯(cuò)誤!n);f=1;count+; if(count=3)printf(n 您輸入的 3 次密鑰均錯(cuò)誤,解密失敗!n); break; while(f);.4 結(jié)果及完善方向結(jié)果及完善方向A.A.初始界面:初始界面:35B.B.加密過(guò)程:加密過(guò)程:C.C.解密過(guò)程:解密過(guò)程:36D.D.密匙輸入錯(cuò)誤時(shí):密匙輸入錯(cuò)誤時(shí):E.E.當(dāng)密匙三次輸入錯(cuò)誤時(shí),解密失?。寒?dāng)密匙三次輸入錯(cuò)誤時(shí),解密失敗:37F.F.退出界面退出界面程序結(jié)果分析:程序結(jié)果分析: 此程序基本完成功能,能實(shí)現(xiàn)字符串的加密與解密,具有較友好的界面,能實(shí)現(xiàn)多次加密與解

52、密。程序完善方向:程序完善方向:38 此程序沒(méi)有將加密和解密模塊分開(kāi),應(yīng)在程序上加以完善。界面可以做得更友好。3.5 進(jìn)制轉(zhuǎn)換器進(jìn)制轉(zhuǎn)換器(A5).1 設(shè)計(jì)題目及要求設(shè)計(jì)題目及要求課題內(nèi)容:課題內(nèi)容:設(shè)計(jì)一個(gè)進(jìn)制轉(zhuǎn)換器程序。包括二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制數(shù)互相轉(zhuǎn)換。通過(guò)此課題,熟練掌握字符串、格式輸出、進(jìn)制換算的各種操作。課題要求:課題要求:(1)可輸入二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制數(shù);(2)將已輸入的數(shù)轉(zhuǎn)換成其余進(jìn)制的數(shù);(3)具有輸入輸出界面。.2 設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想:設(shè)計(jì)思想:(1)輸入“輸入進(jìn)制”base1; (

53、2)輸入一個(gè) base1 進(jìn)制的數(shù) n,檢驗(yàn) n 數(shù)字的合法性; (3)輸入“輸出進(jìn)制”base2; (4)將 n 轉(zhuǎn)換成十進(jìn)制數(shù) temp,再將 temp 轉(zhuǎn)換成 base2 進(jìn)制數(shù); (5)為防止數(shù)據(jù)溢出,限制數(shù)據(jù)位數(shù)為 6 位。算法流程框圖為:算法流程框圖為:39 1 2 3 4 N N N Y Y Y YY N 輸入n n二進(jìn)制八進(jìn)制十六進(jìn)制十進(jìn)制 結(jié) 束二進(jìn)制十六進(jìn)制十進(jìn)制八進(jìn)制轉(zhuǎn)換十進(jìn)制轉(zhuǎn)換二進(jìn)制、十進(jìn)制轉(zhuǎn)換二進(jìn)制轉(zhuǎn)換二進(jìn)制、十進(jìn)制轉(zhuǎn)成并輸出其他進(jìn)制轉(zhuǎn)成并輸出其他進(jìn)制轉(zhuǎn)成并輸出其他進(jìn)制轉(zhuǎn)成并輸出其他進(jìn)制 是否繼續(xù)?輸出功能菜單開(kāi)始0NYYYY40.3 邏輯功能程序邏

54、輯功能程序#include stdio.h#include void bishow(int m);void main()char x,w;char c10;int i=0,err=0,quitflag=0;int num=0;system(color fd);do system(cls);printf(nnn);printf(t * O(_)O 歡迎使用此軟件 O(_)O *nn);printf(t * * * n);printf(t 數(shù)制轉(zhuǎn)換系統(tǒng) 1 二進(jìn)制 2 八進(jìn)制 3 十進(jìn)制 4 十六進(jìn)制 0 退出 4|x7 | ci9 | ci0) err=1;/若輸入數(shù)據(jù)為非數(shù)字符號(hào),則錯(cuò)誤 i+

55、; if(err) printf(n 輸入數(shù)值錯(cuò)誤,不是十進(jìn)制數(shù)!n); while(err); i=0; while(ci!=0) num=num*10; num=num+ci-48; i+; printf(nt 十進(jìn)制數(shù) %s 轉(zhuǎn)換為其他進(jìn)制:nn,c); printf(t*n); bishow(num);43 printf(t 八進(jìn)制: %on,num); printf(t 十六進(jìn)制: %xn,num); printf(t*nn); printf(t 是否需要繼續(xù)?(任意鍵繼續(xù) N 鍵退出); scanf(%c,&w); getchar(); if(w=N|w=n) quitfl

56、ag=1; break; case 4: /輸入十六進(jìn)制 do err=0;i=0;num=0; printf(nt 請(qǐng)輸入十六進(jìn)制數(shù):); scanf(%s,c); getchar(); while(ci!=0) if(ci=0) err=0;/若輸入數(shù)據(jù)為非數(shù)字符號(hào),則錯(cuò)誤 else if(ci=a&ci=A&ci=F) err=0; else err=1; i+; if(err) printf(n 輸入數(shù)值錯(cuò)誤,不是十六進(jìn)制數(shù)!n); while(err); i=0; while(ci!=0) num=num*16; if(0=ci&ci=9) num=num+c

57、i-48; if(a=ci&ci=f) num=num+ci-97+10; if(A=ci&ci=0) printf(%d,bi-); /輸出二進(jìn)制數(shù) printf(n);.4 結(jié)果及完善方向結(jié)果及完善方向A.A.初始界面:初始界面:45B.B.當(dāng)輸入為二進(jìn)制時(shí):當(dāng)輸入為二進(jìn)制時(shí):C.C.當(dāng)輸入為八進(jìn)制時(shí):當(dāng)輸入為八進(jìn)制時(shí):46D.D.當(dāng)輸入為十進(jìn)制時(shí):當(dāng)輸入為十進(jìn)制時(shí):E.E.當(dāng)輸入為十六進(jìn)制時(shí):當(dāng)輸入為十六進(jìn)制時(shí):47F.F.輸入錯(cuò)誤時(shí),程序?qū)⑻崾据斎脲e(cuò)誤并回到輸入界面,如圖所示:輸入錯(cuò)誤時(shí),程序?qū)⑻崾据斎脲e(cuò)誤并回到輸入界面,如圖所示:48程序結(jié)果分析:程序

58、結(jié)果分析: 本程序基本實(shí)現(xiàn)功能,且能實(shí)現(xiàn) 16 以下的任意進(jìn)制間的相互轉(zhuǎn)換,在輸入非法進(jìn)制數(shù)時(shí)能報(bào)錯(cuò)提醒,并可以多次轉(zhuǎn)換。程序完善方向:程序完善方向: 本程序只能實(shí)現(xiàn)整數(shù)進(jìn)制之間的轉(zhuǎn)換,應(yīng)對(duì)代碼進(jìn)行進(jìn)一步優(yōu)化,以實(shí)現(xiàn)小數(shù)進(jìn)制間的相互轉(zhuǎn)換;數(shù)字的大小受到一定的限制,可以嘗試用數(shù)組解決大數(shù)間進(jìn)制轉(zhuǎn)換問(wèn)題;題輸出界面可以進(jìn)一步美化。3.6 學(xué)生成績(jī)核算系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生成績(jī)核算系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(B1).1 設(shè)計(jì)題目及要求設(shè)計(jì)題目及要求課題內(nèi)容:課題內(nèi)容:設(shè)計(jì)一個(gè)學(xué)生成績(jī)核算系統(tǒng)。能實(shí)現(xiàn)從文件中讀取學(xué)生成績(jī)資料,并提供成績(jī)查詢統(tǒng)計(jì)服務(wù)。通過(guò)此課題,熟練掌握文件、數(shù)組、結(jié)構(gòu)體的各種操作

59、以及友好界面的設(shè)計(jì)。課題要求:課題要求:(1)按班級(jí)按課程從文件中讀入相應(yīng)的平時(shí)成績(jī)、期中考試成績(jī)和期末考試成績(jī)。(2)三個(gè)成績(jī)對(duì)總評(píng)成績(jī)的百分比被定義為常數(shù),各占總成績(jī)的 30%、30%和 40%。(3)計(jì)算每位學(xué)生的總評(píng)成績(jī)。(4)計(jì)算該班級(jí)本課程的總平均成績(jī)。(5)計(jì)算處于優(yōu)、良、中、及格、不及格的學(xué)生人數(shù)以及占總?cè)藬?shù)的百分比。其中100-90 為優(yōu),89-80 為良,79-70 為中,69-60 為及格,60 分以下為不及格。(6)按要求輸出成績(jī)?cè)趦?yōu)、良、中、及格、不及格各區(qū)間的學(xué)生學(xué)號(hào)、成績(jī)。.2 設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想及程序流程框圖設(shè)計(jì)思想: 先顯示一個(gè)功能

60、菜單供用戶選擇所需功能。菜單功能分別為:1、顯示學(xué)生成績(jī);2、顯示學(xué)生的總評(píng)成績(jī)及該班級(jí)本課程的總平均成績(jī);3、顯示學(xué)生的成績(jī)等級(jí)及占總?cè)藬?shù)的百分比;4、顯示成績(jī)?cè)诟鞯燃?jí)區(qū)間的學(xué)生學(xué)號(hào)、成績(jī);5、退出程序。程序先判斷讀取的文件是否存在,不存在則顯示打開(kāi)文本錯(cuò)誤;存在則讀取文件中的學(xué)生的信息,然后設(shè)計(jì)程序?qū)⒚课粚W(xué)生的總評(píng)成績(jī)以及該班級(jí)本課程的總平均成績(jī)計(jì)算出來(lái),并將總評(píng)成績(jī)判定為相應(yīng)的等級(jí),之后建立一個(gè)文本輸入學(xué)生學(xué)號(hào)總評(píng)成績(jī),成績(jī)等級(jí)。若用戶選擇讀取學(xué)生成績(jī)則從文件中讀取相應(yīng)的平時(shí)成績(jī)期中成績(jī)期末成績(jī),并在界面上顯示出來(lái)。若選擇查詢學(xué)生的總評(píng)成績(jī)及總平均成績(jī),則從文本中讀取相應(yīng)的信息并在界面上顯示出來(lái)。選擇查詢學(xué)生成績(jī)等級(jí)及占總?cè)藬?shù)的百分比,則從文本中讀取學(xué)生學(xué)號(hào)和相應(yīng)的成績(jī)等級(jí),并將計(jì)算的百分比也讀取,最后顯示在界面上。選擇輸出成績(jī)?cè)趦?yōu)良中及格不及格各區(qū)間學(xué)生學(xué)號(hào)成績(jī),先請(qǐng)用戶輸入要

溫馨提示

  • 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)論