C语言课程设计任务书

合集下载

C语言课程设计任务书

C语言课程设计任务书

《C语言课程设计》任务书一、课程设计的目的本次课程设计的主要目的是综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体等相关内容的综合应用,使学生能进一步熟悉掌握C语言的基本语法,进一步提升编程能力并逐步培养编程思维,进而不断提高学生解决问题的能力,并为以后的语言学习打下良好的基础。

二、课程设计的要求(一)设计要求课程设计要求在具体项目的基础上,使学生进一步理解和掌握课堂教学中所学知识,来解决一个实际的问题,提高学生进行算法设计与分析能力,提高学生程序设计、实现和调试能力。

在课程设计的过程中要求学生具备以下条件:1.熟悉Microsoft Visual C++环境中的设计、调试步骤及技巧。

2.熟悉数据类型的定义和实现方法,领会数据类型的实质。

3.根据实际问题选择数据结构,熟悉算法的描述描述,并进行程序设计和实现。

4.熟悉程序代码编写的书写规范,能够在课程设计文档中对算法设计与分析、程序设计与测试进行详细描述。

(二)操作要求1. 要求学生按照选题规则确定课程设计题目,不可随意更换,但可在完成规定的任务之后,根据个人兴趣选做其它题目;2.掌握结构化程序设计的方法,提高进行算法设计的能力;2.进一步提升C语言的应用能力;2.提高程序设计的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.严格按照报告格式撰写课程设计报告;(三)成果要求本课程主要训练学生综合运用结构化程序设计的知识,针对实际问题进行算法的设计和实现,培养学生的团队协作能力,提高学生程序设计、调试能力、提高学生文档写作能力。

课程设计质量评定包括对平时表现的评定成绩与实验结果检查质量评定两部分。

实验结果检查质量包括:系统设计的运行状况质量,以及课程设计说明书的编写质量。

三、课程设计的安排第一阶段:在课程设计前向学生布置课程设计任务及相关要求,学生选择课题。

C语言课程设计任务书

C语言课程设计任务书

C语言课程设计任务书一课程设计目的本课程设计是重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:●巩固和加深学生对C语言课程的基本知识的理解和掌握●掌握C语言编程和程序调试的基本技能●利用C语言进行基本的软件设计●能够利用所学的基本知识和技能,解决简单的程序设计问题.●掌握书写程序设计说明文档的能力二课程设计要求1.在指导书提供的课程设计题目中选择一题或自选题目(需经指导教师认可);2.每个题目两人合作完成或独立完成,题目选定后不可更换,3.分析课程设计题目的要求4.写出详细设计说明5.编写程序代码,调试程序使其能正确运行6.设计完成后提交课程设计报告及三亚学院课程设计考核表三课程设计题目第一题学生证管理程序【题目描述】请设计一个学生证的管理程序。

该程序应具有下列功能:(1)录入某位学生的学生证信息(学生证应该包含的信息请参考自己的学生证);(2)给定学号,显示某位学生的学生证信息;(3)给定某个班级的班号,显示该班所有学生的学生证信息;(4)给定某位学生的学号,修改该学生的学生证信息;(5)给定某位学生的学号,删除该学生的学生证信息;(6)提供一些针对各类信息的统计功能【题目要求】(1)按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序(2)为各项操作功能设计一个菜单。

应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目【输入要求】应用程序运行后,在屏幕上显示一个菜单。

用户可以根据需求,选定相应的操作项目。

进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。

【输出要求】(1)应用程序运行后,要在屏幕上显示一个菜单。

