c语言课程设计 万年历

发布 2024-04-04 18:45:09 阅读 8735

计算机程序设计(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 自由选课。试设计一选修课程系统,使之能提供以下功能 系统以菜单方式工作 课程信息录入功能 课程信息用文件保存 输入 课程信息浏...