c语言组数游戏程序设计实习报告.docx

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言组数游戏程序设计实习报告

C程序设计实习报告题目:组数游戏学院:机电学院专业:机械设计制造及自动化姓名:张庆远班级学号:20091002559指导教师:薛思清目录第一章:题目要求1.1:要求1.2:提示第二章:需求分析第三章:概要分析3.1:系统结构图3.2:软件运行开发平台3.3:设计思想第四章:详细设计4.1:主函数4.2:结构体4.3:各功能模块函数4.3.1:输入存储模块4.3.2:位数变化模块4.3.3:排序模块4.3.4:返回原值模块4.3.5:输出模块第五章:测试、结果分析5.1:程序运行5.2:文本文件第六章:总结参考文献附录第一章 题目要求1.1 要求:设有n个正整数(n=20),将它们连成一排,组成一个最大的多位数。并将输入数据添0后的数字、数位、添0个数存入到文件中。程序输入:n,程序输出:n个数连成的多位数。1.2 提示:设计思路:可以将问题这样变化一下:比如输出的是123、2、33、1006、12这样几个数字。先找出最大数字的位数为4位,再将所有的数字变成4位数:1230、2000、3300、1006、1200然后进行排序:3300、2000、1230、1200、1006这样将后面加上的0去掉然后连接起来的数就是最大的多位数。即:332123121006第二章 需求分析根据题目要求,由于需要输入数据添0后的数字、数位、添0个数存入到文件中,所以应提供文件的输入与输出等操作;程序中需要得到最大的多位数,要得到最大数需要进行计算数位、添加0、排序、去0等操作。第三章 概要分析3.1 系统结构图根据题目要求,该系统的结构图如图(3.1)所示:组数游戏系统设计数据输出模块去0操作模块排序模块添0 操作模块数据输入模块添0操作数据存储数据存储数位计算数据输入数图(3.1)3.2 程序开发运行平台程序运行与开发平台:Microsoft Visual c++ 6.03.3 设计思想 根据题目要求,可以将系统分为输入存储、数位变化、排序、去0、输出五个模块,输入模块主要是完成数据的输入,并将数据存储到文件中,数位变化模块主要是将所有的数据全变成位数相同的数,便于比较,排序是重要的步骤,它完成了数字从大到小的排列,为输出做准备,去0操作是将原数值计算出来,输出模块只要将去0操作后的数据顺序输出就可得到题目要求的数值。各个模块之间比较独立,都由主函数一一调用,结构清晰。模块之间主要通过数位变化及添加0的个数相互传递信息,结构严谨。第四章 详细设计4.1 主函数主函数设计要求简洁,能实现各模块功能的调用,它分为数据输入储存、位数计算、位数变化、排序、去0操作、输出操作。它的程序如下,程序流程图如图(4.1.1)所示:main() { input_num(); add_zero(); sort_num(); delete_zero(); printf_num();4.2 结构体输入的数据个数为n,因为输入数据中,每个数据要用到的数字信息有:数字大小、数字位数、将要添加0的个数。这三个信息构成一个整体,故选择使用结构体比较合适。而输入数据中n=20,故可以建立20个结构体ZHANG。结构体程序如下:typedef struct { int num; int digit; int zero;}ZHANG;ZHANG a[20];4.3 各功能模块函数设计4.3.1 输入及存储模块 在结构体中,对程序的数据结构进行了分析与选择,选用结构体,并定义了结构体成员。int num;int digit;int zero;由于n为变量,为了便于其它函数的调用,因此n要在函数外定义。即 int n。输入函数中需要输入数字个数n,然后循环输入每个数字,所以根据以上分析可以得到数据输入程序为:void input_num() { 输入n int i; printf(input n:); inscanf(%d,n); 否for(i=0;in;i++) { 是输入第i+1个数,i++printf(input the %d number:,(i+1)); scanf(%d,(a[i].num));}}图(4.3.1)算法流程图如图(4.3.1)所示为了方便后面计算,输入函数中还要包含计算数据的位数功能,计算数字的位数可以用累除10的方法进行计算。即:While (b[i].num!=0){ r+=1; b[i].num/=10; }return r;为了便于添加0的操作,需要再输入是就先找出最大的数,即数位最长的数。防止函数过于复杂,计算数位的功能可以包含在下述函数中,即: int

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档