C语言课程设计报告

发布 2022-10-03 03:46:28 阅读 8551

沈阳航空航天大学。

课程设计报告。

课程设计名称:c语言课程设计。

课程设计题目:猜数字游戏。

院(系):计算机学院。

专业:网络工程。

班级:14020201

学号:2011040102023

姓名:孙博剑

指导教师:林娜。

完成日期: 2023年3月16日。

目录。沈阳航空航天大学 i

1 系统分析 1

1.1 需求分析 1

1.2 基本功能 1

2 系统设计 3

2.1 系统模块设计 3

2.2 数据结构设计 4

2.3 函数设计 5

2.4 主流程图 6

3 调试分析 7

4 测试及运行结果 8

参考文献 10

附录 11猜数字游戏是一个运行在windows平台下的小型游戏软件,依据猜数字游戏的基本规则,给用户提供一个游戏的平台。并且,该游戏提了给用户计分的功能,并能对参与的用户进行成绩排行,在排行榜中排出前五名玩家的游戏记录,并可以随着玩家的游戏记录进行更新。

本游戏软件需要实现以下一些基本功能。

1)游戏区:玩家可以在游戏区逐次猜数字,系统给出玩家每次猜数字后的提示,包括数值、位置均正确的数字个数和数值正确但位置不正确的数字个数。

2)刷新排行榜:当玩家成功完成一轮猜数字游戏后,可通过和排行榜中相应记录的比较判断玩家是否可以进入排行榜,进入排行榜的资格游戏成绩在前五名的玩家。

3)查看排行榜:玩家可以查看当前排行榜中的排名顺序,从而确定自己的游戏目标。排行榜的查看按一定顺序显示给用户,便于查看。

4)清除排行榜:玩家可以选择清除排行榜功能,使得排行榜上的玩家姓名和玩家游戏记录从系统中清除,只留下系统默认的玩家名(player)和系统默认记录10次。

5)帮助:玩家通过帮助功能了解游戏规则和排行榜设置规则。

6)退出:玩家想结束并退出游戏系统。

1)游戏区模块。

该模块为玩家提供猜数字游戏的主休功能,由系统自动产生4个随机排列的整数,并给用户10次机会猜测数字的数值和排列顺序。如果用户在10次之内没有猜出正确的结果,则提示用户游戏失败,否则提示用户猜数字成功,并调用产生新记录模块对玩家游戏成绩进行处理。

1)产生原始数字:由系统产生4个随机数,并按任意顺序排列,作为游戏的原始数字供玩家进行猜数字游戏。

2)游提示:提示用户数值和位置全对的数字个数,和只有数值但位置不对的数字个数。

3)原始数字显示:当用户在10次之内仍未能猜出原始数字和顺序时,系统提示玩家失败,并给玩家显示出原始数字和顺序。

2)排行榜模块。

该模块为玩家提供排行榜的浏览和清除2个子功能。

1)按玩家成绩顺序浏览子功能中,将玩家的姓名、游戏成绩按猜数字次数从少到多的顺序列表显示,即将玩家记录从高到底显示。

2)清除排行榜:当用户选择清除排行榜功能时,系统会将所有玩家的历史游戏记录和玩家姓名一起从排行榜中清除,在排行榜中只留下默认的游戏记录和默认的玩家姓名,即系统默认玩家姓名player和系统默认记录10次。

3)产生新记录模块。

该模块的功能是当玩家成功完成游戏时,判断用户可否进入排行榜,如果可以进入,则刷新排行榜中的记录,将当前玩家的游戏记录写入排行榜,并将排行榜目前结果显示给用户。

4)读取最好记录模块。

读取最好记录模块的主要功能是当用户选择游戏开始选项时,首先提示用户目前排行榜中的最游戏记,如果目前没有排行的玩家记录,则初始化排行榜,给出系统默认的玩家姓名和默认的游戏记录。如果目前排行榜中有玩家记录,则判断出最好记录显示给用户。

5)帮助模块。

帮助模块提供的功能是当玩家选项为帮助功能对应的选项数字时,进入帮助模块,给出用户猜数字的游戏规则和游戏中相关提示的含义。

猜数字游戏游戏软件涉及到对玩家信息和排行榜的操作。为将玩家的姓名和游戏成绩描述成一个玩家的两个重要方面,使用c语言中的结构体来描述。具体数据结构设计如下。

*player结构体,存放玩家姓名和游戏成绩*/

typedef struct

char name[20];/field of name */

int score;/*field of score */

player;

本系统所设计的函数及所用到的函数见表1。

表2.3函数列表。

每个模块都以函数的形式被定义,startprogram函数是游戏模块的函数。getnumber函数是产生随机数的函数,在游戏函数中被调用,产生随机数。sortbyscore是排行榜函数,该函数把记录文件里的文件提取出来,并进行排序,然后显示在屏幕上同时也存回文件中。

resetrecord函数是在游戏模块中被调用的,在玩家游戏成功后会调用该函数,将玩家成绩和排行榜中的成绩进行比较,然后刷新排行榜。readrecord函数是在游戏模块中,在游戏开始之前调用,显示最好纪录。setrecord函数是生成记录的文件的。

clearsort函数是将已有的排行榜进行清空。

是否。否是。是 否。

图2.4流程图。

本流程图详细的写出了本程序的主要流程。先是开始游戏,然后调用产生随机数的函数,提示用户输入猜的数字。每猜完一次提示用户位置正确的数字和位置不正确但数字正确的数字个数。

当玩家猜对了提示游戏成功,并把猜对数字所用的次数和排行榜中的次数进行比较,如果可以进入排行榜,则刷新排行榜。然后结束游戏返回主菜单。

(1) 随机数产生问题。

问题描述:在产生随机数的时候,有时候会产生相同的随机数。

问题分析:在生成随机数的时候,电脑是随机的,有可能会产生一样的。用一个判断条件将一样的数字去除掉。

解决方法:用if语句进行判等,如果产生的随机数一样的话,重新执行本过程。

2) 随机函数删除相同数字问题。

问题描述:在去除相同的随机用的goto loop语句写的,但是这样写很容易出现问题。

问题分析:本方式容易出现问题,换用其他方式写就可以了。

解决方法:将goto loop删除,在判等以后,如果判断相等,怎执行i--语句,将已经执行过一次i的数值变成执行之前的数字。

(3) 函数调用问题。

问题描述:在调时候调用函数失败。

问题分析:没有在使用函数之前定义。

解决方法:函数先定义后使用。

打开程序选择开始游戏。

本次游戏的答案是:9286

第一次输入1234,结果有一个数字位置正确。

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

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

C语言课程设计报告

华中科技大学计算机科学与技术学院。题目 专业 班级 学号 姓名 成绩 指导教师 完成日期 2016年月日。目录。一 系统需求分析 1 二 总体设计 2 三 数据结构设计 3 四 详细设计 4 五 系统实现 5 六 运行测试与结果分析 6 七 总结 7 八 参考文献 8 九 指导教师评语 9 对所要解...

C语言课程设计报告

c语言。课程设计。商业销售管理系统。学号 121407210 姓名 宋军。班级 软件1202 指导老师 邹姝稚。成绩 2013年6月。一 任务描述。编写一个商品销售管理系统,是其能够拥有商品买卖和库存管理功能。在顾客选购时,需给出输入商品名称,或商品型号,或选择列表进而输入商品编号三种选择,在顾客选...