《软件设计基础-C++》课程设计报告书-分糖果.doc_第1页
《软件设计基础-C++》课程设计报告书-分糖果.doc_第2页
《软件设计基础-C++》课程设计报告书-分糖果.doc_第3页
《软件设计基础-C++》课程设计报告书-分糖果.doc_第4页
《软件设计基础-C++》课程设计报告书-分糖果.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北联合大学2012-2013第2学期 软件设计基础-C+课程设计报告设计名称: 分糖果 姓 名: 学 号: 专业班级: 学 院: 设计时间: 2013-5-25 设计地点: 河北联合大学 指导教师评语:教师评定:自评成绩: 指导教师签字: 年 月 日软件设计基础-C+课程设计报告 第 21 页,共 21 页目 录1.课程设计目的2.课程设计任务与要求3.课程设计说明书4.课程设计成果5.程序调试过程6.设计问题的不足和改进方案7.课程设计心得8.参考文献1课程设计目的软件设计基础-C+课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C+的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C+这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。2课程设计任务与要求:要求:本次课程设计利用软件设计基础-C+课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。要求:1、对系统进行功能需求分析2、设计合理的数据结构和系统框架3、编程简练,程序功能齐全,能正确运行4、说明书、流程图要清楚5、课题完成后必须按要求提交课程设计报告任务:任务:幼儿园有n(20)个孩子围成一圈分糖果,老师先随机地发给每个孩子若干颗糖果,然后按以下规则调整:每个孩子同时将自己手中的糖果分一半给坐在他右边的小朋友;如共有8个孩子,则第1个将原来的一半分给第2个,第2个将原有的一半分给第3个第8个将原来的一半分给第1个,这样的平分动作同时进行;若平分前,某个孩子手中的糖果是奇数颗,则必须从老师那里要一颗,使他的糖果变成偶数。小孩人数和每个小孩的初始数由键盘输入。经过多少次调整,使每个孩子手中的糖果一样多,调整结束时每个孩子有糖果多少颗,在调整过程中老师又新增发了多少颗糖果。(1)应用数组通过判断数组元素是否相等来表示小孩手中的糖果是否相等。(2)利用循环结构,当小孩手中的糖果不等时进行调整循环。3课程设计说明书概要设计模块说明,模块结构图,系统流程图(例N-S流程图)模块说明: 在我设计的程序中一共包括了三个模块分别是输入模块、循环模块、输出模块。输入模块运了数组和for循环语句,循环模块定义了int c1(int kid,int n)和int c2(int kid,int n)两个函数并通过while语句将两者联系起来 ,输出模块通过for语句实现,其中while把三大模块联系了起来。main( )主函数模块结构图: 输入孩子的个数和每个孩子发到的糖果数 While循环语句子函数c1糖是否是奇数每个孩子的糖果是否相等 N N Y子函数c2奇数糖加 Y N糖数相等输出糖数和要的糖数详细设计 总体流程图: 开始初始化数组ai!=ai+1ai%2!=0ai=ai+1ai=ai/2+ai+1/2输出每个孩子得到的糖数和老师添加的糖数结束YNYN各功能模块流程图:开始输入模块:初始化数组结束开始循环模块:开始计算糖果数增加糖果数结束输出模块:输出程序结束4课程设计成果程序源代码#include int c1(int b,int n); /函数声明int c2(int b,int n); /函数声明int yao=0; /定义全局变量void main() int *a,n,i,temp; cout请输入孩子的总数:n; a=new intn; cout请输入每个孩子的糖果数:endl; for(i=0;iai; cout-分发过程-endl; /分发过程while(c2(a,n)!=0) /判断孩子手中的糖果数是否相等temp=an-1; for(i=0;in;i+) ai=ai+1/2+ai/2; /糖果分半 an-1=temp/2+a0/2; for(int i=0;in;i+) coutait; cout-结束-endl; /打印结果for(i=0;in;i+) coutait; coutendl; cout共向老师要了:yao颗糖果。endl; int c1(int b,int n) /函数定义 int ind=0; int i; for(i=0;in;i+) if(bi%2=1)/判断每个孩子的糖果数是否为奇数bi+=1;yao+; ind=1;/奇数的糖果数给老师要一个 return ind; int c2(int b,int n) /函数定义 int i;int ind=0; for(i=1;in;i+) if(c1(b,n)!=0) ind=1; else if(bi-1!=bi) ind=1; /判断孩子手中的糖果数是否相等 return ind; 运行结果5.程序调试过程(1)先是根据题目的提示构造了int c1(int kid,int n)和int c2(int kid,int n) 函数,来判断各小孩手中的糖果是否相等和奇数的糖加1。在if(bi-1!=bi)表示是否,即判断第i个小孩和第i+1个小孩手中糖果是否相等。if(bi%2=1) 即判断第i个小孩手中的糖果是否是奇数。(2)接下来,写void main()主函数,进行一维数组初始化,说明小孩人数8人,并将花括号内的值依次赋给第0个元素、第1个元素、第2个元素,输入每个孩子开始时手中的糖果数。(3)运用while语句,输入计算公式,判断糖果是否平均,并执行相应结果,最后输出每个孩子有糖果多少颗,在调整过程中老师又新增发了多少颗糖果。遇到的问题:n是一个不确定的数,没有办法为它分配内存空间,不能输出。然而利用a=new intn; 就可以解决。6.设计问题的不足和改进方案(1)在函数中套用其他函数有点乱,不太明了;(2)除了while语句还可以试试if语句或switch语句;(3)当输入n为4时,每个孩子得到的糖果数为11、22、33、44时,调试的结果陷入死循环。7.课程设计心得我感觉设计C+在编译程序时碰到错误,不要慌,即使刚开始时系统报了几十个错误也不要担心,我认为这恰是一个机会,因为在逐步的改错中恰能明白自己的错误所在,就能更深刻的理解C+,错误是伴随C+的成长的,我特别喜欢系统报错,因为这样还知道自己设计的程序有错的,然后就是自己翻书,找错误,第一次熟悉程序不能离开课本,课本其实是最具有参考价值的,我们的课本是很好的,熟悉课本是再好不过了。8.参考文献(1)美Walter Savitch著,周靖译,C+面向对象程序设计基础、数据结构与编程思想;(2)李光明主编,Visual C+6.0经典实例大制作;(3)美Nell Dale, Chip Weems, Mark

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论