版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、咼级语言程序设计课程设计报告万年历程序设计C+万年历设计Microsoft visual C+(1) 课程设计名称:(2) 使用工具软件:(3) 课程设计内容简介以开关语句进行执行功能的选择,这些功能分别是:1、A、判断闰年;B、判断某天是星期几;C、判断某年的隶属生肖;D输出某年的日历;E、输出某月的日期;F、退出系统;2、建立类wnl,定义类的成员函数;/判断闰年,用于输出判断结果,以/判断闰年,返回判断结果,用于/获取据第一天天数;/获取星期几/输出年的日历输出某年某月的日历/ 判断某年的生肖/返回私有成员的值void isleapyear();流的形式bool isleap(i nt
2、year);计算天数int getdays(i nt year,i nt mon th,i nt day);void weekdays(i nt year,i nt mon th,i nt day) void prin tyear(i nt year);void prin tyearm on th(i nt year,i nt mon th); / void ani mal( int year);int getyear()retur n Year;int getmo nth()return Mon th;int getday()retur n Day;3、 定义私有成员:int Year,Mo
3、 nth,Day;4、 定义类的对象:_wnl ;5、为类的成员函数填写代码,满足功能实现;6、运行环境:控制台应用程序的源程序;(4) 得意之处:1、可以满足多功能实现,可以循环执行功能;2、可以选择每行输出的月份数;3、有欢迎界面;4、客户输入错误会有提示;5、使用了 C语言的流的形式,判断闰年,提高执行速度;6、使用I/O流控制头文件 iomanip.h 控制月份日历的输出,更加整齐;(5) 创意的技术实现(6)3山平品卑EOmL+piA耕孔淀程谕计Mnl 0MbugwnllO.exe 4目TI融欺Edri2O12JarPcbRarII!:-nSaEliMoTu UeThF却SaSuMt
4、iTu.UeTIiFra123 4E67I234128910 11121314567 S9ie114578910Ll-1G17 18192021121314 151617IS1112131415IE17爲2324 252B2?2S1?21 22232425in20212223243031262728 2?25262726293031Aipi*NaiJriiinn:U.holu yThFrSaSuMoTill 牺ThFrSaSuMoTu脳ThFrSa123 45丘71 23斗12H琴10 11121314右7对 Vie113弓S右?eIS1617 18152021131415 16i?IS1?1
5、0111213141516:!:!2324 252E2?28202122 232425261718计21222330272ft29 383124212G27202930fimg:!Holu伽IJiFrSaKuMoTill WcThFrSaSuMdluThFrSa25671234一1(7)i 2!:.nSaEliMoTu蛀ThFrSa12345G7123489101112131456789IB11一.161718192021121314151617IS2324252百2?2S1?202123232425303126272S39MaxAlpr股luWeThFrSaSuMoTuMeThFrSa123
6、1234S74S&?8y18BV10111213141J121314151617151G17182021汕192021222324222324252272826272S2930312930June:!HoluWcIhFrSaSuIHoluUcThFrSa_1234512LJ tZE辭卑蜀臥曲护诽卑孔遷程设i+*mUCIh旳Q/nllO.負*2i 回 hOoT请荊认怀贾输岀的年份KKKX : 2 0i U馭-備dt的肖戚 1耶氈EGr201:MhoI LiThFSa1234567s91011121314151617181920212324252百272S3031Jah聪bSu Ho lu Th
7、Fr 阳123(8)Y1输入年份JYes2NoYes3NoYes4NoYes5输入错误结束请输出您要输 出的年月继续查询请按 退出请输入任 意字符输入年 月 日请输入您要查 询的天数如xxxx xx xx请输入您要查 询的年份如xxxx请输入您要判 断的年份如xxxx请输入您要输 出的年份输入年份输入年 月输入年份调用 isleapyear 函数调用printyear函数调用weekdays函数调用animal函数调用prin tyearm onth函数主函数流程开始判断闰年year=1000&yYess=6Saturday结束判断某天是周几获取天数岀的月份数nt choicechoiceI
8、ntH = 1h=choicejchoicel=choicent month计算月份输出星期名 换行Int a10Int b10=1ear=9999Yes计算该月份输出月份名)=0jchoicew=1获取第一天返回值为一前的空二月的值为29w7Ye输出a数组的日期Int n=1输出空格N+A数组大于b数组且w!=8. 1-十输出空格W+ a数组自增输出年份(9) 课程设计中目前存在的问题:无法在欢迎页面插入字符画;(10) 设计实践过程中的自我感受这是我第一次编写如此长的代码,从网上如同大海捞针似的寻找编写方法,看 铺天盖地的长代码,还有的程序是错的。 输入的时候,没有小工具。在看着自己熬通宵
9、打出的代码,一大串的错误,真的有些泄气。改对了执行输出结果还是错的, 只好重新思考算法。不过通过这次编程我真的学会了好多,比如其他的头文件的功能; setfil()设置填充字符;setw()定义字段长度 也让我真正体会到了编程的作用,爱上了编程。(11) 参考文献:1吕凤翥,C+语言程序设计,清华大学出版社。实验代码:/万年历#in clude#in clude#i ncludeintdayofmo nth13=0,31,28,31,30,31,30,31,31,30,31,30,31;/整形数组用于储存每月的天数charmo nth name13 5=,Ja n,Feb,Mar,Apr,Ma
10、y,Ju ne,July,Aug,Seb,Oct,Nov,Dec; /字符型数组用于储存月份名第一个数字用于表示字符串数(相当于行)第二个用于表示字符串长度(相当于列)class wnlpublic:voidisleapyear(i ntyear);/判断闰年,用于输出判断结果,以流的形式bool isleap(i nt year);断闰年,返回判断结果,用于计算天数i nt getdays(int year,int month,int day);取据第一天天数void weekdays(i nt year,i nt mon th,i nt day);取星期几void prin tyear(i
11、 nt year);出年的日历void prin tyearm on th(i nt year,i nt mon th);出某年某月的日历void ani mal( int year);断某年的生肖i nt getyear()return Year;回私有成员的值i nt getm on th()return Mon th;i nt getday()return Day;private:i nt Year,Month,Day;_wnl;/判/获/获/输/输/判/返void mai n()i nt choice,year,month,day;cout 欢迎来到万年历查询系统e ndle ndl;
12、cout设计人:endl;cout天津职业技术师范大学nttt 设计人:张锦琪nn;loop:cout /请按序号输入您要做的工作 :endl; cout |判断闰年请按 1;| e ndl;cout | 判断某天是星期几请按 2;| e ndl;cout |判断某年的隶属生肖请按3;|e ndl;cout|输出某年的日历请按4;| e ndl;cout|输出某月的日期请按5;| e ndl;cout 如果您要退出系统请按0;/ choice;switch(choice)case 0:return;case 1:cout year;_wn l.isleapyear(year);break;ca
13、se 2:cout year mon thday;_wn l.weekdays(year,m on th,day);break;case 3:cout year;_wn l.a ni mal (year);break;case 4:cout year;_wn l.pri ntyear(year);break;case 5:cout year mon th;_wn l.pri ntyearm on th(year,m on th);break;default:cout输入错误endl;cout继续查询请输1 endl退出查询请输入字符 =1000&year=1000&year=9999)if(m
14、o nth=1)int max=dayofm on thm on th;if(day0&daymax)int s=getdays(year,m on th,day)%7;switch(s)case 0:coutS un daye ndl;break;case 1:cout Mon daye ndl;break;case 2:coutTuesdaye ndl;break;case 3:coutWed nesdaye ndl;break;case 4:coutThursdaye ndl;break;case 5:coutFridaye ndl;break;case 6:coutSaturdaye
15、ndl;elsecout没有按格式输入endl;int wn l:getdays(i nt year,i nt mon th,i nt day)i nt i,sum=0;for(i=1;iyear;i+)if(isleap(i) sum+=366;else sum+=365;i f(isleap(year) dayofmo nth2=29; for(i=1;i=1000&year=9999)int n=year%12; switch( n)case 0: coutcase 1: coutcase 2: coutcase 3: coutcase 4: coutcase 5: coutcase 6
16、: coutcase 7: coutcase 8: coutcase 9: cout该年是猴年 该年是鸡年 该年是狗年 该年是猪年 该年是鼠年 该年是牛年 该年是虎年 该年是兔年 该年是龙年 该年是蛇年e ndl; break;e ndl; break;e ndl; break; e ndl; break; e ndl; break; e ndl; break; e ndl; break; e ndl; break; e ndl; break;e ndl; break;case 10: coutcase 11: cout该年是马年endl; break; 该年是羊年endl; break; e
17、lsecout没有按格式输入=1000&year=9999)cout choice;int s;inta3,b3;b数组用来储存每月的天数a数组用来临时储存那一月输出到的日期coutyear:yeare ndl;int i=1;for(i=1;i=12/choice;i+)/计算纵向输出几个月for(i nth=1;h=choice;h+)/该循环用于输出横向月份名intm=choice*(i-1)+h;/计算月份coutmonthn amem;coute ndl;for(h=1;h=choice;h+)cout;coute ndl;for(i nt j=0;jchoice;j+)coutSu
18、 Mo Tu We Th Fr Sa ;coute ndl;for(j=0;jchoice;j+)/这个循环是为了输出第一行,第一行都是单数,所以提出来输int mon th;mon th=choice*(i-1)+j+1;/计算月份s=getdays(year,m on th,1);s=s%7;/获取每月第一天II.for(i nt m=0;ms;m+)cout/输出月前的空if(isleap(year) dayofmonth2=29;bj=dayofm on thm on th;/月份天数 b数组储存一个月的天数for(i nti=1;i8_s;i+)/从一号开始输出coutsetw(2)i;/最后那个空是为了让一位数和两位数对齐aj=i;/a数组用来储存每一行的日期素材cout;/两个月份之间的空隙coute ndl;for(i ntw=1;w=5;w+)/ 一个月最多会在五个星期出现for(j=0;jchoice;j+)/输出要求个数的月份int w=1;for(w=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质安技术部半年工作总结
- 2026年少儿艺术培训教育行业分析报告及未来发展趋势报告
- 2026年绞肉机碎肉宝行业分析报告及未来发展趋势报告
- 2026年折刀行业分析报告及未来发展趋势报告
- 2026年地面数字电视行业分析报告及未来发展趋势报告
- 2026年无纺布制造行业分析报告及未来发展趋势报告
- 2026年超声波清洗液行业分析报告及未来发展趋势报告
- 2026年门窗幕墙系统行业分析报告及未来发展趋势报告
- 2026年公务员考试公基行测冲刺模块试题(附解析)
- 2026年电机软启动控制系统行业分析报告及未来发展趋势报告
- 国资委安全生产十条硬措施
- T/CECS 10338-2023生活垃圾制备固体燃料
- 医院建设项目设计技术方案投标文件(技术方案)
- 籼型杂交水稻文两优87的育种与高产栽培技术
- 2025年03月“市委书记进校园”佳木斯市急需紧缺专业技术人才引进384人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 江苏省南京市南京联合体2024-2025学年九年级下学期期初调研数学试卷
- 常见临床急症的急救与护理
- 解除医保服务协议申请书范文
- 2024安徽太阳能辐射量数据
- AMS成就动机量表问卷计分解释
- 大专求职简历模板8篇
评论
0/150
提交评论