计算机基础综合实验(2)任务书
一、综合实验目的
C语言程序设计是本科工科类各专业的重要基础课,主要学习程序设计的基本概念和方法,通过本门课程学习,使学生掌握C语言的基本原理,熟练掌握程序设计的基础知识、基本概念;掌握程序设计的思想和编程技巧。
综合实验是在学生已经具备了使用C语言编写简单的应用程序的能力,为使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,通过提出算法、指定输入输出来设计一个解决方案。并为参加计算机等级考试做准备。
二、综合实验的基本内容和要求
参加综合实验的学生,应当认真完成综合实验的全部内容。最终提交综合实验成果来证明其独立完成各种实际任务的能力。从而反映出理解和运用本课程知识的水平和能力。具体如下:
1、代码编写规范,形成良好的编程习惯;
2、程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。
3、提交综合实验报告电子稿、装订的打印稿。综合实验报告内容包括以下几个方面:
● 程序的总体设计和算法分析。
● 程序流程图、函数说明
● 源程序代码清单
● 测试数据和测试过程记录
● 遇到的问题及解决方法分析
● 综合实验小结
4. 程序运行方式
构建一个简易菜单,形如:
用户通过输入数值选择所需运行的子程序,当一个子程序运行结束后回到菜单界面,直至用户输入0后退出程序。
三、综合实验的进度安排
熟悉指针、结构体、文件内容 1天
整体设计和详细设计、编代码 1天
编代码、调试和测试 1天
综合实验报告书写 1天
演示软件 1天
四、综合实验的考核
评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的综合实验报告,严格检查以下各项任务完成情况:
1、设计文档中要求项目是否齐全。
2、程序中运行时的屏幕提示信息是否准确:
如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。
3、问题和任务的陈述(描述问题,而且问题是合理原始的、应当包括输入、输出及其预期范围)是否正确。
问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪代码,把整个解决方案划分成若干模块。
5、程序完成后的代码应当加以注解。最少应清楚指出每一个模块。
6、用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。
7、程序的技术文档
程序代码注解得好,文档也可以是简要的,但是必须包含所用变量的全体清单。
8、程序顺利运行,结果正确;测试程序是否工作且满足设计指标并评价其效率。
五、指导书和参考资料
《C程序设计教程与实验》 吉顺如主编 清华大学出版社
《C程序设计思想与方法》 尹宝林编著 机械工业出版社
六、其他
综合实验选题参考,见附件
综合实验选题
每人至少做5题,题目如下(每人的题目由任课老师安排)
(1)编写一个程序实现如下功能:一个整型数组有10个元素,删除所有值为n的元素。要求:
① 主函数完成n的输入,数组元素输入以及删除后数组元素的输出。
② 删除功能用子函数完成。
(2)编写一个程序实现如下功能:输入10个学生5门课程的成绩,分别用函数求:①每个学生的平均分;②每门课程的平均分;③出最高的分数所对应的学生和课程。
若输入2个学生的成绩,其运行结果如下图所示。
(3)编写一个程序实现如下功能:最长的单词。设输入的英文短文不超过一行(假设正文最后有“.”结束,以“,”或空格分隔,不出现其他符号),编程将所有单词输出,并求其中最长单词的长度,并将该单词输出。
(4)编写一个程序实现如下功能:有8位裁判为1个运动员打分,请计算并输出去掉一个最高分和一个最低分后这个运动员的平均得分以及所评分最接近平均分的裁判员号。裁判员号及其所打分数从键盘输入,假设裁判员号为整数,所打分数为实数。
(5)编写一个程序实现如下功能:从键盘输入字符(最多为80个),遇到回车键输入结束,将输入的字符串按奇偶位置拆分,奇数位上的字符在前,偶数位上的字符在后,重新组成新的字符串输出,例如输入: ab12cd3456fg,则经过程序处理后输出: a1c35fb2d46g 。
(6)功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例):
1)输入n和n个成绩(成绩为浮点数类型,数组名记为a,假设1≤n≤50);
2)计算并输出成绩的累加和(记为sum)与平均成绩(记为ave),将≥ave的成绩归为A档,将<ave的成绩归为B档;
3)分别统计A、B两档的人数,计算在总人数中的比率;
4)求出A档学生的最低分和B档学生的最高分,它们与平均成绩的差值;
运行示例:
输入:9 55.5 99.5 50.0 90.0 88 59.5 48 60 78.0
输出:
Sum=628.5, Ave=69.8
A: 4,44.4% B: 5,55.6%
MinA: 78.0,+8.2 MaxB: 60.0,-9.8
说明:输入的第1个数表示学生人数(n=9),接着输入的9个成绩中,累加和为628.5(所有小数均保留一位小数输出),平均分为69.8分;平均分以上(A档)有4人,占44.4%,平均分以下(B档)有5人,占55.6%;A档的最低分为78分,超出平均分8.2分,B档的最高分为60分,距离平均分还有9.8分的差距。
(7)功能说明:编写程序,通过以下步骤验证一个正整数对是否符合特定的编码规则:
1)输入正整数a与b;
2)计算a的所有不同的质因子(包括1)之积,记为s;
3)如果s等于b,则通过验证,输出“OK”,否则输出“Err”。
输出格式参见以下示例。
运行示例1:
输入:588 42
输出:588: 1*2*3*7=42, OK
说明:输入数为588(对应a)和42(对应b),588的质因子为1、2、3和7,其累乘结果为42(对应s),由s等于b(均为42),输出OK。
运行示例2:
输入:17 55
输出:17: 1*17=17, Err(17!=55)
说明:编写函数其功能是计算一个字符串质因子为1和17,乘积仍为17,不等于b(55),输出Err,及不通过原因“(17!=55)”。
(8)编写一个程序实现如下功能:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。
例:若程序执行时,输入字符串为:Shanghai Dianji University,从键盘上输入字符:s,则输出后变为:Shanghai Dianji Univerity,如果输入的字符串不存在,则字符串照原样输出。
(9)编写一个函数void fun(char a[],int k,int n),其功能是:删除字符串中指定下标开始的n 个字符。其中,a中放字符串,k中存放指定的下标。
例如,字符串内容为:Hellollo World!,k中值为:5,n中的值为:3,则调用该函数的结果为:Hello World!。
(10)编写一个程序实现如下功能:调用名为tj的函数,求一个二维数组中正数、负数的代数和,以及零的个数。
(11)编写一个程序实现如下功能:调用一个名为gm的函数,该函数实现简单的加密。加密方法如下:先定义一张字母加密对照表:
原字母 a b c d e i k , w
加密后字母 d w k , i a b c e
将需要加密的一行文字输入加密程序,程序根据加密表中的对应关系,可以简单地将输入的文字加密输出,对于表中未出现的字符则不加密。
运行示例:
输入:lajgdike,w
输出:ldjg,abice
(12)编写程序验证以下说法:输入一个4位数,该数个、十、百、千位上的数互不相等,由个、十、百、千位上的数组成一个最大数和一个最小数,最大数-最小数,构成一个新的4位数。反复以上运算,使其最终结果为:6174。
要求如下(下面的函数名为建议函数名):
① 用函数 int IsNumberEqual(int number) 检查输入的整数number各数码是否互不相等,全相等返回值为1否则为0;
② 用函数(void ntos (int number, int c[]) )把四位数整数number各位数码分别存入数组c
③ 用函数( void sort (int a[ ] )对4个元素的数组a排序(升序或降序都可以);
④ 由输入整数分解排序后的数组得到最大值和最小值:
int getmaxn(int a[ ]) 返回值为最大值
int getminn(int b[ ]) 返回值为最小值
(13)函数 fun 的功能是:计算正整数num的各位上的数字之积。例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。
(14)函数 fun 的功能是:用插入排序法将n个字符进行排序(降序)。(提示: 插入法排序的思路是:先对数组的头两个元素进行排序, 然后根据前两个元素的情况插入第三个元素,再插入第四个元素…)。
(15)爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,则最后剩下1阶,若每步跨3阶,则最后剩下2阶,若每步跨5阶,则最后剩下4阶,若每步跨6阶,则最后剩下5阶,只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶?
(16)猜数游戏
在这个实验中,我们将尝试编写一个猜数游戏程序,这个程序看上去有些难度,但是如果按下列要求循序渐进地编程实现,会发现其实这个程序是很容易实现的。那么,现在就开始吧,先编写第1个程序,然后试着在第1个程序的基础上编写第2个程序,……
程序1 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则计算机给出提示“Right!”,否则提示“Wrong!”,并告诉人所猜的数是大(Too high)还是小(Too low),然后结束游戏。要求每次运行程序时机器所“想”的数不能都一样。
程序2 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论