欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    万年历实验报告.docx

    • 资源ID:63857407       资源大小:22.04KB        全文页数:15页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    万年历实验报告.docx

    河南城建学院C+语言程序设计课程设计说明书设计题目: 万年历 专 业: 计算机科学与技术 班 级: 设计人员: 张宁博、杨文利、郭秀丽 指导教师: 张星 魏新红 张芳芳 计算机科学与工程学院2015年 1 月 5 日一、 课程设计目的及要求1、 设计目的掌握一种编程工具和面向程序设计的基本思想和方法,培养我们的综合利用某种语言进行程序设计的能力、利用系统提供的功能进行创新设计的能力以及充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。我认为,这个课程设计的目的不是为了单独的课堂学习,而是要让我们掌握程序的基本思想及方法。一方面,在课程设计过程中,可以进行一对一的辅导,还能对所学的知识得到运用,更重要的是可以让我们对“面向对象”有一个更为清楚地认识、了解和掌握。2、 设计具体内容及要求设计一个日期类“Date”,包括年、月、日等私有数据成员。要求实现日期的基本运算,如一日期加上天数、减去天数、两日期相差的天数等(假定输入日期数据是合法的,考虑闰年的情况)。在Date类中设计如下重载运算符函数:Date operator-(int days);返回一日起减去天数得到的日期。int operator-(Date &b);返回两日期相差的天数。void displayMonth (Date &b);显示指定日期所在的月历,美观。void displayYear(Date &b);显示指定日期所在的年历,美观。在实现这些重载运算符函数调用一下私有成员函数:leap(int);判断指定的年份是否是闰年。dton(Date &);转换指定日期为从0年0月0日起的天数数据成员为:int year, month , day;按照如上的设计要求,做一个面向对象的设计完成所要求的操作。二、 类的声明和涉及的函数1、类的声明class Datepublic: Date();Date(int newyear,int newmonth,int newday):year(newyear),month(newmonth),day(newday)Date operator+(int days);Date operator-(int days);int operator-(Date &c);void displayMonth();void displayYear();void display()cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;private: int year,month,day;int leap(int year0);int dton();2、 涉及的函数1)、函数 void menu(); void goback(); void adddays(); void resucedays(); void apartdate(); void display1(); void display2(); int main();三、 主要流程图进入菜单项1.计算日期减天数2. 计算日期加天数3.计算两日期相差的天数4.显示月历5.显示年历0.退出程序万年历系统四、 运行及调试结果1、 各步运行结果截图与说明计算日期减天数输入当前日期,输入要减去的天数,即可显示得到的新的日期。计算日期加天数输入当前日期,输入要加上的天数,即可显示得到的新的日期。计算两日期相差的天数分别输入两个日期,按回车键,即可显示两日期相差的天数。显示月历输入要显示的月历的年份和月份,按回车键,即可显示该年该月的月历。显示年历输入要显示的年历的年份,按回车键,即可显示该年的年历。2、 调试及解决问题五、 小结及感悟六、 源程序# include<iostream># include<cmath># include<iomanip># include<stdlib.h>using namespace std;namespaceconst int DAYS_BEFORE_MONTH=0,31,59,90,120,151,181,212,243,273,304,334;/存储平年中的某个月1日之前有多少天。void menu()cout<<" 欢迎进入万年历系统"<<endl;cout<<"*"<<endl;cout<<" 万年历"<<endl;cout<<"*"<<endl;cout<<"1.计算日期减天数 2.计算日期加天数"<<endl;cout<<"3.计算两日期相差的天数 4.显示月历"<<endl;cout<<"5.显示年历 0.退出程序"<<endl;cout<<"*"<<endl;cout<<"请输入您的选择:"void goback()getchar();cout<<endl<<endl;cout<<"按回车键返回主菜单"<<endl;getchar();system("cls");menu();class Datepublic:Date();/无参的构造函数Date(int newyear,int newmonth,int newday):year(newyear),month(newmonth),day(newday)Date operator+(int days);Date operator-(int days);int operator-(Date &c);void displayMonth(); void displayYear();void display()cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl; private:int year,month,day;int leap(int year0);int dton();int Date:leap(int year0)if(year0%4=0&&year0%100!=0)|year0%400=0)return 1;else return 0;int Date:dton()int days;int years=year-1;days=years*365+years/4-years/100+years/400+DAYS_BEFORE_MONTHmonth-1+day;if(leap(year)=1&&month>2)days+;/考虑闰年时,若月份大于2,都加一天。return days; Date Date:operator+(int days)while(days!=0)day+;if(month=1|month=3|month=5|month=7|month=8|month=10|month=12)&&days>31)month+=1;day=1;else if(month=2&&leap(year)=1&&day>29)month+=1;day=1;else if(month=2&&leap(year)=0&&day>28)month+=1;day=1;else if(day>30)month+=1;day=1;if(month>12)year+=1;month=1;days-;Date r; r.year=year;r.month=month;r.day=day;return r;Date Date:operator-(int days)while(days!=0)day-;if(day=0)month-=1;if(month=1|month=3|month=5|month=7|month=8|month=10|month=12)day=31;else if(month=2&&leap(year)=1)day=29;else if(month=2&&leap(year)=0)day=28;else day=30;if(month=0)year-=1;month=12;day=31;days-;Date a;a.year=year;a.month=month;a.day=day;return a;int Date:operator-(Date &c)return abs(dton()-c.dton();void adddays()cout<<"*"<<endl;cout<<" 欢迎进入时光机"<<endl;cout<<"*"<<endl;int year,month,day,days;cout<<"请输入当前日期:"cin>>year>>month>>day;cout<<"请输入天数:"cin>>days;Date date(year,month,day);date=date+days;cout<<"时光机穿梭到:"date.display();void reducedays()int year,month,day,days;cout<<"请输入日期:"cin>>year>>month>>day;cout<<"请输入天数:"cin>>days;Date date(year,month,day);date=date-days;cout<<year<<"年"<<month<<"月"<<day<<"日-"<<days<<"天->"date.display();void apartdate()int year1,year2,month1,month2,day1,day2,days;cout<<"请输入第一个日期:"cin>>year1>>month1>>day1;cout<<"请输入第二个日期:"cin>>year2>>month2>>day2;Date date1(year1,month1,day1);Date date2(year2,month2,day2);days=date2-date1;cout<<"两日期相减的天数是:"<<days<<endl;void Date:displayMonth()int i,j,monthdays;int w=0; w=dton()%7;if(month=1|month=3|month=5|month=7|month=8|month=10|month=12)monthdays=31;else if(leap(year)=1&&month=2)monthdays=29;else if(leap(year)=0&&month=2)monthdays=28;else monthdays=30;cout<<" "<<year<<"年"<<" "<<month<<"月"<<endl;cout<<"-"<<endl;cout<<setw(4)<<"日"<<setw(4)<<"一"<<setw(4)<<"二"<<setw(4)<<"三"<<setw(4)<<"四"<<setw(4)<<"五"<<setw(4)<<"六"<<endl;for(i=0;i<w;i+) cout<<" "for(i=1;i<8-w;i+)cout<<setw(4)<<i;cout<<endl;for(i=8-w,j=1;i<=monthdays;i+,j+)cout<<setw(4)<<i;if(j%7=0)cout<<endl;cout<<endl<<"-"<<endl;void Date:displayYear()int i;for(i=1;i<=12;i+)Date c(year,i,1);c.displayMonth();cout<<endl; void display1()int year5,month5;cout<<"请输入要显示的月历:"cin>>year5>>month5;cout<<endl<<"-"<<endl;Date date5(year5,month5,1);date5.displayMonth();void display2()int year;cout<<"请输入要显示的年份:"cin>>year;Date date(year,1,1);date.displayYear();int main()int a;int d=1;system("color 3F");menu();docin>>a;if(a<0|a>5)cout<<"选择错误请重新选择."<<endl;cout<<"请选择:"<<endl;cin>>a;switch(a)case 1:system("cls");reducedays();goback();break;case 2:system("cls");adddays();goback();break;case 3:system("cls");apartdate();goback();break;case 4:system("cls");display1();goback();break;case 5:system("cls");display2();goback();break;case 0:system("cls");exit(0);break; while(d=1);return 0;

    注意事项

    本文(万年历实验报告.docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开