万年历C语言报告3.docx
- 文档编号:29529563
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:8
- 大小:72.23KB
万年历C语言报告3.docx
《万年历C语言报告3.docx》由会员分享,可在线阅读,更多相关《万年历C语言报告3.docx(8页珍藏版)》请在冰豆网上搜索。
万年历C语言报告3
软件工程实验报告
姓名:
学号:
班级:
指导老师
第三章实验报告(Reports)
实验题目:
实验目的通过实例使同学们掌握结构化数据流分析技术,结构化程序设计的基本概念与技术,并且养成良好的编码风格,单元测试的一般步骤及技术,集成测试的一般步骤和技术等软件设计的相关技术。
一.实验内容
1.软件需求分析
数据流程图
总流程
算法一
算法二
2.软件设计与编码
#include"stdio.h"
#include"conio.h"
voidmain()
{
intleap_year(inty);
intcount_leap(longyear);
intmonthdays(intmonth,longyear);
voidmonthprint(longyear,intmonth);
intmonth=0;
longyear=0;
charchoose;
clrscr();/*clearthewindows*/
do
{printf("\n\nPleaseinputoneintegernumberas'year'(0~3000):
\n");
scanf("%ld",&year);
if(year<0||year>3000)printf("WANNING:
ERROR,pleaseinputagain!
");
}
while(year<0||year>3000);
printf("\n\n");
do
{printf("pleaseinputthemonth(1~12)\n\n");
scanf("%d",&month);
if(month<=0||month>12)printf("WANNING:
ERROR,pleaseinputagain!
");
}
while(month<=0||month>12);
printf("\n\n\n");
printf("\t\t\t\t%ld\t%d\n\n",year,month);
printf
("\n********************************************************************************\n");
printf("\t\tSun\tMon\tTue\tWen\tThu\tFri\tSat\n");
monthprint(year,month);
printf("\n\n");
choose=getchar();
printf("Continue?
(y/n):
\n\n");
scanf("%c",&choose);
if(choose=='y'||choose=='Y')main();/*main函数调用main函数本身*/
}
intleap_year(inty)
{inti;
if(y%4==0&&y%100!
=0||y%400==0)i=1;
elsei=0;
returni;
}
intcount_leap(longyear)
{
inti=0,j,min,max;
if(year>2006){min=2006;max=year;}
else{min=year+1;max=2006;}
for(j=min;j if(leap_year(j))i++; returni; } intmonthdays(intmonth,longyear) { intsum=0,i,j; if(year>=2006) {staticintt[12]={31,0,31,30,31,30,31,31,30,31,30,31};/*1~12月的每月天数*/ j=month-1; if(leap_year(year))t[1]=29; elset[1]=28; for(i=0;i sum=sum+t[i]; } else { staticintt1[12]={31,30,31,30,31,31,30,31,30,31,0,31};/*12~1月的每月天数*/ j=12-month; if(leap_year(year))t1[10]=29; elset1[10]=28; for(i=0;i<=j;i++) sum=sum+t1[i]; } returnsum; } voidmonthprint(longyear,intmonth) { staticintt[12]={31,0,31,30,31,30,31,31,30,31,30,31}; inti,y,weekday=0; longdays=0; if(leap_year(year))t[1]=29; elset[1]=28; y=t[month-1]; if(year>2006) { days=(year-2006)*365+count_leap(year)+monthdays(month,year); weekday=days%7; } elseif(year<2006) {days=(2005-year)*365+count_leap(year)+monthdays(month,year); weekday=7-days%7; } else {days=monthdays(month,year);weekday=days%7;} for(i=1;i<=weekday+2;i++)/*由于上一行打印星期的时候空2个制表位,所以weekday要加2*/ printf("\t"); for(i=1;i<=y;i++) {if((i+weekday-1)%7==0)printf("\n\n\t\t%3d\t",i); elseprintf("%3d\t",i);}; printf ("\n********************************************************************************\n\n"); } 二.测试结果 三.总结 通过本次实验,我充分认识到了制作一个能够运行的软件和制作一个好的软件之间的差距,做一个好的软件不仅要求软件能够工作,而且软件从开始制作到最终完成都要经过严格的审核,不断的修改,从而使做出的软件界面更和谐,更易于操作,功能更强大等等。 在本次实验中,我也犯了这样那样的错误,但是通过与其他同学的讨论交流,我也将这些错误一一改正了过来,这使我认识到软件制作过程中交流的重要性。 总之,本次实验我的收获很大,最重要的是对软件工程这门课程有了一个更深入的认识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 万年历 语言 报告
