程序設(shè)計(jì)實(shí)踐任務(wù)書資料_第1頁
程序設(shè)計(jì)實(shí)踐任務(wù)書資料_第2頁
程序設(shè)計(jì)實(shí)踐任務(wù)書資料_第3頁
程序設(shè)計(jì)實(shí)踐任務(wù)書資料_第4頁
程序設(shè)計(jì)實(shí)踐任務(wù)書資料_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、程序設(shè)計(jì)實(shí)踐任務(wù)書課程名稱: 程序設(shè)計(jì)實(shí)踐課程編號(hào): 25070748 學(xué)分/學(xué)時(shí): 3學(xué)分/3 周 課程類型: 實(shí)踐性課程 考核方式: 考查 開課學(xué)期: 大一第 3 學(xué)期 開課單位: 計(jì)算機(jī)與信息工程學(xué)院 先修課程: C 語言程序設(shè)計(jì)、 C+ 面向?qū)ο蟪绦蛟O(shè)計(jì) 后續(xù)課程:數(shù)據(jù)結(jié)構(gòu)與算法、網(wǎng)絡(luò)編程、嵌入式軟件設(shè)計(jì)等 適用專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程、空間信息科學(xué)與工程一、課程設(shè)計(jì)的目的、任務(wù)與要求課程性質(zhì): 程序設(shè)計(jì)實(shí)踐是學(xué)習(xí) C/C+程序設(shè)計(jì)的一個(gè)重要環(huán)節(jié)。 通過課程設(shè)計(jì)的綜合 訓(xùn)練,可以使學(xué)生在學(xué)習(xí)理論知識(shí)并在實(shí)驗(yàn)中進(jìn)行了一系列基本訓(xùn)練的基礎(chǔ)上, 進(jìn)一步加強(qiáng) 學(xué)生對(duì)實(shí)際問題分析、編程和

2、動(dòng)手能力的提高,強(qiáng)化綜合應(yīng)用能力,擴(kuò)充知識(shí),開闊視野。 學(xué)生在熟練運(yùn)用 Visual C+ 6.0 以后,通過使用 Visual C+ 6.0 的訓(xùn)練,擴(kuò)展程序設(shè)計(jì)的 知識(shí)面,提高綜合應(yīng)用 C+知識(shí)能力的要求。教學(xué)目標(biāo): 本通過學(xué)習(xí)本課程,學(xué)生能夠更熟練地掌握C/C+語言的語法規(guī)則,能夠運(yùn)用簡單的算法, 綜合運(yùn)用編程方法和問題分析方法, 設(shè)計(jì)針對(duì)解決問題的算法步驟。 初步 培養(yǎng)數(shù)據(jù)采集、數(shù)據(jù)分析、數(shù)據(jù)處理及結(jié)果分析的能力。a加強(qiáng)掌握 C/C+ 程序設(shè)計(jì)語言的語法規(guī)程和綜合編程能力; b培養(yǎng)學(xué)生面向?qū)ο蠛兔嫦蜻^程的編程思想,學(xué)會(huì)從現(xiàn)實(shí)問題中抽象出一般的解決 方法;貫徹面向?qū)ο缶幊趟枷耄橄蟪龊线m

3、的類,封裝相關(guān)功能函數(shù)。c掌握基本的軟件分工,根據(jù)算法畫出流程圖、報(bào)告書寫及答辯匯報(bào)技巧;二、設(shè)計(jì)任務(wù)及要求任務(wù)一: C 語言部分(以下選做一題)(1)某班學(xué)生基本信息管理 ,可包括以下功能: 學(xué)生基本信息輸入、輸出、插入、刪除、排序、查詢、數(shù)據(jù)保存及打開。 struct student /* 定義一種結(jié)構(gòu)體類型 */ int num;char name20;char sex;int age; ;#include “stdio.h”main() struct student stu5;int i; for(i=0;i5; i+) scanf(%d%s%c%d,&stui.num, stui.n

4、ame, &stui.sex, &stui.age);for(i=0;inum,p-name,p-sex,p-age); 建立一個(gè)靜態(tài)鏈表,它由三個(gè)學(xué)生數(shù)據(jù)結(jié)點(diǎn)組成,輸出各結(jié)點(diǎn)的數(shù)據(jù) #include “ stdio.h ”#define NULL 0struct studentlong num;float score; struct student *next;main()struct student a,b,c,*head,*p;a. num=99101;a.score=89.5;b. num=99103;b.score=90;c. num=99107;c.score=85;head=&a

