C语言日历显示课程设计报告含源代码.docx

上传人:b****8 文档编号:29786461 上传时间:2023-07-26 格式:DOCX 页数:16 大小:17.83KB
下载 相关 举报
C语言日历显示课程设计报告含源代码.docx_第1页
第1页 / 共16页
C语言日历显示课程设计报告含源代码.docx_第2页
第2页 / 共16页
C语言日历显示课程设计报告含源代码.docx_第3页
第3页 / 共16页
C语言日历显示课程设计报告含源代码.docx_第4页
第4页 / 共16页
C语言日历显示课程设计报告含源代码.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言日历显示课程设计报告含源代码.docx

《C语言日历显示课程设计报告含源代码.docx》由会员分享,可在线阅读,更多相关《C语言日历显示课程设计报告含源代码.docx(16页珍藏版)》请在冰豆网上搜索。

C语言日历显示课程设计报告含源代码.docx

C语言日历显示课程设计报告含源代码

高级语言程序设计课程设计

题目:

专业计算机类

班级计算机类1102

学生

学号

指导教师_______________

起止时间——

20##2月

实验报告

必做题:

〔1〕编一程序对2种排序方法进行比较:

交换法、选择法、插入法、冒泡法四种方法选2.具体比较方法是随机生成一组〔≥300个〕的100以内的整数数据,用选定的2种排序方法进行排序.纪录排序过程中数据比较和交换的次数,输出比较结果.

#include

#include

intmain

{

inta[300],b[300];

inti,j,temp,t;

ints=0,p=0,s1=0,p1=0;

for

{

a[i]=rand<>%100;

b[i]=a[i];

}

for{

for

{

if

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

s++;

}

p++;

}}

printf<"%d%d\n",s,p>;

printf<"\n">;

for

{

t=i;

for

{

if

t=j;

if

=i>{

temp=b[i];

b[i]=b[t];

b[t]=temp;

s1++;

}

p1++;

}

}

printf<"%d%d\n",s1,p1>;

return0;

}

运行结果:

在这个题目中选择了交换法和选择法,首先要产生300个随机数,其次要懂得两种排序法的原理,然后进行编程,同时利用循环结构.关键在于产生随机数和排序.通过比较发现交换法的交换次数比选择法少,比较的次数两者一样.

〔2〕写一个函数voidmaxMinAver,求一组数据的最大值、最小值和平均值,测试之.其中data指向给定数据的数组的指针,max、min、ave分别指向最大值、最小值和平均值,size是数组的大小.

要求第一个实参是数组,第2、3、4个实参都是对普通的简单变量的某种操作,最后一个实参是数组的大小.测试之

#include

voidmaxMinAver;

intmain

{

int*data,*max,*min,size;

float*ave;

maxMinAver;

return0;

}

voidmaxMinAver

{

inta[10];

intb,c,n,j,s=0,temp;

floatd;

data=a;

max=&b;

min=&c;

ave=&d;

for

{

scanf<"%d",&a[n]>;

}

//交换法排序求最大最小值

for

{

for{

if

{

temp=a[n];

a[n]=a[j];

a[j]=temp;

}

}

}

b=a[0];

c=a[9];

//求平均数

for

{

s=s+a[n];

}

d=s/10;

printf<"%d%d%f",*max,*min,*ave>;

}

这个题目需要利用函数调用,还要利用指针的间接引用法,设计函数将最大、最小以与平均值求出来.关键是函数调用.

选做题:

题目10写一个日历显示程序

基本功能:

1〕.输入任一年将显示出该年的所有月份日期,对应的星期

2〕.注意闰年情况

其显示格式要求如下:

1〕月份:

中文英文都可以,

2〕下一行显示星期,从周日到周六,中英文都可以

3〕下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐

当输入2004显示如下:

Inputtheyear:

2004

Inputthefilename:

a

Thecalendaroftheyear2004.

Januray1February2

SunMonTueWedThuFriSatSunMonTueWedThuFriSat

1231234567

45678910891011121314

1112131415161715161718192021

1819202122232422232425262728

2526272829303129

======================================================

March3April4

SunMonTueWedThuFriSatSunMonTueWedThuFriSat

123456123

7891011121345678910

1415161718192011121314151617

2122232425262718192021222324

28293031252627282930

======================================================

#include

intyear;

intriqi;

intxinqi;

voiddayin;

intmain

{

intn,s;

intm,,##;

printf<"Inputtheyear:

">;

scanf<"%d",&n>;

s=year;

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};