(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。

【提示】设计一个结构体类型和一维数组类型,用来保存学生证的内容。

【扩展功能】将所有学生证信息存储在一个文件中,并实现文件读写的操作。

计算机程序设计基础(C语言)课程设计任务书

计算机程序设计基础(C语言)课程设计任务书

30、 学生籍贯信息记录簿(限最多 1 人完成) 编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能:
要求:设置一个简单的行编缉器,每行以回车结束。 数据以文件形式存储 编辑器具有查找、替换、修改数据的功能。
13、 双向链表的排序(限最多 1 人完成) 要求:输入一个双向链表,显示些双向链表并对此双向链表排序
14、 校园导游咨询(限最多 1 人完成) (1)、功能描述:设计你的学校的校园平面图,所含景点不少于 10 个。以图中顶点表示学 校各景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径长度等相关信息。 (2)、为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简 单路径。 (3)、为来访客人提供图中任意景点相关信息的查询。 测试数据:由读者根据实际情况指定。
28、 图书管理系统(限最多 2 人完成) (1)、功能描述
新进图书基本信息的输入。 (2). 图书基本信息的查询。 (3). 对撤消图书信息的删除。 (4). 为借书人办理注册。 (5).办理借书手续(非注册会员不能借书)。 (6).办理还书手续 信息描述:有关该系统基本信息的描述,如:图书名称、图书编号、单价、作者、存在状 态、借书人姓名、性别、学号等
20、 校际运动会管理系统 (限最多 1 人完成) 问题描述: 1).初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数; 各项目名次取法: 取前 5 名:第 1 名得分 7,第 2 名得分 5,第 3 名得分 3,第 4 名得分 2,第 5 名 得分 1; 2).由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。 3).所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表, 查看参赛学校信息和比赛项目信息等。 4). 要求实现字符菜单和密码认证。

C语言课程设计任务书(必备)

C语言课程设计任务书(必备)

C语言课程设计任务书(必备)课程名称:C语言课程设计课程设计任务书一、课程设计概述本次课程设计旨在帮助学生巩固和运用所学的C语言知识,进行实际的程序开发和问题解决。

学生将通过自主编程实现特定功能的程序,并进行测试和调试。

本次课程设计的主题是自动售货机程序设计。

二、课程设计目标1. 理解程序开发的基本过程,包括需求分析、程序设计、编码、测试和调试等环节;2. 掌握C语言的基本语法、数据类型、控制结构和函数等知识;3. 能够使用C语言设计和实现简单的程序,并能进行测试和调试;4. 培养学生的团队合作意识和创新意识。

三、课程设计内容1. 设计一个简单的自动售货机程序,实现以下功能:a. 显示商品清单和价格;b. 输入金额,并根据金额选择购买商品;c. 计算并显示找零金额;d. 更新商品库存;e. 显示交易完成信息。

四、课程设计要求1. 学生需自主完成程序的设计和编码,并确保程序的功能完备和正确性;2. 程序需使用C语言编写,且需遵循良好的编码规范;3. 程序需具有一定的用户友好性,能够提示用户输入和输出相关信息;4. 学生可以自行选择合适的编程环境和工具,并提交运行结果截图;5. 学生可以组成小组进行合作,但每个学生需独立完成一份课程设计报告。

五、课程设计报告要求1. 报告内容应包括课程设计的需求分析、算法设计、实现思路和程序测试等部分;2. 程序设计的相关代码应附在报告中,并进行适当的注释;3. 报告应使用规范的格式,包括封面、目录、正文、参考文献等部分;4. 报告应具有较高的学术水平和语言表达能力;5. 报告需以电子版的形式提交。

六、课程设计评分方式1. 程序功能正确性:40%;2. 代码质量和规范性:20%;3. 实现思路和效率:20%;4. 报告内容和撰写质量:20%。

七、课程设计安排1. 学生选题和组团:第1周;2. 确定需求和设计算法:第2-3周;3. 编码、测试和调试:第4-5周;4. 报告撰写和提交:第6周;八、备注事项1. 本任务书仅为设计任务的指导,学生可以根据自身实际情况进行调整;2. 学生可向任课教师咨询和讨论相关问题,但需保持独立思考和创新能力。

C语言课程设计任务书

C语言课程设计任务书

C语言课程设计任务书一、课程设计的目的“C语言课程设计”是在学习“C语言程序设计基础”课程之后进行的一个实践教学环节,课程设计的目的是:进一步培养学生结构化程序设计的思想,加深对C语言基本语法和程序结构的理解。

针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。

掌握C语言的编程技巧和上机调试程序的方法。

掌握程序设计的常用算法。

为以后编写大型程序打下基础。

