C语言论文.docx

上传人:b****4 文档编号:24159977 上传时间:2023-05-24 格式:DOCX 页数:21 大小:124.30KB
下载 相关 举报
C语言论文.docx_第1页
第1页 / 共21页
C语言论文.docx_第2页
第2页 / 共21页
C语言论文.docx_第3页
第3页 / 共21页
C语言论文.docx_第4页
第4页 / 共21页
C语言论文.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言论文.docx

《C语言论文.docx》由会员分享,可在线阅读,更多相关《C语言论文.docx(21页珍藏版)》请在冰豆网上搜索。

C语言论文.docx

C语言论文

江苏技术师范学院

继续教育学院

毕业设计(论文)

题目

C语言程序设计之三位猜数小游戏

专业

计算机信息管理

姓名

王迎亚

学号

01035246

指导教师

周宗丽

起讫日期

2012年3月——2012年7月

 

2012年7月1日

 

目录

摘要1

第一章绪论2

第二章或系统分析4

2.1设计要求4

2.2设计过程4

2.3程序流程图5

2.4游戏说明6

第三章总体设计与详细设计7

3.1查阅资料7

3.2程序设计10

第四章调试与测试13

第五章总结与心得17

附录18

1.源程序18

2.参考文献21

 

摘要

C语言是一种计算机程序设计语言。

它既有高级语言的特点,又具有汇编语言的特点。

它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

因此,它的应用范围广泛。

C语言在很多方面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。

具体应用比如我是学硬件的,单片机以及嵌入式系统都可以用C来开发。

C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。

许多著名的系统软件,如DBASEⅢPLUS、DBASEⅣ都是由C语言编写的。

用C语言加上一些汇编语言子程序,就更能显示C语言的优势了,像PC-DOS、WORDSTAR等就是用这种方法编写的。

本程序就是设计一个猜数字游戏的程序,这个程序凸显了c语言中Random()函数的好处,通过系统不断给游戏者的提示,你可以猜出正确的数字。

关键词:

猜数游戏、循环、数组、猜数字、Random()

 

第一章绪论

移动网络由单纯地传递和交换信息,逐步向存储和处理信息的智能化发展,移动智能网由此而生。

移动智能网是在移动网络中引人智能网功能实体,以完成对移动呼叫的智能控制的一种网络,是一种开放性的智能平台,它使电信业务经营者能够方便、快速、经济、有效地提供客户所需的各类电信新通讯需求的不断增长以及新技术在移动通信中的广泛应用,促使移动网络得到了迅速发业务,使客户对网络有更强的控制功能,能够方便灵活地获取所需的信息。

移动智能网通过把交换与业务分离,建立集中的业务控制点和数据库,进而进一步建立集中的业务管理系统和业务生成环境来达到上述目标。

通过智能网,运营公司可以最优地利用其网络,加快新业务的生成;可以根据客户的需要来设计业务,向其他业务提供者开放网络,增加收益。

课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,不仅能够锻炼学生的分析解决实际问题的能力、提高学生适应实际环境和实践编程的能力,也能培养学生独立、探索的能力,同时也是对学生所学理论知识和基木技能的全面考核。

C语言课程设计是一门实践性非常强的课程,不但要注重C语言程序设计基本知识的学习,更要注重程序设计技能的培养,使学生能够循序渐进地把握C语言程序设计的技能。

通过课程设计,培养学生阅读和编写程序的能力,培养计算机程序设计的能力和素质,以及思维方法。

初步积累编程经验,打下良好的计算机应用基础。

C语言是一门实践性很强的编程语言,我们通过理论课的学习,已经对其有了一定的理解和掌握,并且能够编写一些简单的小程序,但是还是缺乏系统的应用实践。

而这次课程设计,正好给了我们这样一个机会,即:

1.通过本环节的充分编程实践和实际应用,进一步熟悉和巩固C语言语法知识和程序设计的基本方法;

2.利用适当形式的命题,了解结构化程序设计的方法,培养自顶而下、逐步细化的编程思维方式;

3.通过一定的文档要求,培养学生良好的程序设计风格,包括程序结构形式,行文格式和程序正文格式等。

在进行课程设计之前,对我们提出了以下几点要求:

通过本次课程设计,能较好的巩固C语言的相关语法知识和程序设计的编写和阅读能力,让我们把所学到的东西溶入到实际运用当中,能够在自主设计的过程中,不断的提高我们的编程技能和独立思考问题的能力,为后续的学习打下结实的基础!

