JSP实验指导书Word文档格式.docx

上传人:b****2 文档编号:3639415 上传时间:2023-05-02 格式:DOCX 页数:13 大小:19.29KB
下载 相关 举报
JSP实验指导书Word文档格式.docx_第1页
第1页 / 共13页
JSP实验指导书Word文档格式.docx_第2页
第2页 / 共13页
JSP实验指导书Word文档格式.docx_第3页
第3页 / 共13页
JSP实验指导书Word文档格式.docx_第4页
第4页 / 共13页
JSP实验指导书Word文档格式.docx_第5页
第5页 / 共13页
JSP实验指导书Word文档格式.docx_第6页
第6页 / 共13页
JSP实验指导书Word文档格式.docx_第7页
第7页 / 共13页
JSP实验指导书Word文档格式.docx_第8页
第8页 / 共13页
JSP实验指导书Word文档格式.docx_第9页
第9页 / 共13页
JSP实验指导书Word文档格式.docx_第10页
第10页 / 共13页
JSP实验指导书Word文档格式.docx_第11页
第11页 / 共13页
JSP实验指导书Word文档格式.docx_第12页
第12页 / 共13页
JSP实验指导书Word文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JSP实验指导书Word文档格式.docx

《JSP实验指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《JSP实验指导书Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

JSP实验指导书Word文档格式.docx

structmylist

{intdata;

structmylist*next;

};

structmylist*createlist(void)

{intx;

structmylist*s,*q,*h;

h=(structmylist*)malloc(sizeof(structmylist));

h->

next=NULL;

q=h;

printf("

inputnumber:

"

);

scanf("

%d"

&

x);

while(x!

=0)

{

s=(structmylist*)malloc(sizeof(structmylist));

s->

data=x;

q->

next=s;

inputthenumber:

q=s;

}

return(h);

}

intputlist(structmylist*head)

{inti=0;

if(head->

next==NULL)

{return0;

while(head->

next!

=NULL)

{i++;

printf("

the%dnumberinlistis:

%d\n"

i,head->

next->

data);

head=head->

next;

return1;

voidmain()

{structmylist*my,*temp;

my=createlist();

if(putlist(my)==0)

theinputlistisempty!

while(my->

{temp=my;

my=my->

free(temp);

over,pressanykeytoend"

getch();

}

3.验证——上机实现一元多项式的加法程序,并结合算法理解链表的工作过程和基本操作的实现。

#include<

malloc.h>

stdlib.h>

#define 

LEN 

sizeof(node)

typedefstructpolynode 

 

/*用单链表存储多项式的结点结构*/

{

intcoef;

/*多项式的系数*/

intexp;

/*指数*/

structpolynode*next;

/*next是structpolynode类型中的一个成员,它又指向

structpolynode类型的数据,以此建立链表*/

}node;

/*若定为"

node,*list;

,意即node*与list同为结构指针类型*/

node*create(void) 

/*指针函数,返回指针类型;

用尾插法建立一元多项式的链表的函数*/

node*h,*r,*s;

intc,e;

h=(node*)malloc(LEN);

/*建立多项式的头结点,为头结点分配存储空间*/

r=h;

/*r指针始终动态指向链表的当前表尾,以便于做尾插入,其初值指向头结点*/

coef:

c);

/*输入系数*/

exp:

"

e);

/*输入指针*/

while(c!

=0) 

/*输入系数为0时,表示多项式的输入结束*/

s=(node*)malloc(LEN);

/*申请新结点*/

coef=c;

/*申请新结点后赋值*/

exp=e;

r->

/*做尾插,插入新结点*/

r=s;

/*r始终指向单链表的表尾*/

/*将表的最后一个结点的next置NULL,以示表结束*/

voidpolyadd(node*polya,node*polyb)/*一元多项式相加函数,用于将两个多项式相加,然后将和多项式存放在多项式polya中,并将多项式ployb删除*/

node*p,*q,*pre,*temp;

intsum;

p=polya->

/*令p和q分别指向polya和polyb多项式链表中的第一个结点*/

q=polyb->

pre=polya;

/*位置指针,指向和多项式polya*/

while(p!

=NULL&

&

q!

=NULL)/*当两个多项式均未扫描结束时,执行以下操作*/

if(p->

exp<

q->

exp) 

/*若p指向的多项式指数小于q指的指数*/

pre->

next=p;

/*将p结点加入到和多项式中*/

pre=pre->

p=p->

elseif(p->

exp==q->

/*若指数相等,则相应的系数相加*/

sum=p->

coef+q->

coef;

if(sum!

p->

coef=sum;

pre=pre->

p=p->

temp=q;

q=q->

free(temp);

else 

/*如果系数和为零,则删除结点p与q,并将指针指向下一个结点*/

temp=p->

free(p);

p=temp;

temp=q->

free(q);

q=temp;

/*若p指数大于q指数*/

pre->

next=q;

/*p结点不动,将q结点加入到和多项式中*/

q=q->

if(p!

=NULL) 

/*多项式A中还有剩余,则将剩余的结点加入到和多项式中*/

/*否则将B的结点加入到和多项式中*/

voidprint(node*p)/*输出函数,打印出一元多项式*/

while(p->

next!

%d*x^%d"

p->

coef,p->

exp);

main() 

/*主函数*/

node*polya,*polyb;

Welcometouse!

\n"

\nPleaseinputtheployaincludecoef&

exp:

polya=create();

/*调用建立链表函数,创建多项式A*/

print(polya);

\nPleaseinputtheploybincludecoef&

polyb=create();

/*同理,创建B*/

print(polyb);

\nSumofthepolyis:

polyadd(polya,polyb);

/*调用一元多项式相加函数*/

/*调用输出函数,打印结果*/

4.设计——(选做)以程序形式实现A=A∪B的运算

1)可以以顺序存储来实现,也可以用链表实现

2)自己给定A、B的值

3)完成者提交实验报告,可作为加分的依据。

实验二约瑟夫问题

掌握线性表的运用——约瑟夫环模型,能运用该模型进行问题的解决。

1.掌握线性表的基本操作算法

2.掌握约瑟夫环的基本模型过程

3.能以程序方式实现约瑟夫环的问题

1.完成一个约瑟夫问题的通用算法

2.设计——将该算法以程序实现

1)可以以链表实现,也可以以数组实现

2)已知条件可自行定义(可以将程序定义为20个人的圈子中,报数为3的人退出,也可以完成一个通用的程序)

