ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:319.38KB ,
资源ID:5987614      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5987614.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C万年历实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C万年历实验报告.docx

1、C 万年历实验报告高级语言程序设计课程设计报告万年历程序设计(1)课程设计名称:C+万年历设计(2)使用工具软件:Microsoft visual C+(3)课程设计内容简介1、以开关语句进行执行功能的选择,这些功能分别是:A、判断闰年;B、判断某天是星期几;C、判断某年的隶属生肖;D、输出某年的日历; E、输出某月的日期;F、退出系统;2、 建立类wnl,定义类的成员函数; void isleapyear(); /判断闰年,用于输出判断结果,以流的形式bool isleap(int year); /判断闰年,返回判断结果,用于计算天数 int getdays(int year,int mon

2、th,int day); /获取据第一天天数void weekdays(int year,int month,int day); /获取星期几 void printyear(int year); /输出年的日历void printyearmonth(int year,int month); /输出某年某月的日历void animal(int year); /判断某年的生肖int getyear()return Year; /返回私有成员的值 int getmonth()return Month; int getday()return Day;3、定义私有成员: int Year,Month,D

3、ay;4、定义类的对象:_wnl;5、为类的成员函数填写代码,满足功能实现;6、运行环境:控制台应用程序的源程序;(4)得意之处:1、可以满足多功能实现,可以循环执行功能;2、可以选择每行输出的月份数;3、有欢迎界面;4、客户输入错误会有提示;5、使用了C语言的流的形式,判断闰年,提高执行速度;6、使用I/O流控制头文件iomanip.h控制月份日历的输出,更加整齐;(5)创意的技术实现(6)(7)(8) 主函数流程 判断某天是周几 判断闰年 获取天数 输出年份(9)课程设计中目前存在的问题: 无法在欢迎页面插入字符画;(10)设计实践过程中的自我感受 这是我第一次编写如此长的代码,从网上如同

4、大海捞针似的寻找编写方法,看铺天盖地的长代码,还有的程序是错的。输入的时候,没有小工具。在看着自己熬通宵打出的代码,一大串的错误,真的有些泄气。改对了执行输出结果还是错的,只好重新思考算法。不过通过这次编程我真的学会了好多,比如其他的头文件的功能;setfil()设置填充字符;setw()定义字段长度也让我真正体会到了编程的作用,爱上了编程。(11)参考文献:1吕凤翥,C+语言程序设计,清华大学出版社。实验代码:/万年历#include#include#include int dayofmonth13=0,31,28,31,30,31,30,31,31,30,31,30,31; /整形数组用于

5、储存每月的天数char monthname135=,Jan,Feb,Mar,Apr,May,June,July,Aug,Seb,Oct,Nov,Dec; /字符型数组用于储存月份名 第一个数字用于表示字符串数(相当于行) 第二个用于表示字符串长度(相当于列)class wnlpublic: void isleapyear(int year); /判断闰年,用于输出判断结果,以流的形式 bool isleap(int year); /判断闰年,返回判断结果,用于计算天数 int getdays(int year,int month,int day); /获取据第一天天数 void weekday

6、s(int year,int month,int day); /获取星期几 void printyear(int year); /输出年的日历 void printyearmonth(int year,int month); /输出某年某月的日历 void animal(int year); /判断某年的生肖 int getyear()return Year; /返回私有成员的值 int getmonth()return Month; int getday()return Day;private: int Year,Month,Day;_wnl;void main() int choice,y

7、ear,month,day; cout 欢迎来到万年历查询系统endlendl; cout设计人:endl; cout 天津职业技术师范大学nttt设计人:张锦琪nn; loop: cout 请按序号输入您要做的工作:endl; cout 判断闰年请按1; endl; cout 判断某天是星期几请按2; endl; cout 判断某年的隶属生肖请按3; endl; cout 输出某年的日历请按4; endl; cout 输出某月的日期请按5; endl; cout 如果您要退出系统请按0; choice; switch(choice) case 0:return; case 1: coutye

