编号。课程设计。题目 1、一元稀疏多项式计算器
2、模拟浏览器操作程序
3、背包问题的求解
4、八皇后问题。
二级学院计算机科学与工程学院
专业计算机科学与技术
班级 2011级 37-3班
学生姓名xx
学号 xxxxxxxxxx
指导教师 xxxxx
评阅教师。时间。
1、一元稀疏多项式计算器。
实验内容】一元稀疏多项式计算器。
问题描述】设计一个一元稀疏多项式简单计算器。
需求分析】其基本功能包括:
1)输入并建立多项式;
2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……cn,en,其中n是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;
3)多项式a和b相减,建立多项a+b;
4)多项式a和b相减,建立多项式a-b;
5)计算多项式在x处的值;
6)计算器的**界面(选做);
概要设计】=adt=-
void input(jd *ha,jd *hb);
//输入两个多项式。
void sort(jd *h);
//用冒泡排序法对一个多项式进行降序排序。
void sum(jd *ha,jd *hb);
//多项式求和。
void minus(jd *ha,jd *hb);
//多项式相减。
void output(jd *h);
//输出多项式。
void operate(jd *ha,jd *hb);
//对多项式进行操作。
int qiuzhi(int x,jd *ha);
//计算多项式在x处的值。
void main();
主函数。存储结构】
typedef struct node定义多项式每一项*/
int ee为指数。
float cc为系数。
struct node *next; /next指向下一项。
dnode;
流程图】1. dnode *creat多项式的创建, 即输入两个多项式。
2. void sort(dnode *h采用冒泡法对链表每一项重新排序//
3. dnode *operate(dnode *a,dnode *b稀疏多项式计算//
4. float qiuzhi(int x,dnode *h) /求多项式在x处的值。
详细设计】源**如下:
#include<>
#include<>
#include<>
#define null 0
typedef struct node定义多项式每一项*/
int ee为指数。
float cc为系数。
struct node *next; /next指向下一项。
dnode;
dnode *creat用链表存放多项式*/
多项式的创建, 即输入两个多项式。
dnode *h,*p;
int e,i,nn为多项式的项数。
float cc为多项式的系数。
h=(dnode *)malloc(sizeof(dnode分配头节点。
h->next=null;
do当n为0或小于1时,则重新输入。
while(n<1);
for(i=1;i<=n;i++)输入各项的系数c和指数e
return h返回头结点。
void swap(dnode *p,dnode *q交换p,q指针所指的指数和系数*/
float m; /中间变量。
int n; /中间变量。
n=p->e; /交换操作。
p->e=q->e;
q->e=n;
m=p->c;
p->c=q->c;
q->c=m;
void sort(dnode *h采用冒泡法对链表每一项重新排序*/
dnode *pi,*pl,*p,*q;
p=h->nextp此时指向第一项。
while(p->next!=null)
p=p->next寻找尾结点。
pi=ppi指向最后一次交换的位置,初值为表尾。
while(pi!=h->next) /结点数大于1时。
pi=plpi指向前一个结点。
dnode *operate(dnode *a,dnode *b稀疏多项式计算*/
int sel;
float x;
dnode *p1,*p2,*p,*t; /t为结果链表的表头。
t=(dnode *)malloc(sizeof(dnode));
t->next=null;
printfn");
printf请选择运算方式n");
printf1、多项式相加n");
printf2、多项式相减n");
printf0、退出n");
printfn");
printf("请选择:")
scanf("%d",&sel);
p1=a->next;
p2=b->next;
while(p1&&p2)
else if(p1->e>p2->e) /p1的指数大于p2的指数。
p=(dnode *)malloc(sizeof(dnode));
p->e=p2->e;
if(sel==1)
p->c=p2->c;
elsep->c=(-1)*p2->c;
p->next=t->next;
t->next=p;
p2=p2->next;
elsep1的指数小于p2的指数。
p=(dnode *)malloc(sizeof(dnode));
p->e=p1->e;
p->c=p1->c;
p->next=t->next;
t->next=p;
p1=p1->next;
while(p1!=nullp2为空,p1不为空时。
while(p2!=nullp1为空,p2不为空时。
p=(dnode *)malloc(sizeof(dnode));
p->e=p2->e;
if(sel==2如果选择的是2,则将p2中剩余的项的系数取其相反数。
p->c=(-1)*p2->c;
elsep->c=p2->c;
数据结构课程设计报告
东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...
数据结构课程设计报告
设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...
数据结构课程设计报告
河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...