二、时间15周到18周三、需要提交的成果1、C语言课程设计报告2、源程序四、要求1、程序结构合理2、界面比较美观(两级菜单)3、最好使用单链表(成绩可以评为优)4、输入时有提示,输出美观、整齐四、题目1、学生成绩管理系统学生数据由学号、姓名、班级、三门课(数学、英语、计算机)的成绩和平均成绩构成。

功能要求:(1)添加学生的记录(2)查询学生(分别按学号和姓名)(3)对学生数据排序(分别按平均成绩和计算机成绩的降序)(4)删除学生记录(5)修改学生记录(6)班级成绩分析(各科平均成绩、最高分、最低分、及格率)(7)输出学生信息表2、职工信息管理系统职工数据由职工编号、姓名、部门、职称、基本工资、加班工资、奖金和总工资构成。

功能要求:(1)添加职工的记录(2)查询职工(分别按职工编号和姓名)(3)对职工数据排序(分别按总工资和基本工资的降序)(4)删除职工记录(5)修改职工记录(6)部门职工分析(平均工资、各种职称所占的百分比)(7)输出职工信息表3、图书管理系统图书数据由编号、书名、出版社、单价和图书状态(库存用0表示或借出用读者编号表示),读者数据由编号、姓名和电话号码构成。

功能要求:(1)添加图书的记录(2)图书管理(借书和还书)(3)对图书数据排序(按单价的降序)(4)删除图书记录(5)修改图书记录(6)添加读者记录(7)输出图书信息表和读者信息表。

《C语言程序设计》实验任务书

《C语言程序设计》实验任务书

《C语言程序设计》实验任务书实验一数据类型及顺序结构一、实验目的1.进一步熟识tc环境的采用方法。

2.学习c语言赋值语句和基本输入输出函数的使用。

3.编写顺序结构程序并运行。

4.介绍数据类型在程序设计语言中的意义。

二、实验内容1.编程序,输出如下图形:********************2.编写程序,输出变量x值,输入变量y的值,并分析输入结果。

y=(x-=x*10,x/=10)建议变量x、y就是float型。

3.运行下述程序,分析输出结果。