5、;a. next=&b;b. next=&c;c. next=NULL;p=head; while(p!=NULL)printf( “ %ld%5n.”1f ,-pnum,p-score); p=p-next; 鍵盤上輸入若干個(gè)學(xué)生的學(xué)號(hào)及考試成績 , 將這些數(shù)據(jù)寫入磁盤文件 y.dat 中。 (由學(xué)號(hào)等于 0作終止標(biāo)記 )#include stdio.h main() struct student int num;float score; ;struct student stu;FILE *fp; fp=fopen(y.dat,wb); scanf(%d%f,&stu.num,&stu.sc

6、ore); while(stu.num!=0) fwrite(&stu,sizeof(struct student),1,fp);scanf(%d%f,&stu.num,&stu.score); fclose(fp); 程序 4:將程序 4 建立的文件內(nèi)容讀出并顯示出來。#include stdio.hmain() struct student int num;float score; ;struct student stu10;FILE *fp;int n=0 ,i; if(fp=fopen(y.dat,rb)!=NULL) fread(&stun,sizeof(struct student

7、),1,fp);while(!feof(fp) n+;fread(&stun,sizeof(struct student),1,fp); for(i=0;in;i+)printf(%5d%6.1fn,stui.num,stui.score);fclose(fp);else printf(can not open y.datn);(2) 職工信息管理 職工信息包括職工號(hào)、姓名、性別、出生年月、學(xué)歷、職務(wù)、工資、住址、電話等(職工號(hào) 不重復(fù)),職工信息管理,可具有以下功能: 職工信息錄入、輸出、查詢、刪除、修改、數(shù)據(jù)保存、文件打開等?;竟δ芤螅阂? 1)。(3) 圖書信息管理 圖書信息包括:登

8、錄號(hào)、書名、作者名、分類號(hào)、出版單位、出版時(shí)間、價(jià)格等。嘗試設(shè)計(jì) 一圖書信息管理系統(tǒng),可實(shí)現(xiàn)以下功能: 圖書信息錄入、圖書信息瀏覽、圖書查詢(按書名查詢或按作者名查詢) 、排序、圖書信息 的刪除與修改、數(shù)據(jù)保存、文件打開等。基本功能要求:見( 1)。任務(wù)二: C+部分共分 A,B 兩類,可選擇任意一類完成。A 類:1、學(xué)校人員信息管理系統(tǒng)設(shè)計(jì)任務(wù):設(shè)計(jì)一個(gè)學(xué)校人員信息管理系統(tǒng),可以實(shí)現(xiàn)對(duì)學(xué)校人事的信息管理?;竟δ芤螅?1)建立人員信息數(shù)據(jù)包括學(xué)號(hào)(教工號(hào)) 、姓名、性別、專業(yè)(工作系別部門) 、出生時(shí)間、年齡。其中, 對(duì)學(xué)生,還包括 3 門課的成績 (Chinese, English, M

9、athematics)。三門課的成績?yōu)?int 型數(shù)據(jù)。 對(duì)教師,還包括職稱(如教授 /副教授 /講師),工資(如 1432.50 )。工資為 double型數(shù)據(jù)。英語命名提示】 :姓名: name; 性別: sex; 專業(yè): major; 工作系別: department教授: professor; 副教授: Associate Professor; 講師: Lecturer工資: salary2)使用繼承的方法構(gòu)造 3個(gè)類,對(duì)相應(yīng)的對(duì)象放置 10 個(gè)學(xué)生(教師)信息People 類虛基類Student 類派生類Teacher 類派生類3)數(shù)據(jù)基本功能:增加數(shù)據(jù): AddData() 函數(shù)。

10、刪除數(shù)據(jù): DeleteData() 函數(shù)。根據(jù)學(xué)號(hào)(教工號(hào)) ,刪除該人員的記錄。 修改數(shù)據(jù) : UpdateData() 函數(shù)。對(duì)學(xué)生,根據(jù)學(xué)號(hào),能夠修改3 門課的成績;對(duì)教師,根據(jù)教工號(hào),能夠修改“職稱”和“工資” 。查找功能:1)SearchData() 函數(shù)。要求能夠根據(jù)“學(xué)號(hào)(教工號(hào)) ”、“姓名”、“性別”三項(xiàng)實(shí) 現(xiàn)查詢,并能在屏幕上顯示滿足條件的數(shù)據(jù)記錄。2)FindMaxData() 函數(shù)。對(duì)學(xué)生,查找“ English ”課程成績最高的學(xué)生記錄并打 ??;對(duì)教師,查找“工資”最高的教師記錄并打印。要求:采用函數(shù)模板實(shí)現(xiàn)。顯示功能: DisplayData() 函數(shù)。在屏幕上打

