1、 高级语言程序设计课程设计高级语言程序设计课程设计 题目: 专 业 计算机 类 班 级 计算机类 1102 学 生 学 号 指导教师 _ 起止时间 2012.2.132012.2.17 2012 年 2 月 目录目录 实验报告实验报告3 必做题:必做题:3 选做题:选做题:8 题目题目 10 10 写一个日历显示程写一个日历显示程序序 .8 流程图: (如下)流程图: (如下) 14 工程代码:工程代码: 19 心得体会心得体会. 24 实验报告实验报告 必做题:必做题: (1) 编一程序对 2 种排序方法进行比较:交换法、选择法、 插入法、 冒泡法四种方法选 2。 具体比较方法是随机生成一组
2、 ( 300 个)的 100 以内的整数数据,用选定的 2种排序方法进行排 序。纪录排序过程中数据比较和交换的次数,输出比较结果。 #include #include int main(void) int a300,b300; int i,j,temp,t; int s=0,p=0,s1=0,p1=0; for(i=0;i300;i+) ai=rand()%100; bi =ai; for(i=0;i299;i+) for(j=i+1;j300;j+) if(aiaj) temp=ai; ai=aj; aj=temp; s+; p+; printf(“%d %dn“,s,p); printf(
3、“n“); for(i=0;i299;i+) t=i; for(j=i+1;j300;j+) if(btbj) t=j; if(t!=i) temp=bi; bi=bt; bt=temp; s1+; p1+; printf(“%d %dn“,s1,p1); return 0; 运行结果:运行结果: 在这个题目中选择了交换法和选择法,首先要产生 300 个随 机数,其次要懂得两种排序法的原理,然后进行编程,同时利 用循环结构。关键在于产生随机数和排序。通过比较发现交换 法的交换次数比选择法少,比较的次数两者一样。 (2 2) 写一个函数 void maxMinAver(int *data, in
4、t *max, int *min,float * ave,int size), 求一组数据的最大值、最小值和 平均值,测试之。其中 data 指向给定数据的数组的指针,max、 min、ave 分别指向最大值、最小值和平均值,size 是数组的大 小。 要求第一个实参是数组,第 2、3、4 个实参都是对普通的简单 变量的某种操作,最后一个实参是数组的大小。测试之 #include void maxMinAver(int *data, int *max, int *min,float * ave,int size); int main(void) int *data,*max,*min,size
5、; float *ave; maxMinAver(data,max,min,ave,size); return 0; void maxMinAver(int *data, int *max, int *min,float * ave,int size) int a10; int b,c,n,j,s=0,temp; float d; data=a; max= min= ave= for(n=0;n10;n+) scanf(“%d“, /交换法排序求最大最小值 for(n=0;n9;n+) for(j=n+1;j10;j+) if(anaj) temp=an; an=aj; aj=temp; b=
6、a0; c=a9; /求平均数 for(n=0;n10;n+) s=s+an; d=(float)s/10; printf(“%d %d %f“,*max,*min,*ave); 这个题目需要利用函数调用, 还要利用指针的间接引用法,设计函数 将最大、最小以及平均值求出来。关键是函数调用。 选做题:选做题: 题目题目 10 10 写一个日历显示程序写一个日历显示程序 基本功能: 1) 输入任一年将显示出该年的所有月份日期,对应的星期 2) 注意闰年情况 其显示格式要求如下: 1)月份:中文英文都可以, 2)下一行显示星期,从周日到周六,中英文都可以 3)下一行开始显示日期从 1 号开始,并按其是周几实