欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)大綱

      時(shí)間:2019-05-12 20:32:19下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)大綱》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)大綱》。

      第一篇:《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)大綱

      《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)教學(xué)大綱

      課程名稱:高級(jí)語言程序設(shè)計(jì)課程設(shè)計(jì)

      課程總學(xué)時(shí):32 適用專業(yè):廣播電視工程、電子信息工程、電子科學(xué)與技術(shù)

      課程類別:必修

      一、課程設(shè)計(jì)任務(wù)與目的

      《高級(jí)語言程序設(shè)計(jì)》課程是一門實(shí)踐性較強(qiáng)的課程,課程設(shè)計(jì)環(huán)節(jié)是課程學(xué)習(xí)的重要組成,是課程教學(xué)的必經(jīng)步驟。目的是培養(yǎng)學(xué)生實(shí)際操作技能和解決實(shí)際問題的能力。要求學(xué)生掌握C語言設(shè)計(jì)、調(diào)試、運(yùn)行方法,獲得用C語言解題的實(shí)際體會(huì),加深對(duì)C語言的理解,得到C程序設(shè)計(jì)方法和技巧的訓(xùn)練,掌握C程序設(shè)計(jì)的全過程。通過課程設(shè)計(jì)的教學(xué),使學(xué)生鞏固和深化已學(xué)的理論知識(shí),加強(qiáng)綜合應(yīng)用能力,訓(xùn)練學(xué)生掌握分析問題、解決問題的方法,培養(yǎng)較強(qiáng)的動(dòng)手能力和一定的設(shè)計(jì)和調(diào)試能力。

      二、課程設(shè)計(jì)基本內(nèi)容與要求

      鑒于課程設(shè)計(jì)的性質(zhì)、要求和具體內(nèi)容,對(duì)課程設(shè)計(jì)提出如下要求;

      1、關(guān)于課題及選題

      在課程設(shè)計(jì)任務(wù)書中列出了多個(gè)設(shè)計(jì)課題,每個(gè)課題都有相應(yīng)的要求或說明。參加課程設(shè)計(jì)的學(xué)生首先要了解設(shè)計(jì)的任務(wù),仔細(xì)思考各題的設(shè)計(jì)要求,然后根據(jù)自已的基礎(chǔ)和能力情況從中選擇一題。一般來說,選擇課題應(yīng)以在規(guī)定的時(shí)間內(nèi)能完成,并能得到應(yīng)有的鍛煉為原則。

      若學(xué)生對(duì)任務(wù)書中課題以外的相關(guān)課題較感興趣,希望選作課程設(shè)計(jì)的課題時(shí),應(yīng)征得指導(dǎo)教師的認(rèn)可,并寫出明確的設(shè)計(jì)要求和說明。

      2、關(guān)于設(shè)計(jì)的總要求

      在設(shè)計(jì)時(shí),要嚴(yán)格按照題意要求獨(dú)立進(jìn)行設(shè)計(jì),不能隨意更改。若確因條件所限,必須要改變課題要求時(shí),應(yīng)在征得指導(dǎo)教師同意的前提下進(jìn)行。

      3、驗(yàn)收

      在課程設(shè)計(jì)完成后應(yīng)由指導(dǎo)教師當(dāng)場運(yùn)行、驗(yàn)收,只有在驗(yàn)收合格后才能算設(shè)計(jì)部分的結(jié)束。

      4、設(shè)計(jì)報(bào)告

      課程設(shè)計(jì)結(jié)束后要寫出課程設(shè)計(jì)報(bào)告,以作為整個(gè)課程設(shè)計(jì)評(píng)分的書面依據(jù)和存檔材料。設(shè)計(jì)報(bào)告一般要以固定規(guī)格的紙張書寫并裝訂,字跡及圖形要清楚、工整(電子文檔尤佳)。內(nèi)容及要求如下:

      (1)設(shè)計(jì)任務(wù)、要求及所用軟件環(huán)境或工具。

      (2)問題模型化描述以及求解算法的簡要描述。

      (3)設(shè)計(jì)的模塊構(gòu)成、各模塊的簡要說明、流程圖、調(diào)用關(guān)系表。

      (4)所設(shè)計(jì)軟件的組成(程序文件和數(shù)據(jù)文件)及使用說明。

      (5)設(shè)計(jì)總結(jié)和體會(huì)。

      (6)驗(yàn)收情況。

      三、課程設(shè)計(jì)設(shè)備與材料

      計(jì)算機(jī);Visual C++6.0或C-Free3.5或Turbo C++3.0軟件。

      四、考核方式與評(píng)分辦法

      1、學(xué)生按照實(shí)習(xí)計(jì)劃和大綱完成實(shí)習(xí)教學(xué)任務(wù),考試合格取得相應(yīng)學(xué)分。

      2、學(xué)生實(shí)習(xí)考核內(nèi)容與成績比例:實(shí)習(xí)態(tài)度與實(shí)習(xí)紀(jì)律占20%、業(yè)務(wù)能力與水平占40%、答辯與驗(yàn)收情況占20%,實(shí)習(xí)報(bào)告占20%。

      3、無故不參加實(shí)習(xí)或?qū)嵙?xí)全過程缺勤在三分之一及以上者,實(shí)習(xí)成績視為不及格。

      4、學(xué)生實(shí)習(xí)成績按優(yōu)秀、良好、中等、及格和不及格五級(jí)評(píng)定,原則上呈正態(tài)分布,嚴(yán)格控制優(yōu)秀比例,一般優(yōu)秀率不大于20%。

      五、課程設(shè)計(jì)參考書

      1、潭浩強(qiáng).C語言程序設(shè)計(jì).清華大學(xué)出版社.2000

      2、廖湖聲等.C語言程序設(shè)計(jì)案例教程.人民郵電出版社.2003

      3、張仁杰 王風(fēng)茂.《C語言程序設(shè)計(jì)實(shí)訓(xùn)教程》中國電力出版社.2004

      執(zhí)筆人:裘姝平

      教研室:電子信息工程教研室 編制日期: 2008 年 9月

      第二篇:《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)任務(wù)書2

      《高級(jí)語言程序設(shè)計(jì)》課程設(shè)計(jì)任務(wù)書

      一、課程設(shè)計(jì)的目的

      高級(jí)語言程序設(shè)計(jì)是本科工科類各專業(yè)的重要基礎(chǔ)課,課程以影響深遠(yuǎn)的、傳統(tǒng)的、面向過程的優(yōu)秀編程語言C語言為基礎(chǔ),學(xué)習(xí)程序設(shè)計(jì)的基本概念和方法,通過本門課程學(xué)習(xí),應(yīng)使同學(xué)掌握高級(jí)語言的基本原理,熟練掌握程序設(shè)計(jì)的基礎(chǔ)知識(shí)、基本概念;掌握程序設(shè)計(jì)的思想和編程技巧。

      課程設(shè)計(jì)是在學(xué)生已經(jīng)具備了使用C語言編寫簡單的應(yīng)用程序的能力,為使學(xué)生對(duì)C語言有更全面的理解,進(jìn)一步提高運(yùn)用C語言編程解決實(shí)際問題的能力,通過提出算法、指定輸入輸出來設(shè)計(jì)一個(gè)解決方案。經(jīng)過該實(shí)踐環(huán)節(jié),培養(yǎng)學(xué)生的探索精神和創(chuàng)新能力。通過答辯訓(xùn)練學(xué)生的綜合表達(dá)能力。

      二、課程設(shè)計(jì)教學(xué)的基本內(nèi)容和要求

      1、課程設(shè)計(jì)教學(xué)基本內(nèi)容

      高級(jí)語言課程設(shè)計(jì)不僅是對(duì)程序設(shè)計(jì)能力的綜合鍛煉,更是對(duì)團(tuán)隊(duì)合作、軟件開發(fā)與項(xiàng)目管理過程的訓(xùn)練。因此,課程設(shè)計(jì)根據(jù)題目的難度由小組合作完成,每個(gè)小組1-4人。整個(gè)課程設(shè)計(jì)分為以下幾個(gè)階段進(jìn)行:選題與開題、系統(tǒng)設(shè)計(jì)、系統(tǒng)編碼實(shí)現(xiàn)、系統(tǒng)測試、撰寫課程設(shè)計(jì)報(bào)告、系統(tǒng)評(píng)價(jià)與驗(yàn)收。

      (1)選題與開題:題目可來自教師指定的參考題目,也可自由選題,特別是鼓勵(lì)有創(chuàng)新性的題目或是在已知題目的基礎(chǔ)上進(jìn)行創(chuàng)新。

      (2)系統(tǒng)設(shè)計(jì):系統(tǒng)設(shè)計(jì)的任務(wù)是對(duì)所確定的題目從問題需求、數(shù)據(jù)結(jié)構(gòu)、程序結(jié)構(gòu)、難點(diǎn)及關(guān)鍵技術(shù)等方面進(jìn)行分析,形成的系統(tǒng)設(shè)計(jì)方案,并進(jìn)行詳細(xì)的分工。

      (3)系統(tǒng)編碼實(shí)現(xiàn):小組成員根據(jù)初步的系統(tǒng)設(shè)計(jì)方案,對(duì)系統(tǒng)編程實(shí)現(xiàn)。(4)系統(tǒng)測試:在各程序模塊編碼完成并集成后,就可以開始對(duì)整個(gè)系統(tǒng)進(jìn)行測試。(5)撰寫課程設(shè)計(jì)報(bào)告:完成文檔整理,按照要求完成課程設(shè)計(jì)報(bào)告。(6)系統(tǒng)評(píng)價(jià)與驗(yàn)收:通過小組答辯的形式對(duì)程序的功能進(jìn)行評(píng)價(jià)與驗(yàn)收。

      2、課程設(shè)計(jì)教學(xué)的要求

      參加本課程設(shè)計(jì)的學(xué)生,應(yīng)當(dāng)認(rèn)真完成本課程設(shè)計(jì)的全部過程。并以最終課程設(shè)計(jì)成果來證明其獨(dú)立完成各種實(shí)際任務(wù)的能力。從而反映出理解和運(yùn)用本課程知識(shí)的水平和能力。具體如下:

      (1)數(shù)據(jù)組織方面盡量使用到:數(shù)組、鏈表、結(jié)構(gòu)體、文件;(2)程序結(jié)構(gòu)方面做到函數(shù)調(diào)用,盡量采用指針運(yùn)算;(3)代碼編寫規(guī)范,形成良好的編程習(xí)慣;

      (4)程序須有一定的健壯性和必要的提示信息,考慮問題的多種可能和邊界數(shù)據(jù)。(5)課設(shè)完成須進(jìn)行答辯,提交課設(shè)報(bào)告電子稿、裝訂的打印稿。課設(shè)報(bào)告內(nèi)容包括以下幾個(gè)方面:

      ? 程序的總體設(shè)計(jì)和算法分析。? 程序流程圖、函數(shù)說明 ? 源程序代碼清單 ? 測試數(shù)據(jù)和測試過程記錄 ? 遇到的問題及解決方法分析 ? 課程設(shè)計(jì)小結(jié)

      三、課程設(shè)計(jì)的進(jìn)度安排

      系統(tǒng)整體設(shè)計(jì)和詳細(xì)設(shè)計(jì)

      1天 系統(tǒng)編碼實(shí)現(xiàn)

      1天 系統(tǒng)測試

      1天 撰寫課程設(shè)計(jì)報(bào)告

      1天 演示軟件和答辯

      1天

      四、課程設(shè)計(jì)的考核

      評(píng)價(jià)是檢測學(xué)生理解問題和解決問題能力的一個(gè)重要手段,教師將根據(jù)學(xué)生提交的課程設(shè)計(jì)報(bào)告,嚴(yán)格檢查以下各項(xiàng)任務(wù)完成情況:

      1、設(shè)計(jì)文檔中要求項(xiàng)目是否齊全。

      2、程序中運(yùn)行時(shí)的屏幕提示信息是否準(zhǔn)確:

      如果在程序執(zhí)行期間有足夠的指導(dǎo)信息顯示在屏幕上顯示,這些用戶文檔可以是很簡要的,也許只限于解釋如何裝入并運(yùn)行程序。

      3、問題和或任務(wù)的陳述(描述問題,而且問題是合理原始的、應(yīng)當(dāng)包括輸入、輸出及其預(yù)期范圍)是否正確。

      問題的解決方案采取由頂向下設(shè)計(jì)的形式,在適當(dāng)?shù)牡胤绞褂脗未a,把整個(gè)解決方案劃分成若干模塊。

      5、程序完成后的代碼應(yīng)當(dāng)加以注解。最少應(yīng)清楚指出每一個(gè)模塊。

      6、用于檢查程序的測試數(shù)據(jù),或者對(duì)一個(gè)控制程序給出測試的例程。測試應(yīng)考慮探索通過程序的幾條路徑,在合適的地方選擇打印輸出來。

      7、程序的技術(shù)文檔:必須包含函數(shù)的原型說明和所用變量的全體清單

      8、程序順利運(yùn)行,結(jié)果正確;測試程序是否工作且滿足設(shè)計(jì)指標(biāo)并評(píng)價(jià)其效率。

      五、指導(dǎo)書、參考資料

      《C程序設(shè)計(jì)》 譚浩強(qiáng)編 清華大學(xué)出版社

      《C程序設(shè)計(jì)思想與方法》 尹寶林編著 機(jī)械工業(yè)出版社

      六、其他

      第三篇:語言程序設(shè)計(jì)課程設(shè)計(jì)指導(dǎo)書

      匯編語言程序設(shè)計(jì)課程設(shè)計(jì)指導(dǎo)書

      一、課程設(shè)計(jì)的目的

      本課程設(shè)計(jì)是《匯編語言程序設(shè)計(jì)》課程的后繼教學(xué)環(huán)節(jié),其宗旨是使學(xué)生通過對(duì)一個(gè)較大型的、綜合性的應(yīng)用程序進(jìn)行閱讀、修改、添加功能等工作,對(duì)匯編語言程序設(shè)計(jì)有更進(jìn)一步的認(rèn)識(shí),提高編程技巧和閱讀理解復(fù)雜程序的能力。

      二、課程設(shè)計(jì)的任務(wù)要求

      根據(jù)所給的“Reader.asm”應(yīng)用程序框架,在此基礎(chǔ)上修改和添加功能。1.基本任務(wù): ?

      ? ? ? 認(rèn)真閱讀“Reader.asm”源程序,理解程序每一條指令在程序中的作用; 用→、←鍵在窗口內(nèi)左右移動(dòng)文本;

      用PgDn,PgUp鍵上下快速移動(dòng)文本(每次移半幀); 設(shè)計(jì)專用鍵放大、縮小窗口,改變窗口位置。

      2.擴(kuò)展任務(wù): ? ? 對(duì)文本內(nèi)的Tab字符(ASCII碼09H)進(jìn)行處理:遇到Tab鍵,下一個(gè)字符顯示在下一個(gè)表站開始處(每個(gè)6個(gè)字符一個(gè)表站);

      設(shè)置狀態(tài)行,顯示當(dāng)前文件名、文本位置(仿垂直滾動(dòng)條)。

      3.自行設(shè)計(jì)的其它任務(wù):

      三、課程設(shè)計(jì)報(bào)告的內(nèi)容

      1.課程設(shè)計(jì)題目名稱、班級(jí)號(hào)、學(xué)號(hào)、學(xué)生姓名和課程設(shè)計(jì)起止日期(封面);

      2.上海應(yīng)用技術(shù)學(xué)院課程設(shè)計(jì)任務(wù)書(下發(fā))3.課程設(shè)計(jì)目的和要求;

      4.課程設(shè)計(jì)任務(wù)內(nèi)容; 5.詳細(xì)設(shè)計(jì)說明; 6.軟件使用說明; 7.課程設(shè)計(jì)總結(jié);

      8.附錄:1 參考文獻(xiàn) 2 程序清單(電子版)。

      四、課程設(shè)計(jì)詳細(xì)設(shè)計(jì)說明及其它要求

      1.2.3.4.5.6.分析原“Reader.asm”程序結(jié)構(gòu):每個(gè)模塊說明,較大模塊程序流程圖; 對(duì)你已經(jīng)實(shí)現(xiàn)的功能做詳細(xì)的說明,并附上流程圖及部分程序清單; 自己對(duì)該“文件閱讀器”的進(jìn)一步設(shè)想;

      對(duì)于有設(shè)想但最終未實(shí)現(xiàn)的功能的大致編程思路的闡述; 論述在設(shè)計(jì)過程中遇到的并且對(duì)你具有啟發(fā)性的問題; 交課程設(shè)計(jì)報(bào)告手寫版,源程序交電子版。

      五、評(píng)分標(biāo)準(zhǔn)

      1.根據(jù)平時(shí)出勤情況和設(shè)計(jì)時(shí)的工作情況;

      2.根據(jù)課程設(shè)計(jì)程序的完成情況,必須有可運(yùn)行的軟件。3.根據(jù)課程設(shè)計(jì)報(bào)告的質(zhì)量。課程設(shè)計(jì)報(bào)告不能抄襲,抄襲判為不及格。4.在題目要求之外附加具有實(shí)用性的功能。

      六、課程設(shè)計(jì)工作進(jìn)度計(jì)劃

      星期一:課程設(shè)計(jì)介紹,源程序閱讀理解,功能設(shè)計(jì),程序編寫。星期二:功能設(shè)計(jì),程序編寫。

      星期三:程序編寫與調(diào)試,課程設(shè)計(jì)報(bào)告撰寫。星期四:程序編寫與調(diào)試,課程設(shè)計(jì)報(bào)告撰寫。

      星期五:程序最終修改,課程設(shè)計(jì)報(bào)告撰寫,提交報(bào)告并答辯。

      七、主要參考資料

      [1]楊文顯.匯編語言程序設(shè)計(jì)簡明教程.北京:電子工業(yè)出版社,2005

      八、附錄

      《文本閱讀器》匯編語言源程序清單

      ;Title: Assemble Program “Reader.asm”

      ;Read a file from disk, display it?s contents on screen;Move the content on screen by up/down arrow keys;========================== MYDAT SEGMENT MAXLEN DW 1000;最大行數(shù) INDEX DW 1000 DUP(?);行索引 LENCT DW 0;實(shí)際行數(shù) CURLINE DW 0;當(dāng)前頁第一行行數(shù) CCOUNT DW ?;文件總字符數(shù)

      TOP DB 5;窗口左上角行數(shù) LEFT DB 5;窗口左上角列數(shù) WS DW 60;窗口寬度 HS DW 15;窗口高度 FG DB 17H;文字屬性 FGB DB 1FH;窗口邊框?qū)傩?/p>

      MSG1 DB 'File:$';輸入文件名提示 MSG2 DB 'File open error!$';打開文件出錯(cuò)時(shí)提示 MSG3 DB 'File read error!$';讀文件出錯(cuò)時(shí)提示 FILENA DB 80,?,80 DUP(?);輸入文件名緩沖區(qū)

      ;定義功能鍵和相應(yīng)的處理程序

      ;每個(gè)功能定義兩個(gè)數(shù)據(jù):掃描碼,處理程序入口地址;該數(shù)據(jù)由DOSUB子程序使用

      KEYSUB DW 48H, SUB1 , 50H, SUB2, 0

      MYDAT ENDS

      ;==========================

      BUFFER SEGMENT PARA DB 65535 DUP(?);文件緩沖區(qū),文件最大為64K BUFFER ENDS

      ;==========================

      SSEG SEGMENT STACK ?STACK?;堆棧段

      DW 100 DUP(?)SSEG ENDS

      ;==========================

      ;宏定義 DISPINIT: 設(shè)置顯示器顯示方式 DISPINIT MACRO MOV AX,0003H;文本方式 25x80 INT 10H ENDM;----------;宏定義 PROMPT: 顯示字符串 PROMPT MACRO OUTMSG LEA DX, OUTMSG MOV AH, 09H;INT 21H;ENDM;--------;宏定義KRYIN: 從鍵盤讀入一個(gè)字符 KEYIN MACRO MOV AH,0;讀鍵

      INT 16H;AH中為掃描碼

      ENDM;==========================;代碼段開始 CODE SEGMENT

      ASSUME CS: CODE, DS: MYDAT, ES: BUFFER, SS: SSEG

      START: MOV AX, MYDAT;裝載DS,ES MOV DS, AX MOV AX, BUFFER MOV ES, AX

      DISPINIT;顯示方式初始化

      CALL READFILE;讀入文件

      JC DONE

      CALL CLIST;初始化索引行

      CALL CLSCREEN;清屏

      CALL CREWIN;創(chuàng)建窗口

      CALL SHOWCUR;顯示當(dāng)前頁

      NEXT: KEYIN;進(jìn)入主程序: 讀鍵盤

      CALL COMMAND;命令分析與處理

      JNC NEXT;非x鍵繼續(xù)循環(huán)

      DONE: CALL CLSCREEN;清屏

      MOV AX, 4C00H INT 21H;退出

      ;-------;子程序READFILE: 提示并讀入文件名,將文件讀入緩沖區(qū) READFILE PROC PROMPT MSG1;CALL SIN;讀入文件名

      MOV AX, 3D00H MOV DX, OFFSET FILENA+2 INT 21H;打開文件(讀)JC GETERR1;打開文件出錯(cuò)轉(zhuǎn)GETERR1 PUSH DS PUSH ES POP DS;將DS指向文件緩沖區(qū)段

      MOV BX, AX;BX=文件號(hào)

      MOV AH, 3FH;讀文件 MOV CX, 0FFFFH;讀入最多64K-1 MOV DX, 0;DS: DX指向文件緩沖區(qū)

      INT 21H POP DS JC GETERR2;讀入文件出錯(cuò)轉(zhuǎn)GETERR2 MOV CCOUNT, AX;實(shí)際讀入字符數(shù)存入CCOUNT中

      CLC JMP GETFILEXIT

      GETERR1: PROMPT MSG2;讀入文件出錯(cuò)處理

      KEYIN STC JMP GETFILEXIT;

      GETERR2: PROMPT MSG3;打開文件出錯(cuò)處理

      KEYIN STC

      GETFILEXIT: RET

      READFILE ENDP;-------;輸入文件名子程序 SIN PROC MOV AH, 0AH MOV DX, OFFSET FILENA INT 21H;輸入文件名

      XOR CH, CH MOV CL, FILENA+1;取文件名長度

      LEA BX, FILENA+2 ADD BX, CX;計(jì)算字符串結(jié)尾地址

      MOV BYTE PTR [BX], 0;在字符串尾部加0 RET SIN ENDP;-------;索引行初始化子程序 CLIST PROC MOV CX, CCOUNT JCXZ CSTX;文件為空結(jié)束

      MOV SI,0;文件緩沖區(qū)字符指針

      MOV DI,0;索引行指針

      MOV DX,0;行數(shù)計(jì)數(shù)

      MOV INDEX[DI], 0 INC DX;假設(shè)文件至少有一行 CST1: CMP WORD PTR ES:[SI], 0A0DH;判斷是否為回車換行符

      JNZ CST2;不是行結(jié)束,轉(zhuǎn)CST2 INC DX;行數(shù)加一

      ADD SI, 2;跳過回車換行符

      ADD DI, 2;索引行指針加一

      MOV INDEX[DI], SI;指向本行開始地址

      CMP DX, MAXLEN JNC CST4;是否超過最大行,超過轉(zhuǎn)CST4,結(jié)束

      JMP CST3;CST2: INC SI;文件緩沖區(qū)字符指針指向下一字符 CST3: LOOP CST1;CST4: MOV LENCT, DX;保存行數(shù)到LENCT中 CSTX: RET CLIST ENDP;-------;清屏子程序

      CLSCREEN PROC MOV AX, 0600H;清屏

      MOV CX, 0 MOV DH, 50 MOV DL, 79 MOV BH, 07H INT 10H RET CLSCREEN ENDP;------;顯示當(dāng)前頁子程序 SHOWCUR PROC MOV DH, 0;窗口最頂行

      MOV SI, CURLINE;取當(dāng)前頁第一行行數(shù)

      MOV CX, HS;窗口的第一行和最后一行為邊框,SUB CX, 2;所以能夠顯示內(nèi)容的高度為窗口高度減二 SC1:

      CALL SHOWLINE;顯示一行

      INC DH;窗口下一行

      INC SI;文件下一行

      MOV AX, LENCT;CMP SI, AX;文件是否顯示完

      JNC SC2;顯示完則轉(zhuǎn)SC2 LOOP SC1 JMP SC1X SC2: JCXZ SC1X;該頁顯示滿則結(jié)束

      ;該頁沒有顯示滿,則用空行填滿該頁 SC3: PUSH CX PUSH DX CALL SHOWSPLINE;顯示空行

      POP DX POP CX INC DH LOOP SC3 SC1X: RET SHOWCUR ENDP;------;顯示一行子程序

      ;輸入:SI=顯示行行號(hào);DH=窗口中的行號(hào) SHOWLINE PROC PUSH CX PUSH SI PUSH DX PUSH AX

      ADD DH, TOP;INC DH;實(shí)際行數(shù)=窗口左上角行數(shù)+DI+1 MOV DL, LEFT;INC DL;實(shí)際列數(shù)=窗口左上角列數(shù)+1 CALL VADD;

      MOV CX, WS;窗口的第一列和最后一列是邊框,SUB CX, 2;所以能夠顯示內(nèi)容的寬度為窗口寬度減二

      SHL SI, 1;行索引為字類型,所以乘二

      MOV SI, INDEX[SI];取該行第一個(gè)字符在文件緩沖區(qū)的地址

      PUSH DS MOV AX, 0B800H MOV DS, AX;DS指向顯示緩沖區(qū)段地址 SL1: MOV AX, ES:[SI] CMP AX, 0A0DH JZ SL2;如果是回車換行,則該行結(jié)束

      MOV DS: [DI], AL;顯示一個(gè)字符 ADD DI, 2;INC SI;取下一個(gè)字符

      LOOP SL1;JCXZ SLX;該行正好顯示完,則結(jié)束,否則用空格填滿

      SL2: MOV BYTE PTR DS:[DI], ' ';該行沒有顯示滿,則用空格填滿

      ADD DI, 2 LOOP SL2

      SLX: POP DS

      POP AX POP DX POP SI POP CX

      RET SHOWLINE ENDP;--------;顯示空行子程序

      ;輸入:DI=窗口中的行號(hào) SHOWSPLINE PROC;

      MOV AX, HS;SUB AX, 2;CMP DH, AL;顯示的空行是否超出最低行

      JNC SSLX;如果是,則轉(zhuǎn)SSLX ADD DH, TOP;INC DH;實(shí)際行數(shù)=窗口左上角行數(shù)+DI+1 MOV DL, LEFT;INC DL;實(shí)際列數(shù)=窗口左上角列數(shù)+1 CALL VADD;

      MOV CX, WS;窗口的第一列和最后一列是邊框,SUB CX, 2;所以能夠顯示內(nèi)容的寬度為窗口寬度減二

      PUSH DS MOV AX, 0B800H MOV DS, AX SSL1: MOV BYTE PTR DS:[DI], ' ' ADD DI, 2 LOOP SSL1 POP DS SSLX: RET SHOWSPLINE ENDP;-------;創(chuàng)建窗口子程序 CREWIN PROC PUSH ES MOV AX, 0B800H;顯示緩沖區(qū)地址為B800:0 MOV ES, AX;

      MOV DH, TOP MOV DL, LEFT;窗口左上角行列數(shù)

      MOV CX, HS;窗口高度(行數(shù))CW1: PUSH DX;CALL VADD;計(jì)算地址

      PUSH CX;MOV CX, WS;窗口寬度(列數(shù))

      MOV AL, FG;取屬性 CW2: MOV BYTE PTR ES:[DI], ' ';送空白字符

      INC DI;MOV BYTE PTR ES:[DI], AL;送屬性

      INC DI;LOOP CW2;

      POP CX POP DX INC DH;行數(shù)加一

      LOOP CW1

      CALL DRAWB;畫邊框

      POP ES RET CREWIN ENDP;-;畫邊框子程序 DRAWB PROC PUSH DX PUSH CX PUSH BX PUSH AX MOV BL, FGB MOV DH, TOP MOV DL, LEFT CALL VADD

      ;畫左上角角框

      MOV BYTE PTR ES:[DI], 0C9H INC DI MOV BYTE PTR ES:[DI], BL INC DI

      ;畫第一行邊框

      MOV CX, WS SUB CX,2 DB1: MOV BYTE PTR ES:[DI], 0CDH INC DI MOV BYTE PTR ES:[DI], BL INC DI LOOP DB1

      ;畫右上角角框

      MOV BYTE PTR ES:[DI], 0BBH INC DI MOV BYTE PTR ES:[DI], BL

      ;畫第二行到倒數(shù)二行左右邊框

      MOV DH, TOP MOV DL, LEFT INC DH MOV CX, HS SUB CX, 2 DB2: PUSH DX CALL VADD MOV BYTE PTR ES:[DI], 0BAH INC DI MOV BYTE PTR ES:[DI], BL DEC DI MOV AX, WS DEC AX SHL AX, 1 ADD DI, AX MOV BYTE PTR ES:[DI], 0BAH INC DI MOV BYTE PTR ES:[DI], BL POP DX INC DH LOOP DB2;取邊框?qū)傩?窗口左上角行列數(shù);計(jì)算地址;角框╔;因?yàn)槿サ袅俗笥医强颍詫挾葴p二;上下邊框═;角框╗;從第二行開始;第一行和最后一行沒有左右邊框,;所以高度減二;;計(jì)算左邊框地址;左右邊框║;;;;計(jì)算右邊框地址;;下一行;

      ;畫左下角角框

      MOV DH, TOP;MOV DL, LEFT;MOV AX, HS;DEC AX;ADD DH, AL;左下角行數(shù)=右上角行數(shù)+窗口高度-1 CALL VADD MOV BYTE PTR ES:[DI], 0C8H;角框╚

      INC DI MOV BYTE PTR ES:[DI], BL INC DI

      ;畫最低行邊框

      MOV CX, WS;SUB CX, 2;因?yàn)槿サ袅俗笥医强?,所以寬度減二 DB3: MOV BYTE PTR ES:[DI], 0CDH;上下邊框═

      INC DI MOV BYTE PTR ES:[DI], BL INC DI LOOP DB3

      ;畫右下角角框

      MOV BYTE PTR ES:[DI], 0BCH;角框╝

      INC DI MOV BYTE PTR ES:[DI], BL

      POP AX POP BX POP CX POP DX

      RET DRAWB ENDP;------;計(jì)算窗口內(nèi)某行列位置對(duì)應(yīng)顯存地址;輸入:DH=行 DL=列;輸出:DI為顯存地址 VADD PROC MOV AL, 80;MUL DH;XOR DH, DH;ADD AX, DX;行數(shù)×80+列數(shù)

      SHL AX, 1;乘2,因?yàn)槊總€(gè)字符占兩個(gè)字節(jié)

      MOV DI, AX RET VADD ENDP;--------;命令分析子程序 COMMAND PROC CMP AH, 2DH;2DH為x鍵的掃描碼

      JNZ COM1;不是x鍵,轉(zhuǎn)COM1 STC;值x鍵標(biāo)志

      RET COM1: CALL DOSUB;轉(zhuǎn)命令散轉(zhuǎn)子程序

      CLC RET COMMAND ENDP;--;命令散轉(zhuǎn)子程序 DOSUB PROC MOV AL, AH MOV AH, 0;將鍵掃描碼放入AX中

      MOV BX, OFFSET KEYSUB;BX指向KEYSUB DOSUB1: CMP WORD PTR [BX], 0 JZ DOSUBX;KEYSUB表查完,即沒有找到轉(zhuǎn)DOSUBX CMP AX, [BX] JZ DOSUB2;找到掃描碼轉(zhuǎn)DOSUB2 ADD BX, 4 JMP DOSUB1;DOSUB2: ADD BX, 2 MOV BX, [BX];取處理程序入口地址

      JMP BX;轉(zhuǎn)處理程序 DOSUBX: RET

      ;SUB1和SUB2均為功能鍵處理程序;處理完后應(yīng)使用JMP DOSSUBX結(jié)束

      ;上箭頭鍵處理程序 SUB1: CMP CURLINE, 0 JZ SUB1X;已到第一行,結(jié)束

      DEC CURLINE;向上一行

      CALL SHOWCUR;顯示當(dāng)前頁 SUB1X: JMP DOSUBX

      ;下箭頭鍵處理程序 SUB2: MOV AX, LENCT DEC AX DEC AX;至少顯示一行

      CMP AX, CURLINE;已到最后一行

      JZ SUB2X INC CURLINE;向下一行

      CALL SHOWCUR;顯示當(dāng)前頁 SUB2X: JMP DOSUBX

      DOSUB ENDP;--------

      CODE ENDS

      ;========================= END START

      第四篇:C語言程序設(shè)計(jì)課程設(shè)計(jì)任務(wù)書

      C語言程序設(shè)計(jì)課程設(shè)計(jì)任務(wù)書

      項(xiàng)目4:

      高校工資管理系統(tǒng)一、課程設(shè)計(jì)項(xiàng)目:

      高校工資管理系統(tǒng)

      二、目的與要求:

      1、目的:

      (1)要求學(xué)生達(dá)到熟練掌握C++語言的基本知識(shí)和技能;(2)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法;

      (3)能夠利用所學(xué)的基本知識(shí)和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題。

      2、基本要求:

      (1)要求利用面向?qū)ο蟮姆椒ㄒ约癈++的編程思想來完成系統(tǒng)的設(shè)計(jì);

      (2)要求在設(shè)計(jì)的過程中,建立清晰的類層次;

      (3)在系統(tǒng)中至少要定義四個(gè)類,每個(gè)類中要有各自的屬性和方法;

      (3)在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制。

      3、創(chuàng)新要求:

      在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如根據(jù)查找結(jié)果進(jìn)行修改的功能。

      4、寫出設(shè)計(jì)說明書

      三、設(shè)計(jì)方法和基本原理:

      1、功能要求

      問題的描述(功能要求):

      現(xiàn)一高校有五類職工:教師,實(shí)驗(yàn)員,行政人員,教師兼職實(shí)驗(yàn)員,行政人員兼職教師。為了實(shí)現(xiàn)工資發(fā)放的自動(dòng)功能,現(xiàn)要求編寫程序來自動(dòng)完成此功能。同時(shí)注意生成的相關(guān)數(shù)據(jù)結(jié)果以文件方式存放在硬盤中。程序應(yīng)具備從鍵盤錄入,文件的可繼續(xù)錄入,任意職工的工資查詢(可由職工編號(hào)和職工姓名來實(shí)現(xiàn)),如若有職工由于工作調(diào)動(dòng),則可進(jìn)行相對(duì)應(yīng)的刪除動(dòng)作。

      相關(guān)信息: 每一學(xué)期將學(xué)校職工的本學(xué)期任職情況及上學(xué)期工作的相關(guān)情況輸入計(jì)算機(jī),則本學(xué)期職工的月工資按程序處理后的結(jié)果發(fā)放,其中職工的工資計(jì)算方法如下:

      其中工資的基本構(gòu)成如下:

      教師: 基本工資+課時(shí)費(fèi);

      實(shí)驗(yàn)員: 基本工資+實(shí)驗(yàn)室補(bǔ)助;

      行政人員: 基本工資+行政補(bǔ)貼;

      教師兼職實(shí)驗(yàn)員: 基本工資+課時(shí)費(fèi)+實(shí)驗(yàn)室補(bǔ)助;

      行政人員兼職教師:基本工資+行政補(bǔ)貼+課時(shí)費(fèi);(其中:

      1.課時(shí)費(fèi):教師每一學(xué)期的基本工作量為120,實(shí)驗(yàn)員每學(xué)期基本工作量為70,行政人員沒有基本工作量,每節(jié)課時(shí)費(fèi)為20元;課時(shí)費(fèi)=(上學(xué)期工作量-基本工作量)*20;注意:如果上學(xué)期基本工作量沒完成,則其(上學(xué)期工作量-基本工作量)*20為負(fù)值。

      2.基本工資:教師800元,實(shí)驗(yàn)員650元,行政人員750元。

      3.行政補(bǔ)貼:250元。4.實(shí)驗(yàn)室補(bǔ)助:150元。

      2、問題的解決方案:

      根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟: a)寫出需求分析(該程序要實(shí)現(xiàn)什么什么樣的功能)b)分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性和行為; c)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次;

      d)完成類層次中各個(gè)類的描述(包括屬性和方法); e)完成類中各個(gè)成員函數(shù)的定義; f)用戶界面的設(shè)計(jì)

      g)分析系統(tǒng)功能模塊(系統(tǒng)流程圖)h)代碼編寫 i)功能調(diào)試;

      j)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說明書。

      四、程序設(shè)計(jì)和調(diào)試:

      五、答辯與評(píng)分標(biāo)準(zhǔn):

      1、完成基本功能:60分;

      2、設(shè)計(jì)報(bào)告及使用說明書:10分;

      3、設(shè)置錯(cuò)誤或者按照要求改變結(jié)果:15分;

      4、回答問題:15分。

      六、報(bào)告:

      包括系統(tǒng)設(shè)計(jì)要求,設(shè)計(jì)思路,系統(tǒng)功能模塊圖,系統(tǒng)流程圖,類的層次圖(包括類成員列表),調(diào)試過程,關(guān)鍵程序代碼,總結(jié),參考書目等。

      第五篇:C語言程序設(shè)計(jì)課程設(shè)計(jì)指導(dǎo)書

      課程設(shè)計(jì)指導(dǎo)書

      課程名稱: C語言程序設(shè)計(jì)

      班次: 自動(dòng)化2016-01,02,03班

      設(shè)計(jì)任務(wù):

      整個(gè)課程設(shè)計(jì)一共提供了10個(gè)題目,編號(hào)為1~10。按學(xué)號(hào)尾數(shù)進(jìn)行選題設(shè)計(jì)。

      課程設(shè)計(jì)目的

      1、進(jìn)一步掌握利用C語言進(jìn)行程序設(shè)計(jì)的能力;

      2、進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法;

      3、初步掌握開發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法;

      4、學(xué)會(huì)調(diào)試一個(gè)較長程序的基本方法;

      5、學(xué)會(huì)利用流程圖表示算法;

      5、學(xué)習(xí)撰寫課程設(shè)計(jì)報(bào)告;

      第一部分:課題描述(一共10個(gè)課題)

      課題1:圖書管理系統(tǒng)

      在磁盤上創(chuàng)建3個(gè)txt文件,命名book.txt,borrow.txt和reader.txt,分別存儲(chǔ)圖書、借閱和讀者的信息,每本圖書的基本信息有編號(hào)、書名、作者、出版日期、金額、類別、在館數(shù)量等。借閱基本信息有:編號(hào)、書名、金額、借書證號(hào)、借書日期、到期日期、罰款金額等。讀者信息包括借書證號(hào)、姓名、班級(jí)、學(xué)號(hào)、類別等。創(chuàng)建圖書管理系統(tǒng),該系統(tǒng)運(yùn)行時(shí)在控制臺(tái)中顯示菜單界面進(jìn)行鍵盤輸入操作,模擬借閱圖書的管理過程。

      系統(tǒng)功能包括以下方面: A、圖書信息管理

      圖書按類別進(jìn)行管理,常見類別有書籍、期刊、報(bào)刊等,在該模塊中又包含添加、刪除、修改、查詢等操作,操作結(jié)果打印在控制臺(tái)中。

      字段包含:書名,編號(hào),類別,存放地點(diǎn),入庫時(shí)間

      B、借閱信息管理

      圖書借閱模擬操作,包括以下功能:借出,歸還和續(xù)借等操作,對(duì)超期圖書進(jìn)行罰款金額顯示。另外可以設(shè)置罰金數(shù)額和最大借閱數(shù)量和時(shí)間等參數(shù)。

      字段包含:書名,編號(hào),借閱者,借出時(shí)間,歸還時(shí)間,借閱狀態(tài),超期時(shí)間,最大借閱數(shù)

      C、讀者信息管理

      讀者分為教師和學(xué)生兩大類等級(jí):教師和學(xué)生的最大圖書借閱數(shù)量和時(shí)間有所不同,并可對(duì)添加、掛失和查詢讀者信息。

      字段包含:讀者姓名,讀者類別,可借閱時(shí)間,可借閱數(shù)量,系統(tǒng)操作過程中能夠正確讀取和更新文件,并進(jìn)行正常的圖書、借閱和讀者管理操作。

      課題2:個(gè)人通訊錄管理系統(tǒng)

      在磁盤上建立1個(gè)communication.txt文件,作為讀取和存儲(chǔ)的通訊錄,該系統(tǒng)運(yùn)行時(shí)在控制臺(tái)中顯示菜單界面進(jìn)行鍵盤輸入操作,模擬通訊錄的操作過程。

      系統(tǒng)功能包括以下方面:

      A、通訊錄的每位聯(lián)系人信息有姓名、單位、固定電話、移動(dòng)手機(jī)、分類(如同事、朋友、同學(xué)、家人等)、EMAIL、QQ等。

      B、輸入、查找、刪除、修改聯(lián)系人信息功能。

      C、顯示功能:能夠顯示所有聯(lián)系人信息(大于10條的分屏顯示),或按分類進(jìn)行顯示。D、分類操作:可以按分類信息進(jìn)行同一類的聯(lián)系人操作,比如顯示、刪除和查找操作。E、(選作)可以加載聯(lián)系人頭像并進(jìn)行顯示,可用字符拼圖或讀取已有的黑白圖片文件。系統(tǒng)操作過程中能夠正確讀取和更新文件,并進(jìn)行正常的通訊錄聯(lián)系人操作。

      課題3:職工工資管理系統(tǒng)

      在計(jì)算機(jī)中建立相應(yīng)的數(shù)據(jù)結(jié)構(gòu),利用程序?qū)崿F(xiàn)工資的輸入、查詢、增、刪、改、統(tǒng)計(jì)、輸出等操作。

      1、設(shè)計(jì)一個(gè)能夠記錄公司員工工資的數(shù)據(jù)結(jié)構(gòu)(比如包括:員工號(hào),姓名,基本工資,補(bǔ)貼金額,獎(jiǎng)勵(lì)金額,扣除金額、實(shí)發(fā)工資等)、文件(文件作為工資數(shù)據(jù)的保存介質(zhì))。注:,其中實(shí)發(fā)工資=基本工資+補(bǔ)貼金額+獎(jiǎng)勵(lì)金額-扣除金額

      2、應(yīng)用文件保存工資管理數(shù)據(jù)。

      3、新增:能將所有輸入的員工工資數(shù)據(jù)保存到文件中,并可選擇繼續(xù)輸入或退出。

      4、查找:輸入員工的員工號(hào),并在文件中查找

      ? 若找到,則顯示該員工的工資詳情 ? 否則提示未找到。? 無論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出。

      5、刪除:輸入員工的員工號(hào),并在文件中查找

      ? 若找到,提示是否確定刪除

      ? 若選擇是,則刪除文件中該員工信息 ? 若選擇否,則取消,? 否則提示無此員工信息

      ? 無論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出。

      6、修改:輸入員工的員工號(hào),并在文件中查找

      ? 若找到,顯示該員工的所有信息,并可進(jìn)行輸入。完成后將現(xiàn)輸入的內(nèi)容覆蓋原內(nèi)容保存到文件中。

      ? 否則提示無此員工信息

      ? 無論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出。

      7、統(tǒng)計(jì):分類匯總并輸出所有員工的基本工資、補(bǔ)貼金額、獎(jiǎng)勵(lì)金額、扣除金額、實(shí)發(fā)工資的總金額和平均金額。如:

      基本工資、補(bǔ)貼金額、獎(jiǎng)勵(lì)金額、扣除金額、實(shí)發(fā)工資

      總和 12000 1300 1400 1500 13200 平均 1200 130 140 150 1320 人數(shù): 10

      8、退出:退出程序

      課題4:自動(dòng)售貨機(jī)系統(tǒng)

      某公司請(qǐng)你為其生產(chǎn)的自動(dòng)售貨機(jī)編寫軟件。這種無人值守自動(dòng)售貨機(jī)販賣價(jià)值為A、B、C的三種商品,價(jià)格分別為2元,3元和6元。顧客投入10元的紙幣,然后選擇購買3種商品之一,自動(dòng)售貨機(jī)吐出商品,并且找給用戶零錢。如果商品已經(jīng)賣完,或者無法找零,則給出用戶一個(gè)提示,商品已售完,并且退還紙幣。

      自然,你的售貨機(jī)用戶希望盡可能地給用戶找零,以免流失顧客。為了調(diào)查用戶的喜好,希望得到三種商品的每日消費(fèi)數(shù)據(jù),由此來調(diào)整貨柜中三種貨物的存貯量。你的程序?qū)?shí)現(xiàn)以下功能:

      庫存查詢:檢索當(dāng)前三種商品的儲(chǔ)存量 商品上架:為三種商品增加或者減少儲(chǔ)量

      銷售查詢:分別統(tǒng)計(jì)今天每種商品的銷售量和銷售額 會(huì)計(jì)查詢:打印當(dāng)天的往來帳目以及剩余零鈔數(shù)目

      結(jié)算功能:取出今天所有的10元紙幣,并且分別設(shè)置零鈔的數(shù)目

      銷售界面:顧客投入紙幣,選擇商品,獲得商品和零錢;或者直接顯示錯(cuò)誤并退還紙幣 【題目要求】

      (1)為各項(xiàng)操作功能設(shè)計(jì)一個(gè)菜單。應(yīng)用程序運(yùn)行后,先顯示這個(gè)菜單,然后操作員通過菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目;

      (2)你的售貨機(jī)用戶不希望每一位顧客都有權(quán)限執(zhí)行以上功能,因此一旦進(jìn)入銷售界面,就不應(yīng)當(dāng)退回到系統(tǒng)界面,但是應(yīng)允許顧客反復(fù)購買,前一個(gè)顧客購買完畢后應(yīng)停留在銷售界面里允許下一個(gè)顧客操作。直到某位特殊的顧客(超級(jí)顧客)輸入特殊的商品代號(hào)(密碼)方可回到主控界面。

      (3)計(jì)算機(jī)安排的找零算法應(yīng)該合理,不要出現(xiàn)某一種零錢找光的情況。同時(shí)顧客也不喜歡 明明有5元零鈔,卻被找給5個(gè)一元的零鈔。盡量滿足這兩個(gè)要求。

      (3)、要求以上功能分別用函數(shù)實(shí)現(xiàn)。并要求用C語言的文件操作語句將以上所有結(jié)果保存在文件goods.txt。

      【輸入/輸出要求】

      (1)應(yīng)用程序運(yùn)行后,先顯示一個(gè)菜單,然后用戶根據(jù)需要選擇相應(yīng)的操作項(xiàng)目。進(jìn)入每個(gè)操作后,根據(jù)程序的提示輸入相應(yīng)的信息;

      (2)要求用戶輸入數(shù)據(jù)時(shí),要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式及結(jié)束方式等。

      根據(jù)題目要求,運(yùn)用所學(xué)知識(shí),完成設(shè)計(jì)和實(shí)現(xiàn)工作,并按照書寫規(guī)范,撰寫課程設(shè)計(jì)報(bào)告。

      課題5:銷售管理系統(tǒng)

      某公司有四個(gè)銷售員(編號(hào):1-4),負(fù)責(zé)銷售五種產(chǎn)品(編號(hào):1-5)。每個(gè)銷售員都將當(dāng)天出售的每種產(chǎn)品各寫一張便條交上來。每張便條包含內(nèi)容:

      1)銷售員的代號(hào)

      2)產(chǎn)品的代號(hào)

      3)這種產(chǎn)品的當(dāng)天的銷售額

      每位銷售員每天可能上繳0-5張便條。假設(shè),收集到了上個(gè)月的所有便條,編寫一個(gè)處理系統(tǒng),讀取上個(gè)月的銷售情況(在磁盤上創(chuàng)建一個(gè)txt文件記錄上個(gè)月的銷售信息),進(jìn)行如下處理。

      1)計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷售額。

      2)按銷售額對(duì)銷售員進(jìn)行排序,輸出排序結(jié)果(銷售員代號(hào))

      3)統(tǒng)計(jì)每種產(chǎn)品的總銷售額,對(duì)這些產(chǎn)品按從高到底的順序,輸出排序結(jié)果(需輸出產(chǎn)品的代號(hào)和銷售額)

      4)輸出統(tǒng)計(jì)報(bào)表

      銷售統(tǒng)計(jì)報(bào)表

      產(chǎn)品代號(hào)

      銷售之和 銷售員號(hào) 1 2 3 4 5 每種產(chǎn)品之和 總和

      5)可以按產(chǎn)品代號(hào)查詢,也可以按銷售員號(hào)查詢。

      課題6: 車票管理系統(tǒng)一車站每天有n個(gè)發(fā)車班次,每個(gè)班次都有一班次號(hào)(1、2、3?n),固定的發(fā)車時(shí)間,固定的路線(起始站、終點(diǎn)站),大致的行車時(shí)間,固定的額定載客量。如

      班次 發(fā)車時(shí)間 起點(diǎn)站 終點(diǎn)站 行車時(shí)間 額定載量 已定票人數(shù) 1 8:00 郫縣 廣漢 2 45 30 2 6:30 郫縣 成都 0.5 40 40 3 7:00 郫縣 成都 0.5 40 20 4 10:00 郫縣 成都 0.5 40 2 ?

      (一)功能要求:用c語言設(shè)計(jì)一系統(tǒng),能提供下列服務(wù):(1)錄入班次信息(信息用文件保存),可不定時(shí)地增加班次數(shù)據(jù)(2)瀏覽班次信息,可顯示出所有班次當(dāng)前狀總(如果當(dāng)前系統(tǒng)時(shí)間超過了某班次的發(fā)車時(shí)間,則顯示“此班已發(fā)出”的提示信息)。

      (3)查詢路線:可按班次號(hào)查詢 ,可按終點(diǎn)站查詢(4)售票和退票功能

      A:當(dāng)查詢出已定票人數(shù)小于額定載量且當(dāng)前系統(tǒng)時(shí)間小于發(fā)車時(shí)間時(shí)才能售票,自動(dòng)更新已售票人數(shù)

      B:退票時(shí),輸入退票的班次,當(dāng)本班車未發(fā)出時(shí)才能退票,自動(dòng)更新已售票人數(shù)

      課題

      7、單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)

      在磁盤上創(chuàng)建一個(gè)test.txt文件,使用記事本打開后先寫入40道單選題和相應(yīng)的選項(xiàng)和正確答案。再編寫一個(gè)單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng),該系統(tǒng)功能要求: 字段:題干,備選答案,標(biāo)準(zhǔn)答案

      A、用文件保存試題庫。(每個(gè)試題包括題干、4個(gè)備選答案、標(biāo)準(zhǔn)答案)。B、試題錄入、修改和刪除。

      C、試題抽?。好看螐脑囶}庫中可以隨機(jī)抽出N道題(N由鍵盤輸入)。D、考生答題:用戶抽取N道試題進(jìn)行答題,鍵盤輸入每道題的答案。

      E、自動(dòng)判卷:系統(tǒng)可根據(jù)用戶答案與標(biāo)準(zhǔn)答案的對(duì)比實(shí)現(xiàn)判卷并給出成績。

      系統(tǒng)操作過程中能夠正確讀取和更新試題文件,并進(jìn)行正常的試題管理、抽取、答題和判卷操作,該過程在控制臺(tái)中顯示,人機(jī)交互方便。

      課題8:醫(yī)院門診候診的隊(duì)列管理程序

      要求采用先來先就診的排隊(duì)方式(就診順序與掛號(hào)單編號(hào)無關(guān)),假設(shè)掛號(hào)時(shí)編碼是連續(xù)的,但由于同一個(gè)門診科目有3個(gè)診室,其中35(含35)歲以上的在第一診室,35歲以下男患者進(jìn)第二診室,其它的進(jìn)第三診室,程序啟動(dòng)后顯示下列菜單:

      字段:掛號(hào)單號(hào),患者姓名,年齡,性別,分診室號(hào),【實(shí)現(xiàn)提示】 1--掛號(hào) 2--叫號(hào) 3--分診室

      4--顯示各診室隊(duì)列信息

      5--統(tǒng)計(jì)當(dāng)天就診的患者情況(要求按性別進(jìn)行統(tǒng)計(jì)和按任意年齡區(qū)段進(jìn)行統(tǒng)計(jì))6--結(jié)束程序

      選1時(shí),提示用戶在一行內(nèi)輸入姓名及掛號(hào)單編號(hào);

      選2時(shí),顯示排在隊(duì)列中第一位患者姓名、掛號(hào)單編號(hào),并將其從掛號(hào)序列中刪除 選3時(shí),進(jìn)行診室分配

      選4時(shí),按隊(duì)列順序顯示個(gè)診室排隊(duì)人的姓名、掛號(hào)單編號(hào)及所在診室 選5時(shí),進(jìn)行兩種統(tǒng)計(jì)方法的選擇,并進(jìn)行必要的統(tǒng)計(jì)計(jì)算 選6時(shí),退出程序的運(yùn)行

      要求1~5中每一個(gè)步驟完成后都能重新顯示此選擇菜單

      課題9:成績管理系統(tǒng)

      現(xiàn)有學(xué)生成績信息,內(nèi)容如下

      姓名 學(xué)號(hào) 語文 數(shù)學(xué) 英語 張明明 01 67 78 82 李成友 02 78 91 88 張輝燦 03 68 82 56 王露 04 56 45 77 陳東明 05 67 38 47 ?.......?

      請(qǐng)用C語言編寫一系統(tǒng),實(shí)現(xiàn)學(xué)生信息管理,軟件的功能要求如下:(1)信息維護(hù):

      要求:學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息(2)信息查詢:

      要求:查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號(hào)查詢(3)成績統(tǒng)計(jì):

      要求:A輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60--70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。

      (4)排序:能對(duì)用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果

      課題10:停車場管理系統(tǒng)設(shè)計(jì)

      1.有一個(gè)兩層的停車場, 每層有6個(gè)車位, 當(dāng)?shù)谝粚榆囃M后才允許使用第二層.(停車場可用一個(gè)二維數(shù)組實(shí)現(xiàn), 每個(gè)數(shù)組元素存放一個(gè)車牌號(hào))每輛車的信息包括車牌號(hào), 層號(hào), 車位號(hào), 停車時(shí)間共4項(xiàng).其中停車時(shí)間按分鐘計(jì)算

      2.假設(shè)停車場初始狀態(tài)為第一層已經(jīng)停有4輛車, 其車位號(hào)依次為1—4 , 停車時(shí)間依次為20, 15, 10 , 5.即先將這四輛車的信息存入文件”car.dat”中(數(shù)組的對(duì)應(yīng)元素也要進(jìn)行賦值)3.停車操作: 當(dāng)一輛車進(jìn)入停車場時(shí), 先輸入其車牌號(hào), 再為它分配一個(gè)層號(hào)和一個(gè)車位號(hào)(分配前先查詢車位的使用情況, 如果第一層有空則必須停在第一層), 停車時(shí)間設(shè)為5 , 最后將新停入的汽車的信息添加文件”car.dat”中, 并將在此之前的所有車的停車時(shí)間加5.4.收費(fèi)管理(取車): 當(dāng)有車離開時(shí), 輸入其車牌號(hào), 先按其停車時(shí)間計(jì)算費(fèi)用, 每5分鐘0.2元.(停車費(fèi)用可設(shè)置一個(gè)變量進(jìn)行保存), 同時(shí)從文件”car.dat”中刪除該車的信息, 并將該車對(duì)應(yīng)的車位設(shè)置為可使用狀態(tài)(即二維數(shù)組對(duì)應(yīng)元素清零).按用戶的選擇來判斷是否要輸出停車收費(fèi)的總計(jì).5.輸出停車場中全部車輛的信息.6.退出系統(tǒng).字段:車牌號(hào),樓層號(hào),車位號(hào),入庫時(shí)間,出庫時(shí)間,停車時(shí)間,停車費(fèi)用

      第二部分:基礎(chǔ)訓(xùn)練

      若感覺直接完成所選課題很困難,可以嘗試先完成基礎(chǔ)訓(xùn)練。完成基礎(chǔ)訓(xùn)練,有一定的編程基礎(chǔ)后,在完成所選課題。

      第一步: 定義一個(gè)結(jié)構(gòu)體類型,用來表示學(xué)生的各種屬性。定義一個(gè)學(xué)生結(jié)構(gòu)體變量,從鍵盤輸入各個(gè)分量的值,然后從屏幕輸出該結(jié)構(gòu)體變量的各個(gè)分量。學(xué)生結(jié)構(gòu)體類型定義如下:

      typedef struct _CStudent { char szName[20];/* 學(xué)生姓名 */ char nNumber[10] /* 學(xué)號(hào) */ int nAge;/* 年齡 */ char cSex;/* 性別,約定 ?m? 代表女,?f?代表男 */ char szAddress[20];/* 家庭地址 */ double dDataStruct;/* 數(shù)據(jù)結(jié)構(gòu)成績 */ double dMath;/* 數(shù)學(xué)成績 */ double dEnglish;/* 英語成績 */ }CStudent;

      第二步:

      定義一個(gè)結(jié)構(gòu)體類型,用來表示學(xué)生的各種屬性。定義一個(gè)含3個(gè)元素的學(xué)生結(jié)構(gòu)體變量數(shù)組,從鍵盤輸入3個(gè)同學(xué)的信息,然后從屏幕輸出該結(jié)構(gòu)體變量數(shù)組各成員的值。

      建議:定義兩個(gè)函數(shù),一個(gè)用于從鍵盤輸入一個(gè)學(xué)生結(jié)構(gòu)體變量的各個(gè)分量的值,另一個(gè)把一個(gè)學(xué)生結(jié)構(gòu)體變量的值輸出到屏幕。函數(shù)原型可以如下:

      void input(CStudent* p)/* 從鍵盤輸入 */ void output(CStudent* p)/* 向屏幕輸出 */

      第三步:

      從鍵盤輸入一個(gè)學(xué)生的信息,然后以文本方式寫入文件。定義另一個(gè)學(xué)生結(jié)構(gòu)體變量,用于從文件讀出數(shù)據(jù),然后把數(shù)據(jù)顯示到屏幕。

      第四步:

      定義一個(gè)含3個(gè)元素的學(xué)生結(jié)構(gòu)體數(shù)組,從鍵盤輸入3個(gè)同學(xué)的信息,以文本方式把這些數(shù)據(jù)寫入文件。

      第五步:

      將課題4寫入文件的數(shù)據(jù)全部讀出,輸出到屏幕。

      附錄一:

      本設(shè)計(jì)中需要清屏。說明如下:

      格式:

      system(“cls”)包含頭文件: stdlib.h

      附錄二:控制臺(tái)程序選擇菜單的完成

      #include #include

      int main(){ int choice1 = 1, choice2;

      do {

      printf(“歡迎使用學(xué)生成績管理系統(tǒng)n”);

      printf(“請(qǐng)選擇程序功能n”);

      printf(“

      1、數(shù)據(jù)錄入n”);

      printf(“

      2、數(shù)據(jù)查詢n”);

      printf(“

      3、輸出所有同學(xué)信息n”);

      printf(“

      4、退出程序n”);

      scanf(“%d”, &choice1);

      switch(choice1)

      {

      case 1:

      printf(“數(shù)據(jù)錄入n”);

      /*編寫數(shù)據(jù)錄入程序*/

      printf(“返回上級(jí)菜單請(qǐng)按n退出程序請(qǐng)按n”);

      scanf(“%d”, &choice1);

      break;

      case 2:

      printf(“

      1、按學(xué)號(hào)查詢n”);

      printf(“

      2、按姓名查詢n”);

      scanf(“%d”, &choice2);

      switch(choice2)

      {

      case 1:

      printf(“按學(xué)號(hào)查詢n”);

      /*編寫按學(xué)號(hào)查詢程序*/

      break;

      case 2:

      printf(“按姓名查詢n”);

      /*編寫按姓名查詢程序*/

      break;

      }

      printf(“返回上級(jí)菜單請(qǐng)按n退出程序請(qǐng)按n”);

      scanf(“%d”, &choice1);

      break;

      case 3:

      printf(“輸出所有同學(xué)信息n”);

      /*編寫輸出所有同學(xué)信息程序*/

      printf(“返回上級(jí)菜單請(qǐng)按n退出程序請(qǐng)按n”);

      scanf(“%d”, &choice1);

      break;

      case 4:

      break;

      }

      system(“cls”);}while(choice1!= 4);

      printf(“程序結(jié)束n”);return 0;}

      附錄三:關(guān)于菜單的處理技術(shù)舉例 #include #include

      int menu_select();/*主菜單函數(shù)*/ /******主函數(shù)開始*******/ main(){ int i;Salary sal[M];/*定義結(jié)構(gòu)體數(shù)組*/ int length;/*保存記錄長度*/ clrscr();/*清屏*/ for(;;)/*無限循環(huán)*/ { switch(menu_select())/*調(diào)用主菜單函數(shù),返回值整數(shù)作開關(guān)語句的條件*/ { case 1:length=enter(sal);break;/*輸入記錄*/ case 2:list(sal);break;/*顯示全部記錄*/ case 3:search(sal,name);break;/*按姓名查找顯示記錄*/ case 4:length=delete(sal);break;/*刪除記錄*/ case 5:length=add(sal);break;/*插入記錄*/ case 6:save(sal);break;/*保存文件*/ case 7:length=load(sal);break;/*讀文件*/ case 8:display(sal);break;/*按序號(hào)查找顯示記錄*/ case 9:sort(sal);break;/*排序成新文件*/ case 10:copy(sal);break;/*數(shù)據(jù)備份*/ case 0:exit(0);/*如返回值為0則程序結(jié)束*/ } } } /*菜單函數(shù),函數(shù)返回值為整數(shù),代表所選的菜單項(xiàng)*/ menu_select(){ char s[80];int c;gotoxy(1,25);/*將光標(biāo)定為在第25行,第1列*/ printf(“press any key enter menu......n”);/*提示按任意鍵進(jìn)入菜單選擇*/ getch();/*讀入任意字符*/ clrscr();/*清屏*/ gotoxy(1,1);printf(“********************MENU*********************nn”);printf(“ 1.Enter a recordn”);printf(“ 2.List the filen”);printf(“ 3.Search record on namen”);printf(“ 4.Delete a recordn”);printf(“ 5.Add record n”);printf(“ 6.Save the filen”);printf(“ 7.Load the filen”);printf(“ 8.Display record on ordern”);printf(“ 9.Sort to a new filen”);printf(“ 10.Copy to a new file n”);printf(“ 0.Quitn”);printf(“***********************************************n”);do{ printf(“n Enter you choice(0~10):”);/*提示輸入選項(xiàng)*/ scanf(“%d”,&c);/*輸入選擇項(xiàng)*/ }while((c>10)||(c<0));/*選擇項(xiàng)不在0~11之間重輸*/ return c;/*返回選擇項(xiàng),主程序根據(jù)該數(shù)調(diào)用相應(yīng)的函數(shù)*/ }

      附錄四:關(guān)于頭文件的使用

      /******頭文件(.h)***********/ #include “stdio.h” /*I/O函數(shù)*/ #include “stdlib.h” /*標(biāo)準(zhǔn)庫函數(shù)*/ #include “string.h”/*字符串函數(shù)*/ #include “ctype.h” /*字符操作函數(shù)*/ #define M 50 /*定義常數(shù)表示記錄數(shù)*/ typedef struct /*定義數(shù)據(jù)結(jié)構(gòu)*/ { char name[20];/*姓名*/ char no[10];/*員工編號(hào)*/ char units[30];/*部門*/ char post[10];/*職稱*/ ?? }Salary;/******以下是函數(shù)原型*******/ int enter(SALARY t[]);/*輸入記錄*/ void list(SALARY t[]);/*顯示全部記錄*/ void search(SALARY t[],char name[]);/*按姓名查找顯示記錄*/ int delete(SALARY t[]);/*刪除記錄*/ int add(SALARY t[],int n);/*插入記錄*/ void save(SALARY t[]);/*記錄保存為文件*/ int load(SALARY t[]);/*從文件中讀記錄*/ void display(SALARY t[]);/*按序號(hào)查找顯示記錄*/ void sort(SALARY t[]);/*排序成新文件*/ void copy(SALARY t[]);/*數(shù)據(jù)備份*/ int menu_select();/*主菜單函數(shù)*/

      附錄五:關(guān)于文件的使用

      要將信息永久保存,可采用磁盤文件的形式來存儲(chǔ)數(shù)據(jù)。C語言提供了豐富的文件操作函數(shù)。從文件編碼的方式來看,文件可分為ASCII碼文件和二進(jìn)制碼文件兩種。ASCII文件也稱為文本文件,這種文件在磁盤中存放時(shí)每個(gè)字符對(duì)應(yīng)一個(gè)字節(jié),用于存放對(duì)應(yīng)的ASCII碼。例如,數(shù)5678的存儲(chǔ)形式為:

      ASC碼:00110101 00110110 00110111 00111000

      十進(jìn)制碼: 5 共占用4個(gè)字節(jié)。ASCII碼文件可在屏幕上按字符顯示,例如源程序文件就是ASCII文件,用DOS命令TYPE可顯示文件的內(nèi)容。由于是按字符顯示,因此能讀懂文件內(nèi)容。

      二進(jìn)制文件是按二進(jìn)制的編碼方式來存放文件的。例如,數(shù)5678的存儲(chǔ)形式為: 00010110 00101110只占二個(gè)字節(jié)。二進(jìn)制文件雖然也可在屏幕上顯示,但其內(nèi)容無法讀懂。C系統(tǒng)在處理這些文件時(shí),并不區(qū)分類型,都看成是字符流,按字節(jié)進(jìn)行處理。輸入輸出字符流的開始和結(jié)束只由程序控制而不受物理符號(hào)(如回車符)的控制。因此也把這種文件稱作“流式文件”。在C語言中,文件操作都是由庫函數(shù)來完成的。

      文件打開函數(shù)fopen fopen函數(shù)用來打開一個(gè)文件,其調(diào)用的一般形式為: 文件指針名=fopen(文件名,使用文件方式)其中,“文件指針名”必須是被說明為FILE 類型的指針變量,“文件名”是被打開文件的文件名?!笆褂梦募绞健笔侵肝募念愋秃筒僮饕?。“文件名”是字符串常量或字符串?dāng)?shù)組。例如: FILE *fp;fp=(“file a”,“r”);其意義是在當(dāng)前目錄下打開文件file a,只允許進(jìn)行“讀”操作,并使fp指向該文件。

      又如:FILE *fphzk;fphzk=(“c:hzk16',”rb“)其意義是打開C驅(qū)動(dòng)器磁盤的根目錄下的文件hzk16,這是一個(gè)二進(jìn)制文件,只允許按二進(jìn)制方式進(jìn)行讀操作。兩個(gè)反斜線“ ”中的第一個(gè)表示轉(zhuǎn)義字符,第二個(gè)表示根目錄。使用文件的方式共有12種,下面給出了它們的符號(hào)和意義。

      文件使用方式

      意 義

      “rt”

      只讀打開一個(gè)文本文件,只允許讀數(shù)據(jù) “wt”

      只寫打開或建立一個(gè)文本文件,只允許寫數(shù)據(jù) “at”

      追加打開一個(gè)文本文件,并在文件末尾寫數(shù)據(jù) “rb”

      只讀打開一個(gè)二進(jìn)制文件,只允許讀數(shù)據(jù) “wb”

      只寫打開或建立一個(gè)二進(jìn)制文件,只允許寫數(shù)據(jù) “ab”

      追加打開一個(gè)二進(jìn)制文件,并在文件末尾寫數(shù)據(jù) “rt+”

      讀寫打開一個(gè)文本文件,允許讀和寫 “wt+”

      讀寫打開或建立一個(gè)文本文件,允許讀寫

      “at+”

      讀寫打開一個(gè)文本文件,允許讀,或在文件末追加數(shù)據(jù) “rb+”

      讀寫打開一個(gè)二進(jìn)制文件,允許讀和寫 “wb+”

      讀寫打開或建立一個(gè)二進(jìn)制文件,允許讀和寫

      “ab+”

      讀寫打開一個(gè)二進(jìn)制文件,允許讀,或在文件末追加數(shù)據(jù)

      fclose函數(shù)

      調(diào)用的一般形式是: fclose(文件指針); 例如:fclose(fp);正常完成關(guān)閉文件操作時(shí),fclose函數(shù)返回值為0。如返回非零值則表示有錯(cuò)誤發(fā)生。文件的讀寫對(duì)文件的讀和寫是最常用的文件操作。

      讀字符串函數(shù)fgets函數(shù)

      fgets函數(shù)的功能是從指定的文件中讀一個(gè)字符串到字符數(shù)組中,函數(shù)調(diào)用的形式為: fgets(字符數(shù)組名,n,文件指針); 其中的n是一個(gè)正整數(shù)。表示從文件中讀出的字符串不超過 n-1個(gè)字符。在讀入的最后一個(gè)字符后加上串結(jié)束標(biāo)志'