《C语言速算24数据结构课程设计.doc》由会员分享,可免费在线阅读全文,更多与《C语言速算24数据结构课程设计(最终版)》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。

1、t;i=;while(s!='\')*当字符串没有结束时作以下处理*{if(isdigit(s))*判字符是否为数字*{k=;*k初值为*do{k=*k+s'';*将字符连接为十进制数字*i++;*i加*}while(s!='');*当字符不为‘’时重复循环*to=ush(to,k);*将生成的数字压入堆栈*}if(s=='+')*如果为'+'号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=num+num;*将num和num相加存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='')*如果为''号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=numnum;*将num减去num结果存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='*')*如果为'*'号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=num*num;*将num与num相乘结果存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='')*如果为''号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnu。

2、L;*栈顶指针置为空*returnto;*返回栈顶指针*}STACK*ush(STACK*to,charx)*入栈函数*{STACK*;*临时指针类型为STACK*=(STACK*)malloc(sizeof(STACK));*申请STACK大小的空间*if(==NULL)*如果为空*{rintf(quotmemoryisoverflow\n!!quot);*显示内存溢出*exit();*退出*}gtdata=x;*保存值x到新空间*gtlink=to;*新结点的后继为当前栈顶指针*to=;*新的栈顶指针为新插入的结点*returnto;*返回栈顶指针*}STACK*o(STACK*to)*出栈*{STACK*q;*定义临时变量*q=to;*保存当前栈顶指针*to=togtlink;*栈顶指针后移*free(q);*释放q*returnto;*返回栈顶指针*}chartox(STACK*to)*读栈顶元素*{if(to=cludequotctyehquot*字符操作函数*char[][]={{'A','','','','','','','','','','J','Q','K'},*扑克牌,用来表示*{'A','','','','','','','','','','J','Q','K'},{'A','','','','','','','','','','J','Q','K'},{'A','','','','','','','','','','J','Q','K'}};tyedefstructnode{intdata;。m);*将栈顶元素取出存入num中*result=numnum;*将num除num结果存入result中*to=ush(to,result);*将result压入堆栈*}i++;*i加*}to=to(to,amresult);*最后栈顶元素的值为计算的结果*returnresult;*返回结果*}STACK*initstack(STACK*to)*初始化*{to=NULL;*栈顶指针置为空*returnto;*返回栈顶指针*}STACK*ush(STACK*to,intx)*入栈函数*{STACK*;*临时指针类型为STACK*=(STACK*)malloc(sizeof(STACK));*申请STACK大小的空间*if(==NULL=NULL)*栈是否为空*{rintf(quotStackisnull\nquot);*显示栈为空信息*return'';*返回空字符*}returntogtdata;*返回栈顶元素*}STACK*to(STACK*to,char*x)*取栈顶元素,并删除栈顶元素*{*x=tox(to);*读栈顶元素*to=o(to);*删除栈顶元素*returnto;*返回栈顶指针*}intemty(STACK*to)*判栈是否为空*{if(to==NULL)*如果为空*return;*返回*elsereturn;*否则返回*}inttext(char*s){settextstyle(,,);*三重笔划字体,放大倍*outtextxy(,,s);*输出字符串s*setusercharsize(,,,。

3、structnode*link;}STACK;*栈*tyedefstructnode{chardata;structnode*link;}STACK;*栈*voidlay(void);*发牌的具体过程*voidrand(intj);*随机发牌函数*voidchange(char*e,char*a);*中缀变后缀函数*intcomuter(char*s);*后缀表达式计算函数*STACK*initstack(STACK*to);*栈初始化*STACK*ush(STACK*to,intx);*栈入栈运算*STACK*o(STACK*to);*栈删除栈顶元素*inttox(STACK*to);*栈读栈顶元素*STACK*to(STACK*to,int*x);*栈读出栈顶元素值并删除栈顶元素*intemty(STACK*to);*判栈是否为空函数*STACK*initstack(STACK*to);*栈初始化*STACK*ush(STACK*to,charx);*栈入栈运算*STACK*o(STACK*to);*栈删除栈顶元素*chartox(STACK*to);*栈读栈顶元素*STACK*to(STACK*to,char*x);*栈读出栈顶元素值并删除栈顶元素*intemty(STACK*to);*判栈是否为空函数*inttext(char*s);*显示文本*main(){chars[N],s[N],ch;inti,result;intgdriver,gmode;init();*初始化函数*while(){lay();*。 );*水平放大倍,垂直放大倍*settextstyle(,,);*无衬字笔划,放大倍*outtextxy(,,s);*输出字符串s*getch();*键盘输入任一字符*return;*返回*})*如果为空*{rintf(quotmemoryisoverflow\n!!quot);*显示内存溢出*exit();*退出*}gtdata=x;*保存值x到新空间*gtlink=to;*新结点的后继为当前栈顶指针*to=;*新的栈顶指针为新插入的结点*returnto;*返回栈顶指针*}STACK*o(STACK*to)*出栈*{STACK*q;*定义临时变量*q=to;*保存当前栈顶指针*to=togtlink;*栈顶指针后移*free(q);*释放q*returnto;*返回栈顶指针*}inttox(STACK*to)*读栈顶元素*{if(to==NULL)*栈是否为空*{rintf(quotStackisnull\nquot);*显示栈为空信息*return;*返回整数*}returntogtdata;*返回栈顶元素*}STACK*to(STACK*to,int*x)*取栈顶元素,并删除栈顶元素*{*x=tox(to);*读栈顶元素*to=o(to);*删除栈顶元素*returnto;*返回栈顶指针*}intemty(STACK*to)*判栈是否为空*{if(to==NULL)*如果为空*return;*返回*elsereturn;*否则返回*}STACK*initstack(STACK*to)*初始化*{to=NUL。

4、t;i=;while(s!='\')*当字符串没有结束时作以下处理*{if(isdigit(s))*判字符是否为数字*{k=;*k初值为*do{k=*k+s'';*将字符连接为十进制数字*i++;*i加*}while(s!='');*当字符不为‘’时重复循环*to=ush(to,k);*将生成的数字压入堆栈*}if(s=='+')*如果为'+'号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=num+num;*将num和num相加存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='')*如果为''号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=numnum;*将num减去num结果存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='*')*如果为'*'号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnum);*将栈顶元素取出存入num中*result=num*num;*将num与num相乘结果存入result中*to=ush(to,result);*将result压入堆栈*}if(s=='')*如果为''号*{to=to(to,amnum);*将栈顶元素取出存入num中*to=to(to,amnu。 e的字符元素压入堆栈*}if(e=='*'||e=='')*如果字符是乘或除号时*{if(!emty(to))*如栈不为空*{w=tox(to);*读栈顶元素存入w*while(w=='*'||w=='')*当栈顶元素是乘或除时反复循环*{a[j]=w;j++;*将栈顶元素存入字符串a中,a的下标加*to=o(to);*删除栈顶元素*if(emty(to))*如果栈为空*eak;*跳出循环*elsew=tox(to);*否则读栈顶元素*}}to=ush(to,e);*将当前e字符元素压入堆栈*}i++;*e的下标加*}while(!emty(to))*当不为空时反复循环*to=to(to,ama[j++]);*将栈顶元素存入数组a中*a[j]='\';*将字符串结束标记写入最后一个数组元素中构成字符串*}intcomuter(char*s)*计算函数*{STACK*to=NULL;inti,k,num,num,resulerexressaccrodingtoabovefournumber\nquot);*提示信息*rintf(quotFormatasfollows:*(+)\nquot);*提示输入字符串格式*rintf(quot\nquot);scanf(quot%s%cquot,s,amch);*输入字符串压回车键*change(s,s);*调用change函数将中缀表达式s转换为后缀表达式s*result=comuter(s);*计算后缀表达式的值,返回结果result*if(result==)*如果结果等于。

5、 y();*延时显示*}}voidchange(char*e,char*a)*中缀字符串e转后缀字符串a函数详细设计.数据类型的定义.程序分析.基本程序错误!未定义书签。分析结果课程设计总结参考文献问题描述用C语言,结构体实现速算的运算,从一副牌中随机发出张扑克,用扑克牌的数字及运算符号“+”、“”、“”、“”及括号“(”和“)”组成一个计算表达式,从键盘上输入该计算表达式,系统运行后得出计算结果,如果结果等于,则显示“verygood”,否则,显示“wrong!!!”,接着询问是否继续,按字符n后程序结束,否则系统重复上述步骤。需求分析用二维数组char[][]存放扑克,用A表示,表示,J、Q、K分别表示、、。建立两个栈分别存放随机发的四张牌和运算符进行入栈出栈操作进行速算,输出计算的值判断如果结果等于则成功若结果不为继续循环操作直到结果为或者输入n或N终止。概要设计,.设计思路()首先定义全局变量,引入标准输入与输出函数,建立结构体对速速进行相关的操作。()主函数main,判断栈空,计算机随机发发出四张牌进行入栈操作。()利用出栈操作栈栈进行运算操作。()运算结果等于结束不等于继续循环直到出现或者按n或N结束。.模块划分本程序包括一个模块:主程序模块,main(){初始化;定义数据类型;初始化栈;发牌进行入栈出栈运算操作;}.流程图开始发四张牌输入表达式字符s调用change函数将中缀表达式变后缀表达式调用计算函数计算表达式的值返回结果result结果==jieguo输出结果“wrong”输出结果“verygoo。*text(quotverygoodquot);*调用函数text显示字符串quotverygoodquot*elsetext(quotwrong!!!quot);*否则函数text显示字符串quotwrong!!!quot*rintf(quotContinue(yn)?\nquot);*提示信息,是否继续*scanf(quot%cquot,amch);*输入一字符*if(ch=='n'||ch=='N')*如果该字符等于n或N*eak;*跳出循环,程序结束*}*否则,开始下一轮循环*close();return;*返回*}voidrand(intj)*随机发牌函数*{intkind,num;charstr[],n;randomize();while()*循环直到有牌发*{num=random();*大小随机数*if([kind][num]!=)*该数未取过*{n=[kind][num];*取相应位置的扑克牌数*[kind][num]=;*牌发好以后相应位置的元素置*eak;}}if(n!='')*输出其牌他*{settextstyle(,,);srintf(str,quot%cquot,n);outtextxy(COL+j*,ROW+,str);*显示牌的大小*}else*输出的时候*{srintf(str,quot%dquot,);outtextxy(COL+j*,ROW+,str);}}voidlay(void)*发牌的具体过程*{intj;for(j=;jlt;j++){rand(j);*随机取牌*dela。

6、发牌*gotoxy(,);*移动光标*rintf(quotNote\nquot);rintf(quotPleaseent*{STACK*to=NULL;*定义栈顶指针*inti,j;charw;i=;j=;while(e!='\')*当字符串没有结束时*{if(isdigit(e))*如果字符是数字*{do{a[j]=e;*将数字原样拷贝到数组a中*i++;*e数组的下标加*j++;*a数组的下标加*}while(e!='');*直到字符为数字结束符“”为止*a[j]='';j++;*将数字结束符“”拷贝到a数组依然保持结束标记*}if(e=='(')*如果字符是“(”时*to=ush(to,e);*将其压入堆栈*if(e==')')*如果字符是“)”时*{to=to(to,amw);*取出栈顶元素,并从栈顶删除该元素*while(w!='(')*如果字符不是“(”时反复循环*{a[j]=w;*将栈顶元素存入a数组*j++;*下标加*to=to(to,amw);*取出栈顶元素,并从栈顶删除该元素*}}if(e=='+'||e=='')*如果字符是加或减号时*{if(!emty(to))*如栈不为空*{w=tox(to);while(w!='(')*当栈顶元素不是“(”时反复循环*{a[j]=w;j++;*将栈顶元素存入表达式a中,a的下标加*to=o(to);*删除栈顶元素*if(emty(to))*如果栈为空*eak;*跳出循环*elsew=tox(to);*否则读栈顶元素*}}to=ush(to,e);*将当前。

24速算c语言实训报告ppt,原创:C语言速算24数据结构课程设计最终版相关推荐

  1. 速算C语言程序设计,C语言速算24数据结构课程设计最终版(备份存档)

    <C语言速算24数据结构课程设计.doc>由会员分享,可免费在线阅读全文,更多与<C语言速算24数据结构课程设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com ...

  2. 24速算c语言实训报告ppt,C语言速算24数据结构课程设计.doc

    C语言速算24数据结构课程设计.doc 课程设计论文题 目 名 称 速算 24 课 程 名 称 数据结构课程设计 学 生 姓 名 王浩明 学 号 0941301253 系 .专 业 信息工程系.信息类 ...

  3. 24速算c语言实训报告ppt,C语言课程设计(速算24).doc

    <> 课程设计报告 速算24专业:计算机科学与技术班级:姓名:指导教师:成绩: 计算机与信息工程系 二0一四年二月二十日 目录 1.该系统的功能描述.................... ...

  4. c语言 实习报告,计算机专业c语言实训报告范文

    计算机专业c语言实训报告范文 通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多, ...

  5. c语言的实训报告,C语言实训报告.doc

    C语言实训报告 成都航空职业技术学院 <课程设计>实训报告 姓 名: 学 号: 班 级: 215 专 业: 电子工艺与管理 系 别: 航空电子工程系 指导老师: 朱 静 2015年6月 目 ...

  6. 成绩统计实训报告C语言,C语言实训报告16.pdf

    C语言实训报告16.pdf 成都航空职业技术学院 < 语言课程设计>实训报告 C 姓 名: 余昊洲 学 号: 153895 班 级: 215361 专 业: 电子工艺与管理 系 别: 航空 ...

  7. c语言实训报告心得100字,c语言实训报告心得.doc

    c语言实训报告心得 cad课程设计心得体会CAD课程设计心得 CAD课程设计心得 经过一周的课程设计我们在老师的指导下,顺利的完成了cad课程设计.在过去CAD的学习过程中,我们学习了很多制图方面的知 ...

  8. c语言学籍管理系统实训作业,学籍管理系统C语言实训报告

    学籍管理系统C语言实训报告 实训报告 课程名称: C语言程序设计课设 项目名称: 学籍管理系统 学 院: 专 业: 姓 名: 学 号: 指导教师: 成 绩: 目录 1 问题提出 ........... ...

  9. c语言程序实训报告模板,C语言实训报告模板..doc

    C语言实训报告模板. Shanghai Dianji University 实训报告 课程名称: 计算机能力强化实训(C) 姓 名: 班级学号: BG0802 指导教师: 吉顺如 完成日期: 2010 ...

  10. java springboot房地产信息管理系统+实训报告+PPT+功能需求报告

    博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 java springboot房地产信息管理系统+实训报告+PPT+功能需求报告 ...

最新文章

  1. XML与Webservices相关的安全问题概述
  2. OpenCV与Python之图像阈值化
  3. SqlSever分页查询,仅扫描一次表
  4. 计算机进入休眠状态后,Win7电脑进入休眠状态后又自动重启该怎么处理
  5. Leaflet使用vector tiles 标注label设置
  6. 使用SQL数据库在Python中进行CRUD操作
  7. MVC利用URLRoute实现伪静态后正真的静态html无法访问
  8. snmp是什么层协议_计算机网络基础:TCP/IP协议相关知识笔记?
  9. 专访 YYKit 作者 ibireme: 开源大牛是怎样炼成的
  10. repeater 的编辑功能
  11. 修改服务器监听端口命令,如何更改prometheus监控系统启动的默认端口号
  12. 三农数据(1996-2020)五:农产品产量、就业人数、农村养老等
  13. Revel组件化开发框架
  14. 机器学习案例(三):未来销售预测
  15. MySQL常规篇之增删改查(精选)
  16. 计算机函数sumif求平均值,用sumif函数如何求平均值
  17. Unity3D教程:手游开发常用排序算法 -下
  18. VMwareWorkstationPro16的下载与安装,以及vm账号注册的问题
  19. R语言爬虫慕课网课程信息(超级详细!)
  20. 跨境电商要讲好年轻人的“新故事”

热门文章

  1. 安装gms 的拨号盘
  2. vscode插件快餐教程(3) - Diagnostic
  3. 1602液晶显示屏工作原理引脚电路图51单片机
  4. 数字图像处理实验三各种图像类型转换
  5. DO447协调滚动更新--委派任务和事实
  6. 计算机专业公务员三不限,公务员:三不限岗位是大坑,这3类专业最受欢迎,选对才是硬道理...
  7. 数仓建模—元数据管理
  8. 解决老Mac强行双系统后Mac系统引导丢失出现no bootable device
  9. linux mint 使用软件管理器安装软件
  10. 大话设计模式C++实现-第7章-代理模式