满意答案

#include

#include

#include

#include

#include

#define MAX 5

struct record

{

char name[10];

int sorce;

}rec[MAX],Rec;

int n; //记录行数

int num; //输入的数字

void display(); //开始界面

void xuanze(); //选择函数

void sys(int a); //操作函数

void newgame(); //新游戏

void vdisplay(); //浏览记录界面

void vxuanze(); //浏览选择函数

void help(); //帮助说明

void vsys(int a); //浏览操作函数

void viewsorce(); //按记录的顺序浏览

void viewname(); //按记录的姓名浏览

void viewsname(); //按记录和姓名浏览

void delrec(); //删除记录

int qushu(); //取数函数

int tishi(int aa); //提示函数

void addrec(int a); //判断并且增加记录

void recread(); //读取记录文件

void recwrite(); //写入记录文件

///

函数定义//

void display() //开始界面

{

system("cls"); //清屏

printf(" ============================================\n");

printf(" ================数字竞猜游戏================\n");

printf(" ============================================\n");

printf("\n");

printf(" 1: 新游戏\n");

printf("\n");

printf(" 2: 浏览记录\n");

printf("\n");

printf(" 3: 帮助说明\n");

printf("\n");

printf(" 4: 清除记录\n");

printf("\n");

printf(" 5: 退出\n");

printf("\n");

printf(" ============================================\n");

xuanze();

}

void xuanze() //选择函数

{

int a;

printf("请输入你所选择的操作数:\n");

scanf("%d",&a);

if(a==1||a==2||a==3||a==4||a==5)

{

sys(a);

}//选择相应的操作数执行函数

else

{

printf("错误的操作数!\n");;

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

display();

}

}

void sys(int a) //操作函数

{

switch(a)

{

case 1:newgame();break;

case 2:vdisplay();break;

case 3:help();break;

case 4:delrec();break;

case 5:exit(0);break; //退出

}

}

void newgame() //新游戏

