C语言课程设计报告 组数游戏

发布 2022-10-05 05:12:28 阅读 7986

c语。言。

程。序。设。计。

题目: 组数游戏。

班级序号: 05507120

学号: 20071002806

姓名: 管兵。

指导老师: 刘文中。

c语言是一种编译型程序设计语言,编程设计是学习该语言的一个重要环节。通过温习已学的知识,在上机实践中熟悉c语言的编程环境,进而达到能够编写较复杂程序并将其实际应用的程度。在实际编程中不断地深入学习数据结构、算法、编译原理、操作系统原理、软件工程等知识,加深对c语言的理解,切实提高编程水平,这是c语言课程设计的主要目的。

一、 题目要求。

一)、设计题目:组数游戏。

二)、设计要求。

设计n个正整数(n<=20),将它们连成一排,组成一个最大的多位数。程序输入:n,程序输出:n个数连接成的多位数。

三)、设计思路分析。

比如输入这样五个数123 ,2 ,33, 1006, 12先找出最大的数字的位数为4位数,再将所有的数字后面添加0变成4位数:

然后进行排序:

这样后再奖后面添加的0去掉的序列就是最大的数字:

二、整体设计思路。

三、详细设计。

一)、结构体。

结构体定义输入数组数字的个数,位数,位数变化添加的0的个数。

程序为:#include ""

typedef struct

int num;

int ws;

int z_num;

no; 二)、主函数。

主函数分为位数计算,位数变化,排序,去0操作,输出操作。

程序为:main()

getnum();

fill_zero();

sort();

back();

print();

三)、各功能模块设计。

1、位数计算。

计算出输入数组的每个数的位数,并返回最大的位数值r。

程序为:int getws(int a)

int r=0;

while(a!=0)

r+=1;

a/=10;

return r;

2、添0操作。

把每个数后面都添加0,使所有数都变成r位数。

程序为:void fill_zero()

int i;

for(i=1;i<=n;i++)

for(;dig[i].ws<

dig[i].num*=10;

dig[i].ws+=1;

dig[i].z_num+=1;

3、排序模块。

将添加0后的各数按从大到小的顺序排列。使用冒泡排序法。

程序为:void sort()

int i;

int j;

no t;

for(i=1;i<=n;i++)

for(j=1;j{

if(dig[j].num{

t=dig[j];

dig[j]=dig[j+1];

dig[j+1]=t;

4、去0操作。

将之前在每个数后添加的0去掉。

程序为:void back()

int i;

for(i=1;i<=n;i++)

while(dig[i].z_num>0)dig[i].num/=10;

dig[i].z_num-=1;

5、输出操作。

将得到的数字按序输出。

程序为:void print()

int i;

for(i=1;i<=n;i++)

printf("%d",dig[i].num);

四、总结。通过这几次课我认识到c语言程序虽然有一点难,但它是一种相当实在的应用程序,掌握了对以后的编程有很大的帮助。在编程过程中需要多练习多做题目还要开动脑筋思考问题,能够用最简单的**完成较复杂的程序要求是最理想的。

在本程序设计中遇到的问题比较简单,解决的方法也较简单,最重要的是能够坚持,,问题往往较容易解决。在设计过程中同学们也可以相互讨论共同研究解决问题的方法,集思广益,多练习,多思考。在进行检错的时候要从头开始,不要放过每一个小的环节。

比如说在统计该程序的得分情况中就显示了检查的重要性,不要被一点点的错误迷了。通过这几节课,不仅是让我在这门课上要仔细,在其他方面也要做到细心。

附:源程序如下:

#include ""

typedef struct

int num;

int ws;

int z_num;

no; /结构体*/

no dig[20];

int n;

no max;

int getws(int a)

int r=0;

while(a!=0)

r+=1;

a/=10;

/*计算出每个数的位数*/

return r;

void getnum()

int i=0;

printf("input n:")

scanf("%d",&n);

for(i=1;i<=n;i++)

printf("input the %d number:",i);

scanf("%d",&dig[i].num));

dig[i].ws = getws(dig[i].num);

if(dig[i].num>

max=dig[i];

void fill_zero()

int i;

for(i=1;i<=n;i++)

for(;dig[i].ws<

dig[i].num*=10;

dig[i].ws+=1;

dig[i].z_num+=1;

/*每个数位数加1,z_num加1*/

void sort()

int i;

int j;

no t;

for(i=1;i<=n;i++)

for(j=1;j{

if(dig[j].num{

t=dig[j];

dig[j]=dig[j+1];

dig[j+1]=t;

/*按照冒泡法从大到小排序*/

void back()

int i;

for(i=1;i<=n;i++)

while(dig[i].z_num>0)dig[i].num/=10;

dig[i].z_num-=1;

void print()

int i;

for(i=1;i<=n;i++)

printf("%d",dig[i].num);

main()

getnum();

fill_zero();

sort();

back();

print();

C语言课程设计报告 游戏

东华理工大学。学院 国际教育学院学院 专业 电子信息工程 班级 1420606 学号 201420060638 姓名 钟天运。1 课程设计题目 游戏2048 2 课程设计要求 a 使用c语言编写2048这款游戏。b 能够正常运行,拥有游戏界面。c 能正常进行游戏从开始到结束。d 用户操作方便。3 设...

c语言课程设计报告数独

c语言课程设计报告。设计名称 c语言课程设计 专业班级。姓名。学号。指导教师。实习时间。成绩。目录。一 设计目的 2 二 设计内容 3 三 详细设计说明 4 四 软件使用说明 6 五 设计总结 课程设计心得与体会 8 六 附录1 参考文献 9 七 附录2 部分程序清单 带有较详细的注释 10 八 教...

c语言课程设计报告 课程设计报告

周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...