万年历C语言课程设计报告_c语言课程设计报告

2020-02-27 其他范文 下载本文

万年历C语言课程设计报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言课程设计报告”。

程序实践报告

任务分配:

1、头文件,定义常量,全局变量,自定义函数和打印输出模块。即1~50和140~2902、功能控制模块和一部分日历显示模块,即50~140和290~4003、一部分日历显示模块和键值获取模块,即400~

1、基本思路

功能模块图

本系统包括4个模块,分别是功能控制模块、打印输出模块、日历显示模块和键值获取模块。(1)功能控制模块。该模块用于实现日期有效性检查、判断是否是闰年和返回指定日期对应的星期。

(2)打印输出模块。该模块主要是进行输出显示,包括打印指定个数的空格、打印分隔线、打印用户使用手册、打印当前日期对应的星期以及打印给定的星期。

(3)日历显示模块。该模块是系统的核心模块,是用来显示指定日期所在月份的月历。(4)键值获取模块。该模块接受键盘操作,获取键值,来进行日期调整,并调用日历显示模块中的函数来显示调整后的日历。

日历显示模块

日历显示是系统的核心模块,它控制着日历的生成和显示。其实现流程如图所示。程序输入的是包含年月日(year,month和day)的日期,输出month所在月份的月历,并突出显示day所在的日期和year是否是闰年的标识。程序首先根据year判断其是否是闰年,如果是则需要将该年2月份的天数设置为29天,接着判断day是否超过month所在月份的最大天数,如果超过则显示系统日期所在的月历。然后进行星期输出的判断,如果输出的是该月的第一个星期,则判断该星期中还有几天在本月(如,该月1号是星期五,则表示该月第一个星期中只有两天在本月,星期一到星期四在上月,则星期一到星期四在本月就不输出,仅有空格表示),输出空格。输出完第一周后,接着输出第二到第五(或者六)周,每周7天。在输出过程中,如果遇到了day所在的日期,则突出显示。

键值获取流程图

键值获取实现的是从键盘调整日期并显示调整后的月历。其实现流程如图所示。系统首先判断从键盘输入的值,如果是右移键,表示增加月份。此时,如果当前月份是12月,则增加月份后就进入下一年的一月;如果是左移键,表示减少月份。此时,如果当前月份是1月,则减少月份后就进入上一年的12月;如果是上移键表示增加年份,直接年份加1即可;如果是下移键表示减少奶奶分,直接年份减1即可;如果是向上翻页键表示减小日期。如果是1月1号,则减少日期后进入上一年的12月31号,如果是某一个月的1号,则减小日期后进入上一月的最后一天;如果是向下翻页键表示增加日期。如果是12月31号,则增加日期后进入到下一年的1月1号,如果是某一个月的最后一天,则增加日期后进入到下一个月的第一天;如果是Q/q键表示查询日期,此时将输出提示信息,提示用户输入查询日期。在用户输入查询日期后,系统就爱那个调用日期检查函数对输入日期的合法性进行检测,如果输入日期不合格,则提示错误信息并显示当前系统日期所在月的月历;如果是空格键表示重置,显示当前系统日期所在月的月历;如果是Esc键表示退出系统,按此键后,系统将询问用户是否确定退出,在得到确定回答(用户输入Y/y)后将退出系统。

2、函数功能描述

1)checkDate()函数原型:void checkDate()checkDate()函数用于检查输入日期的合法性,包括检查输入日期中的年、月、日部分。对于

年,检查其是否是负数或者是0;对于月,检查其是否是范围在1~12中的值;对于日,检查其是否是范围在1~31中的值。如果有一个部分不合法,则程序提示用户。2)isLeapyear()函数原型:int isLeapyear(int year)isLeapyear()函数用于判断制定月份是否是闰年。参数year为待判断的年份。3)getWeek()函数原型:int getWeek(int year,int month,int day)getWeek()函数用于计算并返回给定日期对应的星期。其中参数year、month和day都为整型,分别表示输入的年、月和日。4)printSpace()函数原型:void printSpace(int n)printSpace()函数用于输出制定个数的空格。其中整型参数n表示需要输出的空格的个数。5)printSepatator()函数原型:void printSeparator()printSeparator()函数用于在制定位置输出用户使用手册。输出位置在函数中已经设定。7)printWeek()函数原型:void printWeek()printWeek()函数用于输出当前日期对应的星期,即由 currentYear,currentMonth和currentDay确定的日期对应的星期。该函数首先调用getWeek()函数返回当前日期对应的星期。8)printWeek2()函数原型:void printWeek2(int week)printWeek2()函数用于根据制定值输出星期。参数week是一个整型变量,其值可取0到6,分别表示星期一到星期日。8)showCalendar()函数原型:void showCalendar(int year,int month,int day)showCalendar()函数用于显示日历。参数year,month和day分别表示年、月和日。该函数显示year所在年是否是闰年,显示month所在月的月历,突出显示day所在日的日期。