{

recread();

system("cls"); //清屏

printf("\n");

printf("记录列表显示如下:\n");

printf("\n");

for(int i=0;i

{

if(rec[i].sorce==0)printf(" \n");

else

printf(" 第 %d 名: 姓名: %s 分数 %d\n",i+1,rec[i].name,rec[i].sorce);

}

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();//上面列出记录文件中的记录

/

int snum; //输入的数字

int sn=10; //机会次数

num=qushu(); //取数

L: system("cls"); //清屏

printf(" ============================================\n");

printf(" ================数字竞猜游戏================\n");

printf(" ============================================\n");

printf("\n");

printf(" 1: 显示答案\n");

printf(" ============================================\n");

printf("\n");

printf("请输入你猜想的四个数字(格式为9999样式)你还有 %d 次机会:\n",sn);

scanf("%d",&snum);

if(snum<10000 && snum>1000 || snum==1)

{

if(snum==1)

{

printf("你放弃了本局游戏!该四个数字是: %d\n",num);

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

display();

}

else

{

int flag=tishi(snum);

if(flag!=0 && sn!=0)

{

sn--;

if(sn==0)

{

printf("真是遗憾!十次机会没有了!没有关系!下次继续!\n");

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

display();

}

printf("请按任意键继续猜...\n");

getchar();

getchar();

goto L;

}

else

{

if(sn!=0)addrec(sn);

else

{

printf("请按任意键继续...\n");

getchar();

getchar();

display();

}

}

}

}

else

{

printf("错误的操作数!\n");;

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

goto L;

}

}

void help() //帮助说明

{

system("cls"); //清屏

printf(" ============================================\n");

printf(" ==============数字竞猜游戏帮助==============\n");

printf(" ============================================\n");

printf("\n");

printf("1.新游戏中,你可以输入四位数,来竞猜系统自动生成的四个数字!,只有十次的机会,\n");

printf(" 每次机会都有相对应的提示,十次的机会利用完了还没有猜对的话就算失败!四个数字的\n");

printf(" 相应格式在游戏中会有提示!当成功猜出系统给定的数字时候,就会统计你的成绩.当你的\n");

printf(" 成绩比记录文件中的记录好的时候就会提示你是否把记录记录到记录文件中,当你选择是\n");

printf(" 的时候就会接着提示你输入你的名字.再按回车.没有意外就会提示保存成功!\n");

printf(" 还有要说明的是记录中的分数是越低就代表成绩越好!\n");

printf("2.浏览记录有三种方式!第一种只是列出记录中的姓名;第二种是列出记录中的成绩次序\n");

printf(" 第三种是姓名跟成绩一起列出来!\n");

printf("3.清除记录就是把记录文件初始化.即是让记录文件为空!\n");

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

display();

}

void vdisplay() //浏览记录界面

{

system("cls"); //清屏

printf(" ============================================\n");

printf(" ================数字竞猜游戏================\n");

printf(" ============================================\n");

printf("\n");

printf(" 1: 按记录的顺序浏览\n");

printf("\n");

printf(" 2: 按记录的姓名浏览\n");

printf("\n");

printf(" 3: 姓名记录全部浏览\n");

printf("\n");

printf(" 4: 返回上级\n");

printf("\n");

printf(" ============================================\n");

vxuanze();

}

void vxuanze() //浏览选择函数

{

int a;

printf("请输入你所选择的操作数:\n");

scanf("%d",&a);

if(a==1||a==2||a==3||a==4)

{

vsys(a);

}//选择相应的操作数执行函数

else

{

printf("错误的操作数!\n");;

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

vdisplay();

}

}

void vsys(int a) //浏览操作函数

{

switch(a)

{

case 1:viewsorce();break;

case 2:viewname();break;

case 3:viewsname();break;

case 4:display();break; //返回上级

}

}

void viewname() //按记录的顺序浏览

{

recread();

system("cls"); //清屏

printf("\n");

printf("记录列表显示如下:\n");

printf("\n");

for(int i=0;i

{

if(rec[i].sorce==0)printf(" \n");

else

printf(" 第 %d 名: 姓名: %s\n",i+1,rec[i].name);

}

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

vdisplay();

}

void viewsorce() //按记录的姓名浏览

{

recread();

system("cls"); //清屏

printf("\n");

printf("记录列表显示如下:\n");

printf("\n");

for(int i=0;i

{

if(rec[i].sorce==0)printf(" \n");

else

printf(" 第 %d 名: 分数 %d\n",i+1,rec[i].sorce);

}

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

vdisplay();

}

void viewsname() //按姓名和记录浏览

{

recread();

system("cls"); //清屏

printf("\n");

printf("记录列表显示如下:\n");

printf("\n");

for(int i=0;i

{

if(rec[i].sorce==0)printf(" \n");

else

printf(" 第 %d 名: 姓名: %s 分数 %d\n",i+1,rec[i].name,rec[i].sorce);

}

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

vdisplay();

}

void delrec() //删除记录

{

recread();

for(int i=0;i

{

rec[i].sorce=0;

}

recwrite();

printf("删除成功!\n");

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

display();

}

int qushu() //取数函数

{

int a=0;

int i=0;

srand( (unsigned)time( NULL ) ); //随机数种子设置

while(i==0)

{

i=rand(); //这样做就是为了增加随机性

i=i%100;

}

L: for(int j=0;j

{

a=a+rand(); //判断随机数是否是四位数 如果不是继续取数

}

a=(a/i+rand())%10000;

if(a<1000)goto L;

return(a);

}

int tishi(int aa) //提示函数

{

int a,b,c,d;

int af,bf,cf,df;

if(aa==num)

{

printf("恭喜!你猜对了!四个数就是:%d\n",num);

return(0);

}

else

{

a=(num-num%1000)/1000;

b=(num%1000-(num%1000)%100)/100;

c=((num%1000)%100-((num%1000)%100)%10)/10; //获取默认四个数字

d=((num%1000)%100)%10;

af=(aa-aa%1000)/1000;

bf=(aa%1000-(aa%1000)%100)/100;

cf=((aa%1000)%100-((aa%1000)%100)%10)/10; //获取输入的四个数字

df=((aa%1000)%100)%10;

if(af>a)printf("\n第一个数应该比 %d 小一点!\n",af);

if(af==a)printf("恭喜!第一个数字对了!应该是: %d\n",af); //数字比较

if(af

if(bf>b)printf("第二个数应该比 %d 小一点!\n",bf);

if(bf==b)printf("恭喜!第二个数字对了!就是: %d\n",bf); //数字比较

if(bf

if(cf>c)printf("第三个数应该比 %d 小一点!\n",cf);

if(cf==c)printf("恭喜!第三个数字对了!就是: %d\n",cf); //数字比较

if(cf

if(df>d)printf("第四个数应该比 %d 小一点!\n",df);

if(df==d)printf("恭喜!第四个数字对了!就是: %d\n",df); //数字比较

if(df

return(1);

}

}

void addrec(int a) //判断并且增加记录

{

char c;

int flag=0; //标志位

a=11-a;

recread();

for(int i=0;i

{

if(a

{

if(i==4 || rec[i].sorce==0)

{

printf("\n");

printf("恭喜!你的成绩 %d 分已经达到了前五名!\n",a);

printf("确认要保存记录请按'y',任意键返回...!\n");

scanf("%s",&c);

if(c!='y')display();

rec[i+1].sorce=rec[i].sorce; //记录后移

strcpy(rec[i+1].name,rec[i].name);

printf("请输入你的名字\n");

scanf("%s",&rec[i].name);

rec[i].sorce=a;

recwrite(); //写入

printf("恭喜!添加成功!\n",a);

flag++;

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

display();

}

else

{

printf("\n");

printf("恭喜!你的成绩 %d 分已经达到了前五名!\n",a);

printf("确认要保存记录请按'y',任意键返回...!\n");

scanf("%s",&c);

if(c!='y')display();

for(int j=i;j

{

rec[j+1].sorce=rec[j].sorce; //记录后移

strcpy(rec[j+1].name,rec[j].name);

if(rec[j+2].sorce==0)break;

}

printf("\n");

printf("请输入你的名字\n");

scanf("%s",&rec[i].name);

rec[i].sorce=a;

recwrite(); //写入

printf("恭喜!添加成功!\n",a);

flag++;

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

display();

}

}

}

if(flag==0)

{

printf("\n");

printf("请按任意键继续...\n");

getchar();

getchar();

display();

}

}

void recread() //读取记录文件

{

FILE *fp;

L: fp=fopen("E:\\rec.rec","rb");

if(fp==NULL)

{

recwrite();

goto L; //初始化

}

if(fread(&rec,sizeof(record),MAX,fp)==MAX)

{

}

else

{

printf("文件读取失败!");

}

fclose(fp);

}

void recwrite() //写入记录文件

{

FILE *fp;

fp=fopen("E:\\rec.rec","wb");

if(fp==NULL)

printf("写入失败!\n");

fwrite(rec,sizeof(record),MAX,fp);

fclose(fp);

}

void main()

{

display();

}

00分享举报

c语言程序设计 猜数字,c语言程序设计猜数字课题相关推荐

  1. c语言程序设计移动字母,C语言程序设计实例大全(220个例子)

    C语言程序设计实例大全,C语言是世界上最流行.使用最广泛的高级程序设计语言之一,这里c语言 程序设计 实例 大全有220个例子供大家参考 c语言开发实例目录: 第一部分 基础篇 001 第一个C程序 ...

  2. 浙江大学C语言线上开发环境,浙江大学“程序设计入门:C语言”刚刚开课随时报名...

    我们在11月初时报道过网易云课堂隆重推出的计算机专业MOOC系列课程,里面有很多不错的编程课,都是按学习规律排列的.这些课大部分在12月左右陆续开课,正巧这门浙江大学的"程序设计入门:C语言 ...

  3. 201803考试批次2C 程序设计语言,201803考试批次2可视化程序设计(VB)D卷

    201803考试批次2可视化程序设计(VB)D卷 2018-12-15 903 201803考试批次2可视化程序设计(VB)D卷 可视化程序设计(VB) 一 .单项选择题 (共 10 题.0 / 20 ...

  4. python语言程序设计嵩天-Python语言程序设计基础(第2版)嵩天课后答案

    嵩天.礼欣.黄天羽Python语言程序设计基础(第2版)习题答案本书提出了以理解和运用计算生态为目标的Python语言教学思想,在系统讲解Python语言语法的同时介绍了从数据理解到图像处理的14个P ...

  5. c语言程序设计复习提纲,C语言程序设计复习提纲

    C语言程序设计复习提纲 C语言程序设计复习题: 1.理解以下术语的含义:数组.函数.地址 指针 指针变量 直接访问 间接访问.结构体 2.用起泡法对10个数由小到大排序(P134例题) 3.用递归方法 ...

  6. C语言找出4个最大和4个最小数,济南大学C语言程序设计教案:C语言实验课程第四课.doc...

    济南大学C语言程序设计教案:C语言实验课程第四课 C语言实验课程第四课 实验一 数组与函数.数组与指针 一.实验目的 1 掌握数组名作为函数参数的含义.使用方法. 2 掌握多维数组作为函数参数的使用方 ...

  7. C语言:一种通用的程序设计语言

    点击上方蓝字关注我,了解更多咨询 语言是一种通用的程序设计语言.它同UNIX系统之间具有非常密切的关系.C语言是在UNIX系统上开发的,且无论是UNIX系统本身还是其上运行的大部分程序,都是C语言编写 ...

  8. c语音学习进阶-C语言带命令行参数的程序设计

    C语言带命令行参数的程序设计 (1)深入理解并学习带命令行参数的程序设计方法,使用c 语言完成带命令行参数的科学计算程序,能从给定的任意文件名的文件当中输入数据,并能向给定的任意文件名的输出文件当中输 ...

  9. 大学c语言程序设计听不懂,C语言听不懂?那你还不点进来看看?

    最近16级的小鲜肉们结束了为期两周的军训生活,正式开始了自己的的大学学习生活,不过刚一开始上课小鲜肉们就懵了,专业课好难啊!C语言听不懂啊!( Ĭ ^ Ĭ ) 别慌,学长教你几招帮你渡过难关. 小鲜肉 ...

  10. c语言高级程序知识,《高级语言程序设计》知识点总结(一)

    <高级语言程序设计>知识点总结(一) 分类:自考 | 更新时间:2016-07-07| 来源:中华网教育 1.1 程序设计和程序设计语言 1.程序 从最一般的意义来说,程序是对解决某个计算 ...

最新文章

  1. RLCenter云平台配置中心
  2. 统计数列中是连续数的个数
  3. seaborn常用图
  4. 使用FileSystemWatcher监视指定目录
  5. Qt5模型/视图结构-视图(View)
  6. java的case_java中的switch case语句使用详解
  7. python123第七章_Python入门第7/10页
  8. php事务 面向对象,PHP面向对象之事务脚本模式(详解)
  9. spi总线 上层调用_spi总线设备驱动分析
  10. [原创]vc中创建线程并传递参数
  11. JSF 网站汇总(转)
  12. window.URL对象的使用方式
  13. 【渝粤教育】国家开放大学2018年春季 4990T电子商务概论(农) 参考试题
  14. echarts 地图自定义图标_echarts自定义图标的点击事件怎么添加
  15. 微服务是银弹还是焦油坑?
  16. 北京大学可视化发展前沿研究生暑期学校第二讲
  17. Python 库pyautogui 0.9.52的下载、安装和使用
  18. 学习笔记整理——vim,vim文件编码,vim配置文件
  19. 6-3 求一组数中的平均值及最大值 (10 分)
  20. SecureCRSecureFXPortable64 下载

热门文章

  1. Android培训Android课堂重点内容汇总
  2. Swoole介绍及应用场景01
  3. 幼儿园计算机培训新闻,幼儿园计算机培训的总结.docx
  4. 手机销量下降,企业该如何调整使用APS计划排产软件生产计划?
  5. linux怎么写用拼音写中文为什么出错,Linux常见问题及错误中文解析
  6. 给大家介绍几个数据分析,数据可视化的网站合集
  7. mysql 5亿数据 查询_日均5亿查询量的京东订单中心,为什么舍MySQL用ES?
  8. 淘宝直播录播总是被检测到?
  9. php widgets,Yii框架小部件(Widgets)用法实例详解
  10. 这两年,前端程序员们究竟过得怎么样?!