![13121398OOP第二次上机实验报告_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/b7b731d8-b9f1-4166-a86c-35bcb2839a40/b7b731d8-b9f1-4166-a86c-35bcb2839a401.gif)
![13121398OOP第二次上机实验报告_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/b7b731d8-b9f1-4166-a86c-35bcb2839a40/b7b731d8-b9f1-4166-a86c-35bcb2839a402.gif)
![13121398OOP第二次上机实验报告_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/b7b731d8-b9f1-4166-a86c-35bcb2839a40/b7b731d8-b9f1-4166-a86c-35bcb2839a403.gif)
![13121398OOP第二次上机实验报告_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/b7b731d8-b9f1-4166-a86c-35bcb2839a40/b7b731d8-b9f1-4166-a86c-35bcb2839a404.gif)
![13121398OOP第二次上机实验报告_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/b7b731d8-b9f1-4166-a86c-35bcb2839a40/b7b731d8-b9f1-4166-a86c-35bcb2839a405.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-西安电子科技大学软件学院面向对象程序设计课程上机报告班级:131214学号:13121398姓名:文琬灵实验日期:2014 年 5月 14日-第二次实验学号: 13121398 姓名: 文琬灵一、实验环境1.软件环境:Windows, Dev C+集成开发环境2.硬件环境:无特殊要求二、实验内容下面分题目列出上机实验的要求:题目 1:写出一个类似“Hello ,world !”的函数,他以一个名字作为命令行参数,并写出“Hello ,name!”(其中name是实际的命令行参数) 。修改这个程序,使它能以一系列名字作为参数,并对每个名字分别说Hello 。题目 2:考虑:struct Tno
2、destring word;int count;struct treenode * left;struct treenode * right;写一个函数向Tnode的树中插入新的单词。写一个函数将 Tnode 的树打印出来。写一函数将 Tnode 的树按照单词的字典顺序打印出来。 修改 Tnode ,使得它只存储一个到任-意长度的单词的指针,该单词存储在一个由new分配的数组里。修改上述函数,使它们使用新的Tnode 。题目 3:写一个 error 函数,它取一个printf风格的包含%c,%s 和 %d 指示符的格式串,以及任意多个参数。请不要使用 printf() 。使用 <cstd
3、arg> 。题目四: 写一个函数, 实现为 5.913 定义的 Date 加上一天,一年,一月的功能。写一个函数对于所给的 Date 给出对应的星期几。写一个函数给出 Date 之后的打一个星期一对应的 Date 。三、源代码及运行结果针对实验内容及要求,给出各题目的源代码,并给出所用的输入数据和对应的输出数据。题目 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 的运行结果如下(应给出输入和对应的输出):输出: 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 的运行结果如下(应给出输入和对应的输出):输出 : 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 的运行结果如下(应给出输入和对应的输出):输出: 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的值赋给它, 否则调用函数输出的始终是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;/注意加上这一行和没有这一行的区别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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 书法教育合作协议合同
- 个人租车服务合同范本
- 二手商场租赁合同范本
- 二手车买卖合同书标准版
- 不动产权典当合同样本
- 国际公路货物运输合同公约sdr
- 互联网银行个人存款(理财)质押贷款合同
- 采购合同锦集
- 个人商品房预售合同模板
- 中外合作办学合同签订仪式
- 财政学论文我国财政支出存在的问题及改革建议
- 探究水垢的主要成份
- 2022年湖南高速铁路职业技术学院单招数学模拟试题及答案解析
- 小学生必备古诗
- 人教版英语八年级上册单词默写表
- SRE Google运维解密(中文版)
- 综合性学习公开课《我的语文生活》一等奖课件
- 高考语文复习高中语文文言文注释集萃
- 初中历史 教材分析与教学策略 课件
- 幼儿剪纸-打印版
- 如何提高和加强人力资源队伍的建设
评论
0/150
提交评论