intb[12]={31,s,31,30,31,30,31,31,30,31,30,31};

//printf<"%d",b[1]>;

charc[]="sunmontuewedthrfrisat";

printf<"Thecalendaroftheyear%d\n",n>;

m=riqi;

//printf<"%d\n",m>;

dayin;

return0;

}

//判断输入的那一年是否是闰年

intyear

{

if

=0>

{

return28;

}

if

{

if

{

if

{

return29;

}

return28;

}

return29;

}

}

//求输入那一年的1月1日式星期几

/*参照1997年1月1日*/

intriqi

{

intd;

intdays=*365;

inti=/4;

days=days+i*1;

/*1997年1月1日是星期三*/

d=days%7+1;

d=%7;

ifd=7;

returnd;

}

//从2月开始到12月每个月份的的1号是星期几

intxinqi

{

intss;

intqi;

intb[12]={31,28,31,30,31,30,31,31,30,31,30,31};

ss=year;

b[1]=ss;

qi=+1>%7;

returnqi;

}

voiddayin

{

inti,r,v,##,j,;

for

{

printf<"%d\n",a[i]>;

printf<"%s\n",c>;

if{

if

m=0;

for<##=0;##<3*m+m*1;##++>

{

printf<"">;

}

printf<"1">;

for{

printf<"%4d",r>;

}

printf<"\n">;

}

else

{

=xinqi;

m=;

//printf<"%d\\\\\\\\",m>;

for<##=0;##<3*m+m*1;##++>

{

printf<"">;

}

printf<"1">;

for

{

printf<"%4d",r>;

}

printf<"\n">;

}

for

{

printf<"%-4d",j>;

if

printf<"\n">;}

printf<"\n==========================">;

printf<"\n">;

}

}

运行结果:

这个程序要求输入任意年能打印出该年的一月到十二月的日历表;因此需要年份,月份,日期;但如上程序是以1997的1月1日〔星期三〕为参照,因此只能查询1997年以后的年份日历<包括1997年>.

流程图:

〔如下〕

主流程图:

分层流程图:

模块流程图:

dayin:

year:

xinqi:

工程代码:

1.main.c:

#include

#include"li.h"

intmain

{

intn,s;

intm,,##;

printf<"Inputtheyear:

">;

scanf<"%d",&n>;

s=year;

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};

intb[12]={31,s,31,30,31,30,31,31,30,31,30,31};

//printf<"%d",b[1]>;

charc[]="sunmontuewedthrfrisat";

printf<"Thecalendaroftheyear%d\n",n>;

m=riqi;

//printf<"%d\n",m>;

dayin;

return0;

}

2.ri.c:

//判断输入的那一年是否是闰年

intyear

{

if

=0>

{

return28;

}

if

{

if

{

if

{

return29;

}

return28;

}

return29;

}

}

//求输入那一年的1月1日式星期几

/*参照1997年1月1日*/

intriqi

{

intd;

intdays=*365;

inti=/4;

days=days+i*1;

/*1997年1月1日是星期三*/

d=days%7+1;

d=%7;

ifd=7;

returnd;

}

//从2月开始到12月每个月份的的1号是星期几

intxinqi

{

intss;

intqi;

intb[12]={31,28,31,30,31,30,31,31,30,31,30,31};

ss=year;

b[1]=ss;

qi=+1>%7;

returnqi;

}

//打印日历

voiddayin

{

inti,r,v,##,j,;

for

{

printf<"%d\n",a[i]>;

printf<"%s\n",c>;

if{

if

m=0;

for<##=0;##<3*m+m*1;##++>

{

printf<"">;

}

printf<"1">;

for{

printf<"%4d",r>;

}

printf<"\n">;

}

else

{

=xinqi;

m=;

//printf<"%d\\\\\\\\",m>;

for<##=0;##<3*m+m*1;##++>

{

printf<"">;

}

printf<"1">;

for

{

printf<"%4d",r>;

}

printf<"\n">;

}

for

{

printf<"%-4d",j>;

if

printf<"\n">;

}

printf<"\n==========================">;

printf<"\n">;

}

}

3.li.h:

#ifndefLI_H

#defineLI_H

intyear;

intriqi;

intxinqi;

voiddayin;

#endif

心得体会

编写一个程序之前首先要分析它,知道它的功能,要做什么等等,如何实现它,需要我们认真的思考,分析.对于较复杂的程序可以分模块把它逐一实现.编写程序的过程中,我们需要耐心,细心,信心.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1