C语言实训报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言实训报告”。
C语言实训报告
一、课题名称 :日历程序
编写程序显示某一月的日历。
二、课题目的1.通过理论知识与实际需求相结合,编程解决一些日常中实际的问题,培养初步的独立分析能力;
2.了解应用程序设计解决实际问题的具体过程和实现方法,掌握应用C语言进行程序设计的基本规范;
3.重点掌握C语言的程序编写、函数设计、算法设计和程序调试方法; 4.初步掌握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
三、设计任务
1.日历显示功能。能根据系统日期进行初始化,如果没有任何输入,则显示系统日期所在月份的月历。
2.日历查询、闰年判断功能。输入日期进行查询,显示查询日期所在月份的月历。
四、设计要求
1.用C语言实现程序设计并进行调试; 2.画出查询模块的流程图;
3.系统的各个功能模块要求用函数的形式实现; 4.界面友好(良好的人机交互)。5.完成设计说明书(A4)。
五、详细设计 1.流程图
2.主要函数功能介绍
1).数组。是同类型数据的集合,由若干数组元素组成,其中所有元素都属于同一个数据类型,且先后的次序是确定的。
如:int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31};/*数组month_day用来存放每个月的天数*/ 2)While语句。使用一定的条件对同一程序段重复执行若干次。如: while(year_start
{ if(Isleapyear(year_start))per_year_days=366;
else per_year_days=365;
year_days=year_days+per_year_days;
year_start++;
} 3)if_else语句.在两个分支中需要执行的语句不止一条,用”{}”括起来作为一个复合语句使用.如: { if(day>1)
if(year_days%7==0)
printf(“n ”);
if(day>=10)
printf(“%4d”,day);
else
printf(“%4d”,day);year_days++;day++;}
4)switch语句.使多个常量表达式都执行同一组语句,将它们集中起来.如: switch(temp)
{ case 1:
printf(“January(%d)n”,year);break;)break语句.语义为当前的switch语句被执行时或循环语句.对if_else语句不起作用.在该程序代码中则是终止switch语句.如: case 2:
printf(“February(%d)n”,year);
break;6)自增自减运算符..使用自加(++)和自减(--)运算符时出的错误,出现丢失的情况.六、代码设计 #include int Isleapyear(int);void main(){int i;
int day;
int year;
int temp;
int temp_i;
long int year_days=0;
int year_start=1;
int per_year_days;
int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31};
printf(“Please enter the year:”);
scanf(“%d”,&year);
while(year_start
{ if(Isleapyear(year_start))per_year_days=366;
else per_year_days=365;
year_days=year_days+per_year_days;
year_start++;
}
for(temp=1;temp
{
switch(temp)
{ case 1:
printf(“January(%d)n”,year);break;case 2:
printf(“February(%d)n”,year);break;case 3:
printf(“March(%d)n”,year);break;case 4:
printf(“April(%d)n”,year);break;case 5:
printf(“May(%d)n”,year);break;case 6:
printf(“June(%d)n”,year);break;case 7:
printf(“July(%d)n”,year);break;case 8:
printf(“August(%d)n”,year);break;case 9:
printf(“September(%d)n”,year);break;case 10:
printf(“October(%d)n”,year);break;case 11:
printf(“November(%d)n”,year);break;case 12:
printf(“December(%d)n”,year);break;
}
i=year_days%7;
printf(“ MON TUE WED THU FRI SAT SUNn”);
if(i!=0)
for(temp_i=0;temp_i
printf(“
”);
day=1;
if(Isleapyear(year)&&temp==2)
while(day
{ if(day>1)
if(year_days%7==0)
printf(“n ”);
if(day>=10)
printf(“%4d”,day);
else
printf(“%4d”,day);
year_days++;
day++;
}
else
while(day
{ if(day>1)
if(year_days%7==0)
printf(“n”);
if(day>=10)
printf(“%4d”,day);
else
printf(“%4d”,day);
year_days++;
day++;
}
printf(“n”);
if(getch()=='q')
exit(0);
} getch();
} int Isleapyear(int year)
{ if((year%4==0)&&(year%100!=0||(year%400==0)))
return 1;
else
return 0;
}
七、设计总结
1.目前流行的计算机日历程序,比较典型的是Windows各版本中的日历程序以及基础于该程序所开发的各种应用程序中的日历程序。然而,这些程序都千篇一律的局限在一个很短的时间范围内。(Windows各个版本一般都局限在1980年至2099年这一范围内),但是,在很多情况下,特别是在众多的科学研究领域中,一个时间跨度较大的日历程序是很有参考价值的。C程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本填补了这一领域的空白,同时用铁的事实强有力的告诉世人:C程序设计语言作为计算机语言家族的新生事物,其发展前景是极为广阔的。
2.经过一个学期对《C语言程序设计》的学习,我们学习了理论知识,了解了C语言程序设计的思想,这些知识都为我们的下一步学习打下了坚实的基础。通过课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。
3.通过对c语言万年历的设计进一步的巩固了用c语言编写程序,并且有利于更好的掌握c语言!
4.在万年历的编写过程中也体会到了做事情一定要细心、认真。更加知道了要掌握好基础知识。还有体会到了成功的感觉!在万年历的设计过程中更加体会到了请教的重要性,“一个诸葛亮比不上三个臭皮匠。”知道了只有虚心求教才会更好的完成设计!也体会到以后在工作向他人请教的必要性和重要性!
5.通过本项课程设计也培养了我独立思考、综合运用所学有关相应知识的能力,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!
6.由于C语言是近年在国内外得到迅速推广应用的一种语言。C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。通过这次的c语言程序设计更加了解了c语言的好处和其可用性!
7.在这次课程设计中也知道了自己的动手能力不强有待进一步的提高!在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!在设计过程中的一次次设计错误增加了我放弃的想法!不过经过最终的努力终于完成了课程设计!完成该程序后想起自己以前的每一次对自己失去信心,就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!只要自己对自己不失去信心相信就可以完成那些以前认为完成不了的事情!也让我懂得了要想成功首先就必须有很强的自信心!懂得了自己以后要在做任何事情时都要自信!当自己都不相信自己能够成功时还可能会获得成功吗?
8.在C语言程序设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!都是要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!为以后的工作打下良好的知识基础和技能基础!
八、参考文献
1.电脑知识与技术学术交流版[J]2005.2(备注:来自网络资源)
2.