《日历C课程设计报告 → C语言实现简易日历设计报告.docx》由会员分享,可在线阅读,更多相关《日历C课程设计报告 → C语言实现简易日历设计报告.docx(34页珍藏版)》请在第一文库网上搜索。
1、C+课程设计一日历的设计(良好组)专业:计算机科学与技术完毕时间:2023年10月12日目录序言错误!未定义书签。正文错误!未定义书签。2.I设计程序的目的和思想错误!未定义书签。1.1 .1设计程序时目的:错误!未定义书签。1.2 1.2设计程序的思想:错误!未定义书签。1.3 设计环境错误!未定义书签。1.4 设计目B错误!未定义书签。1.5 设计流程错误!未定义书签。2.5设计内容和设计思想错误!未定义书签。大月和小月的定义错误!未定义书签。2.5.2闰年与非闰年二月B定义错误!未定义书签。日历表的输出错误!未定义书签。2.6关键技术错误!未定义书签。总结错误!未定义书签。效果图错误!未
2、定义书签。道谢错误!未定义书签。参照文献错误!未定义书签。附录A错误!未定义书签。序言C+是美国AT&T贝尔试验室的本贾尼斯特劳斯特卢普(BjarneStroustrup)博士在20世纪80年代初期发明并实现了C+(最初这种语言被称作“CwithC1asses)。一开始C+是作为C语言的增强版出现於J,从给C语言增长类开始,不停的增长新特性。虚函数(virtua1function),运算符重载(operatorover1oading)、多重继承(mu1tip1einheritance)模板(temp1ate)、异常(exc。Ption)、RTTI、名字空间(namespace)逐渐被加入原则。
3、日历在古代是为皇历。日历在平常生活中有着非常重要的作用。有了它,我们的生活更有节奏,有规律。认这个高级动物与低级动物的最大差异在于,认识会思索,会计划的。他们有着有规律的计划。而日历无疑是他们规律计划的媒介。现全世界都在用日历。而在中国,又分为国历和农历。我国始有历法大概在四千数年此前。根据甲骨文中的页甲骨历,证明殷代H勺历法已具有相称的水平,这一页甲骨。历是全人类最占老的历书实物,这页甲骨历也就叫日历。但真正的日历产生,大概在一千一百数年前的唐顺宗永贞元年,皇宫中就已经使用皇历。最初一天一页,记载国家、宫廷大事和皇帝的言行。皇历分为十二册,每册的页数和每月的天数同样,每一页都注明了天数和日期
4、。发展到后来,就把月日、于支、节令等内容事先写在上面,下部空白处留待记事,和目前的“台历”相似。那时,侍侯皇帝的太监在日历空白处记下皇帝的言行,到了月终,皇帝审查证明无误后,送交史官存档,这在当时叫日历,这些日.历后来就作为史官编写国史的根据。后来,朝廷大臣们纷纷仿效,编制自家使用的日历。至于月历后来又发展成挂历、台历等多种形式,只是近一种世纪口勺事。伴随时代的发展,尽管日历的品种增多、把戏也不停翻新,但仍旧保持着古老日历的格局。日历在当今社会的影响也是毋庸置疑的!正文2. 1设计程序的目日勺和思想2.1.1 设计程序的目的:(1)加深对讲授内容的理解,尤其是某些语法规定。通过课程设计,自然地
5、、纯熟地掌握。(2)熟悉所用的计算机系统H勺操作措施,也就是熟悉语言程序开发的环境。(3)学会上机调试程序。2.1.2 设计程序的思想:程序设计语言类课程的指导思想是:既能使学生通过学习高级编程语言)勺知识、编程技术和基本算法,又能掌握程序设计的思想和措施,更具有运用计算机求解实际问题H勺能力,能灵活运用高级语言进行程序设计。其实认真学习一门语言并不困难,关键要所追求的学习的措施和途径。一条好的途径便于迅速掌握,熟悉运用语言。学习的目的在于应用,理论来源于实践,假如在学习中可以通过有效的途径如自己动手设计一种功能比较前大的开发系统,借鉴于多种工具书,善于总结。定可以很好的效果。正是如此,使我们
6、在这几年中对语言学习有了很大提高。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C+,还是其他的语言,以及其他的计算机方面的知识都要重在实践,所后来在学习过程中,我会愈加注视实践操作,使自己便好地学好计算机。2.2设计环境对于本次设计的软硬件规定如下:操作系统Win9xMeNT2023XP2023内存容量512MB显卡规定集成MX200以上交互工具鼠标CPU规定AMD2200+(赛扬2.4GHZ)以上硬盘空间40GB显示屏VGA以上显示屏开发软件MicrosoftVisua1C+6.02. 3设计目8掌握一种编程工具和面向对象程序设计F1勺基本思想和措施,培养我们学生综合运用某种
7、语言进行程序设计的能力,培养我们学生运用系统提供H勺功能进行创新设计的能力,培养我们学生充足运用计算机的功能和特点分析实际问题及处理实际问题H勺能力。为我们提供一种综合运用所学知识处理实际问题口勺机会,增强我们学生口勺实践动手能力和工程实践能力,并培养和锻炼我们学生H勺自学创新能力。为了能更好地理解C+语言,因此开设了本次课程设计,程序设计教学课程於J目的不是为了单独的课堂学习,而是要让我们学生掌握程序设计H勺基本思想及措施。首先,在课程设计过程中,可以明确的指导为何而学,还能对所学知识得到应用,更重要的是可以让我们学生掌握某些基本函数的使用方法,从而不在对编程序感到茫然,通过设计,可以让我们
8、熟悉简朴程序的设计措施和编写,对程序设计及该门课程设计语言的应用得到理解。2.4 设计流程12.5 设计内容25.1大月和小月的定义intmonthday(inti)(if(i=1i=3i=5i=7i=8i=10i=12)/1,3,5,7,810,12有31天为大月,4,6,9,11为小月30天,2月要判断与否为闰年return31;e1seif(i=2)if(is1eapyear()判断闰年return29;是的话返P129天e1sereturn28;不是闰年返回28天1e1sereturn30;)运用简朴的if语句来设定大小月。If语句是c+中常用且简朴的判断语句,用途相称广泛,使用起来简
9、朴易懂,易操作。2.5.2闰年与非闰年二月的定义intis1eapyear()(if(year%4=0&year%100!=0year%400=0)return1;e1sereturn0;构造闰月的判断函数,用返回值1和0来表达与否为闰年,对于后来的函数调用起来简朴不轻易出错,假如出现bug,修改起来也简朴。2.5.3两种不一样的输出措施1 .居中输出voiddisp1ay2()intn=judgeweek();for(inti=1;i=12;i+)总共12个月份intt=1;coutend1setw(40)setw(5)year,setw(5)i月fend1;COUtsetw(30)*end
10、rCoUtVVSetW(30)vv;for(intj=0;j7;j+)coutsetw(5)weekdayj;COUtend1SetW(30)vvVV*“vend1coutsetw(30);for(intk=1;kn;k+,t+)coutsetw(5)输入每月第一天的起始位置,即该天为星期几,用空格补充for(intd=1;d=monthday(i);d+,t+)coutsetw(5)d;if(1=7)coutend1setw(30)控制每行只输出7个数字t=0;控制一行输出到星期日,假如到星期日则重新计数)n=t%7;if(=0)输出完一种月后,记录这个月的最终一天在哪里,寻找下个月第一天的
11、起始位置n=7;COUtVVend1setw(30)vvw*vend1设计这种输出措施重要运用for语句,多重循环,以每月为单位循环,将一种月划分为7歹J,控制每行不超过7个数字,月头和月尾分别用空格补齐,如此循环而得。2 .横向输出措施voiddisp1ay1()COUtVVSetW(35)vv“vvyear年日历”;print(I);print(2):print(3);print(4);)横向输出相对居中输出有难度,因此在设计横向输出时将其划分为两个函数,disp1ay1为横向总的输出函数,它的作用重要是输出日历的头和调用下面的Print函数。voidprint(intx)char*a,*
12、b,*c;intfm,sm,tm,modf,mods,modt,dof,dos,dot,i,j;inttota1=0;tota1=(year-2023)*365+(year-2023)4-(year-2023)/1OO+(year-2023)/400;swtich(x)(case1:a=一月,b=二月,c=三月;fm=31,tm=31;if(is1earpyear()sm=29;e1sesm=28;modf=tota1%7;mods=(modf+31)%7;fm和tm和sm分别代表一组中三个月依次的天数,modf等代表每月依if(is1earpyear()modt=(mods+29)%7;e1
13、semodt=(mods+28)%7;break;case2:a=四月”,b=五月,c=六月;fm=30,sm=31,tm=30;if(is1earpyear()modf=(tota1+91)%7;e1semodf=(tota190)%7;mods=(modf+30)%7;modt=(mods+31)%7;break;case3:a=七月,b=八月,c=九月”;fm=31,Sm=31,tm=30;if(is1earpyear()modf=(tota1+182)%7;e1semodf=(tota1+181)%7;mods=(modf+31)%7;modt=(mods+31)%7;break;ca
14、se4:a=十月v,b=,H一月”,c=十二月”;fm=31,sm=30,tm=31;if(is1earpyear()modf=(tota1+274)%7;e1semodf=(totaI+273)%7;mods=(modf+31)%7;modt=(mods+30)%7;break;defau1t:CoUtVV”数据溢出“;break;coutsetw(12),asetw(17)bsetw(18),cend1end1;coutsetw(3)Hsetw(3)一vvsetw(3);coutsetw(3)setw(3)Hsetw(3),51;coutsetw(3)六;coutsetw(3)setw(3)一setw(3)2;coutsetw(3),setw(