10)getKeyValue()函数原型:void getKeyValue()getKeyValue()函数用于获取键盘的输入。根据键盘的输入(上下移键、左右移键、上下翻页键、Q/q键)调整当前日期,并显示当前日期所在月的月历等。

4、遇到的问题和相应的解决措施

1.dos.h头文件不能在常用的Visual C++里使用。若使用Turbo C,则键入的汉字无法显示,且无法复制粘贴。

解决措施:经过上网查询和询问同学,知道了导致问题的原因,但若把dos.h在visual c++中换成time.h,过程太复杂,很难实现。最后,我们跟同学借了一个win-TC,是C语言程序,且可以使用中文和进行复制粘贴;2.键入程序代码的时候显示“非法字符’?(0xa3)在showCalender函数中”

解决措施:把showCalender函数全部检查一遍也没有找出问题所在,然后咨询老师,经验丰富的老师一眼看出函数中的一个左括号是用拼音输出的,不是英文;3.程序可以运行,但应该只显示一个向下箭头的地方显示了三行,且覆盖了其他的字符。

解决措施:认真的又检查了一遍,发现“指定输出字符为向下的箭头”的函数中,_CX=01,写成了_CH=01;4.万年历需要获取系统时间,不知从何下手。

解决措施:经查阅资料,得知应用:currentYear=sysTime.da_year;

currentMnth=sysTime.da_mon;

currentDay=sysTime.da_day;

5、心得体会

经历了这次课程设计的设计和制作的整个过程,我们才发现我们知识的贫乏和知识面的狭窄,原本以为不就是一个小小的课程设计,小case,很容易就可以搞定,可是到了后来实际的操作的时候可是花费了我们九牛二虎之力,不说其他的,只说时间上面,我们就花费了大把的时间,当然我们也从中体会了很多平时不能收获的东西。经过一个多月的自主上机和三个多星期的大作业编写,我们一队三人的齐心努力,查阅书籍,上网查询等各种途径,完成了这次的大作业编写。其中遇到了很多问题,一一解决的过程让我们学会了很多,当然有很多最初的构想没有实现,这也是我们的遗憾之处。

这次作课程设计我们也是收获很大,我们更深入的体会到团队的重要性,通过自学学到了更多C语言的编译,如插入颜色,读取系统时间等,这会是我们终身的财富。

首先,我们对C语言有了更深的了解,使用起来也更加的熟练,原来有一些不知道和不熟悉的函数,我们学会用了。其次,我们这一次找了不少的资料,找专业的书籍、上网找各方面的资料,也使我们学到了一些书本中学不到的知识,让我们长了见识。同时我们同学之间也互相的探讨,也增进了我们同学之间的感情。这次的万年历设计,虽然我们自己觉的很有的成就感,但是这必竟是我们第一次C语言的课程设计,必然会有很多的不足之处有待改进,相信以后我们一定会做的更好。

同时也感谢老师们的耐心讲解与指导,我们期待下一次可以做的更好!

【程序代码】 /*加载头文件*/ #include #include #include #include #include #include #include

/*定义常量*/ /*左移键*/ #define LEFT 0x4b00 /*右移键*/ #define RIGHT 0x4d00 /*下移键*/ #define DOWN 0x5000 /*上移键*/

#define UP 0x4800 /*向上翻页键*/ #define PAGEUP 0x4900 /*向下翻页键*/ #define PAGEDOWN 0x5100 /*小写字母q*/ #define QLOWER 0x1071 /*大写字母Q*/ #define QUPPER 0x1051 /*空格键*/ #define SPACE 0x3920 /*Esc键*/ #define ESC 0x011b

/*定义全局变量*/ struct date sysTime;int currentYear;int currentMonth;int currentDay;int n_currentMon;int n_lastMon;

