计算机程序设计(c语言)课程设计报告。
题目:万年历。
学院:化学工程学院。
专业:化学工程与工艺
班级: 120602
姓名: 指导教师:侯仲尼。
设计日期:2013年7月16日。
一。 选题背景。
1.根据课本中输入一个年份,并输出每个月有多少天的题目想到此程序。根据已知的函数运用规则和函数调用来确保功能的实现。
2.功能。根据用户输入的年份判断该年是否为闰年;
根据用户输入的年份和月份判断该天是星期几;
输出该年当月的日历。
二。 设计思路。
2.1概要设计。
2.1.1、数据结构:无。
2.1.2、全局变量:无。
2.1.3 模块列表:
void menu() 菜单函数*/
void print(int n) /计算闰年函数*/
void printcalendar(int year) /计算大小月函数*/
void main星期函数*/
2.1.4、程序结构图(也就是模块之间的关系)
2.2、详细设计。
2.2.1、void main():星期函数*/
接口:void main()
参数:int choice; int year,month,date; int day,flag;
返回值:无。
功能描述:用if来实现计算星期的算法再通过goto实现算法跳出。
2.2.2、void menu():菜单函数*/
接口:void menu()
参数:无。返回值:无。
功能描述:通过if和return来选择调用相应的模块。
三。 主要解决问题的方法及技术关键。
1.技术关键。
1. 主要问题及解决方法。
1).根据输入的年月日判断当前日期为星期几;
运用while语句和正确的运算公式进行判断。
2).判断是否是闰年。
用自定义的is leap 0year函数实现判断用户输入的年份是否为闰年。
3).输出星期和日期。
用for循环和switch语句实现输出用户输入的年份对应的月份、日期和星期。
2. 技术关键。
1) for循环。
2) witch语句。
3) if和else语句。
2.调试程序。
错误1:错误现象:错误提示信息:
error c2143: syntax error : missing ')before ';对应语句:
printf("请输入年份(xxxx):)
错误原因:没有弄清楚c语言规则。
改正方法:printf("请输入年份(xxxx):"
错误2:错误现象:错误提示信息,error c2065: 'con' :undeclared identifier对应语句con=getch();
错误原因:忘记定义了con的类型。
改正方法:char con;
4、设计结果说明(心得总结)
1.设计优点:通过自定义函数判断是否为闰年,并计算相应的月份的日历,在主函数中调用自定义函数实现功能,通过练习可以进一步掌握自定义函数的定义和调用方式!
2.设计不足:程序过于简单,设计思路过于格式化,有待于改进!
五。 程序清单。
#include <>
#include <>
#include <>
#define x " sun mon tue wed thu fri sat"
void menu()
system("cls");
printf("这是程序的菜单!")
printf("你可以选择以下数字运行:")
printf("");
printf("1 通过年-月-日查找。");
printf("2 查找你输入的是否为闰年。");
printf("3 输出你输入那年的日历。");
printf("4 退出。");
printf("输入你的选择:")
int getday(int year,int month,int date)
int flag,s,i;
int a[13]=;
int cont=0;
flag=isleap(year);
if(flag==1)
a[2]++
for(i=1;i
int day(int year)
long a,b;
if(year<=2000)
a=2000-year;
b=6-(a+a/4-a/100+a/400)%7;
return b;
elsea=year-2000;
b=(a+1+(a-1)/4-(a-1)/100+(a-1)/400)%7+6;
return b%7;
void printcalendar(int year)
int i,j,k,m,n,f1,f2,d;
int a[13]=;
printf("the calendar of the year %d.",year);
d=day(year);
if(isleap(year)==1)
a[2]++
for(i=1;i<=12;i+=2)
m=0; n=0; f1=0; f2=0;
switch(i)
case 1:printf(" 一月 1 ")break;
case 3:printf(" 三月 3 ")break;
case 5:printf(" 五月 5 ")break;
case 7:printf(" 七月 7 ")break;
case 9:printf(" 九月 9 ")break;
case 11:printf(" 十一月 11 ")break;
print(21);
switch(i+1)
case 2:printf(" 二月 2 ")break;
case 4:printf(" 四月 4 ")break;
case 6:printf(" 六月 6 ")break;
case 8:printf(" 八楼 8 ")break;
case 10:printf(" 十月 10 ")break;
case 12:printf(" 十二月 12");break;
printf("");
printf(x);
print(6);
printf(x);
printf("");
for(j=0;j<6;j++)
if(j==0)
print(d*4);
for(k=0;k<7-d;k++)
printf("%4d",+m);
print(6);
d+=a[i]%7;
d%=7;print(d*4);
for(k=0;k<7-d;k++)
printf("%4d",+n);
printf("");
elsefor(k=0;k<7;k++)
if(m{printf("%4d",+m);
elseprint(4);
if(m==a[i]) f1=1;
print(6);
for(k=0;k<7;k++)
if(n{printf("%4d",+n);
elseprint(4);
if(n==a[i+1]) f2=1;
printf("");
if(f1&&f2) break;
d+=a[i+1]%7;
d%=7;printf("
for(k=0;k<27;k++)
printf("=
print(6);
printf("
for(k=0;k<27;k++)
printf("=
printf("");
if(i==5)
printf("按任意键继续!")
getch();
system("cls");
void main()
int choice;
int year,month,date;
int day,flag;
char con;
menu();
scanf("%d",&choice);
if(choice==1)
r1:system("cls");
printf("请输入年-月-日(xxxx,xx,xx):"
scanf("%d,%d,%d",&year,&month,&date);
day=getday(year,month,date);
if(day==0)
printf("%d-%d-%d 是周日!",year,month,date);
if(day==1)
printf("%d-%d-%d 是周一!",year,month,date);
if(day==2)
printf("%d-%d-%d 是周二!",year,month,date);
if(day==3)
printf("%d-%d-%d 是周三!",year,month,date);
if(day==4)
printf("%d-%d-%d 是周四!",year,month,date);
if(day==5)
printf("%d-%d-%d 是周五!",year,month,date);
if(day==6)
printf("%d-%d-%d 是周六!",year,month,date);
printf("继续。y/n)")
con=getch();
if((con=='y')|con=='y'))
goto r1;
if((con=='n')|con=='n'))
main();
if(choice==2)
r2:system("cls");
c语言课程设计 万年历
一设计目的。熟练应用c语言设计程序掌握一定的c语言编程能力。二设计原理。1 基本使用了 等头文件中的一些函数。2 使用的函数有 printf.scanf.return.等函数。3 使用的语句有 do while循环语句,switch表达式for循环语句。三功能。1 输入年份,判断是否为闰年2 输入年...
c语言课程设计简易万年历
湖北师范学院信息工程 1203班朱文峰。简易万年历。1 输入年份,判断是否为闰年 2 输入年月日,判断改日为星期几 3 输入年份,打出12个月历,输入月份,打出该月的日历 4 要求用多个函数实现。include include include 每月的天数,闰年二月要加1 int days 12 判断...
C语言课程设计题目万年历
4 学生选修课程系统设计。假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求 如总学分不得少于60 自由选课。试设计一选修课程系统,使之能提供以下功能 系统以菜单方式工作 课程信息录入功能 课程信息用文件保存 输入 课程信息浏...