版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、-西安電子科技大學(xué)軟件學(xué)院面向?qū)ο蟪绦蛟O(shè)計課程上機(jī)報告班級:131214學(xué)號:13121398姓名:文琬靈實驗日期:2014 年 5月 14日-第二次實驗學(xué)號: 13121398 姓名: 文琬靈一、實驗環(huán)境1.軟件環(huán)境:Windows, Dev C+集成開發(fā)環(huán)境2.硬件環(huán)境:無特殊要求二、實驗內(nèi)容下面分題目列出上機(jī)實驗的要求:題目 1:寫出一個類似“Hello ,world !”的函數(shù),他以一個名字作為命令行參數(shù),并寫出“Hello ,name!”(其中name是實際的命令行參數(shù)) 。修改這個程序,使它能以一系列名字作為參數(shù),并對每個名字分別說Hello 。題目 2:考慮:struct Tno
2、destring word;int count;struct treenode * left;struct treenode * right;寫一個函數(shù)向Tnode的樹中插入新的單詞。寫一個函數(shù)將 Tnode 的樹打印出來。寫一函數(shù)將 Tnode 的樹按照單詞的字典順序打印出來。 修改 Tnode ,使得它只存儲一個到任-意長度的單詞的指針,該單詞存儲在一個由new分配的數(shù)組里。修改上述函數(shù),使它們使用新的Tnode 。題目 3:寫一個 error 函數(shù),它取一個printf風(fēng)格的包含%c,%s 和 %d 指示符的格式串,以及任意多個參數(shù)。請不要使用 printf() 。使用 <cstd
3、arg> 。題目四: 寫一個函數(shù), 實現(xiàn)為 5.913 定義的 Date 加上一天,一年,一月的功能。寫一個函數(shù)對于所給的 Date 給出對應(yīng)的星期幾。寫一個函數(shù)給出 Date 之后的打一個星期一對應(yīng)的 Date 。三、源代碼及運(yùn)行結(jié)果針對實驗內(nèi)容及要求,給出各題目的源代碼,并給出所用的輸入數(shù)據(jù)和對應(yīng)的輸出數(shù)據(jù)。題目 1:源代碼如下:#include<cstdarg>#include<iostream>#include<string>using namespace std;void Print_name(const char *abc.)va_list
4、 ap;va_start(ap, abc);const char *s;2cout << "Hello," << abc << " !" <<endl;while(s = va_arg(ap, const char*)if(s = "end")break;cout << "Hello," << s << " !" <<endl;va_end(ap);int main()Print_name("
5、;zhangsan","lisi","wangwu","chener","zhao ping","end");system("pause");return 0;題目 1 的運(yùn)行結(jié)果如下(應(yīng)給出輸入和對應(yīng)的輸出):輸出: Hello , zhangsan !Hello,lisi !Hello,wangwu !Hello,chener !Hello,zhaoping !3題目 2:源代碼如下:#include <iostream>#include <i
6、omanip>#include <cmath>#include<cstdlib>#define EQ(a,b) ( (a) = (b) )#define LT(a,b) ( (a) < (b) )#define LQ(a,b) ( (a) <= (b) )#define FALSE 0#define TRUE 1using namespace std;typedef struct treenodestruct treenode * left;string word;struct treenode * right;BiTreenode, * BiTree
7、p;void init_tree(BiTreep & root)root = NULL;int SearchBST(BiTreep & rt, string key, BiTreep father,4BiTreep & p)/查找元素if ( ! rt)p = father;return FALSE;else if (EQ(key,rt->word)p = rt;return TRUE;else if (LT(key,rt -> word)return SearchBST(rt -> left,key,rt,p);elsereturn SearchBS
8、T(rt -> right,key,rt,p);int InsertBST(BiTreep & rt, string key)/查找元素后不在樹里,就加入BiTreep p;BiTreep s;if ( ! SearchBST(rt,key,NULL,p)5s = newBiTreenode;/(BiTreep)malloc( sizeof (BiTreenode);s -> word = key;s -> left = s -> right = NULL;if ( ! p)rt = s;else if (LT(key,p -> word)p ->
9、left = s;elsep -> right = s;return TRUE;elsereturn FALSE;void mid_order(BiTreep & rt)if (rt != NULL)mid_order(rt -> left);cout << rt -> word << " " ;6mid_order(rt -> right);void pre_order(BiTreep & rt)if( rt != NULL)cout << rt -> word << "
10、; "pre_order(rt -> left);pre_order(rt -> right);void behind_order(BiTreep & rt)if( rt != NULL)behind_order(rt -> left);behind_order(rt -> right);cout << rt -> word << " "int serach_tree(BiTreep & rt, string key)7if (rt = NULL)return FALSE;elseif (rt
11、-> word = key)return TRUE;else if (LT(key,rt -> word)return serach_tree(rt -> left,key);elsereturn serach_tree(rt -> right,key);int main()string val,s;BiTreep root;init_tree(root);cout << "Input the string you want to create a tree:" << endl;/while(cin>>val)/i
12、f(val = "end") break;8/InsertBST(root,val);/while(cin >> val && val != "end")InsertBST(root,val);cout << "Print the tree (pre_order):" << endl; pre_order(root);cout << endl << "order:" << endl;mid_order(root);cout &l
13、t;< endl;system("pause");return 0 ;題目 2 的運(yùn)行結(jié)果如下(應(yīng)給出輸入和對應(yīng)的輸出):輸出 : Input the string you want to create a tree:輸入 : efg ab hij cd end輸出: Print the tree (pre_order):輸出: efg ab cd hij輸出: sort :輸出: ab cd efg hij題目 3 的源代碼如下:#include<iostream>9#include<stdarg.h>using namespace std;
14、void error(char const *abc, .)va_list ap;va_start(ap, abc);for(char const *s=abc; *s; +s)if(*s != '%')cerr.put(*s);elseswitch(*(+s)case 'd':cerr << va_arg(ap,int);break;case 's':cerr << va_arg(ap, charconst*);break;case 'c':cerr << va_arg(ap,int);bre
15、ak;case 'f':cerr <<10va_arg(ap,double);break;/case'db':cerr<<va_arg(t,double);break;va_end(ap);int main()error("%s %d %s %c %c %c","There are",3,"errors .nThe list of errors :n",'a','D','v');cout << endl;system(&
16、quot;pause");return 0;題目 3 的運(yùn)行結(jié)果如下(應(yīng)給出輸入和對應(yīng)的輸出):輸出: There are 3 errors .The list of errors :97 68 118題目四的源代碼如下:11#include<iostream>#include<cmath>using namespace std;struct year_m_dint year;int month;int day;/struct year_m_d date;int leap_day12 =31,29,31,30,31,30,31,31,30,31,30,31;i
17、nt not_leap_day12 =31,28,31,30,31,30,31,31,30,31,30,31;int weeka7 = 7,6,5,4,3,2,1;int weekb7 = 1,2,3,4,5,6,7;int check_leap(year_m_d date);int check_year_m_d(year_m_d date);year_m_d add_year(year_m_d date);year_m_d add_month(year_m_d date);year_m_d add_day(year_m_d date);int week(year_m_d date);12ye
18、ar_m_d Monday(year_m_d &date);int main()int i;year_m_d date1,dates,datec;/必須要有一個dates來將 date1的值賦給它, 否則調(diào)用函數(shù)輸出的始終是date1剛開始的值cin >> date1.year >> date1.month >> date1.day; if(check_year_m_d(date1)i = week(date1);cout << "所給日期是星期:" << endl << i <<e
19、ndl;datec = date1;dates = Monday(datec);cout << " 下一個星期一是: " << endl << dates.year << " 年 " << dates.month << " 月" <<dates.day << "日 " << endl;dates = add_year(date1);cout << "加上一年: " <&l
20、t; endl << dates.year << "年" << dates.month << "月" << dates.day << " 日" << endl; dates = add_month(date1);13cout << "加上一月: " << endl << dates.year << "年" << dates.month <<
21、"月" << dates.day << " 日" << endl; dates = add_day(date1);cout << "加上一日: " << endl << dates.year << "年" << dates.month << "月" << dates.day << "日" << endl;else cout <&
22、lt; "輸入錯誤!" << endl;system("pause");return 0;int check_leap(year_m_d date)if(date.year % 400 = 0) | (date.year % 100!=0) && (date.year % 4 = 0) return 1;else return 0;int check_year_m_d(year_m_d date)if(date.year < 0)return 0;else if(date.month < 1 | date.mont
23、h > 12)return 0;14else if(check_leap(date)if(date.day > leap_daydate.month-1)return 0;else return 1;/注意加上這一行和沒有這一行的區(qū)別else if(date.day > not_leap_daydate.month-1)return 0;elsereturn 1;year_m_d add_year(year_m_d date)if(check_year_m_d(date)date.year += 1;return date;year_m_d add_month(year_m_
24、d date)if(check_year_m_d(date)15if(date.month = 12)date.month = 1;date.year += 1;else date.month += 1;return date;year_m_d add_day(year_m_d date)if(check_year_m_d (date)if(check_leap(date)if(date.day = leap_daydate.month-1)if(date.month = 12)date.month= 1;date.day =1;date.year+= 1;16else date.month
25、+= 1;date.day = 1;else date.day += 1;else if(date.day =not_leap_daydate.month-1)if(date.month = 12)date.month = 1;date.day = 1;date.year += 1;else date.month += 1;date.day = 1;else date.day += 1;17return date;int week(year_m_d date)int day = 0;for(int year = 1970;year != date.year;+ year) if(check_leap(date)day += 366;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鴻雁課程設(shè)計
- 2025年全球及中國電動汽車車載一體化充電系統(tǒng)單元行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 課程設(shè)計模板網(wǎng)站電影
- 統(tǒng)計學(xué)軟件課課程設(shè)計
- 職高汽車專業(yè)的課程設(shè)計
- 銷售國家云平臺課程設(shè)計
- 網(wǎng)絡(luò)會計學(xué)原理課程設(shè)計
- 音響系統(tǒng)課課程設(shè)計
- 銅冶煉過程清潔生產(chǎn)-洞察分析
- 舞蹈敘事研究-洞察分析
- 手術(shù)室護(hù)理實踐指南2023年
- 電力安全工作規(guī)程(變電部分)課件
- 新人教版六年級下冊數(shù)學(xué)全冊課件
- 環(huán)保設(shè)施安全風(fēng)險告知卡
- 卵石地層樁基旋挖鉆施工方案
- 江蘇對口單招英語考綱詞匯總結(jié)
- (完整word版)手卡模板
- GB/T 4091-2001常規(guī)控制圖
- GB/T 13912-2020金屬覆蓋層鋼鐵制件熱浸鍍鋅層技術(shù)要求及試驗方法
- GB 18399-2001棉花加工機(jī)械安全要求
- 陜西省延安市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
評論
0/150
提交評論