/*--------------------------自定义函数-------------------------*/ void checkDate();int isLeapyear(int year);int getWeek(int year,int month,int day);void printSpace(int n);void printSaparator();void printUsage();void printWeek();void printWeek2(int week);void showCalendar(int year,int month,int day);void getKeyValue();

welcome(){ int i, graphdriver,graphmode,size,page;char s[30];graphdriver=DETECT;initgraph(&graphdriver,&graphmode,“”);cleardevice();setbkcolor(BLUE);

setviewport(40,40,600,440,1);setfillstyle(1,2);setcolor(YELLOW);rectangle(1,1,560,400);floodfill(50,50,14);rectangle(20,20,540,380);setfillstyle(1,13);

/*

开图视口

*/ /*

用绿色填画出的矩形框

*/

floodfill(2l,300,14);setcolor(BLACK);settextstyle(1,0,6);/*

用淡洋红色填画出的矩形框

*/ /*

设要显示字符串的字形方向,尺寸

*/ outtextxy(100,60,“Welcom you”);setviewport(100,150,540,380,0);/*

又开一窗口 */ setcolor(14);setfillstyle(1,10);rectangle(20,20,420,120);settextstyle(2,0,9);floodfill(21,100,14);/*

用深蓝色填充

*/ sprintf(s,“Hey girl!Do you want to know?”);

/*

将字符串存到 s 字符数组*/

setcolor(1);settextstyle(10,0,10);/*

设选用字形 4,放大 3 倍,水平设置

*/ outtextxy(110,80,s);

/*

显示 s 字符串

*/ getch();closegraph();} /*功能控制模块*/ /*检查日期有效性函数*/ void checkDate(){ /*如果给定的日期中年份部分为负数或者0*/ if(currentYear

getchar();/*以当前系统时间重新赋值*/ currentYear=sysTime.da_year;currentMonth=sysTime.da_mon;currentDay=sysTime.da_day;} /*如果给定的日期中月份部分为负数,为0或者大于12*/ if(currentMonth>12||currentMonth31||currentDay

/*判断是否是闰年函数*/ int isLeapyear(int year){

/*闰年的判断:(1)year被4整除,并且year不被100整除

或(2)year被4整除,并且被400整除*/

if(year%4==0&&year%100||year%400==0)

return 1;

else

return 0;} /*根据给定日期计算星期函数*/ int getWeek(int year,int month,int day){

int leapFlag;

int week;

int i;

/*该数组用于保存每个月的天数*/

int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int count=0;

/*判断给定年份是否是闰年*/

leapFlag=isLeapyear(year);

/*如果是闰年则2月份的日期应该为29天*/

if(leapFlag==1)

a[2]++;

/*计算从给定年份的1月1日到给定月份的1号之间的天数*/

for(i=1;i

{

count+=a[i];

}

/*计算从给定年份的1月1日到给定日期之间的天数*/

count+=day;

/*计算星期*/

week=(year+1+(year-1)/4+(year-1)/100+(year-1)/400+count)%7;

return week;}

/*打印输出模块*/ /*输出指定个数空格函数*/ void printSpace(int n){

int i;

for(i=0;i

printf(“ ”);}

/*输出分割线函数*/ void printSeparator(){

int i;

for(i=0;i

{

printf(“=”);

}

printf(“n”);}

/*输出使用方法函数*/ void printUsage(){

gotoxy(45,3);

/*设定字体颜色*/

textcolor(YELLOW);

/*送格式化输出至屏幕*/

cprintf(“-----------Usage-----------”);

gotoxy(45,5);

textcolor(YELLOW);

cprintf(“YEAR”);

gotoxy(50,5);

printf(“ Up key()to increase;n”);

gotoxy(50,7);

printf(“ Down key()to decrease.n”);

gotoxy(45,9);

textcolor(YELLOW);

cprintf(“MONTH:”);

gotoxy(50,9);

printf(“ Right key()to increase;n”);

gotoxy(50,11);

printf(“ Left key()to decrease.n”);

gotoxy(45,13);

textcolor(YELLOW);

cprintf(“DAY”);

gotoxy(50,13);

printf(“ PageDown key to increase;n”);

gotoxy(50,15);

printf(“ PageUp key to decrease.n”);

gotoxy(45,17);

textcolor(YELLOW);

cprintf(“QUERY”);

gotoxy(50,17);

printf(“ Q/q keyn”);

textcolor(YELLOW);

gotoxy(45,19);

cprintf(“RESET”);

gotoxy(50,19);

printf(“ SPACE key.n”);

gotoxy(45,21);

textcolor(YELLOW);

cprintf(“EXIT”);

gotoxy(50,21);

printf(“ Esc keyn”);

gotoxy(59,5);

/*设置寄存器,表示在指定位置输出一次指定的字符*/

_CX=01;

_AH=0xa;

/*指定输出字符为向上的箭头*/

_AL=24;

/*产生一次中断,输出向上的箭头*/

geninterrupt(0x10);

gotoxy(61,7);

_CX=01;

_AH=0xa;

/*指定输出字符为向下的箭头*/

_AL=25;

geninterrupt(0x10);

gotoxy(62,9);

_CX=01;

_AH=0xa;

_AL=26;

/*指定输出字符为向右的箭头*/

geninterrupt(0x10);

gotoxy(61,11);

_CX=01;

_AH=0xa;

/*指定输出字符为向左的箭头*/

_AL=27;

geninterrupt(0x10);

/*还原字体颜色*/

textcolor(7);}

/*根据系统日期输出星期函数*/ void printWeek(){

int day;

/*根据日期获得星期*/

day=getWeek(currentYear,currentMonth,currentDay);

textcolor(11);

/*输出星期,0表示星期天,1表示星期一„„6表示星期六*/

if(day==0)

cprintf(“%d-%d-%d,Sunday!”,currentYear,currentMonth,currentDay);

if(day==1)

cprintf(“%d-%d-%d,Monday!”,currentYear,currentMonth,currentDay);

if(day==2)

cprintf(“%d-%d-%d,Tuesday!”,currentYear,currentMonth,currentDay);

if(day==3)

cprintf(“%d-%d-%d,Wednesday!”,currentYear,currentMonth,currentDay);

if(day==4)

cprintf(“%d-%d-%d,Thursday!”,currentYear,currentMonth,currentDay);

if(day==5)

cprintf(“%d-%d-%d,Friday!”,currentYear,currentMonth,currentDay);

if(day==6)

cprintf(“%d-%d-%d,Saterday!”,currentYear,currentMonth,currentDay);

textcolor(7);}

/*输出指定星期函数*/ void printWeek2(int week){

if(week==0)

cprintf(“,Sunday”);

if(week==1)

cprintf(“,Monday”);

if(week==2)

cprintf(“,Tuesday”);

if(week==3)

cprintf(“,Wendesday”);

if(week==4)

cprintf(“,Thursday”);

if(week==5)

cprintf(“,Friday”);

if(week==6)

cprintf(“,Staturday”);}

/*日历显示模块*/ /*显示日历函数*/ void showCalendar(int year,int month,int day){

int i;

int j;

/*输出的日期*/

int outDay;

int leapFlag;

/*本月第一个星期中,在上月的天数*/

int dayLastMon;

int week;

/*该数组用于保存每个月的天数*/

int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

outDay=0;

dayLastMon=0;

week=0;

/*判断给定年份是否是闰年*/

leapFlag=isLeapyear(year);

/*如果是闰年则2月应该是29天*/

if(leapFlag==1)

{

a[2]++;

}

/*如果给定的日期中,天数大于该月的最大天数*/

if(day>a[month])

{

printf(“The number of this month's day is %d at most!n”,a[month]);

printf(“pre any key to continue.....n”);

getchar();

getchar();

/*以当前系统时间重新赋值*/

year=sysTime.da_year;

month=sysTime.da_mon;

day=sysTime.da_day;

currentYear=sysTime.da_year;

currentMonth=sysTime.da_mon;

currentDay=sysTime.da_day;

}

/*当前月的天数*/

n_currentMon=a[month];

/*上一月的天数*/

n_lastMon=a[month-1];

/*根据给定日期,获取给定月份1号的星期*/

week=dayLastMon=getWeek(year,month,1);

/*清除文本模式窗口*/

clrscr();

printf(“nThe calendar of %d:”,year);

textcolor(10);

/*显示给定是否是闰年*/

if(leapFlag==1)

cprintf(“[leap year]”,year);

if(leapFlag==0)

cprintf(“[not leap year]”,year);

printf(“n”);

textcolor(7);

printSeparator();

textcolor(YELLOW);

/*输出月份提示,1~12分别表示1月到12月*/

switch(month)

{

case 1:

cprintf(“January 1”);

break;

case 2:

cprintf(“Fabruary 2”);

break;

case 3:

cprintf(“March 3”);

break;

case 4:

cprintf(“April 4”);

break;

case 5:

cprintf(“May 5”);

break;

case 6:

cprintf(“June 6”);

break;

case 7:

cprintf(“July 7”);

break;

case 8:

cprintf(“August 8”);

break;

case 9:

cprintf(“September 9”);

break;

case 10:

cprintf(“October 10”);

break;

case 11:

cprintf(“November 11”);

break;

case 12:

cprintf(“December 12”);

break;

}

textcolor(7);

printf(“nn”);

textcolor(13);

cprintf(“Sun Mon Tue Wed Thu Fri Sat”);

textcolor(7);

printf(“nn”);

/*因为一个月中最多跨度6个星期,所以循环从0到5*/

for(i=0;i

{

/*如果是该月的第一星期*/

if(i==0)

{

/*第一个星期中还要7-daylastmon天本月,有daylastmon天在上个月,所以输出

daylastmon*4个空格符,每个日期在日历中占用4个空格*/

printSpace(dayLastMon*4);

/*剩余在本月的第一个星期中的天数为7-dayLastmon*/

for(j=0;j

{

/*到达day的前一天时,输出++outDay*/

if(outDay==day-1)

{

/*黄色字体突出显示*/

textcolor(YELLOW);

cprintf(“[%d]”,++outDay);

textcolor(7);

}

/*到达day当天时,并且不是星期天*/

else if(outDay==day&&week!=0)

{

printf(“%3d”,++outDay);

}

/*到达day当天时,并且是星期天*/

else

{

printf(“%4d”,++outDay);

}

/*计算当天的星期,如果前一天时星期六(6),当天时星期天(0),其他情况则直

接星期加1*/

week=(week

}

printf(“nn”);

}

/*如果不是该月的第一个星期*/

else

{

/*则输出该星期中的7天*/

for(j=0;j

{

/*输出的天数小于该月的最大天数*/

if(outDay

{

/*到达day的前一天时,输出++outDay*/

if(outDay==day-1)

{

/*输出一位数字*/

if(outDay

{

textcolor(YELLOW);

cprintf(“[%d]”,++outDay);

textcolor(7);

}

/*输出两位数字*/

else

{

textcolor(YELLOW);

cprintf(“[%2d]”,++outDay);

textcolor(7);

}

}

/*到达day当天时,并且不是星期天*/

else if(outDay==day && week!=0)

{

printf(“%3d”,++outDay);

}

/*到达day当天时,并且是星期天*/

else

{

printf(“%4d”,++outDay);

}

}

/*计算当天星期*/

week=(week

}

printf(“nn”);

if(outDay==a[month])break;} } /*输出分割线*/ printSeparator();

/*输出当前选择的日期和星期*/ printf(“The day you choose is:nn”);printWeek();gotoxy(1,22);textcolor(10);cprintf(“--------------------n”);textcolor(7);

/*输出系统日期和星期*/ printf(“nToday is: %d-%d-%d”,sysTime.da_year,sysTime.da_mon,sysTime.da_day);printWeek2(getWeek(sysTime.da_year,sysTime.da_mon,sysTime.da_day));printf(“nn”);/*显示按键操作*/ printUsage();gotoxy(1,25);}

/*键值获取模块*/ /*通过键盘调整日期函数*/ void getKeyValue()

{ int key;char ch;/*默认显示当前系统日期和星期*/ currentYear=sysTime.da_year;currentMonth=sysTime.da_mon;currentDay=sysTime.da_day;showCalendar(currentYear,currentMonth,currentDay);

while(1){

/*获取键值,根据键值调整日历输出*/

key=bioskey(0);

/*右移键,增加月份*/

if(key==RIGHT)

{

/*月份值在1~12之间,则直接加1*/

if(currentMonth=1)

{

currentMonth++;

}

/*如果月份为12,则加1后进位,即年份加1,月份变为1*/

else

{

currentYear++;

currentMonth=1;

} } /*左移键,减少月份*/ if(key==LEFT){

/*月份值在1~12之间,则直接减1*/

if(currentMonth1)

{

currentMonth--;

}

/*如果月份为1,则减1后,到上一年,月份变为12*/

else

{

currentYear--;

currentMonth=12;

} } /*上移键,增加年份*/

if(key==UP){

currentYear++;} /*下移键,减少年份*/ if(key==DOWN){

currentYear--;} /*上移键,减少天数*/ if(key==PAGEUP){

/*当前日不是该月的第一天,则天数直接减1*/

if(currentDay!=1)

{

currentDay--;

}

/*当前日是该月的第一天,并且是该年的第一个月(即1月1日),则天数减1后,变为上一年的最后一个月的最后一天(即12月31日)*/

else if(currentDay==1 && currentMonth==1)

{

currentYear--;

currentMonth=12;

currentDay=31;

}

/*当前日是该年中某一个月的第一天,则天数减一后,变为上个月的最后一天*/

else

{

currentMonth--;

currentDay=n_lastMon;

} } /*下移键,增加天数*/ if(key==PAGEDOWN){

/*当前日不是该月的最后一天,则天数直接加1*/

if(n_currentMon!=currentDay)

{

currentDay++;

}

/*当前日是该年的最后一天(即12月31日),则天数加1后,变为下一年的第一个月的第一天(即1月1日)*/

else if(n_currentMon==currentDay && currentMonth==12)

{

currentYear++;

currentMonth=1;

currentDay=1;

}

/*当前日是该年中某一个月的最后一天,则天数加1后,变为下个月的第一天*/

else

{

currentMonth++;

currentDay=1;

} }

/*Q或者q键,表示查询指定日期的星期*/ if(key==QLOWER||key==QUPPER){

{

printf(“Input date(eg,%d-%d-%d):”,sysTime.da_year,sysTime.da_mon,sysTime.da_day);

scanf(“%d-%d-%d”,¤tYear,¤tMonth,¤tDay);

checkDate();

}

}

/*空格键,重置到系统日期*/

if(key==SPACE)

{

currentYear=sysTime.da_year;

currentMonth=sysTime.da_mon;

currentDay=sysTime.da_day;

}

/*Esc键退出系统*/

if(key==ESC)

{

printf(“Do you really want to quit?(Y/N)”);

ch=getchar();

if(ch=='y'||ch=='Y')

break;

}

showCalendar(currentYear,currentMonth,currentDay);

} }

void printtext(unsigned char *temp[],int i){

setcolor(4);

/*设置颜色*/

settextstyle(TRIPLEX_FONT,HORIZ_DIR,3);/*设置字符的字体,方向和大小*/

outtextxy(100,40+i*50,temp[i]);

/*在所指定的坐标出显示字符串*/ } /*主函数*/ void main(){

int i,graphdriver,graphmode;

unsigned char *temp[4];

int freq[96]={659,587,659,587,659,494,587,523,440,330,440,494,330,494,523,659,587,659,587,659,494,587,523,440,330,440,494,330,523,494,440,440,494,523,587,659,659,330,699,659,587,587,330,659,587,523,523,330,587,523,494,494};

int dely[96]={50,50,50,50,50,50,50,50,100,50,50,100,50,50,100,50,50,50,50,50,50,50,50,100,50,50,100,50,50,50,50,100,50,50,50,50,100,50,50,50,50,100,50,50,50,50,100,50,50,50,50,100};

graphdriver=DETECT;

graphmode=0;

temp[0]=“Welcome!”;

temp[1]=“Please pre any key to start the music......”;

temp[2]=“Do you like it?”;

temp[3]=“Pre any key to end the music!”;

temp[4]=“Welcome to calendar”;

initgraph(&graphdriver,&graphmode,“”);

/*系统初始化*/

cleardevice();

/*清除屏幕*/

settextjustify(LEFT_TEXT,CENTER_TEXT);

/*设置字符排列方式*/

for(i=0;i

printtext(temp,i);

getch();

for(i=2;i

printtext(temp,i);

i=0;

while(i

{

sound(freq[i]);

/*扬声器根据频率发声*/

delay(1100*dely[i]);

/*声音延时*/

i++;

}

nosound();

/*关闭扬声器*/

printtext(temp,4);

getch();

closegraph();

welcome();

window(1,1,80,25);

textbackground(0);

textcolor(WHITE);

/*清除文本模式窗口*/

clrscr();

/*设置屏幕显示方式*/

_AL=03;

_AH=0;

geninterrupt(0x10);

getdate(&sysTime);

getKeyValue();}

/*关闭图形模式*/

《万年历C语言课程设计报告.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
万年历C语言课程设计报告
点击下载文档
相关专题 c语言课程设计报告 报告 万年历 课程设计 c语言课程设计报告 报告 万年历 课程设计
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文