您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 厦门理工学院12级高级语言程序设计课程设计报告
《高级语言程序设计》课程设计报告(2012—2013学年第3学期)题目:专业:班级:姓名学号:指导教师:成绩:2013年7月20日目录一、课程设计的目的与要求………………………………………1二、方案实现与调试……………………………………………22.1掷骰子游戏…………………………………………………22.2射击游戏…………………………………………………32.3汽车加油…………………………………………………42.5金币…………………………………………………………62.6小型图书馆系统…………………………………………7三、课程设计分析与总结…………………………………………9附录程序清单…………………………………………………10-3-二、设计要求根据实验内容的要求自由选定题目。编写程序要求遵循如下基本要求:模块化程序设计锯齿型书写格式必须上机调试通过-4-二、方案实现与调试2.1.1掷骰子游戏•2.1.1题目内容的描述两人玩骰子,游戏规则如下:1)两人轮流掷骰子,每次掷两个,每人最多掷10次。2)第一个人投出的数,第二个人投出的数将每人每次的分值累加计分3)当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4)结束条件:当双方都掷10次或经过5次后一方累计分数为另一方的两倍。最后显示双方分数并判定优胜者。•2.1.2输入数据类型、格式和内容限制和输出数据的说明数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方•2.1.3主要模块的算法描述思路过程:1.随机产生随机数2.进行算法输出数值3.执行条件判断输入结果4.比较结果,判断胜利的一方2.1.4调试过程及实验结果编辑过程中遇到的困难有:1.编程思路不正确,导致只有部分结果满足要求。2.编程过程缺乏改错耐心。实验结果图示如下:-5-2.2射击游戏•2.2.1题目内容的描述在程序运行时屏幕上方第一行随机出现一个符号,要求游戏者输入一个1-80之间的整数,当用户输入一个整数后,一个*立即从屏幕底端的该整数列向上移动,若移动到屏幕的顶端能撞上符号,则游戏者获胜;若没有撞上,则要求再输入一个整数,共允许输入5次,如果一直没有撞上,则认为游戏者输。•2.2.2输入数据类型、格式和内容限制和输出数据的说明System(“cls”);清楚屏幕,•2.2.3主要模块的算法描述清楚屏幕然后循环每行输出*依次循环,判断是否击中目标5次输入结束,或者击中目标结束•2.2.4调试过程及实验结果该题中大体循环是以次数,还是循环的结果作为判断,弄不清楚记录程序执行的结果。-6-2.3汽车加油•2.3.1题目内容的描述一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。输入:第一行有2个正整数N和K(1=N=100,1=K=100),表示汽车加满油后可行驶N公里,且旅途中有K个加油站。接下来的1行中,有K+1个整数,表示第K个加油站与第K-1个加油站之间的距离。第0个加油站表示出发地,汽车已加满油。第K+1个整数表示第K个加油站与目的地的距离。输出:将编程计算出的最少加油次数输出。如果无法到达目的地,则输出NoSolution。(注意:No和Solution之间有一个空格)。•2.3.2输入数据类型、格式和内容限制和输出数据的说明数组类型,循环条件判断•2.3.3主要模块的算法描述按题目格式输入数据;首先进行判断可行驶的路程是否足够汽车到达加油站;如果不能到达,则需要加油,此处记录一次并循环;得出结果;•2.3.4调试过程及实验结果-7-•2.5.1题目内容的描述国王用金币奖励他忠诚的侍从。第一天侍从工作结束后,国王奖励了他一个金币;接着的两天侍从工作中(第二天,第三天)的每一天,国王奖励了他两个金币;接着的三天侍从工作中(第四天,第五天,第六天)的每一天,国王奖励了他三个金币;接着的四天侍从工作中(第七天,第八天,第九天,第十天)的每一天,国王奖励了他四个金币。这种奖励的模式将是固定不变的,即在N天侍从工作中的每一天,国王将奖励他N个金币;接着的N+1天的侍从工作中的每一天,国王将奖励他N+1个金币。要求在给定的天数时,你的程序能够统计国王总共奖励了侍从多少金币。•2.5.2输入数据类型、格式和内容限制和输出数据的说明整型,算法的应用,内容数字的限定;•2.5.3主要模块的算法描述思考数据间的关系;分析天数与获得金币的关系(类金字塔);进行总求和;•2.5.4调试过程及实验结果循环条件的出口判断不明确;求和处理不简约;实验结果图示:-8-2.6小型图书管理系统设计•2.6.1题目内容的描述功能:实现某班级的图书信息管理,图书的基本信息包括书号、书名、作者、单价、数量和简介(50字内)等。•2.6.2系统功能说明1设计简单的菜单,能够进行系统功能选择。2实现信息的录入功能。3在已有信息的基础上添加新的记录。4删除指定书号的记录。5修改指定书号的记录6实现信息的浏览功能7按书号查询功能•2.6.3输入数据类型、格式和内容限制和输出数据的说明结构体:分割成几块分别对其定义,并实现功能;最后实现菜单,执行选择;•2.6.4系统主要模块的算法描述–结构体:分割成几块分别对其定义,并实现功能;最后实现菜单,执行选择;•2.6.5调试过程及实验结果详细记录程序在调试过程中出现的问题及解决方法。记录程序执行的结果。-9-三、课程设计分析与总结学习C语言的过程中,深刻认识到实践是最好的老师,对于一个初学者来说,编程经验好比身边携带的熟悉事物,必须掌握熟悉之后才能有所发挥,有所作为。从实践中的点滴积累起来的,就是所谓的经验,通过不断的上机编程,不但能够几下那些常用的函数和代码,熟悉程序的结构,从而使我们暂时脱离课本的本来编程可能够积累更多的敬仰。提高程序设计能力的一个重要的途径就是学习书上别人编写的程序,从中掌握解决问题的核心方法和关键步骤。只有知道语言的特点和构造后,才能达到自己编写的程度,并在不断的编程过程中学习,提高。-10-附录:源程序清单第一题:#includestdio.h#includestdlib.h#includetime.hvoidmain(){inti,j,k,b,n,m,add1=0,add2=0;srand((unsigned)time(NULL));//生成随机数发生器for(i=1;i11;i++){for(b=1;b60000000;b++);printf(第一个人第%d次投出的数\n,i);j=rand()%6+1;printf(%d\n,j);k=rand()%6+1;printf(%d\n,k);if(k==j==6)add1=add1+8;if(k==j==5||k==j==4||k==j==3||k==j==2||k==j==1)add1=add1+7;-11-elseif(kj)add1=add1+j;elseadd1=add1+k;printf(第二个人第%d次投出的数\n,i);m=rand()%6+1;printf(%d\n,m);//rand()产生随机数n=rand()%6+1;printf(%d\n,n);if(n==6||m==6)add2=add2+8;if(n==m==5||n==m==4||n==m==3||n==m==2||n==m==1)add2=add2+7;elseif(nm)add2=add2+m;elseadd2=add2+n;if(i==6)if(add1==2*add2||add2==2*add1)i=10;}printf(第一个人分值累加计分%d\n,add1);printf(第二个人分值累加计数%d\n,add2);if(add1add2)printf(第一个人胜利);if(add2add1)printf(第二个人胜利);}第二题:-12-#includestdio.h#includestdlib.h#includetime.hvoidmain(){inti,j,n,t,m;longintk;printf(*****************Welcome*****************);printf(\nGameBegin:\n);srand((unsigned)time(NULL));n=rand()%80+1;for(i=0;in;i++)printf();printf(%c\n,'\1');for(m=0;m5;m++){scanf(%d,&t);for(j=10;j0;j--){system(cls);for(i=0;i80;i++){if(i==n)printf(%c,'\1');elseprintf();}for(i=1;ij;i++)printf(\n);for(k=0;k80;k++){-13-if(k==t)printf(*);elseprintf();}for(k=0;k100000;k++);}if(t==n){printf(YourWinner\n);break;}if(m==4)printf(YouLose\n);}}第三题:#includestdio.hvoidmain(){intk,i,n,a,x[999],m=0,o=0;printf(输入:);scanf(%d%d,&n,&k);for(i=0;i=k;i++){scanf(%d,&a);x[i]=a;}for(i=0;i=k;i++){if(nx[i])-14-{printf(NoSolution.\n);break;}elsem=m+x[i];if(nm){o++;m=x[i];}if(i==k)printf(输出:%d\n,o);}}第四题:#includestdio.hvoidmain(){intK,M,i=0;printf(PleaseinputKandM\n);scanf(%d%d,&K,&M);if(2=K&&K=M&&M=1000){while(M0){i++;M=M-1;if(i%K==0)M=M+1;-15-}printf(可用天数%d\n,i);}elseprintf(Inputiserror);}第五题:#includestdio.hvoidmain(){inti,j;intsum=0;printf(Pleaseinputdays\n);scanf(%d,&j);for(i=1;j!=0;i++){if(j=i)sum=sum+i*i,j=j-i;elsesum=sum+j*i,j=0;}printf(得到的金币%d\n,sum);}第六题:#includestdio.h#includestdlib.h-16-intsum=0;structbook{intnum;charname[100];charperson[100];charabout[100];intp;intn;}book[1000];voidnewbook(){inta;system(cls);printf(\n请输入书号:);scanf(%d,&a);if(book[a-1].num!=0){printf(\n该书号已有书\n);getchar();return;-17-}else{printf(\n请输入图书内容:\n);printf(书号:);scanf(%d,&book[a-1].num);printf(书名:);scanf(%s,&book[a-1].name);printf(作者:);scanf(%s,&book[a-1].person);printf(简介:);scanf(%s,&book[a-1].about);printf(单价:);scanf(%s,&book[a-1].p);printf(数量:);scanf(%s,&book[a-1].n);++sum;return;}}voidfind(){
本文标题:厦门理工学院12级高级语言程序设计课程设计报告
链接地址:https://www.777doc.com/doc-2613861 .html