ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:178.76KB ,
资源ID:13195706      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13195706.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算器程序设计-数据结构课程设计指导书Word格式.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算器程序设计-数据结构课程设计指导书Word格式.docx

1、1、能力培养要求巩固和加深对数据结构的理解,提高综合运用本课程所学知识的能力。培养学生选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。通过课程设计,培养学生严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。2、学生提交课程设计报告要求1) 设计题目242) 设计目的3) 设计内容4) 程序流程图5) 源程序6) 软件测试报告(包括所用到的数据及结果)三、课程设计的基本步骤和方法1、学生以自学

2、为主,独立完成设计任务,注重学生能力的培养。2、教师要注意按学生基础和能力提出要求,辅导时要有侧重,做到因材施教。对基础差的学生要勤检查多指导,对能力强的学生应提出更高的要求,增加些选作内容,充分发挥其潜力。3、教师要教书育人。要求学生从点滴开始,每步操作都要按规定去做,以培养严肃认真的科学态度。选定方案要考虑经济效益,坚持勤俭节约的原则。要教育学生团结协作,遵守纪律,爱护公物。通过设计提高业务能力,提高思想觉悟。4、课程设计安排教师下达设计任务书任务书内容包括题目、主要技术指标和要求、给定条件及原始数据、所用仪器设备和参考资料及文献等。教师讲授必要的设计思路和设计方法。生完成预设计本阶段学生

3、应明确任务,查阅资料及文献(主要自学),掌握工程设计基本方法,确定设计方案,进行设计分析,完成预设计。实验阶段经教师审查通过预设计方案后,即可进行编程调试。实验由学生独立完成,教师定时指导。设计总结阶段本阶段学生要认真完成课程设计报告书,整理技术资料,如有需要还应写出课程设计的心得体会和改进意见。课程设计报告书包括:设计任务及主要技术指标、设计方案及论证结果、系统的原理框图、设计程序、实验结果、实验中主要问题及故障现象的分析及设计结论等。报告书中还应附实验数据、系统软硬件环境、使用说明及参考资料等。郑州轻工业学院课 程 设 计 任 务 书题目模拟计算器的程序专业、班级计算机科学与技术 10-0

4、1学号 541007010157姓名 郑峰弓主要内容、基本要求、主要参考资料等:主要内容:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及 SQR 和 ABS 函数的任意整型表达式进行求解。设计要求:要检查有关运算的条件,并对错误的条件产生报警。参考资料:C+.C 语言程序设计,数据结构(c 语言版)完成期限: 2012-6-21指导教师签名: 课程负责人签名: 2012 年6月21日郑州轻工业学院本科数据结构课程设计总结报告设计题目:模拟计算器的程序学生姓名:郑峰弓系 别:计算机科学与工程专 业:计算机科学与技术班 级 :10 级 1 班学 号 :541007010157指

5、导教师:卢冰 李晔2012 年 6 月21 日一、设计题目(任选其一)模拟计算器的程序要求能对包含加、减、乘、除、括号运算符及 SQR 和 ABS 函数的任意整型表达式进行求解。二、运行环境(软、硬件环境)WindowXP 环境下运行三、算法设计的思想本程序采用栈的算法设计思想,为了实现算符优先算法,首先建立两个栈,一个字符型栈 YF,用于存储运算符,一个浮点型栈 YS, 用于存储运算数据。算法的基本思想:1. 建立两个空栈,将表达式起始符“n”为运算符压入栈底2. 顺序读取每个字符,每次读取判断是运算符还是数据,若是运算符则和运算符栈 YF 的栈顶元素进行优先性的比较,做相关的操作,若是数据