8、ar; _wnl.isleapyear(year);break; case 2: coutyearmonthday; _wnl.weekdays(year,month,day); break; case 3: coutyear; _wnl.animal (year); break; case 4: coutyear; _wnl.printyear(year); break; case 5: coutyearmonth; _wnl.printyearmonth(year,month); break; default:cout输入错误endl; cout继续查询请输 1 endl退出查询请输入字符

9、x; if(x=1) goto loop;void wnl:isleapyear(int year) if(year=1000&year=1000&year=9999) if(month=1) int max=dayofmonthmonth; if(day0&daymax) int s=getdays(year,month,day)%7; switch(s) case 0:coutSundayendl;break; case 1:coutMondayendl;break; case 2:coutTuesdayendl;break; case 3:coutWednesdayendl;break;

10、 case 4:coutThursdayendl;break; case 5:coutFridayendl;break; case 6:coutSaturdayendl; else cout没有按格式输入endl;int wnl:getdays(int year,int month,int day) int i,sum=0; for(i=1;iyear;i+) if(isleap(i) sum+=366; else sum+=365; if(isleap(year) dayofmonth2=29; for(i=1;i=1000&year=9999) int n=year%12; switch(

11、n) case 0: cout该年是猴年endl; break; 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 7: cout该年是兔年endl; break; case 8: cout该年是龙年endl; break; case 9: cout该年是蛇年endl; brea

12、k; case 10: cout该年是马年endl; break; case 11: cout该年是羊年endl; break; else cout没有按格式输入=1000&year=9999) coutchoice; int s; int a3,b3; /b数组用来储存每月的天数 a数组用来临时储存那一月输出到的日期 cout year: yearendl; int i=1; for(i=1;i=12/choice;i+) /计算纵向输出几个月 for(int h=1;h=choice;h+) /该循环用于输出横向月份名 int m=choice*(i-1)+h; /计算月份 cout mo

13、nthnamem ; coutendl; for(h=1;h=choice;h+) cout- ; coutendl; for(int j=0;jchoice;j+) coutSu Mo Tu We Th Fr Sa ; coutendl; for(j=0;jchoice;j+) /这个循环是为了输出第一行,第一行都是单数,所以提出来输 int month; month=choice*(i-1)+j+1; /计算月份 s=getdays(year,month,1); s=s%7; /获取每月第一天 for(int m=0;ms;m+) cout ; /输出月前的空 if(isleap(year

14、) dayofmonth2=29; bj=dayofmonthmonth; /月份天数 b数组储存一个月的天数 for(int i=1;i8-s;i+) /从一号开始输出 coutsetw(2)i ; /最后那个空是为了让一位数和两位数对齐 aj=i; /a数组用来储存每一行的日期素材 cout ; /两个月份之间的空隙 coutendl; for(int w=1;w=5;w+) /一个月最多会在五个星期出现 for(j=0;jchoice;j+) /输出要求个数的月份 int w=1; for(w=1;wbj) /如果那一行的日期数大于该月最大日期则跳出 break; coutsetw(2)

15、aj ; if(w=7) coutbj,n=8-w;n+) /月份 coutbj&w!=8) /输出月份结束后的空 cout ; cout=1000&year=9999) if(month=1) cout monthnamemonthendl; cout -endl; coutsetw(6)Sunsetw(6)Monsetw(6)Twosetw(6) Wedsetw(6)Thursetw(6)Frisetw(6)Satendl; /我觉得输出这个可以定义一个数组,用循环来做,但这样可能会使执行速度变慢 int number=getdays(year,month,1)%7; /第一天就一就相当于有一天了 for(int k=0;knumber;k+) coutsetw(6) ; int max=dayofmonthmonth; for(int j=1;j=max;j+) coutsetw(6)j; if(number+j)%7=0) /周六换行 coutendl; coutendlendlendl; else cout没有按格式输入endl;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1