
14級C語言程序設(shè)計綜合實訓(xùn)任務(wù)書-指導(dǎo)書
34頁2014級本科C語言程序設(shè)計綜合實訓(xùn)任務(wù)書-指導(dǎo)書編制部門:計算機系 編制人:申時全 編制日期:2014年12月6日項目編號C09項目名稱綜合應(yīng)用實訓(xùn)訓(xùn)練對象14軟件工程本科(3)(4)學(xué)時48課程名稱C語言程序設(shè)計教 材《C語言程序設(shè)計項目化教程》劉軍 主編 實訓(xùn)目標1、掌握選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)程序設(shè)計方法;2、掌握一維數(shù)組、二維數(shù)組應(yīng)用程序設(shè)計方法3、掌握結(jié)構(gòu)體、鏈表應(yīng)用完成一個鏈表應(yīng)用程序設(shè)計和調(diào)試4、掌握用函數(shù)進行模塊化程序設(shè)計5、掌握文件讀寫(二進制格式或文本格式化文件)操作主要監(jiān)測點1、基本實訓(xùn)任務(wù):共7個項目2、擴展實訓(xùn)任務(wù):包括3個題目,從給定內(nèi)容至少選做1題實施條件個人計算機, Windows XP或windows7, 安裝VC6.0編譯開發(fā)環(huán)境實訓(xùn)內(nèi)容一、 基本內(nèi)容:1、 用結(jié)構(gòu)體表示日期,輸入一個日期(年、月、日),計算從輸入年的1月1日到輸入的日期的總天數(shù)days并輸出2、 從鍵盤輸入n(>2),計算斐波那契數(shù)列的前n項并按每行10個數(shù)據(jù)輸出3、 編寫程序,生成并輸出楊輝三角形(10行)4、 從鍵盤輸入兩個double類型數(shù)據(jù)啊,a,b,通過調(diào)用函數(shù)max_ab實現(xiàn)求a與b的最大值輸出,并定義函數(shù)max_ab。
5、 編寫程序從鍵盤輸入10個float類型數(shù)存入一維數(shù)組a中,求這10個數(shù)的平均值,然后用函數(shù)aver實現(xiàn)平均值計算,輸出這10個數(shù)以及平均值,要求數(shù)組和元素個數(shù)作為參數(shù)傳遞6、 編寫程序,從鍵盤輸入10個int類型數(shù),按從小到大順序進行排序,然后輸出要求用函數(shù)sort()進行排序,用函數(shù)input()輸入數(shù)據(jù),用函數(shù)output()輸出數(shù)據(jù)7、 基于數(shù)組存儲和函數(shù)的一卡通系統(tǒng)設(shè)計與實現(xiàn)8、 基于結(jié)構(gòu)體和文件存儲的一卡通系統(tǒng)設(shè)計與實現(xiàn)二、 擴展實訓(xùn)內(nèi)容(可任選1道完成):1、 基于鏈表的一卡通系統(tǒng)程序設(shè)計2、 五子棋游戲程序3、 打印日歷程序?qū)嵤┎襟E與技術(shù)要點. 一、基本內(nèi)容: 1、用結(jié)構(gòu)體表示日期,輸入一個日期(年、月、日),計算從輸入年的1月1日到輸入的日期的總天數(shù)days并輸出技術(shù)要點:(1) 用結(jié)構(gòu)體存儲輸入日期,定義結(jié)構(gòu)體和日期變量如下:typedef struct date{ int yeay; int month; int day;}DATE;DATE date;(2) scanf( )函數(shù)輸入年號date.year,月號date.month,日期date.day,輸入語句如下:scanf("%d%d%d",&date.year,&date.month,&date.day);(3) 用下述條件確定是否閏年: year % 4==0 && year %100 !==0 || year % 400==0 由此確定2月份天數(shù)days是28天還是29天。
4) 用一維數(shù)組m_day[12]存每月天數(shù):int m_day[12]={31,28,31,30,31,30,31,31,30,31,30,31};(5) 用for循環(huán)計算到輸入月份上月底的天數(shù) for (mm=1,days=0;mm
實施步驟:(1)運行VC6.0或Visual studio 2012集成環(huán)境(2)建立一個控制臺應(yīng)用項目projection2,建立源文件fibo.c(3)根據(jù)前述要點編寫和輸入程序(3) 調(diào)試和運行程序,保存結(jié)果截圖3、 編寫程序,生成并輸出楊輝三角形(10行) 技術(shù)要點:(1) 用一維數(shù)組yh[]存儲一行數(shù)據(jù),生成一行就打印一行2) 通過已輸出的行計算當前要輸出的行,計算從行號開始向0移動 for(col=row;col>0;col--) yh[col]=yh[col]+yh[col-1];(3) 核心代碼 int yh[N]={1}; for(row=0;row
技術(shù)要點:(1) 聲明函數(shù)max_ab:double max_ab(double a,double b);(2) 在主函數(shù)輸入a,b 調(diào)用函數(shù)max_ab(a,b)求最大值并輸出3) 函數(shù)定義:用x>y?x:y條件表達式求兩個數(shù)最大值并返回double max_ab(double x,double y){return x>y?x:y; } 實施步驟:(1)運行VC6.0或Visual studio 2012集成環(huán)境(2)建立一個控制臺應(yīng)用項目projection4,建立源文件以后maxab.c(3)根據(jù)前述要點編寫和輸入程序(5) 調(diào)試和運行程序,保存結(jié)果截圖5、編寫程序從鍵盤輸入10個float類型數(shù)存入一維數(shù)組a中,求這10個數(shù)的平均值,然后用函數(shù)aver實現(xiàn)平均值計算,輸出這10個數(shù)以及平均值,要求數(shù)組和元素個數(shù)作為參數(shù)傳遞技術(shù)要點:(1) 定義一維數(shù)組a[N],這里N定義為10(2) 聲明函數(shù)avar:float aver(float a[], int n);(3) 主函數(shù)輸入10個數(shù)據(jù),用for循環(huán)語句輸入: for (i=0;i 要求用函數(shù)sort()進行排序, 用函數(shù)input()輸入數(shù)據(jù),用函數(shù)output()輸出數(shù)據(jù) 技術(shù)要點:(1) 主函數(shù)定義數(shù)組a[N],N定義為10(2) 函數(shù)聲名:void input(int *,int n);void output(int *,int n);void sort(int *,int n);(3) 主函數(shù)調(diào)用函數(shù)實現(xiàn)程序功能4) 函數(shù)定義void input(int *a,int n){ //輸入數(shù)據(jù)的語句}void output(int *a,int n){ //輸出數(shù)據(jù)的語句}void sort(int *a,int n){ //排序語句}實施步驟:(1)運行VC6.0或Visual studio 2012集成環(huán)境(2)建立一個控制臺應(yīng)用項目projection6,建立源文件sort.c(3)根據(jù)前述要點編寫和輸入程序(4)調(diào)試和運行程序,保存結(jié)果截圖 7、基于數(shù)組和函數(shù)的一卡通系統(tǒng)設(shè)計與實現(xiàn) 技術(shù)要點:(1)數(shù)據(jù)存儲定義:在主函數(shù)內(nèi)定義數(shù)據(jù)存儲: char *name[MAXNUM]; //持卡人姓名int cnum[MAXNUM]={0}; //存儲每個卡的卡號,從1號開始編號int flag[MAXNUM]={0}; //存儲每張卡有效條件的值float cmoney[MAXNUM]={0}; //存儲每個卡的每次充值金額float cbalance[MAXNUM]={0}; //存儲每張卡余額 int num=0; //當前卡計數(shù) (2)各模塊函數(shù)申明: void disp_init(); //顯示初始畫面模塊 int select_menu( ); //顯示菜單并輸入功能選擇void addnew(int *,int *,char *name[],float *,float *,int *); //建新卡模塊void logout(int *,int *,char *name[],float *,float *,int *); //注銷模塊void modify(int *,int *,char *name[],float *,float *,int *); //卡信息修改模塊void readcard(int *,int *,char *name[],float *,float *,int *);//消費模塊void savemoney(int *,int *,char *name[],float *,float *,int *); //充值模塊void inquiry(int *,int *,char *name[],float *,float *,int *);//查詢卡信息模塊void exitout( ); //退出模塊int findcard( int cardnumber,int *,int *); //查詢卡號//顯示卡信息void dispone(int * cnum,char *pname[],float *cmoney,float *cbalance,int index); (3)主函數(shù)結(jié)構(gòu):int main(int args,char *argv[]){ 。
