C语言作业要求及设计说明书(初学者)


    

    程序设计说明书
    姓名:_________________
    班级:_________________
    学号:_________________

    20151227


    AHAC语言程序设计作业求
    作业目
    1 掌握C语言进行程序设计基方法
    2 熟练掌握window控制台应程序编写
    3 初步完成应程序设计编码调试解程序设计程锻炼实际应力
    二作业容
    猜数字游戏:
    计算机机生成没重复n数户键盘输入猜测数猜次电脑出提示信息果户输入数计算机生成数数值位置完全相等胜出
    基功求:
    1 机生成没重复4数(数字09范围)
    2 户键盘输入4重复数程序户输入数机生成数进行匹配出提示信息: x数数值位置相 y数数值相位置
    3 控制户尝试次数10次
    4 计算输出保存户分计分规:总分100分失败次扣10分
    5 操作菜单根选择运行功:1:开始游戏2:查次成绩3:输出帮助信息0:退出程序
    扩展功求:
    1 户输入数字进行检查果户输入重复数出提示求重新输入
    2 游戏进行设置:操作菜单中增加相应选项:4:系统设置
    (1) 修改猜数字数n根修改n值计算机机生成n数户进行n数猜测游戏
    (2) 修改尝试次数
    3 游戏胜出成绩前五名输入记录应户姓名添加积分榜中操作菜单中相应选项改2:积分榜积分榜中保存前五名成绩户姓名显示出
    4 积分榜成绩进行排序输出
    提示:(1)生成0~9机数rand函数:
    #include
    #include rand函数必须头文件
    #include
    int main()
    { int a
    srand(time(0)) 生成种子整程序写次
    arand()10 生成机数
    printf(d\na)
    return 0
    }
    (2)保证生成n数重复:
    数组记录生成数生成数前已生成进行较果相 重新生成直相
    三作业求
    1 位学独立完成
    2 开发台:VC++ 60建立Win32 Console Application
    3 提交时间:第17周周二前(12月29日)提交
    4 提交容:印版程序设计说明书 电子版程序代码
    5 提交具体求:
    () 程序代码求:程序求够正常运行少实现基功求完成扩展功求较高分数
    (二) 程序设计说明书求:(少3000字)
    (1) 正文分章节正文5号宋体
    (2) 容:
    1) 概述:开发环境种功完成情况(已实现功功未实现什运行错误)
    2) 程序概设计:程序流程什(画出流程图)函数实现什功等
    3) 程序详细设计:关键代码分析(写详细)设计中疑难问题解决
    4) 情况:展示种功运行情况(必须截图说明)
    5) 总结:分析程序优点足遇困难解决问题总结收获
    6) 参考目录
    6 评分标准:
    程序60程序设计说明书40
    发现拷贝抄袭(抄抄者)程序基功未实现说明书体现设计程均法通课程

    程序设计说明书



    第章 概述 3
    11 开发环境 3
    12 种功完成情 3
    13 存运行错误 3
    第二章 程序概设计 5
    21 整体流程 5
    22 整体程序流程图 6
    23 模块 7
    24 函数实现功 11
    第三章 程序详细设计 12
    31关键代码分析 12
    32设计程中疑难 18
    第四章 情况 20
    第五章 总结 27
    第六章 参考资料 27



    第章
    概述

    1 开发环境:啊哈C20

    2 种功完成情况:
    1)游戏操作菜单
    2)基游戏功:户键盘输入4重复数程序户输入数机生成数进行匹配出提示信息: x数数值位置相 y数数值相位置
    3)积分榜功:记录前五名玩家分数姓名分数高低输入
    4)帮助信息功:出户猜数字游戏规游戏中相关提示含义
    5)系统修改功:玩家行修改猜游戏数字数尝试次数
    6)退出程序功:玩家菜单中退出程序
    7)输入数字检查:果户输入重复数出提示求重新输入
    8)返回功:完成游戏者完成设置玩家意键返回菜单
    9)错误提示功:选择菜单时键提示选择错误求重新选择
    10)清排行榜功
    3 存运行错误:
    游戏开始果户输入数字时误操作输入字母符号者字符程序陷入死循环








    第二章
    程序概设计

    1整体流程
    ① 程序显示菜单
    ② 提示玩家输入选择输入
    1) 游戏体
    2) 查积分榜
    3) 帮助信息
    4) 系统设置
    0) 退出程序

    ③ 判断玩家输入进入相应模块选择提示选择错误返回②
    ④ 判断变量q否等1
    1) 等1结束程序
    2) 等返回①






















    2整体程序流程图:
    功菜单
    输入选择
    q否等1
    结束程序
    开始游戏
    查积分榜
    帮助信息
    系统设置
    退出程序
    no
    yes
    1
    2
    3
    4
    5
    输入
    提示输入错误
    判读输入

    3模块
    1) 游戏模块
    ① 产生机数:系统机产生09重复四数作游戏原始数字供玩家进行猜数字游戏
    ② 玩家输入4数
    ③ 判读玩家输入数字否重复
    :重新输入否:继续输入
    ④ 判读输入4数原始数较提示玩家数值位置全数字数数值位置数字数
    ⑤ 判读数字否全
    :提示胜利判断分数否进排行榜记录进入排行榜玩家分姓名
    分数姓名排序
    否:继续运行
    ⑥ 输入次数加1
    ⑦ 判断输入次数否等10
    :提示失败退出输入意键返回菜单
    否:返回②继续输入


























    流程图:
    1
    Yes
    lose
    记录
    分数
    姓名
    排序
    产生机数a[i]
    玩家输入b[i]
    b[i] b[j] ?
    (输入否重复)
    b[i] a[i]
    g[i] > g[5]
    判断分数
    游戏次数n 加1
    b[i]a[i]

    提示
    输入id
    意键
    提示重新输入
    Yes
    No
    n10
    No
    Yes
    No
    Yes
    Win
    Win
    q1
    菜单
    No
    No

    2)积分榜模块
    调游戏模块中记录分数玩家姓名印出排行榜意键返回菜单

    3)帮助信息模块
    直接印出帮助信息输入意键返回菜单

    4)系统设置模块
    ① 进入子菜单
    ② 输入选择123
    ③ 判断玩家选择进入相应模块
    1. 修改猜数字数n
    2. 修改尝试次数
    3. 恢复默认值
    4. 清排行榜
    0 提示选择错误返回②
    ⑤ 输入修改数值
    ⑥ 变量w等1
    ⑦ 判断w否等1
    :返回菜单
    否:返回菜单

























    系统设置流程图:
    子菜单
    执行输入
    玩家输入
    1
    2
    3

    提示错误
    修改数值
    w1
    修改数值
    w1
    w1
    意键
    菜单
    No
    Yes
    4
    0




    5)退出程序模块
    玩家菜单选择0q1检测判断q1程序运行结束退出关闭


    4函数实现功
    1) while 函数:利whie函数进入死循环进行系列操作条件满足时跳出while实现菜单返回效果
    2) for函数:产生原始数玩家输入数字分数较等
    3) scanf函数:输入09数
    4) getch:字符输入带回显实现菜单选择
    5) strcpy函数:实现玩家姓名排行榜排序
    6) rand():产生机数
    7) srand((unsigned)time(NULL)):利系统时钟设定种子rand()函数产生种子产生机数
    8) fflush(stdin):清scanf输入时留回车缓存






























    第三章
    程序详细设计
    1关键代码分析:

    体游戏部分:

    1 原始机数产生
    srand((unsigned)time(NULL)) 时间种子
    for(i0i{
    a[i]rand()10次产生09范围意数机数存数组a中
    限制重复数生成数前已生成进行较果相 重新生成直相
    for(j0j {
    if(a[j]a[i])
    {
    i1出现重复数令i0
    a[i]rand()10重新产生机数
    }
    }
    }



    2户输入数字
    for(i0i{
    scanf(d&b[i])
    判断输入否重复
    for(j0j{
    if(b[j]b[i]) 检测输入数字否重复原理1
    {
    printf(输入数字重复请重新输入\n)
    i1
    break
    }
    }
    }
    3 判断部分
    判断
    cnt1cnt20
    判断输入b[i]否原始数a[i]相等判断数值位置相数
    for(i0i{
    if(b[i]a[i])
    {
    cnt1++
    }
    判断数值相位置数
    for(j0j{
    if(ij && b[i]a[j])
    {
    cnt2++
    break
    }
    }
    }

    4 胜利模块排序
    if(cnt1t)胜利条件
    {
    printf(\n恭喜猜\n)
    printf(分:d\n\n10010*n)分
    s10010*n计算分
    g[x]s数组记录分
    if(g[x]>g[5])判断分数否进入前5名
    {
    printf(恭喜进入前五名请输入名称(力限仅仅支持英文名回车确认):\n)
    fflush(stdin) 清scnaf留回车缓存 方法2scanf面加getch
    gets(m[x])数组记录玩家姓名
    }



    x++游戏胜利次数
    分数玩家姓名排序
    for(i0i {
    for(ji+1j {
    if(g[j]>g[i])
    {
    tempg[i]g[i]g[j]g[j]temp

    strcpy(temp2m[i]) 姓名着g[i]交换
    strcpy(m[i]m[j])
    strcpy(m[j]temp2)
    }
    }
    }

    二 排行榜模块

    调游戏模块排序分数数组分名字数组直接印显示
    for(i0i<5i++)
    {
    输出分数
    printf( ★第d名成绩:03d i+1g[i])
    printf(玩家:)
    puts(m[i])输出玩家名字
    printf(\n)
    }
    printf( )


    三 帮助模块
    Printf函数直接输出帮助信息


    四 系统设置模块
    while(4)子菜单循环
    {
    if(ch'4')
    {
    system(cls)
    印子菜单
    printf(\n①修改猜数字数(默认4)\n\n)
    printf(②修改尝试次数(默认10)\n\n)
    printf(③返回菜单\n\n\n)
    while(4)子菜单循环
    {
    printf(\n\n请选择需操作:)
    ch3getch()
    if(ch3'1'||ch3'2'||ch3'3’||ch4’4’||ch3’5’)
    {
    if(ch3'1') 选择1
    {
    system(cls)
    printf(请输入修改猜数字数:\n)
    while(5)限制修改次数1~10
    {
    scanf(d&t1)
    if(t1>10)
    {printf(输入错误请输入1~10间数\n)}
    else
    {break}
    }
    tt1更新次数游戏模块猜数字数
    printf(已修改请意键返回菜单)
    w1返回菜单条件
    break跳出子菜单循环
    }
    if(ch3'2') 选择2
    {
    system(cls)
    printf(请输入修改尝试次数:\n)
    scanf(d&h1)
    hh1更新游戏模块中尝试次数
    w1返回菜单条件
    printf(已修改请意键返回菜单)
    break跳出子菜单循环
    }
    if(ch3'3')
    {
    system(cls)
    t4h10恢复
    w1返回菜单条件
    printf(已恢复默认请意键返回菜单)
    break跳出子菜单循环
    }
    if(ch3'4')
    {
    system(cls)
    for(i0i<100i++)
    {
    g[i]0清记录
    strcpy(m[i]p[i])清姓名

    }
    w1返回菜单条件
    printf(已清请意键返回菜单)
    break跳出子菜单循环
    }
    if(ch3'5') 选择返回菜单
    {
    break
    }

    }
    else
    printf(\n菜单选择错误请重新选择:\n)
    }
    菜单返回模块
    if(w1)
    {
    ch2getch()
    }
    w0条件复位
    system(cls)
    break跳出菜单选择循环while2
    菜单返回模块end
    }


    五 程序跳出模块

    if(q1) 判断标志位q否等1跳出二层while2循环层循环检测q1
    { 结束程序
    break 跳出while1
    }


    六 菜单循环模块

    while(1)
    {
    printf( ) 显示菜单详情源程序
    while(2)菜单选择循环
    {
    if(ch'1'||ch'2'||ch'3'||ch'4'||ch'0')
    {
    system(color 7)

    if(ch'1')游戏体
    1游戏模块
    {

    }
    if(ch'2')
    2积分榜模块
    {

    }
    if(ch'3')
    3帮助信息模块
    {

    }
    if(ch'4')
    4系统设置模块
    {

    }
    if(ch'0')
    0退出模块
    {

    }
    }
    else
    printf(\n菜单选择错误请重新选择:\n)
    }while2
    if(q1)
    {
    break跳出while1
    }

    }while1


    七 意键返回模块

    while 菜单子菜单循环详情见源程序
    {
    … 代表意模块


    printf(请意键返回菜单)
    ch2getch() 输入意字符
    system(cls)
    break跳出菜单选择循环
    }

    2设计程中疑难:
    疑难:
    限制重复数设计开始时陷入类似代码错误思路中:
    错误思路代码 :
    ①for(i0i<4i++)
    {
    for(j0j<4j++)
    {
    while((ij) && (a[i]a[j]))
    {
    a[j]rand()10
    }
    }
    }
    ②for(i0i<4i++)
    {
    a[i]rand()10
    for(j0j<4j++)限制重复数
    {
    if(a[j]a[i])
    a[i]rand()10
    }
    }
    错误原:
    出现重复数前数没i置回a[i]rand()10产生机数进入次i++样a[i]rand()10产生机会产生前数相数
    解决方法:
    产生机数时进入判断重复数 i置回i1(i1)产生机数进入判断直没机数止


    疑难二:
    记录玩家姓名时gets函数程序没显示输入字符直接显示语句

    原:
    gets函数会首先读取缓存区容前面scanf函数输入完毕回车确认会缓存区留回车字符运行面gets函数时动输入回车接着运行语句
    解决方法:
    前面scanf函数面家getch()吸收回车键者面gets函数前加fflush(stdin)函数清scanf输入时留回车缓存 (查百度出解决方法)


    疑难三:
    排行榜姓名记录

    解决方法
    分数数组g[i]记录选择排序玩家姓名m[i]着着g[i]strcpy函数选择排序
































    第四章
    情况
    种功运行情况展示:

    游戏初始画面:



    游戏系统判断算法测试:




    提示重复数:


    果连续四次输入错误出现结果出现提示:






    排行榜记录功展示:









    系统功展示:

    子菜单:


    输入修改:





    错误提示:



    修改成功:














    帮助信息:

    退出程序:




    第五章
    总结
    程序缺点:
    程序够简练没高级函数函数调排行榜模块结构体定义函数记录玩家分数姓名定义变量编写时易混淆

    优点:
    体结构明确模块分工明确程序语句排版清晰明确容易读懂

    遇困难解决问题:
    编写程中遇问题说数胜数前面说限制重复数排行榜排序问题外游戏判断部分等等然遇困断思考总结遇问题基解决

    收获:
    猜数字游戏似简单需C语言知识进行应尤循环语句数组进行量应
    首先次作业前学知识巩固进步提高认识已知识更进步理解认识次课程设计中碰问题通钻研逐击破然通次作业发现身足处 
    外学知识转换东西时心中知时种莫名动力电脑前面坐时次作业仅巩固前学知识更获书没学知识通次课程设计逻辑力提高正书封面写乔布斯句话应该学会编程教会思考 
    学方法学中时候起着关重作尤次游戏设计程中深深体会善总结学程中缺少重环节次完成编程务完成段代码应目踪该程序调试运行状况时总结找错误足处样编写程序逐步提高

    第六章
    参考资料
    1.啊哈C
    2c语言典编程282例




    — END —

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 10 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    C语言作业:学通讯录

    学生通讯录一、 语言和环境1. 实现语言:C语言。2. 环境要求:devC++。二、 实现功能开发一套学生通讯录C语言系统,具体实现如下功能:1. 打开系统显示欢迎界面,以及功能菜单,用户输入...

    3年前   
    720    0

    C课程设计题目及要求

    课程设计题目 选题一: 学生信息管理系统设计 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。(测试数据不少5个人,可以用本班同学的具体数据为背景) 软件由下...

    7年前   
    3874    0

    C语言程序设计习题试题集

    《C语言程序设计》精品课件试题目录(按住CTRL键点击超链)单项选择题………………………第002页阅读程序题………………………第018页程序填空题………………………第039页编写程序题…………...

    1年前   
    5453    0

    国开电大《C语言程序设计》答案

    形考1在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(  )。选择一项:A. main 正确恭喜你,答对啦!!B. MAIN C. name D. function .题目2正确...

    1年前   
    406    1

    C语言程序设计说课教案

    《C语言程序设计》说课教案从以下方面说明:一、 课程性质、地位二、 教学对象分析及要求三、 课程体系四、 课程的重点、难点及突破五、 教学方法与教学手段六、 学生考核七、 教学计划一、 课程性...

    1年前   
    338    0

    c语言课程设计总结5篇

    c语言课程设计总结5篇c语言课程设计总结(一):  c语言课程设计总结心得  经过一个学期的学习,我对C语言有了必须的了解。C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是...

    3年前   
    1291    0

    C++语言课程设计一迷你高尔夫

    C++语言课程设计一迷你高尔夫一、实验内容 玩家通过按下键盘上的上下左右方向键控制球的移动,使其最终到达出口则游戏通关。 要求如下:1、 游戏分成3关,第一关、第二关、第三关界面图如下:第一关...

    3年前   
    608    0

    2021年c语言课程设计小结

     2021年c语言课程设计小结撰写人:___________日 期:___________2021年c语言课程设计小结关键词:图书管理系统关系模型功能模块随着社会的进步与发展,资源高效利用提...

    3年前   
    599    0

    C语言课程设计学生考勤系统

    设计任务:C语言课程设计任务书题目:学生考勤系统设计功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、出勤情况等。本系统可模拟考勤过程,记录考勤结果,并能够...

    2年前   
    523    0

    C语言程序设计实验报告

    C语言程序设计实验报告  实验名称 计算出1000以内10个最大素数之和   实验目的   1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语...

    10年前   
    952    0

    C语言课程设计通讯录管理系统

     课程设计报告书 课程名称: C语言课程设计 班 级: 学 号: ...

    5年前   
    2398    0

    C语言程序设计实验教案

     《高级语言程序设计》 实验指导书 实验一 顺序结构程序设计 一、实验目的及要求 1. 掌握C语言中使用最多的一种语句—...

    5年前   
    1468    0

    C语言餐饮结账管理系统设计

    C语言程序设计课程设计报告设计题目:餐饮结账管理系统设计 1 设计任务1.1 设计题目的描述功能:餐饮结账信息包括:编号、时间、台面号、顾客数量、接待服务生、实收金额。试设计一...

    2年前   
    419    0

    c语言课程设计贪吃蛇

    XX 大 学 C语言程序设计 课程设计(论文)题目: 贪吃蛇 院(系): 软件学院 专业班级: ...

    3年前   
    428    0

    C语言程序设计形考任务

    假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,则不正确的语句为( )。选择一项: a. struct ...

    4年前   
    1481    0

    数据结构(C语言版)课程设计报告表达式求值说明书

    XX大学数据结构课程设计说明书题目: 表达式求值 院 系: 计算机科学与工程学院 专业班级: 计算机班 学...

    3年前   
    537    0

    C语言代码大全

     乘法口诀表 #include <stdio.h> #include <conio.h> void main(void) { int i,j,x,y; clrscr(); pr...

    5年前   
    1760    0

    公文写作的语言要求

    公文写作的语言要求  一、准确   (一)认真辨析词义   西方有作家说,要表现一个事物,只有一个名词是准确的;要描绘一种状态,只有一个形容词是准确的;要说明一个动作,只有一个动词是准确的。写...

    10年前   
    758    0

    C语言课程设计学生通讯录管理系统设计

    C语言课程设计学生通讯录管理系统设计一、题目内容的描述学生通讯录管理系统设计设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等),通信录数据类...

    4年前   
    720    0

    居住绿化规划设计课程作业要求

    居住绿化规划设计课程作业要求 一、目的 居住区绿地是城市园林绿地系统中分布最广、倍受居住区居民关注的住区组成部分,使用频度极高,对住区居民生活质量影响极大。 通过“居住区绿化规划设计”章...

    9年前   
    6432    0

    文档贡献者

    花***0

    贡献于2022-04-09

    下载需要 10 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档