此课程设计是设计一个猜数字游戏程序。

虽然这种游戏规则简单,但可以考验人的严谨和耐心。

猜数游戏是一个非常流行的益智类游戏,它不仅能娱乐,还能在娱乐中锻炼人的反应能力、逻辑思维能力,是一款寓教于乐的小游戏。

其原理是对于随机给出的一个三位数,各位上的数字不重复,从0到9,输入三位数,按1或2提示进行猜数,其中1代表你本次猜对了相应的数字,但是位置不正确,2代表你本次猜对了数字并且位置也正确。

本次设计主要运用了循环、数组、随机数函数等,随机数的产生与存储,两个数的比较,以及对比较结果的判断。

如果你玩过猜数字你应该知道,此程序设计的这个游戏是随机给出三位0至9(包括0和9)之间的数字,然后让你猜是什么数字。

你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。

经过几次猜测与提示后,最终推出答案。

 

第二章或系统分析

2.1设计要求

1)给用户一定的提示信息,以便游戏者根据信息来进行下一次的猜数游戏。

2)随机给出的一个三位数,各位上的数字不可以重复,从0到9,每一位进行比较。

2.2设计过程

本次设计主要运用了循环、数组、随机数等语句。

开始运用了随机数的出现,实现了随机的3位数出现,而且运用了For循环和While循环、Break语句,实现了数字重复出现。

以下是我设计此款游戏的大概轮廓:

第一步:

随机数的产生

我们可以借助c提供的Random()函数来产生一个三位随机数,每一位都不相同,产生的随机数用数组保存起来。

第二步:

拆分数字

将三位不同的数进行拆分,每一位都与用户输入的数字进行比较,如果错误系统给出提示错误,继续猜数,如果用户猜对了其中的一位,标记出这一位数的相关信息,其中包括数字和位置都是否正确,以便准确猜出正确的三位数字。

第三步:

退出

如果用户猜错,系统会提示错误,并且继续猜数,直到猜对为止。

如果用户猜对了这三位数,系统会告诉用户获得胜利,并且再结果显示5秒后返回到程序编辑窗口。

 

2.3程序流程图

 

相同

 

不同

 

2.4游戏说明

1)系统随机产生一位不重复的N(N为3)位数字。

2)游戏者输入所猜的不重复数字,并按回车提交。

提交的数据数应与N的大小一致,当数据位数不是N位时,系统返回错误信息。

3)系统将提交的数与它自动产生的数进行比较,输出结果有这么几种情况一种情况是数字的某一位正确返回“1”,另一种情况是数字正确但位置不正确。

系统返回“2”,以上两种情况都没有(也就是用户输入的数顺序和数字都不对)返回“0”最后,通过提示输入的数字正确相应位置也正确,系统返回“youwin!

”。

 

第三章总体设计与详细设计

3.1查阅资料

1.头部文件

文件名称:

record.h

功能:

声明函数原型,包含文件及自定义宏和数据结构。

要求:

报告是否能正常打开文件执行操作。

2.设置游戏等级函数

函数原型:

voidGame_rank(void)

功能:

可由游戏者自行设置游戏等级

参数:

void

返回值:

void

要求:

如果游戏者没有进行等级设定,则默认初级进行游戏。

3.输出游戏说明函数

函数原型:

voidGame_explain()

功能:

输出游戏规则说明

参数:

void

返回值:

void

要求:

说明游戏相应的按键,保证游戏者按照说明。

4.记录最高分函数:

函数原型:

voidTiptop_register(int)

功能:

把从Get_player函数得到的游戏者信息和游戏的积分信息一同保存到指定路径的Tiptop_register.dat文件中

参数:

intS;S为游戏积分

返回值:

void

要求:

要求把Tiptop1.txt(初级最高分)Tiptop2.txt(中级最高分)Tiptop3.txt(高级最高分)原来有的信息替换为现在的信息,并且只有积分大于原有信息的第十名,才会被以替换的方式记录;并且是降序的方式排列的。

5.输出最佳排行函数:

函数原型:

voidTiptop_out()

功能:

输出最佳排行信息

参数:

void

返回值:

void

要求:

没有信息的时候输出提示,有信息时按降序排列输出全部信息。

6.开始游戏中心函数

函数原型:

voidGame_main()

功能:

调用Time_control、Build_number等函数,进行游戏的整体控制参数:

void

返回值:

void

要求:

