关于语言编程的论文

我的课程设计报告,希望对你有帮助!

成就

课程设计报告簿

20 09 ~ 20 10学年第二学期

课程名称:C语言课程设计

老师:

班级级别:B090602

姓氏:臧福月

学号:B09060243

6月20日10

一、课程设计题目:万年历

二。标题要求:

(1)程序开始运行时,会显示当前的年历。

(2)能够根据输入的年份显示月历。

(3)当输入小于1900的年份时,退出程序。

三。话题分析:

课程设计主题分析和功能模块划分。

(1)首先根据起始年份判断每年第一天的星期几,然后根据星期几控制每个月第一行的空间输出!

(2)判断每一年是否是闰年,设置相关的二月天!

4.模块设计(流程图):

每个模块的设计描述,包括模块名称、功能、入口参数和返回值的描述,以及每个模块实现过程的描述(必要时绘制流程图)。

(1)main函数:这个函数是程序入口,通过一个do-while当输入的年数小于1900时程序退出,否则main函数调用claculate函数,将输入的年数作为参数传递给classify函数!

(2)calculate函数:该函数有一个参数,是主函数传入的输入年份,返回类型为void。这个函数负责从主函数接收输入的年份并显示出来,然后调用standpirnt函数。

(3)standpirnt函数:该函数有一个参数,是calculate函数传入的输入年份,返回类型为void。该函数负责实现标准日历格式输出,根据周期数设置每个月的天数,通过tag和tag2控制每个月的月初空间!并调用dayOfweek获取输入年份的第一天的星期几,输出对应的空格!

(4)dayOfweek函数:该函数有一个参数,是输入的年数,返回值是星期几。这个函数负责将一周中的某一天作为一年中的第一天返回,并输出许多与该天匹配的空格!

动词 (verb的缩写)源代码:

每个模块的源代码。

主要功能:

void main() {

int input = 0;

int Jude = 1;

做{

printf("请输入年份!\ n ");

scanf("%d ",& amp输入);

if(输入& lt= 1900) {

printf("数据错误!!!");

裘德= 0;

}

printf("年份是%d\n ",输入);

//这里,判断一下是不是闰年!

如果(裘德)

计算(输入);

} while(裘德);

}

*************************************************************

计算函数:

//这个函数负责显示年份,调用standpirnt函数!

无效计算(跨年度){

printf("%d\n ",年份);

standpirnt(年);

//day ofweek(year);

}

卓越功能

无效期限(跨年度){

//在这里测试日历格式输出!

int date[31]= { 0 };

for(int I = 0;我& lt31;i++) {

日期[I]= I+1;

}

int输入=年;

int tag = 0;

int tag 2 = 0;

int leap = 0;

int ccyd = 0;

int bug = 0;

for(int j = 0;j & lt12;j++) {

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

Printf(" %d年%d月\n ",输入,(j+1));

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

printf(" Day 123456 \ n ");

//设置一个月中的天数!

if(input % 4 = = 0 | | input % 100 = = 0 & amp;& amp输入%400!= 0)ccyd = 1;

开关((j+1)) {

案例1:leap = 31;打破;

案例二:ccyd?闰= 29:闰= 28;打破;

案例三:leap = 31;打破;

情况四:闰= 30;打破;

案例五:leap = 31;打破;

案例六:闰= 30;打破;

案例7:leap = 31;打破;

案例8:leap = 31;打破;

案例九:闰= 30;打破;

案例10:leap = 31;打破;

案例11:闰= 30;打破;

案例12:leap = 31;打破;

}

//这里控制跳转和换行!

for(int k = 0;k & lt飞跃;k++) {

if(k = = 0 & amp;& ampj == 0) {

tag = dayOfweek(输入);

if(tag = = 7)tag = 0;

}

else if(k==0) {

开关(标签2) {

案例0:printf(" ");打破;

case 1:printf(" ");打破;

案例二:printf(" ");打破;

案例三:printf(" ");打破;

案例四:printf(" ");打破;

案例五:printf(" ");打破;

案例6:printf(" ");打破;

}

}

printf("%3d ",date[k]);

tag++;

//新添加的

if(date[k] == leap) {

tag 2 = tag-1;

}

if(tag==7) {

printf(" \ n ");

tag = 0;

}

}

printf(" \ n ");

}

}

DayOfweek函数:

//这个函数负责判断输入年数时是星期几!

int dayOfweek(int dayy) {

int value = 0;

int input2 = dayy

int start = 1990;

int days = 1;

天数=输入2 -开始;

int total = 0;

int years[100000]= { 0 };

for(int I = 0;我& lt天;i++) {

年[i] =开始+I;

if(years[I]% 4 = = 0 | |(years[I]% 100 = = 0 & amp;& amp年[我] %400!=0)) {

//printf("今年是闰年!");

合计+= 366;

}

否则{

//平年!

合计+= 365;

}

}

int week = total % 7;

切换(周){

案例0:值= 1;

printf(" ");打破;

案例1:值= 2;

printf(" ");打破;

情况二:值= 3;

printf(" ");打破;

情况三:值= 4;

printf(" ");打破;

情况4:值= 5;

printf(" ");打破;

情况5:值= 6;

printf(" ");打破;

情况6:值= 7;

printf(" ");打破;

}

返回值;

}

不及物动词测试和调试:

设计系统及各模块的测试方法和方案。

(1)完成主函数后,通过输入小于1900的函数观察程序是否退出,以测试程序主模块是否正常!

(2)完成calculate函数后,调用main中的calculate函数,输出calculate中的相关信息,判断calculate函数是否正常!

(standpirnt函数完成后,在calculate函数中调用,观察控制台上输出的日历格式是否正确!

(4)完成dayOfweek函数后,在standpirnt函数中调用,最后观察输出!

七。课程设计概要:

(1)通过课程设计,增强对C语言中函数调用和断行跳转的理解和掌握。

(2)加深对面向过程编程的理解!

(3)深刻理解万年历的具体实现!