




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京信息科学技术大学计算机软件基础课程设计主题:链表多项式运算学院:信息与通信工程学院专业:通信工程专业学生姓名:类别/类别编号指导老师:开始时间: 2015年10月至2015年11月5日源代码任务书主题4链表多项式运算主要是内容1、掌握多项式链的存储结构和运算方法,完成一维多项式加法和乘法,如插入、删除、制作等。2、基于多项式求和、乘积原理,实现多项式建立、求和、乘积、显示、释放、插入排序等功能。 例如输入: 5x3 1.2x 4.5x2; -1.2x 1加法结果:1 4.5x2 5x3;乘法结果: 4个1.2x 3.06x2-0.4x3-6x43 .学习创建dll函数。4 .掌握c编程环境的基本调试方法,熟练使用可视化c编程工具。设计要求1、提交课程设计文件,要求印刷。 客观评价课程设计工作书、主要内容、源程序和程序功能,明确指出自己写了什么具体函数。2、提交电子版源程序,包括求多项式总和、乘积、插入、删除、链表创建、排序等步骤序。3、自己制作求素数的函数,将其作为动态链接库形式,在主函数中调用。 将自己创建的程序写入动态链接库和静态链接库格式,并尝试比较以下三种EXE文件的大小:答:调用静态链接库生成的EXE可执行文件。b :调用动态链接库生成的EXE可执行文件。c :直接调用函数生成的EXE可执行文件。主要是仪器设备已安装单台计算机、Windows XP操作系统、Microsoft Visual C 6.0和msdn库。主要是作为参考文献1侯俊杰. MFC (第二版) M .武汉:华中科技大学出版社,2001 .2谭浩强. c编程(第二版) M .北京:清华大学出版社,1999 3孟彩霞.计算机软件基础M .陕西:西安电子科技大学出版社,20034严蔚敏,吴伟民.数据结构M .北京:清华大学出版社,2005课程设计进度计划(开始时间、工作内容)4学时理解课题背景,选择问题,学习DLL,学习链接表的基本概念。4学期制作加法程序。制作了4学时求积的程序。4学时完善功能,编制排序程序。4学时调整程序,答辩。课程设计开始日期第二周一课程设计完成日期第二个星期五课程设计实验室名称计算机中心室地点健翔桥校区摘要:用c语言实现一元多项式的运算。 利用链表实现单项式运算的记忆。 该程序具有加法、乘法的基本运算功能。 程序的各功能模块都作为函数来实现。关键字:多项式运算函数链表内容:1 .根据求多项式总和、乘积的原理和程序框架,分别制作函数createpoly、polyadd、polymulti、Clearlist、InserNode,实现求多项式的制作、合计、乘积、显示、释放、插入排序等功能。2、比较多项式加法和合并两个规则表的异同3、InserNode函数的功能是什么目录概要4二整体方案设计4三详细设计64程序的调试和执行结果的说明12五课程设计总结13参考文献14附录:程序源代码14叙述概要1 .课程设计的目的掌握多项式链的存储结构和运算方法,如插入、删除、制作等,完成单项式加法和乘法。2 .课程设计要求1 .用c语言实现单项式的运算2 .利用链表实现一维多项式运算的记忆3 .该程序具有加法、减法、乘法的基本运算功能4 .程序的各功能模块要求以函数的形式实现5 .完成设计任务并编写课程设计报告。二整体方案设计1程序设计多项式记忆的解释和说明:多项式如名称所示包含多个单项式,因此容易与程序员联想的是链接的链接表,链接的链接表比顺序的操作灵活,链接的插入和删除容易。我必须考虑多项式记忆的常见输入错误,检验每个输入的单项式,记住符合条件的,反之删除提示重新输入,所以我的程序也选择连锁单项式表来记忆多项式,给我的程序后期的算法设计带来很多好处起始节点coef(0)expn(-1 )下一步像上级节点一样,采用的结构形式,其大部分分为data域和next域,其中data域为嵌套结构,其中分为coef和expn两个域,next域是指向下一个节点的指针域。 初始化头节点时,coef和expn的初始值为0和-1。 由于头节点在整个算法中不参与计算,因此只是起着一个连接的作用,指数领域expn中-1起着象征性的作用。总体设计构想:模仿DOS界面,在命令行中操作整个程序的执行算法的总体思路:首先写命令行函数,然后将一元多项式运算函数插入命令行函数中,以达到调用函数的目的主要特征:可以实现一维多项式的DOS接口指令操作具体功能:通过命令调用函数,实现单项式的存储、加法、乘法功能,并实现显示、销毁等命令。二.主要问题解决我的设计通过实现单项式的记忆、加法、乘法功能,我想模仿DOS接口指令形式,采用指令操作来实现该课程设计的要求。三.方案的主要模块如1、2所述,我模仿DOS指令接口,采用了多项式的记忆及其加法、乘法等功能。 因此,我设计的程序模块主要有两大模块,它们是命令行调用模块和单项式的存储、运算模块。3.1命令行调用模块在该模块中,我也使用结构来存储相关指令,但是它们采用顺序的链接表,并且当使用命令行函数时,指针偏移有利地控制回收,以便找到相关指令的函数指针。命令行的节点形式,pCmdName是命令名,pCmdInfo是命令的功能说明,pFun是定制的函数指针内型,即存储相关命令的函数指针。*pCmdName*pCmdInfo;pFun命令行顺序表g_CmdInfo具有如下效果,即描述命令行输入函数CmdProc,使用while循环在函数中输入相关联的命令,并且通过使用库函数strcmp输入的命令对照该命令,来调用相关联的命令函数。 在相关指令函数中,调用以下模块的相关函数:3.2单项式的记忆、运算模块在本模块中,我使用的链接表存储了多项式,因此相关介绍见上面1 .编程的详细说明。此模块的几个主要功能函数创建createLink链接表、printList输出链接表、addPolyn加法函数、substractPolyn减法函数和mulPolyn乘法函数。也有相关的辅助函数copyLink复制多项式函数、locateLink匹配单项式函数、destroyLink丢弃节点函数。复印链接本地链接destroyLink创建链接打印列表(打印列表)添加addPolynsubstractPolynmulPolyn公司相关主函数与辅助函数的关系如上所述。三详细设计1 .单项式运算函数设计1.1创建多项式的过程在这个过程中,我采用了链接表的形式,最后的领域是指针next领域,其中多项式节点的data领域中结构是嵌套的,也就是说data领域分为系数coef和指数expn两个领域。起始节点coef(0)expn(-1 )下一步152下一步235下一步178空值这是在建立多项式的过程中,该多项式为15*x2 23x23 17x8,当然在建立多项式的过程中有更细致的检验。1 .指数为负核查:2 .系数为0的检查:3 .输入指数相同的检查:黑体函数locateLink确定指数是否与多项式中已经存在的相同。补充:在验证3之前必须将每次输入的单项式按从小到大的顺序排列,对locateLink和下一个加法减法函数也设置了简单的地板。 我采用的横动,找到每次输入的单项式的位置,插入。1.2多项式输出实现过程在输出之前,必须验证接收参数指针最初考虑了从多项式的最初的节点一次性输出,但是由于知道了这样的通用性低,所以分开输出最初的节点后,按顺序循环输出其他的节点,这个函数的通用性大幅度提高了。 并且,在输出各节点时,也研究了系数、指数,但是在(系数不是0 )多项式的第1项的系数大于0的情况下输出的例子如下所示如果指数为0,则仅输出系数系数和指数都是1的话,就不输出1,只输出x系数或指数中任一个为1的情况下,也不需要输出1,除此以外直接输出1.3多项式加法过程将两个多项式相加保护,并将两个多项式分别复制到另外两个多项式中。还验证了以下两个多项式如果验证正确,则加上:1 .当两个多项式的指数不同时,算法的节点变化如下(“super tin连接”的尾部是“和”的next字段,头部是从“加”和“被加”中查找指数较小的项目,并用指针偏移进行连接。 中所述情节,对概念设计中的量体体积进行分析2 .请注意,如果两个多项式中有指数相同的项,则首先将其与一个多项式相加并保存,然后用上面的1的“蛇行连接”方法进行连接,但是跳过指数没有累积在同一项中的项,不进行连接。3 .不过,请注意,如果指数加到同一项中,则必须检查加法运算的结果,即多项式中任一项的系数,并进行非零检查。 因为两种情况的节点连接方式不同当然,如果验证不正确,则:补充:黑体函数destroyLink是丢弃单个链表的函数,用于释放内存空间具体的函数代码如下:destroyLink函数也是命令行DesPolyn调用的主要函数。1.5多项式乘法过程在乘法过程中,只要在一个多项式的各项中依次乘以另一个多项式的各项,形成依次多项式,加在同一多项式上,最终得到必要的结果,能够立即舍弃临时的多项式2 .模仿dos命令行设计命令行函数定义了一个有序的单链接表,第一个字段是字符串指针(命令名称),第二个字段两个字段也是字符串指针字段(命令函数),第三个字段是函数指针字段(命令函数)。 create 建立多项式创建 display 显示多项式display公司添加“多项式加法”新增功能面条“多项式乘法”面部/*命令行函数*/void CmdProc(const char *pTitle )int create ();int display ();int add ();int面包();CMDINFO shuzu= create ,创建多项式, create显示、显示多项式、displayadd、多项式加法、add“面”,“多项式乘法”,“面”面intg _ NCD size=sizeof (shuzu )/sizeof (cmd info )Link La=NULL,Lb=NULL;int main ()装模作样CmdProc (多项式 );以下称为voidacmdproc (const char * ptitle )/dos接口命令行函数装模作样char szCmdBuf50=;int i=0;while (真)装模作样科特足球俱乐部cin szCmdBuf;for (i=0; i g_nCmdSize; I )装模作样if! strcmp(szCmdBuf,shuzui.pCmdName ) )装模作样shuzui.pFun ();break
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 亭湖中考模拟考试题目及答案
- 田径2期末考试题及答案
- 数字化渲染与建筑设计表达-洞察及研究
- 2025年公职人员考试时事政治考试题库(附答案)
- 高中学校巡课工作方案
- 虚拟模块仓库管理办法
- qc质量改善管理办法
- 中国铁塔工程管理办法
- 上海工程招标管理办法
- 人身险代理人管理办法
- 2023-2025年中考语文试题分类汇编:记叙文阅读(辽宁专用)解析版
- 2025年公路检测工程师《水运结构与地基》试题及答案
- 2025年教科版新教材科学三年级上册全册教案设计(含教学计划)
- 从+“心”+出发遇见更好的自己-开学第一课暨心理健康教育主题班会-2025-2026学年高中主题班会
- 隔爆水棚替换自动隔爆装置方案及安全技术措施
- 2025年苏教版新教材数学二年级上册教学计划(含进度表)
- 叙事医学培训课件
- 催产素引产术的护理PPT课件
- 2022年会计师事务所预算管理制度
- 车辆使用完全手册
- 林地恢复施工组织设计方案
评论
0/150
提交评论