2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > ACM日历题新版(界面修改+国际节日)

ACM日历题新版(界面修改+国际节日)

时间:2021-09-08 18:17:37

相关推荐

ACM日历题新版(界面修改+国际节日)

上机内容:C++程序的编写和运行

上机目的:掌握简单C++程序的编辑、编译、连接和运行的一般过程

我的程序:

/*Copyright (c) , 烟台大学计算机学院* All rights reserved.* 作 者:赵玲玲* 完成日期: 年 3 月 12 日* 版 本 号:v1.0* 输入描述: 无* 问题描述:要求:基本功能必须具备(通过年月查询本月日历),另外要有一定的创新性,可自由发挥。提示:(1)以某年某月某日为星期几为条件,算输入的年月日的日历。例如:1980年1月1日为星期二。输入(/2),求输出该月的日历,首先需要计算1月1日为星期几,来确定日历的格式(起止位置)。当输入日期有误时要重新输入。(2)需要考虑闰年问题。(3)格式控制的头文件为<iomanip> 格式为cout<<setw(6);(4)可以在黑框框运行。* 程序输出:* 问题分析:* 算法设计:略*/#include <iostream>#include <iomanip>#include <string>using namespace std;struct Calender{int year;int month;int day;};Calender c;void welcome();//欢迎界面void Input();//输入时间void days(long);void output(long);void jieri();//国际节日int main(){welcome();cout<<"输入时间(1900年及以后)(格式例:1999.12.3)\t";Input();//输入时间int sum=c.day;//该年第几天for(int i=1; i<c.month; i++)//对不同月份相加不同的天数{switch(i){case 2:sum+=(c.year%4==0&&c.year%100!=0||c.year%400==0)?29:28;//闰年2月29天,平年2月28天break;case 4:case 6:case 9:case 11:sum+=30;break;default:sum+=31;break;}}long summ=0;if(c.year>1900){for(int i=1900; i<c.year; i++)//根据是否闰年,对每年进行判断{if(i%4==0&&i%100!=0||i%400==0){summ+=366;//闰年366}else{summ+=365;//平年365}}summ+=sum;}else//若求1900年的,直接求该年天数{summ=sum;}cout<<"\n请按功能进行选择:"<<endl;cout<<"1.查询周几2.输出该月日历3.输出该月中的国际性节日\t";int n;cin>>n;switch(n){case 1:days(summ);break;case 2:output(summ-c.day+1);break;//总天数减去该月天数,即每月1日,以便输出该月日历case 3:jieri();break;//国际节日default :cout<<"error!"<<endl;}cout<<endl;return 0;}//欢迎界面void welcome(){cout<<"**************"<<endl;cout<<"*多功能万年历*"<<endl;cout<<"**************"<<endl;}//输入时间void Input(){char c1,c2;cin>>c.year>>c1>>c.month>>c2>>c.day;if(c1!='.'||c2!='.'){cout<<"格式不正确,请重新输入\t";Input();}if(c.year<1900||c.month<1||c.month>12||c.day<1||c.day>31)//对输入做判断{cout<<"输入有误!请重新输入\t";Input();}if(c.month==2)//判断二月的输入是否正确{if((c.year%4==0&&c.year%100!=0)||c.year%400==0){if(c.day>29){cout<<"输入有误!请重新输入\t";Input();}}else{if(c.day>28){cout<<"输入有误!请重新输入\t";Input();}}}if((c.month==4||c.month==6||c.month==9||c.month==11)&&c.day>30)//判断部分月份输入是否正确{cout<<"输入有误!请重新输入\t";Input();}}//国际节日void jieri(){cout<<endl;cout<<"**********************************"<<endl;switch(c.month){case 1:cout<<"* "<<c.month<<"/1"<<"新年元旦"<<endl;cout<<"* "<<c.month<<"/6"<<"中国13亿人口日"<<endl;cout<<"* "<<c.month<<"/10"<<" 中国110宣传日"<<endl;break;case 2:cout<<"* "<<c.month<<"/2"<<"世界湿地日"<<endl;cout<<"* "<<c.month<<"/4"<<"世界癌症日"<<endl;cout<<"* "<<c.month<<"/7"<<"国际声援南非日"<<endl;cout<<"* "<<c.month<<"/10"<<" 世界气象日"<<endl;cout<<"* "<<c.month<<"/14"<<" 情人节"<<endl;cout<<"* "<<c.month<<"/21"<<" 国际母语日"<<endl;break;case 3:cout<<"* "<<c.month<<"/3"<<"全国爱耳日"<<endl;cout<<"* "<<c.month<<"/8"<<"妇女节"<<endl;cout<<"* "<<c.month<<"/12"<<" 植树节"<<endl;cout<<"* "<<c.month<<"/15"<<" 国际消费日"<<endl;cout<<"* "<<c.month<<"/21"<<" 世界森林日"<<endl;cout<<"* "<<c.month<<"/22"<<" 世界水日"<<endl;cout<<"* "<<c.month<<"/23"<<" 世界气象日"<<endl;cout<<"* "<<c.month<<"/24"<<" 世界防治结核病日"<<endl;break;case 4:cout<<"* "<<c.month<<"/1"<<"愚人节"<<endl;cout<<"* "<<c.month<<"/5"<<"清明节"<<endl;cout<<"* "<<c.month<<"/7"<<"世界卫生日"<<endl;cout<<"* "<<c.month<<"/22"<<" 世界地球日"<<endl;break;case 5:cout<<"* "<<c.month<<"/1"<<"国际劳动节"<<endl;cout<<"* "<<c.month<<"/4"<<"中国青年节"<<endl;cout<<"* "<<c.month<<"/5"<<"全国碘缺乏病日"<<endl;cout<<"* "<<c.month<<"/8"<<"世界红十字日"<<endl;cout<<"* "<<c.month<<"/12"<<" 国际护士节"<<endl;cout<<"* "<<c.month<<"/15"<<" 国际家庭日"<<endl;cout<<"* "<<c.month<<"/17"<<" 世界电信日"<<endl;cout<<"* "<<c.month<<"/18"<<" 世界博物馆日"<<endl;cout<<"* "<<c.month<<"/19"<<" 中国汶川地震哀悼日"<<endl;cout<<"* "<<c.month<<"/20"<<" 全国学生营养日"<<endl;cout<<"* "<<c.month<<"/22"<<" 国际生物多样性日"<<endl;cout<<"* "<<c.month<<"/31"<<" 世界无烟日"<<endl;break;case 6:cout<<"* "<<c.month<<"/1"<<"国际儿童节"<<endl;cout<<"* "<<c.month<<"/5"<<"世界环境日"<<endl;cout<<"* "<<c.month<<"/6"<<"全国爱眼日"<<endl;cout<<"* "<<c.month<<"/17"<<" 防治荒漠化和干旱日"<<endl;cout<<"* "<<c.month<<"/23"<<" 国际奥林匹克日"<<endl;cout<<"* "<<c.month<<"/25"<<" 全国土地日"<<endl;cout<<"* "<<c.month<<"/26"<<" 国际反毒品日"<<endl;break;case 7:cout<<"* "<<c.month<<"/1"<<"香港回归日"<<endl;cout<<"* "<<c.month<<"/1"<<"建党节"<<endl;cout<<"* "<<c.month<<"/7"<<"抗日战争纪念日"<<endl;cout<<"* "<<c.month<<"/8"<<"世界过敏性疾病日"<<endl;cout<<"* "<<c.month<<"/11"<<" 世界人口日"<<endl;break;case 8:cout<<"* "<<c.month<<"/1"<<"八一建军节"<<endl;break;case 9:cout<<"* "<<c.month<<"/1"<<"劳动节"<<endl;cout<<"* "<<c.month<<"/8"<<"国际扫盲日"<<endl;cout<<"* "<<c.month<<"/10"<<" 教师节"<<endl;cout<<"* "<<c.month<<"/10"<<" 世界预防自杀日"<<endl;cout<<"* "<<c.month<<"/16"<<" 国际臭氧层保护日"<<endl;cout<<"* "<<c.month<<"/17"<<" 国际和平日"<<endl;cout<<"* "<<c.month<<"/20"<<" 国际爱牙日"<<endl;cout<<"* "<<c.month<<"/27"<<" 世界旅游日"<<endl;break;case 10:cout<<"* "<<c.month<<"/1"<<"国庆节"<<endl;cout<<"* "<<c.month<<"/1"<<"国际音乐节"<<endl;cout<<"* "<<c.month<<"/2"<<"国际减轻自然灾害日"<<endl;cout<<"* "<<c.month<<"/7"<<"国际住房日"<<endl;cout<<"* "<<c.month<<"/8"<<"全国高血压日"<<endl;cout<<"* "<<c.month<<"/8"<<"世界视觉日"<<endl;cout<<"* "<<c.month<<"/9"<<"邮政日"<<endl;cout<<"* "<<c.month<<"/10"<<" 世界精神卫生日"<<endl;cout<<"* "<<c.month<<"/15"<<" 国际盲人节"<<endl;cout<<"* "<<c.month<<"/16"<<" 世界粮食节"<<endl;cout<<"* "<<c.month<<"/17"<<" 世界消除贫困日"<<endl;cout<<"* "<<c.month<<"/21"<<" 中国(揭阳)国际玉器节"<<endl;cout<<"* "<<c.month<<"/22"<<" 世界传统医药日"<<endl;cout<<"* "<<c.month<<"/24"<<" 联合国日"<<endl;cout<<"* "<<c.month<<"/25"<<" 人类天花绝迹日"<<endl;cout<<"* "<<c.month<<"/26"<<" 足球诞生日"<<endl;cout<<"* "<<c.month<<"/31"<<" 万圣节"<<endl;break;case 11:cout<<"* "<<c.month<<"/8"<<"中国记者日"<<endl;cout<<"* "<<c.month<<"/9"<<"消防宣传日"<<endl;cout<<"* "<<c.month<<"/11"<<" 光棍节"<<endl;cout<<"* "<<c.month<<"/14"<<" 世界糖尿病日"<<endl;cout<<"* "<<c.month<<"/17"<<" 国际大学生节"<<endl;break;default:cout<<"* "<<c.month<<"/1"<<"世界艾滋病日"<<endl;cout<<"* "<<c.month<<"/3"<<"世界残疾人日"<<endl;cout<<"* "<<c.month<<"/9"<<"世界足球日"<<endl;cout<<"* "<<c.month<<"/20"<<" 澳门回归纪念日"<<endl;cout<<"* "<<c.month<<"/21"<<" 国际篮球日"<<endl;cout<<"* "<<c.month<<"/24"<<" 平安夜"<<endl;cout<<"* "<<c.month<<"/25"<<" 圣诞节"<<endl;cout<<"* "<<c.month<<"/25"<<" 世界强化免疫日"<<endl;cout<<"* "<<c.month<<"/26"<<" 毛泽东诞辰"<<endl;}cout<<"**********************************"<<endl;cout<<"继续查询请按1,按其他键退出";int k;cin>>k;switch(k){case 1:main();break;default :break;}}//查询周几void days(long summ){cout<<endl;int t;t=summ%7;//1900 年1月1日正好为周一,根据此可求出周几cout<<c.year<<"年"<<c.month<<"月"<<c.day<<"日为";switch(t){case 1:cout<<"周一"<<endl;break;case 2:cout<<"周二"<<endl;break;case 3:cout<<"周三"<<endl;break;case 4:cout<<"周四"<<endl;break;case 5:cout<<"周五"<<endl;break;case 6:cout<<"周六"<<endl;break;case 0:cout<<"周日"<<endl;break;};cout<<"继续查询请按1,按其他键退出";int k;cin>>k;switch(k){case 1:main();break;default :break;}}//输出该月日历void output(long s){cout<<endl;string tian[]={"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};string sheng[]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};string sx[]={"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};int a=6,b=0,c1;c1=c.year-1900;//年差a=(a+c1%10)%10;//每一循环b=(b+c1%12)%12;//每一循环cout<<" "<<c.year<<"年"<<c.month<<"月\t\t\t"<<tian[a]<<sheng[b]<<"年\t"<<sx[b]<<endl;cout<<" ****************************************"<<endl;cout<<" 周日 周一 周二 周三 周四 周五 周六"<<endl;int t;t=s%7;int ci;if(c.month==2){if(c.year%4==0&&c.year%100!=0||c.year%400==0){ci=29;//变量ci控制输出日历}else{ci=28;}}else if(c.month==4||c.month==6||c.month==9||c.month==11){ci=30;}else{ci=31;}int j,i;switch(t)//根据每月1日为周几,输出该月日历{case 0://周日j=1;for(i=0; i<ci; i++){cout<<setw(6)<<j++;if(j==8||j==15||j==22||j==29)//换行{cout<<endl;}}break;case 1://周一j=7;cout<<" 123456 \n";for(i=0; i<ci-6; i++){cout<<setw(6)<<j++;if(j==14||j==21||j==28){cout<<endl;}}break;case 2://周二j=6;cout<<" 12345 \n";for(i=0; i<ci-5; i++){cout<<setw(6)<<j++;if(j==20||j==13||j==27){cout<<endl;}}break;case 3://周三j=5;cout<<" 1234\n";for(i=0; i<ci-4; i++){cout<<setw(6)<<j++;if(j==5||j==12||j==19||j==26){cout<<endl;}}break;case 4://周四j=4;cout<<" 123 \n";for(i=0; i<ci-3; i++){cout<<setw(6)<<j++;if(j==11||j==18||j==25){cout<<endl;}}break;case 5://周五j=3;cout<<"12 \n";for(i=0; i<ci-2; i++){cout<<setw(6)<<j++;if(j==10||j==17||j==24||j==31){cout<<endl;}}break;case 6://周六j=2;cout<<" 1 \n";for(i=0; i<ci-1; i++){cout<<setw(6)<<j++;if(j==9||j==16||j==23||j==30){cout<<endl;}}}cout<<"\n ****************************************"<<endl;cout<<endl;cout<<"继续查询请按1,按其他键退出";int k;cin>>k;switch(k){case 1:main();break;default :break;}}

运行结果:

心得体会: 写这个节日累死了。。。没找到适合的文件,要不直接读取了就。。。本来还想加上农历,顺便把咱自己的节日加上的呢,结果一查,农历还跟太阳历有关!?根本就不懂这怎么替换的,更不用谈写代码了。。。就先这样吧。。。

知识点总结:略

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。