第一篇:《C程序設(shè)計(jì)實(shí)踐》課程設(shè)計(jì)指導(dǎo)
《C程序設(shè)計(jì)實(shí)踐》課程設(shè)計(jì)指導(dǎo)
一、課程設(shè)計(jì)目的1、通過(guò)課程設(shè)計(jì),熟練掌握Visual C++ 6.0 開(kāi)發(fā)環(huán)境的使用,提高程序調(diào)試能力;
2、通過(guò)課程設(shè)計(jì),提高學(xué)生分析問(wèn)題、解決問(wèn)題的能力;
3、通過(guò)課程設(shè)計(jì),復(fù)習(xí)鞏固C語(yǔ)言的循環(huán)結(jié)構(gòu)、指針、數(shù)組、結(jié)構(gòu)體、文件等方面的知識(shí),并在實(shí)踐中加以運(yùn)用。
4、通過(guò)課程設(shè)計(jì),提高學(xué)生查閱資料、吸收和運(yùn)用新知識(shí)的能力。
二、課程設(shè)計(jì)要求
每個(gè)學(xué)生在下列課題中至少選一題,并獨(dú)立完成。
1、學(xué)生成績(jī)管理系統(tǒng)
2、學(xué)生檔案管理系統(tǒng)
3、同學(xué)通信錄管理系統(tǒng)
4、職工檔案管理系統(tǒng)
5、職工工資信息管理系統(tǒng)
6、小型圖書(shū)信息管理系統(tǒng)
7、超市商品信息管理系統(tǒng)
8、實(shí)驗(yàn)室設(shè)備信息管理系統(tǒng)
9、試題(選擇題)信息管理系統(tǒng)
10、列車時(shí)刻表信息管理系統(tǒng)
每課題均須具有以下功能:
1、信息錄入,包括記錄的追加和插入;
2、信息刪除;
3、信息修改;
4、信息排序和查詢;
5、信息的保存和裝載;
6、簡(jiǎn)單的幫助。
三、設(shè)計(jì)方法及過(guò)程
1、問(wèn)題分析
包括系統(tǒng)所要完成的功能、數(shù)據(jù)結(jié)構(gòu)分析,如問(wèn)題處理過(guò)程中使用的結(jié)構(gòu)體及包含的成員等,文件的類型、存儲(chǔ)的內(nèi)容等,輸入/輸出的格式等。
2、系統(tǒng)功能設(shè)計(jì)及模塊(函數(shù))劃分
根據(jù)分析結(jié)果,畫(huà)出系統(tǒng)結(jié)構(gòu)圖,確定系統(tǒng)的功能模塊,包括模塊的名字、接口(即函數(shù)的參數(shù)、返回值)及功能,模塊間的調(diào)用關(guān)系。
3、模塊的算法設(shè)計(jì)
設(shè)計(jì)每個(gè)功能模塊的算法,可以用偽代碼或流程圖表示。
4、編碼
代碼的編寫要符合規(guī)范,程序中對(duì)各個(gè)模塊的功能、模塊主要實(shí)現(xiàn)部分都需要加上注釋,以增加程序的可讀性,便于軟件維護(hù)。
5、調(diào)試
四、設(shè)計(jì)報(bào)告
課程設(shè)計(jì)完成后,每位同學(xué)要寫出《程序設(shè)計(jì)及C語(yǔ)言》課程設(shè)計(jì)報(bào)告,打印并上交(同時(shí)上交源代碼),作為成績(jī)的評(píng)定依據(jù)之一。報(bào)告的內(nèi)容包括:?jiǎn)栴}分析、系統(tǒng)功能設(shè)計(jì)及模塊(函數(shù))劃分、模塊的算法設(shè)計(jì)、源代碼及設(shè)計(jì)總結(jié)五個(gè)部分。
第二篇:C語(yǔ)言程序設(shè)計(jì)教程課程設(shè)計(jì)
《C語(yǔ)言程序設(shè)計(jì)教程課程設(shè)計(jì)》計(jì)劃 類別:課程設(shè)計(jì)
適用于三年制專科計(jì)算機(jī)應(yīng)用專業(yè) 學(xué)分:1 周數(shù):1
一、設(shè)計(jì)目的與要求
《高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)》是《高級(jí)語(yǔ)言程序設(shè)計(jì)》課程的實(shí)踐環(huán)節(jié),其教學(xué)目的是通過(guò)一些中小規(guī)模程序的編程,使學(xué)生對(duì)c語(yǔ)言程序設(shè)計(jì)的基本規(guī)則與方法有比較全面的理解和認(rèn)識(shí),熟練掌握高級(jí)語(yǔ)言程序設(shè)計(jì)技術(shù),為以后學(xué)習(xí)更高層次的程序設(shè)計(jì)和軟件開(kāi)發(fā)奠定堅(jiān)實(shí)基礎(chǔ)。
通過(guò)本課程設(shè)計(jì),應(yīng)達(dá)到下列基本要求: 能夠結(jié)合c語(yǔ)言來(lái)理解程序設(shè)計(jì)的基本概念;
掌握用c語(yǔ)言解決問(wèn)題的基本方法和步驟,能夠熟練地使用c語(yǔ)言編寫中小型應(yīng)用程序; 熟練掌握c語(yǔ)言編程規(guī)則,掌握函數(shù)的應(yīng)用方法和編寫; 熟練掌握面向過(guò)程程序設(shè)計(jì)方法; 掌握結(jié)構(gòu)化程序設(shè)計(jì)思想和方法; 培養(yǎng)和提高學(xué)生的程序調(diào)試能力;
培養(yǎng)學(xué)生查閱手冊(cè)、圖表和文獻(xiàn)資料的能力; 培養(yǎng)學(xué)生撰寫報(bào)告文檔的能力。
二、課程設(shè)計(jì)題目
每個(gè)題目的限選人數(shù)根據(jù)班級(jí)總?cè)藬?shù)平均后確定,但要求同一題目的學(xué)生獨(dú)立完成設(shè)計(jì)題目,以下10個(gè)題目任選其一。1。職工信息管理系統(tǒng)設(shè)計(jì) 1.1問(wèn)題描述
試設(shè)計(jì)一職工信息管理系統(tǒng),職工信息包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資、住址、電話等(職工號(hào)不重復(fù))1.2基本要求
1.系統(tǒng)以菜單方式工作(2.職工信息錄入功能(3.職工信息瀏覽功能(4.查詢和排序功能:(至少一種查詢方式)--算法(((1)按工資查詢((2)按學(xué)歷查詢等
5.職工信息刪除、修改功能(任選項(xiàng))(2.圖書(shū)信息管理系統(tǒng)設(shè)計(jì) 1.1問(wèn)題描述
試設(shè)計(jì)一圖書(shū)信息管理系統(tǒng),圖書(shū)信息包括:登錄號(hào)、書(shū)名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格等。1.2基本要求
1.系統(tǒng)以菜單方式工作(2..圖書(shū)信息錄入功能(3..圖書(shū)信息瀏覽功能(4..查詢和排序功能:(至少一種查詢方式)--算法(((1)按書(shū)名查詢((2)按作者名查詢
5..圖書(shū)信息的刪除與修改(3。學(xué)生信息管理系統(tǒng)設(shè)計(jì) 3.1問(wèn)題描述
試設(shè)計(jì)一學(xué)生信息管理系統(tǒng),學(xué)生信息包括:學(xué)號(hào)、姓名、年齡、性別、出生年月、地址、電話、E-mail等。3.2基本要求
1..系統(tǒng)以菜單方式工作 2..學(xué)生信息錄入功能 3..學(xué)生信息瀏覽功能 4..查詢、排序功能(1)按學(xué)號(hào)查詢(2)按姓名查詢
5..學(xué)生信息的刪除與修改 4。學(xué)生選修課程系統(tǒng)設(shè)計(jì) 4.1問(wèn)題描述
試設(shè)計(jì)一選修課程系統(tǒng),假定有n門課程,每門課程有課程編號(hào),課程名稱,課程性質(zhì),總學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開(kāi)課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課。4.2基本要求
1.系統(tǒng)以菜單方式工作(2.課程信息錄入功能(3.課程信息瀏覽功能(4.查詢功能:(至少一種查詢方式)--算法((1)按學(xué)分查詢((2)按課程性質(zhì)查詢(5.學(xué)生選修課程(可選項(xiàng))(5。銷售管理系統(tǒng) 5.1問(wèn)題描述
某公司有四個(gè)銷售員(編號(hào):1-4),負(fù)責(zé)銷售五種產(chǎn)品(編號(hào):1-5)。每個(gè)銷售員都將當(dāng)天出售的每種產(chǎn)品各寫一張便條交上來(lái)。每張便條包含內(nèi)容:(1)銷售員的代號(hào),(2)產(chǎn)品的代號(hào)。(3)這種產(chǎn)品的當(dāng)天的銷售額。每位銷售員每天可能上繳0-5張便條。假設(shè),收集到了上個(gè)月的所有便條,5.2基本要求
編寫一個(gè)處理系統(tǒng),讀取上個(gè)月的銷售情況(自己設(shè)定),進(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)表能反映出:銷售員代號(hào) 產(chǎn)品代號(hào) 銷售之和 每種產(chǎn)品之和 總和 6.學(xué)生成績(jī)管理 6.1問(wèn)題描述 對(duì)學(xué)生成績(jī)進(jìn)行管理,學(xué)生信息如下: 現(xiàn)有學(xué)生成績(jī)信息,內(nèi)容如下 姓名學(xué)號(hào)語(yǔ)文數(shù)學(xué)英語(yǔ)
張明明
01
李成友
02
張輝燦
03
王露
04
陳東明
05
?.......… 6.2基本要求
實(shí)現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)包括如下幾個(gè)方面: 1.系統(tǒng)以菜單方式工作
2.學(xué)生信息數(shù)據(jù)能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息
3.查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號(hào)查詢
4.成績(jī)統(tǒng)計(jì):輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60--70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。
5.能對(duì)用戶指定的任意課程名,按成績(jī)升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果(使用表格的形式顯示排序后的輸出結(jié)果)(使用多種方法排序者,加分)6.學(xué)生可自動(dòng)增加新功能模塊(視情況可另外加分)7.學(xué)生成績(jī)管理 7.1問(wèn)題描述
學(xué)生成績(jī)進(jìn)行管理,學(xué)生信息包括:學(xué)號(hào)、姓名、班級(jí)、課程
1、課程
2、課程
3、課程
4、學(xué)期。
7.2基本要求
1.系統(tǒng)以菜單方式工作
2.能按學(xué)期、按班級(jí)完成對(duì)學(xué)生成績(jī)的錄入、修改
3.能按班級(jí)統(tǒng)計(jì)學(xué)生的成績(jī),求學(xué)生的總分及平均分,并能根據(jù)學(xué)生的平均成績(jī)進(jìn)行排序 4.能查詢學(xué)生成績(jī),不及格科目及學(xué)生名單
5.統(tǒng)計(jì)每門課100~85分、84~70、69~60分以上不及格的人數(shù)
6.從鍵盤上輸入一個(gè)姓名或?qū)W號(hào),能夠查找是否是該班成員,若是,要求輸出該生的全部信息
7.可以對(duì)任一學(xué)生的成績(jī)、學(xué)號(hào)進(jìn)行修改
8.可增添和刪除任一學(xué)號(hào)學(xué)生的信息,增添和刪除后仍能按學(xué)號(hào)排序 9.能按班級(jí)輸出學(xué)生的成績(jī)單 8.通訊錄管理 8.1問(wèn)題描述
設(shè)一個(gè)通信錄由以下幾項(xiàng)數(shù)據(jù)信息構(gòu)成:
數(shù)據(jù)項(xiàng)類型
姓名字符串 地址字符串 郵政編碼字符串 電話號(hào)碼字符串 8.2基本要求 1.主要功能:
(1)能建立、查詢、修改和增刪學(xué)生通訊錄(2)能夠按多種方式進(jìn)行查詢 2.要求:界面友好,易于操作 9.圖書(shū)管理系統(tǒng) 9.1問(wèn)題描述
圖書(shū)信息管理系統(tǒng)設(shè)計(jì),圖書(shū)信息包括:登錄號(hào)、書(shū)名、作者名、存在狀態(tài)、分類號(hào)、出版單位、出版時(shí)間、價(jià)格、借書(shū)人姓名、性別、學(xué)號(hào)等。信息描述: 9.2基本要求
1.系統(tǒng)以菜單方式工作 2.新進(jìn)圖書(shū)基本信息 3.圖書(shū)信息瀏覽功能
4.圖書(shū)基本信息的查詢和排序功能:(至少一種查詢方式)--算法 按書(shū)名查、按作者名查詢
5.對(duì)撤消圖書(shū)信息的刪除刪除與修改(可選項(xiàng))(6. 為借書(shū)人辦理注冊(cè)
7.辦理借書(shū)手續(xù)(非注冊(cè)會(huì)員不能借書(shū))8.辦理還書(shū)手續(xù)
10.設(shè)計(jì)一個(gè)簡(jiǎn)單計(jì)算器 10.1問(wèn)題描述
模擬windows操作系統(tǒng)中的計(jì)算器,能進(jìn)行加減乘除等計(jì)算。10.2基本要求
1.顯示計(jì)算器界面
2.當(dāng)用戶輸入一個(gè)算式后,計(jì)算器顯示計(jì)算結(jié)果,同時(shí)屏幕項(xiàng)部顯示:continue? 如果用戶此時(shí)按Y鍵,則繼續(xù)輸入下一個(gè)算式,否則,程序終止 3.可以多次響應(yīng)用戶的計(jì)算請(qǐng)求 11..圖書(shū)借還管理系統(tǒng) 11.1問(wèn)題描述
對(duì)借還圖書(shū)進(jìn)行管理,圖書(shū)被借閱,應(yīng)記錄借閱信息,同時(shí)圖書(shū)的存庫(kù)數(shù)量相應(yīng)減少。還書(shū)時(shí),應(yīng)將圖書(shū)數(shù)量相應(yīng)增加,同時(shí)刪除圖書(shū)借閱信息。圖書(shū)基本信息應(yīng)包括:圖書(shū)名稱、圖書(shū)編號(hào)、單價(jià)、作者、存庫(kù)數(shù)量。借書(shū)人信息應(yīng)包括姓名、性別、學(xué)號(hào)等。11.2基本要求
1.新進(jìn)圖書(shū)基本信息的輸入 2.圖書(shū)基本信息的查詢 3.對(duì)撤消圖書(shū)信息的刪除 4.為借書(shū)人辦理注冊(cè)
5.辦理借書(shū)手續(xù)(非注冊(cè)會(huì)員不能借書(shū))6.辦理還書(shū)手續(xù)
12.用戶登錄程序設(shè)計(jì) 12.1問(wèn)題描述
做一個(gè)密碼驗(yàn)證程序,密碼驗(yàn)證只有三次機(jī)會(huì)。12.2基本要求 1.有登錄界面,用戶輸入密碼時(shí)以*代替輸出,用戶登錄成功后可以修改密碼。2.可以有多個(gè)用戶登錄。
3.初次登錄的密碼有管理員設(shè)置。13.車票管理程序設(shè)計(jì) 13.1問(wèn)題描述
一車站每天有n個(gè)發(fā)車班次,每個(gè)班次都有一班次號(hào)(1、2、3?n),固定的發(fā)車時(shí)間,固定的路線(起始站、終點(diǎn)站),大致的行車時(shí)間,固定的額定載客量。如 班次發(fā)車時(shí)間起點(diǎn)站終點(diǎn)站行車時(shí)間額定載量已定票人數(shù)
8:00
郫縣廣漢
2
6:30
郫縣成都
0.5
?
13.2基本要求
1.錄入班次信息,可不定時(shí)地增加班次數(shù)據(jù)。
2.瀏覽班次信息,可顯示出所有班次當(dāng)前狀總(如果當(dāng)前系統(tǒng)時(shí)間超過(guò)了某班次的發(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ù)。5.至少采用文本菜單界面(如果能采用圖形菜單界面更好)。
三、進(jìn)度安排
第1天:分析所選題目,查閱相關(guān)資料,寫出需求分析,確定系統(tǒng)功能,劃分模塊;設(shè)計(jì)算法、數(shù)據(jù)結(jié)構(gòu);
第2-3天:編制代碼并調(diào)試; 第4天:檢查學(xué)生程序;
第5天:提交源程序清單和課程設(shè)計(jì)報(bào)告,進(jìn)行答辯。
四、設(shè)計(jì)方式
1.對(duì)于每個(gè)題目,應(yīng)完成算法設(shè)計(jì)和簡(jiǎn)單的應(yīng)用程序設(shè)計(jì)。
a)算法設(shè)計(jì)包括解題思路,模塊劃分和模塊代碼實(shí)現(xiàn)方法。附傳統(tǒng)的流程圖或N-S圖。b)應(yīng)用程序設(shè)計(jì)包括:編輯錄入源程序;反復(fù)調(diào)試、排錯(cuò)、運(yùn)行;借用軟件工程的一些方法和技巧對(duì)程序進(jìn)行測(cè)試。
2.編程量以滿足基本要求即可,但必須調(diào)試通過(guò),運(yùn)行結(jié)果準(zhǔn)確。3.設(shè)計(jì)完成后,需要寫成一份課程設(shè)計(jì)報(bào)告(A4紙打印出來(lái)),體現(xiàn)課程設(shè)計(jì)所做工作。4.結(jié)果形式:提交調(diào)試無(wú)誤的源程序代碼,課程設(shè)計(jì)報(bào)告一份。
五、成績(jī)?cè)u(píng)定標(biāo)準(zhǔn)
學(xué)生成績(jī)以優(yōu)、良、中、及格和不及格5個(gè)等級(jí)評(píng)定。1.學(xué)生編寫的實(shí)際軟件和運(yùn)行結(jié)果,占總成績(jī)40% 2.設(shè)計(jì)報(bào)告,占總成績(jī)40% 3.教師提問(wèn),占總成績(jī)10% 4.出勤,占總成績(jī)10%
六、課程設(shè)計(jì)報(bào)告要求
按照軟件工程及應(yīng)用程序系統(tǒng)設(shè)計(jì)步驟詳細(xì)敘述課程設(shè)計(jì)題目的完成過(guò)程。課程設(shè)計(jì)報(bào)告的格式要求: 封面
洛陽(yáng)理工學(xué)院C語(yǔ)言課程設(shè)計(jì)報(bào)告 題目 院系 班級(jí) 姓名 指導(dǎo)老師 年月日
2.課程設(shè)計(jì)內(nèi)容:
(1)問(wèn)題描述:描述要求編程解決的問(wèn)題。(本課題具有哪些功能,做了哪些工作、用了哪些方法技巧,實(shí)現(xiàn)結(jié)果如何)
(2)基本要求:給出程序要達(dá)到的具體的要求
(3)所設(shè)計(jì)的應(yīng)用程序運(yùn)行所需要的軟件、硬件支持環(huán)境。(4)算法分析(設(shè)計(jì)思路),描述解決相應(yīng)問(wèn)題算法的設(shè)計(jì)思想。
(5)功能模塊劃分,每個(gè)模塊對(duì)應(yīng)的函數(shù)、每個(gè)函數(shù)功能及參數(shù)設(shè)計(jì)情況說(shuō)明。(6)系統(tǒng)流程圖
(7)實(shí)現(xiàn)步驟(要求有詳細(xì)的文字表述):
如安裝 VC;熟悉課題;查找資料;需求分析;設(shè)計(jì)框圖;錄入程序;
語(yǔ)法排錯(cuò);邏輯排錯(cuò);程序測(cè)試;程序運(yùn)行;數(shù)據(jù)記錄;寫課題設(shè)計(jì)報(bào)告等。(8)源程序完整代碼以及原始數(shù)據(jù)、測(cè)試數(shù)據(jù)、輸入數(shù)據(jù)及其運(yùn)行結(jié)果記錄。(9)簡(jiǎn)要總結(jié)及自我評(píng)價(jià)。
(10)源程序:給出所有源程序清單,要求程序有充分的注釋語(yǔ)句,至少要注釋每個(gè)函數(shù)參數(shù)的含義和函數(shù)返回值的含義。(11)參考文獻(xiàn) 參考文獻(xiàn)書(shū)寫模板:
[1] ***.C程序設(shè)計(jì)(第三版).北京:清華大學(xué)出版社,2005 [2] ***.C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第三版).北京:清華大學(xué)出版社,2005 [3] ***主編.C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)與實(shí)訓(xùn)指導(dǎo)及題解.北京: 高等教育出版社,2005 [4] ***.C語(yǔ)言程序設(shè)計(jì).北京:清華大學(xué)出版社,2008 [5] 王靜, 武春嶺編著.C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)習(xí)題集.北京:中國(guó)水利水電出版社,2008 [6] 黃維通,馬力妮等編著.C語(yǔ)言程序設(shè)計(jì)習(xí)題解析與應(yīng)用案例分析.北京: 清華大學(xué)出版社,2004
七、實(shí)習(xí)時(shí)間、地點(diǎn)及班級(jí)人數(shù)
時(shí)間:從2010年6月21日至6月25日,共五天時(shí)間。地點(diǎn):洛陽(yáng)理工學(xué)院西區(qū)實(shí)驗(yàn)樓B計(jì)算機(jī)房 人數(shù):Z090551一個(gè)班40人
第三篇:C語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)指導(dǎo)書(shū)
課程設(shè)計(jì)指導(dǎo)書(shū)
課程名稱: C語(yǔ)言程序設(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語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力;
2、進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法;
3、初步掌握開(kāi)發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法;
4、學(xué)會(huì)調(diào)試一個(gè)較長(zhǎng)程序的基本方法;
5、學(xué)會(huì)利用流程圖表示算法;
5、學(xué)習(xí)撰寫課程設(shè)計(jì)報(bào)告;
第一部分:課題描述(一共10個(gè)課題)
課題1:圖書(shū)管理系統(tǒng)
在磁盤上創(chuàng)建3個(gè)txt文件,命名book.txt,borrow.txt和reader.txt,分別存儲(chǔ)圖書(shū)、借閱和讀者的信息,每本圖書(shū)的基本信息有編號(hào)、書(shū)名、作者、出版日期、金額、類別、在館數(shù)量等。借閱基本信息有:編號(hào)、書(shū)名、金額、借書(shū)證號(hào)、借書(shū)日期、到期日期、罰款金額等。讀者信息包括借書(shū)證號(hào)、姓名、班級(jí)、學(xué)號(hào)、類別等。創(chuàng)建圖書(shū)管理系統(tǒng),該系統(tǒng)運(yùn)行時(shí)在控制臺(tái)中顯示菜單界面進(jìn)行鍵盤輸入操作,模擬借閱圖書(shū)的管理過(guò)程。
系統(tǒng)功能包括以下方面: A、圖書(shū)信息管理
圖書(shū)按類別進(jìn)行管理,常見(jiàn)類別有書(shū)籍、期刊、報(bào)刊等,在該模塊中又包含添加、刪除、修改、查詢等操作,操作結(jié)果打印在控制臺(tái)中。
字段包含:書(shū)名,編號(hào),類別,存放地點(diǎn),入庫(kù)時(shí)間
B、借閱信息管理
圖書(shū)借閱模擬操作,包括以下功能:借出,歸還和續(xù)借等操作,對(duì)超期圖書(shū)進(jìn)行罰款金額顯示。另外可以設(shè)置罰金數(shù)額和最大借閱數(shù)量和時(shí)間等參數(shù)。
字段包含:書(shū)名,編號(hào),借閱者,借出時(shí)間,歸還時(shí)間,借閱狀態(tài),超期時(shí)間,最大借閱數(shù)
C、讀者信息管理
讀者分為教師和學(xué)生兩大類等級(jí):教師和學(xué)生的最大圖書(shū)借閱數(shù)量和時(shí)間有所不同,并可對(duì)添加、掛失和查詢讀者信息。
字段包含:讀者姓名,讀者類別,可借閱時(shí)間,可借閱數(shù)量,系統(tǒng)操作過(guò)程中能夠正確讀取和更新文件,并進(jìn)行正常的圖書(shū)、借閱和讀者管理操作。
課題2:個(gè)人通訊錄管理系統(tǒng)
在磁盤上建立1個(gè)communication.txt文件,作為讀取和存儲(chǔ)的通訊錄,該系統(tǒng)運(yùn)行時(shí)在控制臺(tái)中顯示菜單界面進(jìn)行鍵盤輸入操作,模擬通訊錄的操作過(guò)程。
系統(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)操作過(guò)程中能夠正確讀取和更新文件,并進(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)(比如包括:?jiǎn)T工號(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),并在文件中查找
? 若找到,則顯示該員工的工資詳情 ? 否則提示未找到。? 無(wú)論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出。
5、刪除:輸入員工的員工號(hào),并在文件中查找
? 若找到,提示是否確定刪除
? 若選擇是,則刪除文件中該員工信息 ? 若選擇否,則取消,? 否則提示無(wú)此員工信息
? 無(wú)論查找成功否,應(yīng)還可選擇繼續(xù)查找或退出。
6、修改:輸入員工的員工號(hào),并在文件中查找
? 若找到,顯示該員工的所有信息,并可進(jìn)行輸入。完成后將現(xiàn)輸入的內(nèi)容覆蓋原內(nèi)容保存到文件中。
? 否則提示無(wú)此員工信息
? 無(wú)論查找成功否,應(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ī)編寫軟件。這種無(wú)人值守自動(dòng)售貨機(jī)販賣價(jià)值為A、B、C的三種商品,價(jià)格分別為2元,3元和6元。顧客投入10元的紙幣,然后選擇購(gòu)買3種商品之一,自動(dòng)售貨機(jī)吐出商品,并且找給用戶零錢。如果商品已經(jīng)賣完,或者無(wú)法找零,則給出用戶一個(gè)提示,商品已售完,并且退還紙幣。
自然,你的售貨機(jī)用戶希望盡可能地給用戶找零,以免流失顧客。為了調(diào)查用戶的喜好,希望得到三種商品的每日消費(fèi)數(shù)據(jù),由此來(lái)調(diào)整貨柜中三種貨物的存貯量。你的程序?qū)?shí)現(xiàn)以下功能:
庫(kù)存查詢:檢索當(dāng)前三種商品的儲(chǔ)存量 商品上架:為三種商品增加或者減少儲(chǔ)量
銷售查詢:分別統(tǒng)計(jì)今天每種商品的銷售量和銷售額 會(huì)計(jì)查詢:打印當(dāng)天的往來(lái)帳目以及剩余零鈔數(shù)目
結(jié)算功能:取出今天所有的10元紙幣,并且分別設(shè)置零鈔的數(shù)目
銷售界面:顧客投入紙幣,選擇商品,獲得商品和零錢;或者直接顯示錯(cuò)誤并退還紙幣 【題目要求】
(1)為各項(xiàng)操作功能設(shè)計(jì)一個(gè)菜單。應(yīng)用程序運(yùn)行后,先顯示這個(gè)菜單,然后操作員通過(guò)菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目;
(2)你的售貨機(jī)用戶不希望每一位顧客都有權(quán)限執(zhí)行以上功能,因此一旦進(jìn)入銷售界面,就不應(yīng)當(dāng)退回到系統(tǒng)界面,但是應(yīng)允許顧客反復(fù)購(gòu)買,前一個(gè)顧客購(gòu)買完畢后應(yīng)停留在銷售界面里允許下一個(gè)顧客操作。直到某位特殊的顧客(超級(jí)顧客)輸入特殊的商品代號(hào)(密碼)方可回到主控界面。
(3)計(jì)算機(jī)安排的找零算法應(yīng)該合理,不要出現(xiàn)某一種零錢找光的情況。同時(shí)顧客也不喜歡 明明有5元零鈔,卻被找給5個(gè)一元的零鈔。盡量滿足這兩個(gè)要求。
(3)、要求以上功能分別用函數(shù)實(shí)現(xiàn)。并要求用C語(yǔ)言的文件操作語(yǔ)句將以上所有結(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)工作,并按照書(shū)寫規(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)品各寫一張便條交上來(lái)。每張便條包含內(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語(yǔ)言設(shè)計(jì)一系統(tǒng),能提供下列服務(wù):(1)錄入班次信息(信息用文件保存),可不定時(shí)地增加班次數(shù)據(jù)(2)瀏覽班次信息,可顯示出所有班次當(dāng)前狀總(如果當(dāng)前系統(tǒng)時(shí)間超過(guò)了某班次的發(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文件,使用記事本打開(kāi)后先寫入40道單選題和相應(yīng)的選項(xiàng)和正確答案。再編寫一個(gè)單項(xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng),該系統(tǒng)功能要求: 字段:題干,備選答案,標(biāo)準(zhǔn)答案
A、用文件保存試題庫(kù)。(每個(gè)試題包括題干、4個(gè)備選答案、標(biāo)準(zhǔn)答案)。B、試題錄入、修改和刪除。
C、試題抽取:每次從試題庫(kù)中可以隨機(jī)抽出N道題(N由鍵盤輸入)。D、考生答題:用戶抽取N道試題進(jìn)行答題,鍵盤輸入每道題的答案。
E、自動(dòng)判卷:系統(tǒng)可根據(jù)用戶答案與標(biāo)準(zhǔn)答案的對(duì)比實(shí)現(xiàn)判卷并給出成績(jī)。
系統(tǒng)操作過(guò)程中能夠正確讀取和更新試題文件,并進(jìn)行正常的試題管理、抽取、答題和判卷操作,該過(guò)程在控制臺(tái)中顯示,人機(jī)交互方便。
課題8:醫(yī)院門診候診的隊(duì)列管理程序
要求采用先來(lái)先就診的排隊(duì)方式(就診順序與掛號(hào)單編號(hào)無(wú)關(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:成績(jī)管理系統(tǒng)
現(xiàn)有學(xué)生成績(jī)信息,內(nèi)容如下
姓名 學(xué)號(hào) 語(yǔ)文 數(shù)學(xué) 英語(yǔ) 張明明 01 67 78 82 李成友 02 78 91 88 張輝燦 03 68 82 56 王露 04 56 45 77 陳東明 05 67 38 47 ?.......?
請(qǐng)用C語(yǔ)言編寫一系統(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)成績(jī)統(tǒng)計(jì):
要求:A輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60--70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。
(4)排序:能對(duì)用戶指定的任意課程名,按成績(jī)升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果
課題10:停車場(chǎng)管理系統(tǒng)設(shè)計(jì)
1.有一個(gè)兩層的停車場(chǎng), 每層有6個(gè)車位, 當(dāng)?shù)谝粚榆囃M后才允許使用第二層.(停車場(chǎng)可用一個(gè)二維數(shù)組實(shí)現(xiàn), 每個(gè)數(shù)組元素存放一個(gè)車牌號(hào))每輛車的信息包括車牌號(hào), 層號(hào), 車位號(hào), 停車時(shí)間共4項(xiàng).其中停車時(shí)間按分鐘計(jì)算
2.假設(shè)停車場(chǎng)初始狀態(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)入停車場(chǎng)時(shí), 先輸入其車牌號(hào), 再為它分配一個(gè)層號(hào)和一個(gè)車位號(hào)(分配前先查詢車位的使用情況, 如果第一層有空則必須停在第一層), 停車時(shí)間設(shè)為5 , 最后將新停入的汽車的信息添加文件”car.dat”中, 并將在此之前的所有車的停車時(shí)間加5.4.收費(fèi)管理(取車): 當(dāng)有車離開(kāi)時(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)元素清零).按用戶的選擇來(lái)判斷是否要輸出停車收費(fèi)的總計(jì).5.輸出停車場(chǎng)中全部車輛的信息.6.退出系統(tǒng).字段:車牌號(hào),樓層號(hào),車位號(hào),入庫(kù)時(shí)間,出庫(kù)時(shí)間,停車時(shí)間,停車費(fèi)用
第二部分:基礎(chǔ)訓(xùn)練
若感覺(jué)直接完成所選課題很困難,可以嘗試先完成基礎(chǔ)訓(xùn)練。完成基礎(chǔ)訓(xùn)練,有一定的編程基礎(chǔ)后,在完成所選課題。
第一步: 定義一個(gè)結(jié)構(gòu)體類型,用來(lái)表示學(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)成績(jī) */ double dMath;/* 數(shù)學(xué)成績(jī) */ double dEnglish;/* 英語(yǔ)成績(jī) */ }CStudent;
第二步:
定義一個(gè)結(jié)構(gòu)體類型,用來(lái)表示學(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ì)中需要清屏。說(shuō)明如下:
格式:
system(“cls”)包含頭文件: stdlib.h
附錄二:控制臺(tái)程序選擇菜單的完成
#include
int main(){ int choice1 = 1, choice2;
do {
printf(“歡迎使用學(xué)生成績(jī)管理系統(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
int menu_select();/*主菜單函數(shù)*/ /******主函數(shù)開(kāi)始*******/ main(){ int i;Salary sal[M];/*定義結(jié)構(gòu)體數(shù)組*/ int length;/*保存記錄長(zhǎng)度*/ clrscr();/*清屏*/ for(;;)/*無(wú)限循環(huán)*/ { switch(menu_select())/*調(diào)用主菜單函數(shù),返回值整數(shù)作開(kāi)關(guān)語(yǔ)句的條件*/ { 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)庫(kù)函數(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)于文件的使用
要將信息永久保存,可采用磁盤文件的形式來(lái)存儲(chǔ)數(shù)據(jù)。C語(yǔ)言提供了豐富的文件操作函數(shù)。從文件編碼的方式來(lái)看,文件可分為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)制的編碼方式來(lái)存放文件的。例如,數(shù)5678的存儲(chǔ)形式為: 00010110 00101110只占二個(gè)字節(jié)。二進(jìn)制文件雖然也可在屏幕上顯示,但其內(nèi)容無(wú)法讀懂。C系統(tǒng)在處理這些文件時(shí),并不區(qū)分類型,都看成是字符流,按字節(jié)進(jìn)行處理。輸入輸出字符流的開(kāi)始和結(jié)束只由程序控制而不受物理符號(hào)(如回車符)的控制。因此也把這種文件稱作“流式文件”。在C語(yǔ)言中,文件操作都是由庫(kù)函數(shù)來(lái)完成的。
文件打開(kāi)函數(shù)fopen fopen函數(shù)用來(lái)打開(kāi)一個(gè)文件,其調(diào)用的一般形式為: 文件指針名=fopen(文件名,使用文件方式)其中,“文件指針名”必須是被說(shuō)明為FILE 類型的指針變量,“文件名”是被打開(kāi)文件的文件名。“使用文件方式”是指文件的類型和操作要求。“文件名”是字符串常量或字符串?dāng)?shù)組。例如: FILE *fp;fp=(“file a”,“r”);其意義是在當(dāng)前目錄下打開(kāi)文件file a,只允許進(jìn)行“讀”操作,并使fp指向該文件。
又如:FILE *fphzk;fphzk=(“c:hzk16',”rb“)其意義是打開(kāi)C驅(qū)動(dòng)器磁盤的根目錄下的文件hzk16,這是一個(gè)二進(jìn)制文件,只允許按二進(jìn)制方式進(jìn)行讀操作。兩個(gè)反斜線“ ”中的第一個(gè)表示轉(zhuǎn)義字符,第二個(gè)表示根目錄。使用文件的方式共有12種,下面給出了它們的符號(hào)和意義。
文件使用方式
意 義
“rt”
只讀打開(kāi)一個(gè)文本文件,只允許讀數(shù)據(jù) “wt”
只寫打開(kāi)或建立一個(gè)文本文件,只允許寫數(shù)據(jù) “at”
追加打開(kāi)一個(gè)文本文件,并在文件末尾寫數(shù)據(jù) “rb”
只讀打開(kāi)一個(gè)二進(jìn)制文件,只允許讀數(shù)據(jù) “wb”
只寫打開(kāi)或建立一個(gè)二進(jìn)制文件,只允許寫數(shù)據(jù) “ab”
追加打開(kāi)一個(gè)二進(jìn)制文件,并在文件末尾寫數(shù)據(jù) “rt+”
讀寫打開(kāi)一個(gè)文本文件,允許讀和寫 “wt+”
讀寫打開(kāi)或建立一個(gè)文本文件,允許讀寫
“at+”
讀寫打開(kāi)一個(gè)文本文件,允許讀,或在文件末追加數(shù)據(jù) “rb+”
讀寫打開(kāi)一個(gè)二進(jìn)制文件,允許讀和寫 “wb+”
讀寫打開(kāi)或建立一個(gè)二進(jìn)制文件,允許讀和寫
“ab+”
讀寫打開(kāi)一個(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ù)。表示從文件中讀出的字符串不超過(guò) n-1個(gè)字符。在讀入的最后一個(gè)字符后加上串結(jié)束標(biāo)志' 主站蜘蛛池模板: 国内精品伊人久久久久777| 国产乱色国产精品播放视频| 久久青青草原国产免费播放| 日本爽爽爽爽爽爽在线观看免| 成人精品一区日本无码网站| 日本爽爽爽爽爽爽在线观看免| 欧美精品videosex性欧美| 无码精品人妻一区二区三区老牛| 性xxxx欧美老妇胖老太性多毛| 胸大美女又黄的网站| 国产精品不卡无码av在线播放| 国产精品毛片无遮挡高清| 久久精品国产99久久久古代| 国产人无码a在线西瓜影音| 久久婷婷五月综合色和啪| 五十路熟妇无码专区| 亚洲a∨国产高清av手机在线| 国产男女猛烈无遮挡免费视频网站| 激情av无码后入| 人妻内射一区二区在线视频| 熟妇人妻av中文字幕老熟妇| 亚洲国产精品日本无码网站| 岛国在线观看无码不卡| 日本嫩交12一16xxx视频| 婷婷久久久亚洲欧洲日产国码av| 国产免费破外女真实出血视频| 99久久成人国产精品免费| 国精产品一品二品国精在线观看| 中文字幕亚洲综合久久| 国产午夜精品无码| 亚洲区精品区日韩区综合区| 99蜜桃臀久久久欧美精品| 婷婷亚洲久悠悠色悠在线播放| 国产精品99久久不卡| 成人无码黄动漫在线播放| 中文日韩亚洲欧美制服| 妺妺窝人体色www聚色窝仙踪| 欧美疯狂做受xxxx高潮| 精品无码一区二区| 国产精品无码日韩欧| 欧美精品无码久久久久久|