3)完成程序提交实验报告(包括算法和程序)

3.设计——(选做)给出更进一步的约瑟夫环的算法:

编号为12,……n的n个人按顺时针方向围成一圈,每人持有一个密码(正整数),一开始任选一个正整数作为报数上限值m,从第一个人开始按顺序时针方向自1开始顺序报数,报道m时停止报数,报m的人处列将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。

利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。

实验三栈和队列的应用

掌握栈和队列的特点,熟悉栈和队列的基本操作,能从实际问题中抽象栈和队列的模型。

能运用栈和队列的不同特点解决实际的问题。

1.掌握栈和队列的存储形式

2.掌握栈和队列的基本特点和基本运算的算法

4.能够从实际问题中抽象出合适的对象模型

5.调试成功,并保存程序源代码,以备检查

1.完成将一个10进制正整数变为8进制的程序

1)先写出对应算法

2)写出完整程序,用栈的形式来完成

2.实现判断回文的程序运算

1)回文的含义是回文就是正读、反读均相同的字符序列如:

abba,abcba;

2)解决问题的方法有很多,写出其中任一种算法

3)上机实现这种算法,并提交实验报告

3.验证队列数据的存取程序,从程序中了解队列的特点以及基本操作

#definemaxsize10

Intqueue[maxsize];

Intfront=-1;

Intrear=-1;

/*---------------------*/

输入队列数据

Voidaddqueue(intvalue)

If(rear>

=maxsize)

Printf(“thequeueisfull”);

Else

{rear++;

Queue[rear]=value;

输出队列数据

Intdelqueue()

{

Inttemp;

If(front==rear)

Return-1;

Front++;

Temp=queue[front];

Queue[front]=0;

Returntemp;

主程序

Voidmain()

For(i=0;

i<

=maxsize;

i++);

Queue[i]=0;

Printf(“pleaseinputtheinputvalue”);

Scanf(“%d”,&

temp);

Addqueue(temp);

Printf(“thecontentofqueue:

”);

For(i=0;

i++)

If(queue[i]!

Printf(“%d”,queue[i]);

If((temp=delqueue())==-1)

Printf(“thequeueisempty\n”);

For(i=0;

Printf(“[%d]”,queue[i]);

4(选做)以程序实现完成循环队列的插入删除操作

实验四串的应用

熟悉串的基本操作和具体操作过程

1.掌握串的基本操作过程、步骤

2.掌握串的操作的实现过程,有些串函数能自行编写

3.先写出算法,再根据算法写出对应程序(使用TC,或C++完成程序)

1.编写一程序,实现从字符串s中,返回第I个字符开始,长度为len的子串(s,I,len都可以从键盘输入)

要求:

写出算法,再以程序实现,最后递交实验报告。

2.完成两个字符串连接的操作(不要使用函数)。

3.巩固前面线性表、栈、队列的知识

实验五查找

掌握各种查找方法的过程和算法,能对不同的情况采用不同的查找方法,分析各种方法的性能。

1.掌握各种查找算法及查找过程、实现的时间复杂度

2.能将各种查找算法以程序实现,并在程序中能看到查找的次数

3.写出对应程序(使用TC,或C++完成程序)

1.已知一个有序序列,先要求插入一个元素,使其序列仍然有序。

1)序列的长短可预先设置

2)插入的元素由键盘输入

3)插入的方法可以使用顺序插入,也可以使用折半插入(最好使用折半插入)

4)完成该程序、递交实验报告

2.(选做)将课本上讲过的其他算法,试着写成程序运行成功。

实验六排序

掌握多种排序的方式方法,了解各种方法的算法表示,以及性能分析和适用场合。

1.掌握各种排序的方法和过程

2.了解各种排序方法的性能分析,找到合适的场合下使用

3.把排序方法转化为程序实现

实验内容

1.用“选择法”对10个整数进行排序

2)根据你所写的算法,写出完整程序。

3)该设计最后递交实验报告(1、2两题任一题提交实验报告)

2.完成用“冒泡法对输入的10个字符从小到大排序

1)先写出对应算法(从头找到尾,或是从尾找到头)

2)可以考虑在程序中显示查找该数所比较的次数。

(选做)

3)根据你所写的算法,写出完整程序。

4)该设计最后递交实验报告(1、2两题任一题提交实验报告)

3.(选做)选择书上的其他排序算法,以程序方式实现

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2