图3-3 歌德巴赫猜想及守形数的运行结果图
4.百钱百鸡问题
编写程序解决百钱买百鸡问题:公鸡5元/只,母鸡3元/只,小鸡一元买3只,用100元买100只鸡,问有哪些购买方案?
图3-4 百钱百鸡问题的运行结果图
实验四 常用统计算法
1.成绩统计
利用文本框作为数据的输入和输出,产生数学、语文、英语、计算机等4门课程的成绩(数学为自己学号后3位的平方根,再乘以3~9之间的随机数;其他课程的成绩为0-100间随机数),然后按下列要求完成:
1) 2) 3)
各文本框只显示数据,不能修改;
计算它们的总成绩、平均成绩,并根据平均成绩计算其等级。 判断是否获奖。获奖条件:(1)总分超过360分;(2)各门课程成绩均在88分以上;(3)前三门课成绩在95分以上,后一门成绩在80分以上。
还可以统计成绩中的最高分、最低分等,学生根据自己的熟练程度加以补充。 运行效果如图2-1。
图4-1成绩统计的运行结果图
2.字符统计
分类统计是经常遇到的问题,是将一批数据按分类条件统计每一类中包含的个数。例如:将学生的成绩按优秀、良好、中等、及格、不及格五等统计各等级的人数;职工工资按职称进行统计;统计一篇英文中各个字母的个数等。
实验:随机产生200个“32到自己学号后3位”且小于128的随机数,将其转换成相应字符,形成一段统计字符。统计字符中各个字母、各数字、空格、其它字符的个数。按图2-2的结果进行输出。实验可以根据学生情况进行调整或补充,如统计各种标点符号的数目、或只统计字符个数、数字个数等。
图4-2 字符统计的运行结果图
实验五 常用排序方法
(至少完成2个设计)
1.选择法排序
选择法排序是最为简单且易理解的算法,其基本思想是每次将最小(或最大)的数找出来放在序列的最前面。假设按递增法将有n个数的数组A(1To n)进行排列,步骤为:
(1)假定最小值Temp,将Temp与A(2)进行比较,若A(2)
(2)对除第1个数外的其余n-1个数再按步骤(1)的方法选出次小的数 ,与第2个数交换位置。
(3)依次类推,经过n-1遍后构成递增序列。 若要按递减次序排列,只要每次选最大的数即可。
编写程序:随机产生10个“学号后3位到500之间”的数,用选择法进行递增排序。(注意:第1个数、第5个数必须是自己学号后3位)
图5-1选择法排序的运行结果图
2.冒泡法排序
冒泡排序是常用的一种排序方法。假设n个元素按递增的顺序排序 第一轮:从数组的第一项开始,每一项(i)都与下一项(i+1)进行比较。如果下一项的值较小,就将这两项的位置交换,直到最后第n-1与第n项进行比较,将最小的数排列在最前。
第二轮:从数组的第二项开始,每一项都与下一项进行比较。如果下一项的值较小,就将这两项的位置交换,直到最后,将次最小的数排列在第二项。
以此类推,直到n-1项与第n项进行比较交换,完成递增法排序。
实验: 随机产生10个“50到学号后3位之间”的数,然后用冒泡法按递增的顺序进行排序。(注意:第2个数、第9个数必须是自己学号后3位)
图5-2 冒泡法排序的运行结果图
3. 二维数组排序
二维数组排序方法是:先将二维数组的元素放到一维数组中,用上述的方法将一维数组排序,排序后再将一维数组转化为二维数组。
实验:随机产生“10到学号后3位之间”的数,形成一个4*5 的二维数组,按升序排列。
图5-3 二维数组排序的运行结果图
实验六 加密解密与数制转换
1.数据加密与解密
简单数据加密解密的实现方法是:将字母和数字采用后移N位来实现。
编写程序:根据产生的后移位数(按自己学号后3位 MOD 26确定),输入字符串包括“自己学号和姓名汉语拼音”,然后将输入的字符进行加密和解密。
图6-1 简单数据加密解密的运行结果图
2.数制转换