11、印所有的數(shù)據(jù)記錄;打印時(shí),先打印 學(xué)生的記錄,后打印教師的記錄。并且按學(xué)生(教工號(hào))升序打?。ㄟx擇) 。4)重載功能: 要求對(duì)“”和“”運(yùn)算符進(jìn)行重載??紤]到輸人學(xué)生(教工)姓名時(shí),名 字中可能引入空格,所以重載“”運(yùn)算符時(shí),需要滿足這個(gè)要求。5)異常處理功能:設(shè)置異常處理,對(duì)教師工資為負(fù)數(shù)的情況給出提示。6)文件的輸入輸出功能(選擇) :能夠從文件中讀入數(shù)據(jù)。外部文件為Student_ext.dat, Teacher_ext.dat。能夠?qū)?shù)據(jù)保存到相應(yīng)目錄的文件中。保存數(shù)據(jù)時(shí),分兩個(gè)文件分別保存 Student.dat, Teacher.dat 。7)參考系統(tǒng)界面如示:參考系統(tǒng)界面如下:1

12、- 增加一位人員(教師、學(xué)生)記錄2- 刪除一個(gè)人員記錄3- 修改一個(gè)人員記錄4- 根據(jù)“學(xué)號(hào)(教工號(hào)) ”、“姓名”、“性別”查找記錄5- 根據(jù)人員類別(學(xué)生、教師)查找“ English ”課程成績最高的學(xué)生,或最 高工資的教師6- 顯示全部人員記錄7- 從外部文件追加數(shù)據(jù)8- 將所有數(shù)據(jù)保存到磁盤文件9- 退出系統(tǒng)。如下例題所示:2、容器類 Set 實(shí)現(xiàn) 用單鏈表模擬有序集合, 實(shí)現(xiàn)集合的加入一個(gè)元素、 刪除一個(gè)元素、 集合的交、 并、差運(yùn)算。注意,集合中不允許有重復(fù)元素。1) 使用模板類2) 根據(jù)元素個(gè)數(shù)動(dòng)態(tài)分配存儲(chǔ)空間3) 實(shí)現(xiàn)集合加入一個(gè)元素刪除一個(gè)元素的元素操作;4) 實(shí)現(xiàn)集合的

13、交、并、差集合操作;5) 實(shí)現(xiàn)集合的文件操作;可將集合寫入文件,由文件中讀出集合元素。6) 有菜單界面#include #include using namespace std; template class set private:T *p;int len;public:set(int length = 0) len = length; if (len = 0) return ;p = new Tlen; set(const set &a) len = a.len; if (len = 0) return;p = new Tlen;for (int i = 0; ilen; i+) pi=a

14、.pi;for (int i = 0; i 0)deletep;void input()int i;if (len = 0) return ;cout 請輸入數(shù)組for (i = 0; ipi;delete tmp; return tmpSet;set operator = (set &s)if (this = &s) return *this; if (this-len0) delete p;set operator * (set &a) this-p = new Ts.len;for (int i = 0; i pi = s.pi;this-len = s.len;return *this

15、;void display()int i;for (i = 0; ilen; i+)cout pi ;set tmpSet;T *tmp = new Ta.len;int count = 0;for (int i = 0; i a.len; i+)for (int j = 0; j len; j+)if (this-pj = a.pi)tmpcount = a.pi;count+; break;int main()setga1(5); setga2(5); setga3;ga1.input(); ga2.input(); ga3= ga1* ga2; ga3.display();return

16、0;tmpSet.p = new Tcount;B 類: 圖形化界面程序設(shè)計(jì)。參考 MFC ,QT 編程資料。1) 游戲類:掃雷 空當(dāng)接龍 俄羅斯方塊游戲五子棋要求: 參閱現(xiàn)有游戲,設(shè)計(jì)有良好人機(jī)交互界面的程序;鼓勵(lì)用可視化的人機(jī)交互設(shè)計(jì),如 菜單、按鈕,可基于 MFC 、Qt 等開發(fā)工具。2) 數(shù)據(jù)庫管理類 帶有人機(jī)交互界面的數(shù)據(jù)庫操作。如學(xué)生信息管理,教學(xué)信息管理,實(shí)現(xiàn)錄入、刪除、查 詢及更新等基本功能。例如界面:3) 自選以上給出的僅為參考題目, 學(xué)生在選擇過程中根據(jù)自己的實(shí)際, 按照上述題目的難易程度, 尋找合適的課程設(shè)計(jì)題目, 也可以自己設(shè)計(jì)題目, 經(jīng)指導(dǎo)教師確認(rèn)后定題, 一旦題目選定, 不

溫馨提示

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

評(píng)論

0/150

提交評(píng)論