注意函数的完整性,保证游戏顺利进行,注意没有设置等级时候,默认C=1!

7.获取系统随机数字函数

函数原型:

int*Build_number()

功能:

系统调用文件,利用srand((unsigned)time(&)产生1个N位随机数字,供游戏者猜测

参数:

void

返回值:

int8=*i:

指向产生的随机数字构成的数组的指针

要求:

产生的数字是随机的,并且是不重复的,总共产生N(依据游戏等级而定)位数字,组成数组[初级为3个数字]。

8.获取游戏者游戏数据和输出游戏进程结果函数

函数原型:

voidCourse_in_out()

功能:

把游戏者猜的数据读入内存,并且分析得出结果,并输出结果

参数:

void

返回值:

void

要求:

用A或B的代码表示本次的结果,其中A表示数值对位置也对,B表示数值对,但位置错了!

每次得到游戏者的猜测数据都要分析得出结果并输出结果,以便游戏者的下一次猜测。

9.时间控制函数

函数原型:

intTime_control()

功能:

利用文件,得到玩游戏的总时间,计算游戏积分。

参数:

void

返回值:

intTime:

游戏前后的时间差异

要求:

得到的时间是以秒为单位,数据是整型数据。

10.游戏结果处理输出函数

函数原型:

voidGame_result(intm)

功能:

计算,得出最后游戏积分

参数:

intm:

整个游戏的时间

返回值:

void

要求:

按照游戏等级,设置不同的游戏积分方式。

11.主函数:

函数原型:

voidmain()

功能:

调用各个子函数,实现整体程序的运行

参数:

void

返回值:

void

要求:

控制整个游戏的顺利进行。

12.选择菜单函数:

函数原型:

voidMenu_select()

功能:

得到Handle_menu的返回值,由一个switch语句选择开始,等级,最佳排行,游戏说明,结束等菜单操作。

参数:

void

返回值:

void

要求:

由Handle_menu得到数据可循环得到,直到得到数字5时,选择退出菜单,方可退出游戏,否则一直循环程序!

13.处理菜单函数:

函数原型:

intHandle_menu()

功能:

输出菜单选择提示,并由cin语句实现游戏者的输入,输入选择相应菜单对应的菜单序号,并把相应的值传给Menu_select函数

参数:

void

返回值:

intn:

选择相应菜单的菜单序号

要求:

输入的值不是相应的菜单的序号时返回0值,否则返回游戏者的输入值,以选择相应菜单。

3.2程序设计

1.提示信息

printf("pleasewelcomtofindthenumber!

!

!

\n");

printf("ifyouareright,thecompudertopromptyouwin\n");

printf("ifyournumber'sfirstnumberisrightthattoprompt2!

\n");

printf("ifyournumber'sorderiserrorthattopromt1!

\n");

printf("otherwisethattopromt0!

\n");

2.不同随机数的生成

while

(1)

{

num[0]=random(9)+1;

num[1]=random(9)+1;

num[2]=random(9)+1;

if(num[0]==num[1]||num[0]==num[2]||num[1]==num[2])

continue;elsebreak;

}

3.将随机生成的三位数分别进行比较,如果有相同的则继续执行下一次循环,生成一个新的三位数,直到不同为止。

while

(1)

{

printf("pleaseinputthreedifferentnumber:

\n");

scanf("%d",&t);

num[3]=t/100;

num[4]=t%100/10;

num[5]=t%10;

if(num[3]==num[4]||num[3]==num[5]||num[4]==num[5])

{

printf("youinputerror!

\n");

printf("pleasepresstocontinute!

");

continue;

4.将用户输入的三位数与随机生成的数进行比较,并且给用户一个返回提示信息,是否正确。

m=0;

if(num[0]==num[3])

{

putchar('2');

m++;

}

elseif(num[1]==num[3]||num[2]==num[3])

putchar('1');

else

putchar('0');

if(num[1]==num[4])

{

putchar('2');

m++;

}

elseif(num[0]==num[4]||num[2]==num[4])

putchar('1');

else

putchar('0');

if(num[2]==num[5])

{

putchar('2');

m++;

}

elseif(num[1]==num[5]||num[0]==num[5])

putchar('1');

else

putchar('0');

}

if(m==3)

{

printf("\nyouwin!

\nansweris:

%d",t);

printf("\npleasepresstoexitfor5s!

\n");

sleep(5);

exit(0);

}

else

printf("\nyouguesserror!

\n");

 

第四章调试与测试

运行程序,打开TC,新建一个名为csz.C的文件,输入主程序代码并且保存,然后对源文件进行编译,无错误后对程序进行运行。

出现“Pleaseinputthreedifferentnumber:

”提示,输入3个不同的一位数,键入回车键,出现000或111或222。

其中1代表你本次猜对了相应的数字,但是位置不正确,2代表你本次猜对了数字并且位置也正确,0代表数字和位置都不正确。

猜数的运行结果:

1.运行后系统的提示;

 

2.任意输入三位不同的数,系统提示000,表示着三个数中不包括123,数字和位置都不正确;

3.以后的输入就不包括123,试着输入其他三位不同的数,系统提示011,表示有5和6这两个数,但是现在位置不正确;

 

4.把5和6换个位置输入,显示120,表示第二个数是6,第三个数5,第三个数不正确;

5.只需要猜第一个数即可,后两位已经正确猜出;

 

6.正确猜出三位数字,系统提示“youwin!

”并且在5秒后返回程序编辑窗口。

 

第五章总结与心得

猜数字游戏的课程设计看似简单,却需要能对C语言知识进行灵活应用。

尤其是循环语句和数组要进行大量的应用。

首先,C语言课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识,再次,我在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料,通过自己钻研,当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在C语言编程这方面有一个大的发展。

通过这几个星期的课程设计,我对C语言这门课程有了更深一步的了解。

它是计算机程序设计的重要理论技术基础,在我们计算机专业的学习中占据着十分重要的地位。

同时也使我知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。

因为我们学习知识就是为了实践。

而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。

运用C语言中的算法思想编写一个通讯录管理系统。

通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。

 

附录

1.源程序

#include"stdio.h"

#include"stdlib.h"

main()

{

intnum[6],t,i,m;

clrscr();

randomize();

printf("pleasewelcomtofindthenumber!

!

!

\n");

printf("ifyouareright,thecompudertopromptyouwin\n");

printf("ifyournumber'sfirstnumberisrightthattoprompt2!

\n");

printf("ifyournumber'sorderiserrorthattopromt1!

\n");

printf("otherwisethattopromt0!

\n");

while

(1)

{

num[0]=random(9)+1;

num[1]=random(9)+1;

num[2]=random(9)+1;

if(num[0]==num[1]||num[0]==num[2]||num[1]==num[2])

continue;

else

break;

}

while

(1)

{

printf("pleaseinputthreedifferentnumber:

\n");

scanf("%d",&t);

num[3]=t/100;

num[4]=t%100/10;

num[5]=t%10;

if(num[3]==num[4]||num[3]==num[5]||num[4]==num[5])

{

printf("youinputerror!

\n");

printf("pleasepresstocontinute!

");

continue;

}

else

{m=0;

if(num[0]==num[3])

{

putchar('2');

m++;

}

elseif(num[1]==num[3]||num[2]==num[3])

putchar('1');

else

putchar('0');

if(num[1]==num[4])

{

putchar('2');

m++;

}

elseif(num[0]==num[4]||num[2]==num[4])

putchar('1');

else

putchar('0');

if(num[2]==num[5])

{

putchar('2');

m++;

}

elseif(num[1]==num[5]||num[0]==num[5])

putchar('1');

else

putchar('0');

}

if(m==3)

{

printf("\nyouwin!

\nansweris:

%d",t);

printf("\npleasepresstoexitfor5s!

\n");

sleep(5);

exit(0);

}

else

printf("\nyouguesserror!

\n");

}

}

 

2.参考文献

谭浩强.C程序设计教程.北京.清华大学出版社.2007

SchildtH著.戴健鹏译.C语言大全(第二版).北京.电子工业出版社.1994

严蔚敏,吴伟民.数据结构(C语言版).北京.清华大学出版社.2008

刘大有.数据结构[M].北京:

高等教育出版社,2006.3:

30-58

赵文静.数据结构与算法[M].北京:

科学出版社,2007.8:

41-64 

徐孝凯.数据结构简明教程.[M].北京:

清华大学出版社,2006.04:

102-115

严蔚敏,吴伟民.数据结构(C语言版)[M].北京:

清华大学出版社,2007.4:

39-43

傅清祥,王晓东.数据结构与算法设计[M].北京:

电子工业出版社,2006.3:

31-46

王敬华,林萍,.陈静.C语言程序设计[M].北京:

清华大学出版社,2007.10:

22-39

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1