main(){inta=10;longintb=10;floatx=10.0;doubley=10.0;printf(\;printf(\;printf(\;}从此题的输入结果重新认识各种数据类型在内存的存储方式。

三、实验建议1.复习赋值语句和输入输出函数各种格式符的使用。

2.复习数据类型和运算符的有关概念。

3.编写程序,运转程序并记录源程序和运转结果。

实验二选择结构程序设计一、实验目的1.正确使用关系表达式和逻辑表达式表达条件。

2.学习分支语句if和switch的使用方法。

3.进一步熟识tc内置环境的采用方法,自学tc环境提供更多的调试工具。

二、实验内容1.某托儿所收2岁到6岁的孩子,2岁、3岁孩子进小班(lowerclass);4岁孩子进中班(middleclass);5岁、6岁孩子进大班(higherclass)。

编写程序(分别用if和switch语句同时实现),输出孩子年龄,输入年龄及步入的班号。

例如:输出:3,输入:age:3,enterlowerclass。

三、实验建议1.复习关系表达式、逻辑表达式和if语句、switch语句。

2.学习程序的调试方法。

3.编写程序,运转程序并记录源程序和运转结果。

实验三循环结构程序设计一、实验目的1.学习循环语句for、while和do-while语句的使用方法。

2.学习用循环语句实现各种算法,例如穷举法、迭代法等。

C语言课程设计任务书(18份)详细版

C语言课程设计任务书(18份)详细版

C语言课程设计任务书详细版(18份)C语言课程设计任务书1题目:某学院教学信息管理系统功能:1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。

2、输入功能:可以一次完成若干条记录的输入。

3、显示功能:完成全部教师记录的显示。

4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。

5、排序功能:按职工号或教学效果综合评分进行排序。

6、插入功能:按教学效果综合评分高低插入一条教师记录。

7、将教师记录存在文件中。

8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!要求:1、用C语言实现系统;2、利用结构体数组实现教学信息的数据结构设计;3、系统具有增加,查询,插入,排序等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将教学信息存在文件中。

课程设计的最后成果是实验报告一份,内容包括:1、预习报告(题目、流程图、程序的设计思想等);2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书2题目:酒店房间登记与计费管理系统功能:1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。

2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。

3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。

分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。

3、进一步要求:完成计费和费用查询功能。

要求:1、用C语言实现系统;2、函数功能要划分好(结构化程序设计);3、界面友好(良好的人机交互),加必要的注释;4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

C语言课程设计任务书指导书

C语言课程设计任务书指导书

C语言课程设计任务书指导书一、实践的目的和要求加深对《C语言》课程所学知识的理解,进一步巩固C语言讲法规则。

学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力本课程设计是采用C语言,在VC平台下设计图书管理系统,该系统运行在MS-DOS命令行模式下。

本课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力。

"C语言"课程设计主要是培养学生利用系统综合C语言进行程序设计的能力。

1.进一步巩固和复习C程序设计的基础知识。

2.培养学生结构化程序、模块化程序设计的方法和能力。

3.了解软件的编制过程及各环节的具体内容。

4.提高学生程序调试技巧、软件设计能力和代码规范化等素质。

5.提高学生分析问题、解决问题以及实际运用能力。

二、内容在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。

进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。

三、课程设计要求:1、用C语言实现系统;2、系统的各个功能模块要求用函数实现;3、界面友好(良好的人机交互),程序加必要的注释。

4、课程设计实验报告要求:报告的组成项:目录一目的本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。

将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解。

二需求分析(功能)根据学生成绩管理的需要,建立一个“学生成绩管理系统”,以方便对成绩的各项管理操作。

开发目的如下:①能对成绩进行录入和修改;②能计算每个学生的平均成绩以及各门功课的平均成绩;③能根据学生的学号来查询该学生的成绩;④能删除该学生的记录;⑤能根据每个学生的平均成绩来他们进行排序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息科学与工程学院综合设计报告书课程名称:C语言课程设计班级:学号:姓名:指导教师:目录( 一) 需求分析..................................... . 2-3 1.设计题目;2.用户操作流程;3.数据处理流程;(二)概要设计......................................4-51.系统总体设计框架;2.系统功能模块图;(三)详细设计.....................................5-111.主要功能模块的算法设计思路;2.工作流程图;(四)主要源程序代码...............................12-211.完整源程序清单及关键注释;(五)调试分析过程描述.............................21-241.测试数据、测试输出结果;2.对程序调试过程中存在问题的思考;(六)课程设计小结.................................24-251.包括课程设计过程中的学习体会与收获;2.对C语言和本课程设计的认识以及自己的建议等内容。

一、需求分析1、设计题目:编程实现以下功能:(1)分别输入一元多项式pn (x)和Q n (x)。

从键盘输入一元多项式中各项的系数和指数,并用单链表加以表示。

(2)分别对一元多项式pn (x)和Q n (x)进行升幂排序。

将一元多项式中各子项按照指数从小到大的顺序排序。

(3)分别输出一元多项式pn (x)和Q n (x)。

将用单链表表示的一元多项式输出,即打印多项式的系数和指数。

(4)任意输入一个实数x0,分别求出一元多项式pn (x0)和Q n (x0)的值。

(5)已知有两个一元多项式分别为Pn (x)和Qn (x),求出两个多项式的和R n (x)和差T n (x),分别用单链表表示R n (x) 和T n (x),并将二者输出,(R n (x)=P n (x)+Q n (x),T n (x)=P n (x)-Q n (x))2、用户操作流程:(1)进入欢迎及界面。

(2)根据提示选择需要的功能。

(3)根据提示输入数据.(4)选择函数输出运行结果。

(5)退出本系统。

3、数据处理流程(1)输入数据,通过链表存储P(x) 和Q(x) 的指数和系数。

(2)通过冒泡排序法对P(x) 和Q(x) 进行升幂排序。

(3)输入x0,通过指针将其带入P(x) 和Q(x) 的表达式求出具体的数值。

(4)通过链表对两个多项式求和求差。

(5)通过链表输出运行结果。

;二、概要设计1、系统总体设计框架:功能选择函数输入数据函数升幂函数主程序赋值函数求差求和函数输出结果函数2、系统功能模块(1)功能选择函数:通过输入对应功能的数字,进行多项式的运算。

该函数在主函数中调用。

(2)输入数据函数:通过建立单链表,输入两个多项式的各项指数和系数。

(3)升幂函数:通过冒泡排序法对两个多项式进行升幂排序。

(4)求和求差函数:定义空链用来存储结果,将两个多项式相加减。

(5)输出函数:输出上一步的运行结果。

三、详细设计一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。

链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。

创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。

多项式相加的运算规则是:两个多项式中所有指数相同的项的对应系数相加,若和部位零,则构成“和多项式”中的一项;所有指数不相同的的项均“复抄”到“和多项式”中。

以单链表作为存储结构,并且“和多项式”中的节点无需另外生成,则可看做是将多项式Q 加到多项式P 中,由此得到下列运算规则:若p->exp<q->exp,则结点p 所指的结点应是“和多项式”中的一项,令指针p 后移。

若p->exp<q->exp,则结点q 所指的结点应是“和多项式”中的一项,将结点q 插入在结点p 之前,且令指针q 在原来的链表上后移。

若p->exp=q->exp,则将两个结点的系数相加,当和不为零是修改结点p 的系数,释放q 结点;若和为零,则“和多项式”中无o 此项,从P 中p 结点,同时释放p 和q 结点。

多项式相减运算规则同加法。

设计思路:实现的方法是先定义多项式结点的结构,该多项式每个结点由三个元素:输入的系数、输入的指数、以及指向下一个结点的指针构成。

该链表采用链式存储结构。

然后通过多次的输入,依次得到两个一元多项式的各个项的系数与指数。

该输入以零结尾。

然后通过对结点的判断是否为零后,进行运算或者终止的操作。

再初始化一个链表LC,将LC的各项系数和指数的指针指向LA+LB所得的结果的值,完成了最后的输出。

(1)定义结构体struct结构体为表示一个对象的不同属性提供了连贯一致的方法,结构体类型的说明从关键词struct 开始,成员可以由各种数据类型混合构成,成员甚至还可以是数组或者其他类型的结构,但是,结构体中不能包含自身定义类型的成员。

使用typedef 和struct 定义的新类型名称,其用途与内建类型的名称相同,可以用来:声明和初始化结构体变量;创建并根据自己的意愿初始化结构数组;(2) 单链表的建立单链表有两个域,data 域和next 域,一个是存放数据,一个是存放指针而且指向它的后继。

并且还有个head,称表结点,它一般不存放数据,只是做个特殊标记。

表的结束是NULL,也就是最后的那个链域next 为空单链表的插入运算有两种,一种是头插法,另一种是尾插法,这里运用的是尾插法(3)一元多项式的建立输入多项式采用插头的方式,输入多项式中一个项的系数和指数,就产生一个新的节点,建立起它的右指针,并用头节点指向它;为了判断一个多项式是否结束,定义一个结束标志,并输入非0 时就继续,当输入0 时,就结束一个多项式的输入(4)显示一元多项式如果系数是大于0 的话就输出+系数x 指数形式;如果系数小于0 的话输出系数x 指数形式;如果指数为0 的话,直接输出系数;如果系数是的话就直接输出+x;如果系数是-1 的话直接输出-x 输出多项式(5)一元多项式的加法计算它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果数相等的话,系数就应该相加;相加的和不为0 的话,用头插法建立一个新的节点。

p 的指数小于q 的指数的话,就应该复制q 节点到多项式中。

p 的指数大于q 的指数的话,就应该复制p 节点到多形式中。

当第二个多项式为空时,第一个多项式不为空时,将第一个多项式用心节点产生。

当第一个多项式为空,第二个多项式不为空时,将第二个多项式用新节点产生(6)一元多项式的减法计算它从两个多项式的头部开始,两个多项式的某一项都不为空时,如果数相等的话,系数就应该相减;相加的和不为0 的话,用头插法建立一个新的节点。

p 的指数小于q 的指数的话,就应该复制q 节点到多项式中。

p 的指数大于q 的指数的话,就应该复制p 节点到多形式中。

并且建立的节点的系数为原来的相反数;当第二个多项式为空时,第一个多项式不为空时,将第一个多项式用心节点产生。

当第一个多项式为空,第二个多项式不为空时,将第二个多项式用新节点产生,并且建立的节点系数为原来的相反数。

数学模型:在数学上,一个一元多项式Pn(x) 可按升幂写成:P n(x)=p 0+p1x+p2x n x2+,, +p n2+,, +pn它由n+1个系数唯一确定,因此,在计算机中它可用一个线性表P来表示:P=(p0 ,p 1,p 2, ,, ,pn)每一项的指数i 隐含在其系数Pi 的序号里,每一项的值顺序为各个多项式的系数值。

加法模型:假设Qm(X)是一元m次多项式,同样可用线性表Q来表示:Q=(q0,q 1,q 2, ,, q m)不失一般性,设m<n,则两个多项式相加的结果R n(x)=P(x)+Q(x) 也可- 8 -链表来表示,规则是相同指数的项的系数相加,所以P(x)+Q(x)=(p0+q0,p 1+q1,, p m+q m,p m+1,, pn),例如:P(x)=2x 4+5x2+3x+1,Q(x)=3x 2+1, 相加后R(x)= 2x 4+8x2+3x+2,用一维向量表表示分别为(1,3,5,0,2)+(1,0,3 ,)=(2,3,8,0 ,2),写成数学形式即为2x4+8x2+3x+2,结论正确。

减法模型同加法模型。

具体函数模块的流程图:功能选择模块:输入数据函数:开始开始输入各项的指指数系数输入功能函数对应的数字判断输入是否合法调用输出函数通过switch 判断返回哪显示运行结果一个功能函数调用该功能函数结束结束开始定义存储结果的空链r是存储多项式 1 的空链P 是否为空否是存储多项式 2 的空链Q 是否为空否直接把q 中各直接把p 中各项存入r 项存入r 中同指数项系数相加后存入r 中输出存储多项式的和的链r合并同类项结束开始定义存储结果的空链r是存储多项式 1 的空链P 是否为空否是存储多项式 2 的空链Q 是否为空否直接把q 中把p 中各项系数改各项存入r 变符号后存入r 中同指数项系数相加后存入r 中输出存储多项式的和的链r合并同类项结束四、主要源程序代码#include <stdio.h>#include <math.h>#include <algorithm>typedef struct duoxiangshi{int coef;int exp;struct duoxiangshi *next;}DXS;int getNum(){int num;printf(" 输入选择功能对应的数字: ");scanf("%d", &num);return num;}void fun1( DXS *PHEAD, DXS *QHEAD ){int zs, xs;// 定义指数系数printf(" 请输入P(x) 中各项的系数和指数\n");scanf("%d %d", &xs, &zs);while( zs != 0 || xs != 0 ){DXS *p = (DXS*) malloc(sizeof(DXS));p->coef = xs;p->exp = zs;PHEAD->next = p;p->next = NULL; PHEAD= PHEAD->next;scanf("%d %d", &xs, &zs); }printf(" 请输入Q(x) 中各项的系数和指数\n");scanf("%d %d", &xs, &zs);while( zs != 0 ||xs != 0 ){DXS *p = (DXS*) malloc(sizeof(DXS));p->coef = xs;p->exp = zs;QHEAD->next = p;p->next = NULL;QHEAD = p;scanf("%d %d", &xs, &zs);}printf(" 输入5 显示结果\n");}void fun2( DXS *PHEAD, DXS *QHEAD )// 升幂排序{DXS *p, *q;// 链表的冒泡排序p = PHEAD->next;for( p; p != NULL; p = p->next ){for( q = p->next; q != NULL; q = q->next ){if( p->exp > q->exp ){int temp;temp = p->coef;p->coef = q->coef;q->coef = temp;temp = p->exp;p->exp = q->exp;q->exp = temp; }}}p = QHEAD->next;for( p; p != NULL; p = p->next ){for( q = p->next; q != NULL; q = q->next ){if( p->exp > q->exp ){int temp;temp = p->coef;p->coef = q->coef;q->coef = temp;temp = p->exp;p->exp = q->exp;q->exp = temp;} }}printf(" 输入5 显示结果。

相关文档
最新文档