- 3
- 0
- 约4.77千字
- 约 19页
- 2018-04-21 发布于天津
- 举报
C语言课程设计报告完结版
C
语
言
课
程
设
计
报
告
专业班级:级自动化1班
学生姓名:
学 号:
日 期:1月4日
目 录
一、设计内容设计要求..........2
二、设计思路..................2
三、程序设计流程图............3
直接排序法流程............3
冒泡排序法流程............4
直接查找法流程............5
折半查找法流程............6
程序总体结构..............7
四、设计及调试中所遇到问题及解决办法..........................8
五、体会及收获................9
六、源程序...................10
一、设计内容与设计要求:
1、由键盘输入20个学生(姓名)的某门课程的学习成绩60~99分。
2、将分数由低到高排序(用直接排序法和冒泡法),并显示学生姓名和对应的分数。
3、用线性搜索法检索某个学生的成绩(输入姓名,显示成绩)
4 、 对分搜索法检索某个学生的成绩(输入姓名,显示成绩)
二、设计思路:
本程序要用到直接排序法冒泡排序法还有直接查找法和折半查找法同时还有输入子函数,如果写在一个程序里面会显得比较的混乱,所以要用到函数的调用。先将五个子涵数依次写在主函数前面,然后主函数再根据需要进行调用。同时为了实现在使用一次后能够继续的使用程序查找学生的信息,可以运用一个while循环,在while循环的前面首先定义一个m值,在程序执行一次后如果想继续进行可以用scanf函数输入一个值,通过这个输入的值来决定是否继续执行循环。
另外在运用折半排序法时要先对原来的成绩进行排序,但由于不能调用前面的排序函数,所以要重新排序。
三、设计流程图:
直接排序法流程图
冒泡排序法流程图
直接查找法流程图
折半查找法流程图
总体结构图
四、问题与解决方案:
课程设计是对我们所学知识的一次综合测试,因为课程设计过程中我们会用到很多我们已经学习过的知识,会用到各种循环语句、函数调用、还要将这些语句合理的搭配,所以说,我们要考虑的东西有很多。当然我在程序设计时也遇到了许多问题。
首先就是输入函数中如何控制输入的数值是在规定的范围内,当然我想到了if函数,但是在运行时发现,只有一个if函数,根本无法控制输入的量。于是我又在if函数后面加了一个while函数。因为while是一个当型循环,可以很好的控制程序是继续执行还是跳出循环。在用折半法进行查找时我遇到了很大的麻烦。因为不管我怎么检查也没有发现语法错误,但就是无法找出正确的结果。后来我通过看老师的课件发现折半法是先排序再查找,于是我在程序前面加了一段排序的语句,运行发现果然行了。
子程序做完后我开始进行主函数的调试,我的主函数是通过while函数来实现循环使用的。但是运行时总是不能实现再次使用,检查来检查去也没有发现语法错误。最后只能一句一句的检查,最终发现只是将“==”号打成了“=”,结果造成if语句不起作用。其实在程序设计中只要将各个语句的定义理解清楚,耐心检查用心分析,就一定能解决出现的问题。
五、体会与收获:
程序设计是一件有趣的事,C语言为我们提供了许多的语句,这些语句的搭配方式有很多。所以让我们程序设计人员有很大的发挥空间,可以根据自己的想法创造出很多新颖别致的程序。这次程序设计就给我一次很好的锻炼机会,在一开始的迷茫到最终的成功,这其中我不断地摸索,不仅将以前学的知识复习了一遍,还加深了自己对以前的知识的理解。同时在通过努力思考并解决自己遇到的各种问题时,我熟练使用已学语句的能力得到了提高,这为我以后的继续学习打下了基础。
另外我也认识到C语言程序设计需要细心,比如说这次程序设计过程中,很多错误就是自己不细心造成的。C语言是一个有序的整体,任何一块出了问题都会对整个程序造成影响。在自己平时的训练中要养成良好的习惯,这样在今后的工作中才尽可能的减少错误,减少损失。
六、源程序:
#includestdio.h
void input(int score[5],char name[5]) /*定义输入函数*/
{
int i,j;
printf(请输入学生信息:\n); /*输入学生信息*/
for(i=0;i5;i++)
{
printf(学生姓名:);
scanf(%s,name[i]);
printf(学生成绩:);
scanf(%d,score[i]);
if(score[i]60||score[i]100)
/*通过if函数来控制输入数据的范围*/
printf(您的输入的成绩有误请重新输入:);
原创力文档

文档评论(0)