




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于C的 多功能学习计算器(大一组)设计者:软件1304:赵海丰 13301112指导教师:马迪芳目 录1. 需求分析31.1需求分析31.2 软件特色41.3 技术难点42. 整体架构42.1系统架构42.1.1三层结构简介42.1.2 本系统的三层结构42.2 功能描述52.2.1基础表达式的计算52.2.2解方程52.2.3拓展功能52.3 界面设计62.3.1多功能学习计算器菜单界面62.3.2表达式计算界面72.3.3 解方程功能选择界面82.3.4 拓展功能菜单界面92.3.5 规则查看界面102.4 技术要求112.4.1开发环境112.4.2相关技术112.4.3运行环境113. 详细设计123.1 main.c fundmantal_service.c设计123.1.1 head.h123.1.2 main.c143.1.3 fundmantal_service.c143.2calculator_sevice.c expend_funciton.c sovle_equation.c143.2.1 calculator_sevice.c143.2.2 expend_funciton.c153.2.3 sovle_equation.c1533special_calculate.c special_value.c15triangle_calculator.c153.3.1special_calculate.c153.3.2 special_value.c163.3.3 triangle_calculator.c164. 核心展示174.1表达式计算演示174.2解方程计算演示184.3拓展功能演示194.4使用说明展示205. 心得体会216. 程序源代码211. 需求分析1.1需求分析高斯曾说:“数学是科学之王。”任何科学研究的进行都不离开数学的逻辑和运算。而现在的许多计算器使用很不方便,需要按指令输入数据计算,而输入的格式往往与书写习惯不符。所以在此基础上,一款功能强大,操作简便的计算器成为大众的需要。多功能学习计算器就是这样的一种计算器,它功能强大,操作简便,符合书写习惯,同时又附加多种功能,适用范围广泛,使工作生活变得简单快捷。1.2 软件特色该项目用C语言开发一款功能强大,操作简便的计算器,它的输入方式与手写方程相符。该项目在计算表达式基础上,加入了解各类方程的功能,使他的应用范围更广。除计算外,该项目加入了计算汇率,查看时间,莫尔斯密码,凯撒密码,密码保险箱等实用功能,给用户带来更多的服务,带来更高的提升。1.3 技术难点1) 字符串基础处理,界面美化的实现。2) 表达式计算时,堆栈算法的实现。3) 解方程功能中,递归算法的实现及优化,二分法的应用。4) 拓展功能实现过程中对知识储备的考验。5) 程序的bug及debug,深入了解用户感受,优化程序构架,满足各年龄段,各行各业用户的需要。2. 整体架构2.1系统架构2.1.1三层结构简介三层体系结构,是在客户端与数据库之间加入了一个中间层,也叫组件层,三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中 间层进行处理。通常情况下,客户端不直接与数据库进行交互。三层结构的优点:1)开发人员可以只关注整个结构中的其中某一层; 2)可以很容易的用新的实现来替换原有层次的实现; 3)可以降低层与层之间的依赖; 4)有利于标准化; 5)利于各层逻辑的复用。2.1.2 本系统的三层结构界面表示层: main.c fundmantal_service.c数据传输层: calculator_sevice.c expend_funciton.c sovle_equation.c业务逻辑层: special_calculate.c special_value.c triangle_calculator.c 2.2 功能描述2.2.1基础表达式的计算基础运算符:+ - * / ( ) !函数运算符:sin cos tan cot sec csc ln log2.2.2解方程解一元二次方程:根据a,b,c求解一元二次方程解多元方程:通过消元法递归求解方程解高次方程:二分法求解方程,精确到给定精度行列式计算:计算简单行列式矩阵的运算:矩阵的加法,矩阵的乘法,矩阵的转置,矩阵的逆求解回归方程:通过给定数据模拟出回归方程2.2.3拓展功能查看时间:查看当前时间最大公因数:求解两个数的最大公因数最小公倍数:求解两个数的最小公倍数求质数:显示给定n以内的所有质数汇率计算:多国货币汇率计算密码求解:解密凯撒密码及莫尔斯密码密码保险箱:将生活中密码集中管理保密2.3 界面设计2.3.1多功能学习计算器菜单界面图 0-1 多功能学习计算器菜单界面该界面是多功能计算器的菜单界面,在这里用户可以选择功能:表达式计算,解方程,其他功能,访问规则,退出。该项目主要应用对象是需要计算器的用户,故界面简单朴素大方,无须过多装饰,节省空间,提高计算效率,提高实用性。用户在对产品使用有疑问时可以访问规则,查询如何使用,访问规则内附有联系方式,方便程序时时更新。2.3.2表达式计算界面图 0-2 表达式计算界面该界面是此计算器的主要功能界面,由于其方便的书写性,省去过多的提示和美化,允许用户输入长表达式而不会有任何违和感。2.3.3 解方程功能选择界面图 0-3解方程功能选择界面该菜单提供给用户六种方程计算的选项,用户可以根据需要选择其中一种解方程,六种解方程选项可以胜任生活、科研中大部分问题的求解,节省用户时间。2.3.4 拓展功能菜单界面图 0-4 拓展功能菜单界面该菜单提供给用户七中功能选择,用户可根据需要选择使用,该功能为拓展功能,也是该软件需要时时更新的功能,在该项目构架后,后续将会进行不断更新。2.3.5 规则查看界面图 0-5 规则查看界面该界面展示软件使用方法,给用户以使用指南,避免运算错误,并且提供联系方式,对于用户的需求及时更新,为用户提供新体验。图 0-6 规则细节提示界面2.4 技术要求2.4.1开发环境Microsoft Visual Studio 20102.4.2相关技术该项目主要技术是运用各类高级算法,包括堆栈运算,字符串处理,数论知识,二分法,递归搜索求解,明文密文加密。在应用层,应用Windows控制台,使产品适用于各版本电脑。2.4.3运行环境硬件平台:CPU: P4 1.6GHz内存: 128MB以上硬盘空间:10MB以上操作系统: Windows 2000/XP/Vista/7 DOS系统3. 详细设计3.1 main.c fundmantal_service.c设计3.1.1 head.h图表 3-1 头文件头文件主要作用是接入外部依赖项,建立函数接入口,创建函数原型,保证整个项目可以顺利运行。声明宏和全局变量,方便各函数统一调用。3.1.2 main.c图表 3-2 Windows控制台调整用户界面项目主程序,程序接入端口,负责运行整个程序,调整用户界面,保证用户在使用软件的便捷性、美观性。3.1.3 fundmantal_service.c图表 3-3 基础功能设计实现软件基本功能,包括菜单列表,建立基本接入点,从菜单列表进入数据处理层,展示规则。3.2calculator_sevice.c expend_funciton.c sovle_equation.c3.2.1 calculator_sevice.c图表 3-4 计算服务数据传输此包下封装的四个类中:计算服务数据传输层,主要是将读入进来的字符串进行处理,通过比较,检查,插入,堆栈操作实现对字符串表达式的计算,返回一个double类型的值,该计算服务运用局部变量,栈内存,可以递归的调用自身,递归的解决系列问题。3.2.2 expend_funciton.c图表 3-5 拓展功能设计拓展功能设计主要是进行拓展功能基本展示,并且将用户选择的操作和输入的数据接入业务逻辑层进行处理。3.2.3 sovle_equation.c图表 3-6 方程解决功能设计方程解决功能设计主要是进行方程解决功能基本展示,将用户选择的操作和输入的数据接入业务逻辑层进行处理。33special_calculate.cspecial_value.ctriangle_calculator.c3.3.1special_calculate.c图表 3-7 特殊函数计算对ln,log函数进行特殊处理。3.3.2 special_value.c图表 3-8 特殊符号处理对圆周率和自然对数进行识别处理,压入堆栈。3.3.3 triangle_calculator.c图表 3-9三角函数处理对三角函数进行识别计算和处理。4. 核心展示4.1表达式计算演示图 4-1 +-*/()运算演示图 4-2 三角函数运算演示图 4-3 特殊函数运算演示、特殊符号识别表达式计算完美融合各种计算符号,将字符串处理后输出一个double类型数,保留6位小数,足够生活以及非特殊需要科研使用。4.2解方程计算演示图 4-4 解方程计算解六类方程,具体可参考软件。4.3拓展功能演示图 4-5 拓展功能演示七类拓展功能,具体可参考软件。4.4使用说明展示图 4-2 使用说明展示使用说明主要是为了展示使用方式,并且对容易出现的问题提前声明,避免错误的输入导致用户效率降低,降低对软件的好感度。5. 心得体会软件是需要思想作为灵魂的,而算法就是一种思想的表达,你有怎样的思想,就可以写出怎样的算法,在实现算法的过程中我学会了用计算机的语言严谨的表达自己。C语言是面向过程的语言,在界面化制作上需要很大的功夫,但如果我们摒弃华丽的界面,找寻软件的本质,将软件真正做到能服务于用户。在编写软件的过程中,我发现,软件的设计涉及各个方面的知识,真正有一种书到用时方恨少的感觉。在未来行进的路上,不要把眼界仅放在眼前,而是多涉猎各类知识,知识没有界线,不分专业。在软件编写的过程中,每个程序员都知道debug要比写代码花费的时间长很多,推而广之,无论我们以后做什么都应该在一开始就要有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年辽宁装备制造职业技术学院辅导员考试真题
- 信用行业管理制度
- 信访重点管理制度
- 修改单据管理制度
- 公司商务舱管理制度
- 加气站消防管理制度
- 售楼部设计管理制度
- 实验室养护管理制度
- 小公司报账管理制度
- 已耗品采购管理制度
- 北京市顺义区2023-2024学年五年级下学期数学期末试卷(含答案)
- 2025公基题库(附答案解析)
- 2025年宁夏银川灵武市选聘市属国有企业管理人员招聘笔试冲刺题(带答案解析)
- 机关内部制度管理制度
- 两办意见宣贯考试题及答案
- 2025年高纯硫酸锶项目市场调查研究报告
- 2025年汽车驾照考试科目一考试题库及参考答案
- 广东省广州市天河区2023-2024学年七年级下学期期末考试英语试题(含答案)
- 净水机服务合同协议书
- 古城煤矿压风系统远程监控改造技术协议
- 2025年上海市公务员录用考试《行测》真题及答案解析(B类)
评论
0/150
提交评论