6、符,将一个连续的数字字符读入到一个字符数组中,将这个字符数组,通过 atof()函数将字符串转化成浮点型数据,然后将这个浮点数据压入 YS 数据栈,知道整个表达式读取完毕。四、算法流程图略五、算法设计分析1. 建立的两个栈,栈的操作方法都包括栈的建立 InitStack(),入栈函数 Push(),取栈顶元素函数 GetTop(),出栈函数 Pop(),判断是否是空栈函数 StackEmpty(),两个栈分别进行运算符和运算数的相关操作。2. 对于一个表达式,进行求值应满足以下运算规则:先算乘除,后算加减;从左到右依次计算,先算括号里面的,后算括号外面的,遇到绝对值运算符 A(A 代表 abs

7、 的缩写,表示进行绝对值运算,形式是(4-9)A运算结果是 5.00),和运算符 S(S 代表 sqrt 的缩写,表示进行开放运算形式是(2)S运算结果是 1.41),A 和 S 的优先性是比“)”的优先性低一级。开方和取绝对值时一定要注意输入格式(表达式)A 和(表达式)S。3. 运算符的游行先比较。Precede(char s1,char s2)比较两个字符的优先性,若是 S1 的优先级高于 S2 的优先性,则返回 ,若是 S1 的优先级高于 S2 的优先性,则返回 ,若是两个字符的优先级相同,则返回 = ,该函数中包括括号匹配问题,就是括号必须成对出现,若是不成对出现,将提示括号不匹配4

8、. 合法运算符的判断 Put()函数,只要是输入的运算符是 + - * / A S ,若是以上运算符 Put()函数返回 ture否则返回 false5. 本程序还右容错处理,(1)栈空的时候将会提示空栈,计算机将响一下短笛退出系统(2)当遇到不合法字符,不是英文的字符,括号不匹配问题,计算机将响一下短笛退出系统(3)输入的表达式不符合数学运算比如:除数不能为 0,开方的不能为负数,若是计算机将响一下短笛退出系统6. 本程序优好的操作界面,主界面将会提示你能输入的运算符和运算数,每次运算一个表示结果是,系统将会提醒是否继续操作,按Y 键,表示继续进行表达式的运算,按 N 键计算机将响一下短笛退

9、出系统。六、运行结果分析图 1.图 1 表示,运行窗口的主界面,界面中提示你能输入的运算符和运算数的,防止用户输入不正确的字符,造成系统报错。图 2.图 2 表示加法运算图 3.图 3,表示减法运算图 4,图 4,表示单独的除法运算图 5图 5,表示单独的乘法运算图 6,图 6,表示取绝对值运算图 7图 7,表示开方运算图 8图 8,表示绝对值和开方的混合运算图 9,图 9,表示加减乘除的混合运算,按其优先性进行运算,程序将一个个的获取表达式的字符,按照字符的顺序,字符的优先性进行相关的操作,每次读取进行判断,将字符按类别分别压入栈内。图 10图 10,表示混合运算的级取绝对值和开方运算图 1

10、1图 11,表示缺少左括号问题,报错后直接退出系统退出时计算机将给出一声短笛图 12,图 13图 12,表示不符合数学运算(除数不能为 0),图 13,表示开方数不能为负数,报错后直接退出系统,退出时计算机将给出一声短笛图 14图 14,表示运行表达式后退出系统的操作,退出时计算机将给出一声短笛七、收获及体会本次课程设计的时间虽然很短,但是感觉收获颇深的。首先,对本 学期所学的数据结构课程再次加深理解。这次我选择的课程设计的题目 是模拟计算器的程序,程序设计采用栈的算法结构,当初学的时候感觉栈就是一种操作,没用真正感觉到它的用处,但是,这次让我深深地 感觉到栈的强大的功能,再次加深了对栈的理解

11、。其次,自己的能力也 有很大的提高。第一是分析问题的能力,给一道题目,能很快的写出算 法分析,知道用哪些和不用哪些,先设计整体算法,在进行细节算法。 第二是解决问题的能力,写好程序要进行方法调试,总要出错的,运用 所学的知识逐个解决问题。最后,同时也查到自己的不足之处,感觉也 是大家的不足之处,平时的只靠老师布置的作业题来训练自己,是远远 不够的,我们学计算机的平时应该多做一些练习,才能在最后在做课程 设计时,不会手忙脚乱。还有就是,希望学校多给我们一些实践的环节。附代码:#include #includemath.hmalloc.hprocess.hctype.h#defineMAX 20#defineSTACKSIZE5/建立两个栈,一个运算符栈和一个操作数栈typedef structchar*base; char *top;intstacksize;Qstack;typedef structdouble*base; double *top; intstacksize;SQstack;/建立一个栈(字符型)用于存储运算符void InitStack( Qstack &S)S.base=(char*)malloc(MAX*sizeof(char); S.top=S.base;S.stacksize=MAX;voidPush(Qstack &S,char e)/元素入栈

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

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