万年历程序设计报告文档格式.docx
- 文档编号:21652797
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:18
- 大小:551.50KB
万年历程序设计报告文档格式.docx
《万年历程序设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《万年历程序设计报告文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
2.1系统分析
2.2系统概述:
该程序可以实现系统当前日期所在月份的日历显示功能,日期查询功能,程序的初始日期设定功能,还有把给定年份的万年历输出到txt文档中的功能。
2.3系统的构成:
1日历查询功能2日期查询、闰年判断功能。
3支持通过键盘的操作调整年份、月份、和日期。
并显示调整后的日期。
4输入任意年份,将该年份每月的日历输入文件。
2.4各模块的功能及分析
1、定义全局变量及数组。
2、程序共由十一个函数组成,其功能分别为:
a.showtime()显示系统日期所在月份的日历。
b.refer()查询日期并显示所在年份是否为闰年。
c.setdate()设定系统的初始日期。
d.print()打印指定年份的每月日历并写入文件。
e.nowday()提取系统所在日。
f.nowmoth()提取系统所在月。
–
g.nowyear()提取系统所在年。
h.isleap()判断给定年份是否为闰年。
i.isweek()判断给定日期是星期几,周六到周日分别为0到6。
j.errortest()判断输入的日期是否合法并给出提示。
k.main()主函数,程序开始运行并跳转到showtime()函数。
3.系统的运行流程图
4.功能测试
4.1本系统的主界面
1.万年历系统。
本系统的主要功能有:
1.输入年月日计算星期几。
2.打印任意日历。
4.任意年份,判断是否为闰年。
3.退出系统,使用!
2.用户可根据系统提示和用户需要输入1—4的操作数字。
(程序主界面)
3.当用户输入的选项不符合要求时,系统将验证并重新选择
(输入报错界面)
4.2输入
1.输入选项‘1’进入“输入年月日计算星期几。
”功能,此功能下可以输入日期。
2.输入日期为:
2015-1-14
3.此处如果输入日期不符合要求的话,系统将报错并提示错误并重新选择。
4.3打印任意日历
1.输入选项‘2’进入“打印任意日历”功能,此功能下可以打印日历
(输入日期界面)
2.输入日期:
2015-1-14
3.打印成功,并返回。
4.4判断是否为闰年
1.输入选项‘3’进入“任意年份,判断是否为闰年功能”功能。
2.输入年份:
2015
3.输出判断并返回。
4.5使用完毕,退出系统
1.输入选项‘2’进入“退出系统”功能。
2.使用任意键退出系统
5设计小结
本次我课程设计的题目是万年历系统。
根据课程设计的要求,需要我用本学期所学的C++面向过程的知识来编写程序。
利用面向过程的方法以及C++的编程思想来完成系统,以及参考了网上的一些C语言程序。
在设计的过程中,我参考了大量的书籍资料、和网上的资料,我们的指导老师也一直都在鼓舞和帮助我,最后我终于通过努力完成此次得课程设计。
通过这次的课程能够设计学习,让我对C++语言的编程有了更深层的认识和理解。
我主要负责打印任意日历的部分,,一开始还很没有头绪,但经过思考和查找资料后,我很好的完成了我的任务。
在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。
而且尽可能的将模块细分,最后在进行函数的调用。
我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。
由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。
因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!
参考文献
[1]龙澍.C++程序设计实训清华大学,2003年
[2]伍俊良.VISUALC++课程设计与系统开发案例,清华大学2003年
[3]乌尼尔.VisualC++经典例程分析中国电力,2000年
[4]曜.VISUALC++程序开发案例解析清华大学,1999年
[5]宋晓宇、王永会.VISUALC++高级编程技术与实例中国水利水电,2003年
源代码清单
#include<
stdio.h>
iostream.h>
stdlib.h>
ctype.h>
intleap(intyear);
//判断是否为闰年
intdays_month(intmonth,intyear);
//判断这个月的天数
intfirstday(intmonth,intyear);
//显示本月第一天是星期几
intmenu_select();
voidf()
{
intday,month,year,sum,leap,S;
printf("
\n*****请输入年月日*****\n"
);
scanf("
%d%d%d"
&
year,&
month,&
day);
switch(month)
case1:
sum=0;
break;
case2:
sum=31;
case3:
sum=59;
case4:
sum=90;
case5:
sum=120;
case6:
sum=151;
case7:
sum=181;
case8:
sum=212;
case9:
sum=243;
case10:
sum=273;
case11:
sum=304;
case12:
sum=334;
default:
dataerror"
}
sum=sum+day;
if(year%400==0||(year%4==0&
&
year%100!
=0))
leap=1;
elseleap=0;
if(leap==1&
month>
2)
sum++;
S=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;
//X表示年份,C是该年份元旦开始到这一日的天数
//S/7的系数就是星期数
//01printf("
%d"
S);
switch(S)
星期一\n"
星期二\n"
星期三\n"
星期四\n"
星期五\n"
星期六\n"
case0:
星期日\n"
voidg()
{inti,j=1,k=1,a,b,month,year;
\n输入年月:
\n"
%d%d"
month);
b=days_month(month,year);
a=firstday(month,year);
*************************************\n"
SunMonTueWedThuFriSat\n"
if(a==7)
{for(i=1;
i<
=b;
i++)
{printf("
%4d"
i);
if(i%7==0)
if(a!
=7)
{while(j<
=4*a)
"
j++;
for(i=1;
if(i==7*k-a)
k++;
\n*************************************\n"
intleap(intyear)
{if(year%4==0&
=0||year%400==0)
return1;
elsereturn0;
intdays_month(intmonth,intyear)
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
return31;
if(month==4||month==6||month==9||month==11)
return30;
if(month==2&
leap(year)==1)return29;
elsereturn28;
intfirstday(intmonth,intyear)
{intw;
w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1;
returnw;
}
inth()
{intyear;
boolleap;
cout<
<
"
;
cin>
>
year;
if(year%4==0)
{if(year%100==0)
{if(year%400==0)
leap=true;
else
leap=false;
}
else
leap=false;
if(leap)
year<
is闰年"
isnot闰年"
cout<
endl;
voidmain()
{for(;
){
switch(menu_select()){
f();
打印任意日历\n"
g();
*****输入年份*****\n"
h();
使用!
exit(0);
}intmenu_select()
chars;
int;
\n\n★★★★★★★★★★★★★★★★★★★★★\n★★★★★1.输入年月日计算星期几★★★★★\n★★★★★"
2.打印任意日历★★★★★\n★★★★★"
3.判断是否为闰年★★★★★\n★★★★★"
4.退出系统,使用!
★★★★★\n★★★★★★★★★★★★★★★★★★★★★"
\n输入1-4:
do{
s=getchar();
cn=(int)s-48;
}while(cn<
0||cn>
6);
return;
课程设计评语及成绩评定记录
指导教师评语:
序号
评价指标
选项一
选项二
选项三
1
课题难易程度(8分)
较难□
适中□
简单□
2
源代码正确程度(8分)
正确□
一般□
欠缺□
3
承担工作量(8分)
较多□
较少□
4
报告格式符合要求程度(8分)
较好□
5
报告容组织情况(8分)
很好□
6
出勤情况(30分)
7
答辩情况(30分)
综合评定分数:
分
指导教师签名(盖章)
2015年1月16日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 万年历 程序 设计 报告