C语言日历显示课程设计报告含源代码.docx
- 文档编号:29786461
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:16
- 大小:17.83KB
C语言日历显示课程设计报告含源代码.docx
《C语言日历显示课程设计报告含源代码.docx》由会员分享,可在线阅读,更多相关《C语言日历显示课程设计报告含源代码.docx(16页珍藏版)》请在冰豆网上搜索。
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
{
{
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 要求第一个实参是数组,第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 { temp=a[n]; a[n]=a[j]; a[j]=temp; } } } b=a[0]; c=a[9]; //求平均数 for { s=s+a[n]; } d= 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= inti= days=days+i*1; /*1997年1月1日是星期三*/ d=days%7+1; d= if 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= inti= days=days+i*1; /*1997年1月1日是星期三*/ d=days%7+1; d= if 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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 日历 显示 课程设计 报告 源代码