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

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

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

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

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

      課程設(shè)計目的通過本課程設(shè)計鞏固C語言程序設(shè)計課

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

      第一篇:課程設(shè)計目的通過本課程設(shè)計鞏固C語言程序設(shè)計課

      課程設(shè)計目的:通過本課程設(shè)計鞏固《C語言程序設(shè)計》課程教學(xué)成果,深入理解結(jié)構(gòu)體、指針、鏈表、動態(tài)分配內(nèi)存和文件操作等C程序設(shè)計中的中高級技術(shù),熟練掌握C語言的調(diào)試方法,初步培養(yǎng)良好的編程習(xí)慣和編程風(fēng)格,初步學(xué)習(xí)程序文檔的撰寫方法。

      一、題目

      1、實用的通訊錄管理

      2、單科課程成績管理

      3、多功能網(wǎng)址收藏管理

      4、圖書信息管理

      二、調(diào)試環(huán)境

      TurboC++3.0或者VC++6.0 所有同學(xué)必須提交實驗報告電子版一份,內(nèi)容包括: 1.課程設(shè)計說明書

      2.源代碼和注釋、編譯鏈接生成的目標(biāo)文件、可執(zhí)行文件(請將所有文件壓縮成rar格式一并提交)

      三、注意事項

      (一)獨立完成

      任何人不得抄襲、拷貝。凡發(fā)現(xiàn)實驗報告或源程序雷同,涉及的全部人員后果自負(fù)。

      (二)一人一題

      一人一題,要求獨立完成,清考學(xué)生可以自選任意一題。

      (二)課程設(shè)計說明書要求 課程設(shè)計說明書有以下內(nèi)容:

      題目一 實用的通訊錄管理

      題目簡述

      現(xiàn)代社會人們之間的交往越來越多,通信錄的建立和管理顯得尤為重要。本課題旨在建立一個通訊錄系統(tǒng),系統(tǒng)中保存著各人員的姓名、電話、Email以及與本人的關(guān)系(親戚、同學(xué)、朋友、同事等)等信息,通過該系統(tǒng)的簡單界面可以對通訊錄進(jìn)行新建、瀏覽、查找、更新、刪除等操作。

      具體要求

      1、基本功能:(1)添加記錄

      先判斷鏈表是否已經(jīng)存在。若不存在,需首先自動新建一個鏈表,然后再添加一條或多條通訊記錄。(2)顯示記錄 顯示當(dāng)前所有記錄。(3)查詢記錄

      按名字查找,并顯示該記錄。(4)通信錄排序

      按姓名的字母順序排序,涉及到冒泡等排序算法。(5)刪除記錄

      實現(xiàn)逐條刪除和刪除全部記錄兩種功能。(6)更新記錄

      修改已存在記錄的信息(提示:需首先判斷該記錄是否存在)。(7)按關(guān)系顯示記錄

      只顯示與本人有指定關(guān)系(親戚、朋友、同事、同學(xué))的記錄。(8)保存記錄

      存儲所有記錄到某個文件(.txt)或缺省文件(Phonebook.txt)。(9)讀入記錄

      從某個文件(.txt)或缺省文件(Phonebook.txt)讀入所有記錄。首先判斷當(dāng)前是否有記錄在進(jìn)行操作,若有,進(jìn)行存儲或放棄存儲,然后釋放內(nèi)存空間,之后才能從文件讀入記錄。(10)退出

      結(jié)束通訊錄軟件操作,釋放內(nèi)存后退出。

      2、數(shù)據(jù)錄入提示(1)Name 聯(lián)系人姓名。為了實現(xiàn)排序,可以輸入英文或拼音的姓名,便于調(diào)用字符串比較等函數(shù)進(jìn)行比較排序。(2)Tel 可以為固定電話號碼或手機號。(3)Email 輸入時要根據(jù)@判斷一下是否是正確的email地址格式。Email地址首位不能是下劃線’_’,斜杠‘’或‘/’,點號‘.’等(類似對輸入數(shù)據(jù)的判斷可作為擴展,不是必須實現(xiàn)的功能)。(4)Relation 可以為Relative, Friend, Workmate或Classmate中的一種,用于進(jìn)行條件顯示,即只顯示與本人有某種關(guān)系的記錄。

      3、其他實現(xiàn)提示

      對于每一項功能,應(yīng)該對可能出現(xiàn)的異常操作進(jìn)行處理,如提示重新輸入或給出錯誤提示后成功返回主菜單界面,以免軟件運行異常退出或掛起。

      除了基本功能和異常處理,鼓勵進(jìn)行以下擴展或改進(jìn):

      ? 有創(chuàng)意的設(shè)計

      ? 采用改進(jìn)程序性能的其他方法(如執(zhí)行效率、訪問速度、占內(nèi)存量、靈活性、可移植性等)? 友好的輸入界面;

      ? 對輸入數(shù)據(jù)的對錯判斷等; ? 功能擴展;

      ? 程序的簡潔明了和可讀性等。

      主要數(shù)據(jù)結(jié)構(gòu)

      結(jié)構(gòu)體Address: 包含Name, Tel, Email, Relation(與本人的關(guān)系)以及Address類型的指針(用于鏈表操作)等成員變量。

      具體技術(shù)

      1.指針、結(jié)構(gòu)體的應(yīng)用

      2.單向鏈表的建立,插入,添加及刪除等 3.文件的讀寫

      4.簡單算法:如排序算法等 測試要求

      1、要求準(zhǔn)備至少有10條記錄的通信錄文件(addrlist.txt),便于進(jìn)行上機測試;

      2、對空鏈表、沒有記錄或沒有文件等情況進(jìn)行處理的驗證;文件操作是否正確的驗證;對記錄進(jìn)行操作的相關(guān)測試等;

      3、就某些功能實現(xiàn)情況及其實現(xiàn)細(xì)節(jié)進(jìn)行現(xiàn)場解答。

      4、編譯環(huán)境可為Turbo C++ 3.0 或 VC++ 6.0。

      題目二 單科課程成績管理

      2.1 題目背景

      依照學(xué)校教務(wù)處的規(guī)定,各位每門課的成績的給出要依據(jù)三方面的內(nèi)容,平時成績、期中成績和期末成績,期中和期末均為滿分制,平時成績則主要由平時作業(yè)組成,可能由4次到5次等,每次10分。這三項按照任課組老師指定的百分比計算總評分,例如可能總評分=平時成績×20%+期中成績×20%+期末成績×60%。

      現(xiàn)在我們希望大家給老師們做一個這樣的單科課程成績管理系統(tǒng),要求能夠?qū)崿F(xiàn)上面所說的要求,具體的規(guī)范如下。2.2 程序功能

      本程序利用單鏈表存儲結(jié)構(gòu)完成對學(xué)生成績的動態(tài)管理,要求實現(xiàn)如下的基本功能。

      2.2.1 菜單操作

      在屏幕上顯示菜單,通過輸入0-X之間的數(shù)字調(diào)用相應(yīng)的功能函數(shù)。2.2.2 創(chuàng)建鏈表

      即輸入學(xué)生成績信息,按照提示信息輸入學(xué)號、姓名、各個平時成績、期中成績和期末成績。注意:申請內(nèi)存空間,驗證輸入數(shù)據(jù)是否符合要求,設(shè)置輸入結(jié)束標(biāo)志。2.2.3 顯示鏈表

      顯示當(dāng)前鏈表中的所有記錄。注意輸出格式的直觀。2.2.4 刪除記錄

      刪除指定學(xué)號的記錄。注意刪除記錄要釋放該記錄占用的內(nèi)存空間。2.2.5 查詢記錄

      按姓名查找并顯示該記錄。(可擴展為按照姓名和學(xué)號兩種方式查找)2.2.6 插入記錄

      插入記錄需要輸入插入位置和新記錄信息。輸入某個記錄的學(xué)號,新結(jié)點將插入在這個指定記錄之前。2.2.7 更新記錄

      修改已存在記錄的分量信息。2.2.8 保存文件

      將學(xué)生成績信息保存到指定文件(wgrade.txt)中。2.2.9 讀取記錄

      從指定的文件(rgrade.txt)中讀入所有記錄。2.2.10計算: 根據(jù)結(jié)點的平時成績、期中成績和期末成績,來計算每個人的總評分和所有人的平均分(平時的成績的次數(shù)可通過N的宏定義來進(jìn)行,而每項所占的比例可以在計算的時候進(jìn)行輸入)2.2.11排序

      根據(jù)總評分進(jìn)行排序,由高到低的順序排列 2.2.12統(tǒng)計:

      統(tǒng)計各個分?jǐn)?shù)段的人數(shù),不及格的,60-69的等,并保存到文件total.txt中。2.2.13退出

      結(jié)束軟件操作,釋放內(nèi)存后退出。2.3 數(shù)據(jù)結(jié)構(gòu)

      將一個學(xué)生的信息當(dāng)作一個結(jié)點,這個結(jié)點的類型為結(jié)構(gòu)體,其中至少含有下列類型的信息:學(xué)號、姓名、平時成績(可多次)、期中成績、期末成績、總評分、名次,以及指向后續(xù)結(jié)點的指針等。2.4 功能擴展

      可擴展程序功能,例如可集中錄入某次平時作業(yè)的成績等。鼓勵有創(chuàng)意和實用的擴展。

      2.5 測試要求

      1、要求準(zhǔn)備分別至少有10條記錄的課程成績文件(score.txt),便于進(jìn)行上機測試;

      2、對空鏈表、沒有記錄或沒有文件等情況進(jìn)行處理的驗證;文件操作是否正確的驗證;對記錄進(jìn)行操作的相關(guān)測試等;

      3、就某些功能實現(xiàn)情況及其實現(xiàn)細(xì)節(jié)進(jìn)行現(xiàn)場解答。

      4、編譯環(huán)境可為Turbo C++ 3.0 或 VC++ 6.0。

      題目三 多功能網(wǎng)址收藏管理

      題目簡述

      信息社會我們離不開Internet,網(wǎng)址的保存和管理將變得十分必要。本課題旨在建立一個多功能網(wǎng)址管理系統(tǒng),系統(tǒng)中保存著各網(wǎng)址的命名、網(wǎng)址、收藏日期以及類別(學(xué)習(xí)、體育、音樂、健康等)等信息,通過該系統(tǒng)的簡單界面可以對通訊錄進(jìn)行新建、瀏覽、查找、更新、刪除等操作。

      具體要求

      1、基本功能:(1)添加記錄

      先判斷鏈表是否已經(jīng)存在。若不存在,需首先自動新建一個鏈表,然后再添加一條或多條通訊記錄。(2)顯示記錄 顯示當(dāng)前所有記錄。(3)查詢記錄

      按命名查找,并顯示該記錄。(4)網(wǎng)址的排序

      按網(wǎng)址的字母順序排序,涉及到冒泡等排序算法。(5)刪除記錄

      實現(xiàn)逐條刪除和刪除全部記錄兩種功能。(6)更新記錄

      修改已存在記錄的信息(提示:需首先判斷該記錄是否存在)。(7)按關(guān)系類別顯示記錄

      只顯示與網(wǎng)址有指定關(guān)系(學(xué)習(xí)、體育、音樂、健康)的記錄。(8)保存記錄

      存儲所有記錄到某個文件(.txt)或缺省文件(favorite.txt)。(9)讀入記錄

      從某個文件(.txt)或缺省文件(favorite.txt)讀入所有記錄。首先判斷當(dāng)前 7 是否有記錄在進(jìn)行操作,若有,進(jìn)行存儲或放棄存儲,然后釋放內(nèi)存空間,之后才能從文件讀入記錄。(10)退出

      結(jié)束通訊錄軟件操作,釋放內(nèi)存后退出。

      2、數(shù)據(jù)錄入提示(1)命名

      自己對網(wǎng)址的命名。為了實現(xiàn)排序,可以輸入英文或拼音的姓名,便于調(diào)用字符串比較等函數(shù)進(jìn)行比較排序。(2)域名

      可以為ftp或www。(3)收藏日期

      輸入時要判斷一下是否是正確的日期格式。(類似對輸入數(shù)據(jù)的判斷可作為擴展,不是必須實現(xiàn)的功能)。(4)類別

      可以為學(xué)習(xí), 體育, 音樂或健康中的一種,用于進(jìn)行條件顯示,即只顯示與網(wǎng)址有某種關(guān)系的記錄。

      3、其他實現(xiàn)提示

      對于每一項功能,應(yīng)該對可能出現(xiàn)的異常操作進(jìn)行處理,如提示重新輸入或給出錯誤提示后成功返回主菜單界面,以免軟件運行異常退出或掛起。

      除了基本功能和異常處理,鼓勵進(jìn)行以下擴展或改進(jìn):

      ? 有創(chuàng)意的設(shè)計

      ? 采用改進(jìn)程序性能的其他方法(如執(zhí)行效率、訪問速度、占內(nèi)存量、靈活性、可移植性等)? 友好的輸入界面;

      ? 對輸入數(shù)據(jù)的對錯判斷等; ? 功能擴展;

      ? 程序的簡潔明了和可讀性等。

      主要數(shù)據(jù)結(jié)構(gòu)

      結(jié)構(gòu)體Address: 包含Name, Domain, Date, Sort(與網(wǎng)址的關(guān)系)以及Address類型的指針(用于鏈表操作)等成員變量。

      具體技術(shù)

      1.指針、結(jié)構(gòu)體的應(yīng)用

      2.單向鏈表的建立,插入,添加及刪除等 3.文件的讀寫

      4.簡單算法:如排序算法等 測試要求

      1、要求準(zhǔn)備至少有10條記錄的通信錄文件(favorite.txt),便于進(jìn)行上機測試;

      2、對空鏈表、沒有記錄或沒有文件等情況進(jìn)行處理的驗證;文件操作是否正確的驗證;對記錄進(jìn)行操作的相關(guān)測試等;

      3、就某些功能實現(xiàn)情況及其實現(xiàn)細(xì)節(jié)進(jìn)行現(xiàn)場解答。

      4、編譯環(huán)境可為Turbo C++ 3.0 或 VC++ 6.0。

      題目四 圖書管理系統(tǒng)

      3.1 程序功能

      3.1.1 必須實現(xiàn)的功能

      ? 圖書信息錄入功能,包括圖書信息的插入、修改和刪除。

      ? 借閱人員信息錄入和修改功能,包括借閱人員信息的插入、修改和刪除。? 借書功能; ? 還書功能; ? 預(yù)約功能; ? 統(tǒng)計輸出功能:

      ? 統(tǒng)計館藏書籍總數(shù)、已借出圖書總數(shù)、在館書籍?dāng)?shù)等 ? 統(tǒng)計過期書及其借閱者信息;

      ? 所有圖書的列表輸出、所有讀者信息的列表輸出功能。3.1.2擴展功能(加分)? 借閱人違章罰款功能

      ? 圖書的分類統(tǒng)計功能(如按出版社、中圖分類號、出版年份分類等)? 借閱權(quán)限設(shè)定,如:

      ? 對讀者進(jìn)行分類,設(shè)置不同的最大借閱數(shù)量; ? 有超期書籍禁止借閱等。? 違章統(tǒng)計,如:

      ? 統(tǒng)計違章次數(shù)超過x次的所有讀者

      ? 按違章次數(shù)對有違章情況的讀者進(jìn)行排序等。3.2 提示與實現(xiàn)要求 3.2.1基本數(shù)據(jù)信息

      圖書資料基本信息:圖書編號、中圖分類號、書名、作者、出版社、出版日期、ISBN、版次、定價等。

      圖書的擴展信息:借閱狀態(tài)(空閑、借出和預(yù)約)、借閱人或預(yù)約人(借書證號),借閱時間。

      讀者的基本信息:借書證號、讀者姓名、讀者單位、讀者類別(本科生、研究生、教師)

      讀者的擴展信息:已借圖書的冊數(shù)等。3.2.2 數(shù)據(jù)結(jié)構(gòu)

      用兩個鏈表分別存儲圖書信息和讀者信息,具體的鏈表結(jié)構(gòu)由同學(xué)們自行設(shè)計,可以采用較簡單的單鏈表,也可以采用較為復(fù)雜的鏈表結(jié)構(gòu),如對于圖書,可以先建立中圖分類號的鏈表,對于每種分類則可以再組織一個單獨的鏈表;對于讀者,則可以先建立讀者單位鏈表,為每個單位建立一個單獨的讀者鏈表。注:中圖分類號可以在網(wǎng)上搜到,為了簡化設(shè)計,不要求同學(xué)們細(xì)化中圖分類號,只考慮大類,如:TB 一般工業(yè)技術(shù),TD 礦業(yè)工程,TE石油、天然氣工業(yè),TF 金工業(yè),TG 金屬學(xué),TH 機械TJ 武器工業(yè),TK 動力工業(yè),TL 原子能技術(shù),TM 電工技術(shù),TN 無線電電子學(xué)、通信技術(shù),TP 自動化技術(shù)、計算技術(shù)等。3.2.3 功能提示

      1)、圖書和讀者信息的插入功能:參照在鏈表中插入一個節(jié)點的方法。2)、圖書和讀者信息的插入功能:參照在鏈表中插入一個節(jié)點的方法。3)、圖書和讀者信息的刪除功能:參照鏈表的刪除操作方法。4)、圖書和讀者信息的修改功能:在鏈表中尋找相應(yīng)的記錄并修改。

      5)借書功能:圖書狀態(tài)由空閑變?yōu)榻璩?,借書讀者的借書冊數(shù)等相關(guān)信息發(fā)生變化。(可選:有超期圖書的讀者不能借書,超過借閱權(quán)限數(shù)不能借書)。6)還書功能:圖書狀態(tài)發(fā)生變化,由借出狀態(tài)變?yōu)榭臻e或預(yù)約狀態(tài)。7)預(yù)約功能:圖書借出時才能由其他讀者使用預(yù)約功能,該圖書歸還后只有預(yù)約讀者才能借出。

      8)統(tǒng)計功能:“統(tǒng)計館藏書籍總數(shù)、已借出圖書總數(shù)、在館書籍?dāng)?shù)、統(tǒng)計過期書及其借閱者信息”等功能都可以通過遍歷整個鏈表的方式得到;所有圖書的列表輸出、所有讀者信息的列表輸出功能同樣可以用遍歷鏈表的方式得到,要求輸出結(jié)果分別存在books.txt和reader.txt文件中。測試要求

      1、要求準(zhǔn)備分別至少有10條記錄的圖書信息文件(bookt.txt)和讀者信息文件(reader.txt),便于進(jìn)行上機測試;

      2、對空鏈表、沒有記錄或沒有文件等情況進(jìn)行處理的驗證;文件操作是否正確的驗證;對記錄進(jìn)行操作的相關(guān)測試等;

      3、就某些功能實現(xiàn)情況及其實現(xiàn)細(xì)節(jié)進(jìn)行現(xiàn)場解答。

      4、編譯環(huán)境可為Turbo C++ 3.0 或 VC++ 6.0。

      附錄二: 編程規(guī)范

      1、空行

      每個函數(shù)定義結(jié)束之后都要加空行。

      在一個函數(shù)體內(nèi),邏揖上密切相關(guān)的語句之間不加空行,其它地方應(yīng)加空行分隔。

      2、代碼行

      一行代碼只做一件事情,如只定義一個變量,或只寫一條語句。這樣的代碼容易閱讀,并且方便于寫注釋。

      代碼行最大長度宜控制在70至80個字符以內(nèi)。

      長表達(dá)式要在低優(yōu)先級操作符處拆分成新行,操作符放在新行之首(以便突出操作符)。

      if、for、while、do等語句自占一行,執(zhí)行語句(包括{})不得緊跟其后。不論執(zhí)行語句有多少都要加{}。這樣可以防止書寫失誤。

      3、空格

      關(guān)鍵字之后要留空格。

      賦值操作符、比較操作符、算術(shù)操作符、邏輯操作符、位域操作符,如“=”、“+=” “>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后應(yīng)當(dāng)加空格。

      一元操作符如“!”、“~”、“++”、“--”、“&”(地址運算符)等前后不加空格。

      4、對齊

      ? 程序的分界符‘{’和‘}’應(yīng)獨占一行并且位于同一列,同時與引用它們的語句左對齊。

      ? { }之內(nèi)的代碼塊在‘{’右邊數(shù)格處左對齊。

      5、注釋

      每個函數(shù)之前需要對該函數(shù)的功能和接口進(jìn)行說明。

      邊寫代碼邊注釋,修改代碼同時修改相應(yīng)的注釋,以保證注釋與代碼的一致性。12 不再有用的注釋要刪除。注釋應(yīng)當(dāng)準(zhǔn)確、易懂,防止注釋有二義性。錯誤的注釋不但無益反而有害。

      6、標(biāo)識符命名

      標(biāo)識符(包括變量名、函數(shù)名等)應(yīng)與其實際含義有聯(lián)系。程序中不要出現(xiàn)僅靠大小寫區(qū)分的相似的標(biāo)識符。盡量避免名字中出現(xiàn)數(shù)字編號,如Value1,Value2等。變量和參數(shù)用小寫字母開頭的單詞組合而成。常量全用大寫的字母,用下劃線分割單詞。

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

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

      項目4:

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

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

      二、目的與要求:

      1、目的:

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

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

      2、基本要求:

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

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

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

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

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

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

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

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

      1、功能要求

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

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

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

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

      教師: 基本工資+課時費;

      實驗員: 基本工資+實驗室補助;

      行政人員: 基本工資+行政補貼;

      教師兼職實驗員: 基本工資+課時費+實驗室補助;

      行政人員兼職教師:基本工資+行政補貼+課時費;(其中:

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

      2.基本工資:教師800元,實驗員650元,行政人員750元。

      3.行政補貼:250元。4.實驗室補助:150元。

      2、問題的解決方案:

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

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

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

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

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

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

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

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

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

      4、回答問題:15分。

      六、報告:

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

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

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

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

      班次: 自動化2016-01,02,03班

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

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

      課程設(shè)計目的

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

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

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

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

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

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

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

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

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

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

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

      字段包含:書名,編號,類別,存放地點,入庫時間

      B、借閱信息管理

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

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

      C、讀者信息管理

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

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

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

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

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

      A、通訊錄的每位聯(lián)系人信息有姓名、單位、固定電話、移動手機、分類(如同事、朋友、同學(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)

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

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

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

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

      4、查找:輸入員工的員工號,并在文件中查找

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

      5、刪除:輸入員工的員工號,并在文件中查找

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

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

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

      6、修改:輸入員工的員工號,并在文件中查找

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

      ? 否則提示無此員工信息

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

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

      基本工資、補貼金額、獎勵金額、扣除金額、實發(fā)工資

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

      8、退出:退出程序

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

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

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

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

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

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

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

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

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

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

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

      【輸入/輸出要求】

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

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

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

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

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

      1)銷售員的代號

      2)產(chǎn)品的代號

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

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

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

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

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

      4)輸出統(tǒng)計報表

      銷售統(tǒng)計報表

      產(chǎn)品代號

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

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

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

      班次 發(fā)車時間 起點站 終點站 行車時間 額定載量 已定票人數(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è)計一系統(tǒng),能提供下列服務(wù):(1)錄入班次信息(信息用文件保存),可不定時地增加班次數(shù)據(jù)(2)瀏覽班次信息,可顯示出所有班次當(dāng)前狀總(如果當(dāng)前系統(tǒng)時間超過了某班次的發(fā)車時間,則顯示“此班已發(fā)出”的提示信息)。

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

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

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

      課題

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

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

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

      C、試題抽取:每次從試題庫中可以隨機抽出N道題(N由鍵盤輸入)。D、考生答題:用戶抽取N道試題進(jìn)行答題,鍵盤輸入每道題的答案。

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

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

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

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

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

      4--顯示各診室隊列信息

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      第二步:

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

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

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

      第三步:

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

      第四步:

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

      第五步:

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

      附錄一:

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

      格式:

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

      附錄二:控制臺程序選擇菜單的完成

      #include #include

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

      do {

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

      printf(“請選擇程序功能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(“返回上級菜單請按n退出程序請按n”);

      scanf(“%d”, &choice1);

      break;

      case 2:

      printf(“

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

      printf(“

      2、按姓名查詢n”);

      scanf(“%d”, &choice2);

      switch(choice2)

      {

      case 1:

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

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

      break;

      case 2:

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

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

      break;

      }

      printf(“返回上級菜單請按n退出程序請按n”);

      scanf(“%d”, &choice1);

      break;

      case 3:

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

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

      printf(“返回上級菜單請按n退出程序請按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;/*按序號查找顯示記錄*/ case 9:sort(sal);break;/*排序成新文件*/ case 10:copy(sal);break;/*數(shù)據(jù)備份*/ case 0:exit(0);/*如返回值為0則程序結(jié)束*/ } } } /*菜單函數(shù),函數(shù)返回值為整數(shù),代表所選的菜單項*/ 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):”);/*提示輸入選項*/ scanf(“%d”,&c);/*輸入選擇項*/ }while((c>10)||(c<0));/*選擇項不在0~11之間重輸*/ return c;/*返回選擇項,主程序根據(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];/*員工編號*/ 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[]);/*按序號查找顯示記錄*/ void sort(SALARY t[]);/*排序成新文件*/ void copy(SALARY t[]);/*數(shù)據(jù)備份*/ int menu_select();/*主菜單函數(shù)*/

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

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

      ASC碼:00110101 00110110 00110111 00111000

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

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

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

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

      文件使用方式

      意 義

      “rt”

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

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

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

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

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

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

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

      讀寫打開或建立一個文本文件,允許讀寫

      “at+”

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

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

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

      “ab+”

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

      fclose函數(shù)

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

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

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