对链表插入和删除操作C++任务书.docx

上传人:b****6 文档编号:6744808 上传时间:2023-01-09 格式:DOCX 页数:11 大小:68.36KB
下载 相关 举报
对链表插入和删除操作C++任务书.docx_第1页
第1页 / 共11页
对链表插入和删除操作C++任务书.docx_第2页
第2页 / 共11页
对链表插入和删除操作C++任务书.docx_第3页
第3页 / 共11页
对链表插入和删除操作C++任务书.docx_第4页
第4页 / 共11页
对链表插入和删除操作C++任务书.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

对链表插入和删除操作C++任务书.docx

《对链表插入和删除操作C++任务书.docx》由会员分享,可在线阅读,更多相关《对链表插入和删除操作C++任务书.docx(11页珍藏版)》请在冰豆网上搜索。

对链表插入和删除操作C++任务书.docx

对链表插入和删除操作C++任务书

河北联合大学

《软件设计基础(C++)》

课程设计报告

设计名称:

对链表插入和删除操作

姓名:

张悦

学号:

201005100112

专业班级:

10石油

(1)

学院:

矿业工程

设计时间:

五月十日到六月十日

设计地点:

学校机房

 

成绩:

指导教师评语:

 

指导教师签字:

年月日

目录

1.课程设计目的4

2.课程设计任务与要求4

3.课程设计说明书5

4.课程设计成果7

5.程序调试过程13

6.设计问题的不足和改进方案14

7.课程设计心得14

8.参考文献15

1.课程设计目的

通过链表程序的设计,培养学生综合利用C++语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。

主要是培养学生利用系统提供的标准函数及典型算法进行创新设计,掌握各种数据结构。

 

2.课程设计任务与要求:

1.基本要求:

(1)要求用c++的思想来完成程序的设计。

(2)各个功能分别使用函数来完成,主函数和各个函数分别存放在不同的.cpp文件中,要求使用头文件。

2.创新要求:

在基本要求达到后,进行创新设计,例如:

将链表进行排序,而后插入新的结点使其仍然有序。

 

3.课程设计说明书

概要设计

模块说明:

在我设计的程序中一共包括了五个模块,分别是:

创立模块,排序模块,插入模块,删除模块和输出模块。

在几个模块是独立分开作为子函数的,程序中多次用到while函数,将这几个模块联系起来。

详细设计

总体流程图:

 

 

 

4.课程设计成果

头文件:

#include

#include

structstudent

{

intnum;

charname[10];

charsex[10];

student*next;

};

student*creat(int);

student*del(student*head,ints);

void*insert(student*head,inti);

void*Sort(student*head);

voidprint(student*head);

主函数:

#include"头文件.h"

voidmain()

{intN;

cout<<"请输入学生总数:

";

cin>>N;

student*headl,*p,*q;

cout<<"请依次输入学生学号、姓名、性别:

"<

headl=creat(N);

print(headl);

cout<<"排序后为"<

Sort(headl);

p=headl;

print(headl);

p=headl;

inti;

cout<<"插入到第几个学生后面:

";

cin>>i;

insert(headl,i);print(headl);

p=headl;

ints;

cout<<"要删除的学号是:

";

cin>>s;

del(headl,s);

print(headl);

while(p)

{

q=p;

p=p->next;

deleteq;

}

}

插入:

#include"头文件.h"

void*insert(student*head,inti)

{

student*s,*p;

intj;

s=new(student);

cout<<"请分别输入插入学生的学号、姓名、性别:

";

cin>>s->num>>s->name>>s->sex;

if(i==0)

{

s->next=head;

head=s;

}

else

{p=head;

j=1;

while(p!

=NULL&&j

j++;

p=p->next;

}

if(p!

=NULL)

{

s->next=p->next;

p->next=s;

}

else

cout<<"没找到!

";

}

returnhead;

}

创建列表:

#include"头文件.h"

student*creat(intN)

{

student*head;

student*p1;

student*p2;

 

head=NULL;

p1=new(student);

p2=p1;

for(inti=0;i

{

cin>>p1->num>>p1->name>>p1->sex;

if(i==0)

head=p1;

else

p2->next=p1;

p2=p1;

p1=new(student);

}

delete(p1);

p2->next=NULL;

returnhead;

 

}

排序列表:

#include"头文件.h"

void*Sort(student*head)

{

student*p,*q;

charname1[10];

charsex1[16];

intnum1;

p=head;

while(p)

{q=p->next;

while(q)

{if(p->num>q->num)

{num1=p->num;

p->num=q->num;

q->num=num1;

strcpy(name1,p->name);

strcpy(p->name,q->name);

strcpy(q->name,name1);

strcpy(sex1,p->sex);

strcpy(p->sex,q->sex);

strcpy(q->sex,sex1);

}

q=q->next;

}

p=p->next;

}

returnhead;

}

删除结点:

#include"头文件.h"

student*del(student*head,ints)

{

student*p1;

student*p2;

if(head==NULL)

{

returnhead;

}

p1=head;

while(s!

=p1->num&&p1->next!

=NULL)

{

p2=p1;

p1=p1->next;

}

if(s==p1->num)

{

if(p1==head)

head=p1->next;

else

p2->next=p1->next;

delete(p1);

cout<<"已删除"<

}

else

cout<<"没有找到"<

returnhead;

}

输出链表:

#include"头文件.h"

voidprint(student*head)

{

student*p;

p=head;

if(p==NULL)return;

do

{

cout<num<<"\t"<name<<"\t"<sex<

p=p->next;

}while(p!

=NULL);

}

 

5.程序调试过程

1.首先输入学生总数,然后依次输入学生学号、姓名、性别来创建列表。

再依次输出,并按学号排序输出;

2.输入需要插入学生的位置,输入学生数据,输出;

3.输入需要删除的学生的学号,删除学生,输出剩余学生。

 

6.设计问题的不足和改进方案

1.开始我编的头文件有位置问题,但是经过查书问同学多次更改代码,调试程序最终出现正确结果;

2.定义变量不能正确输出和输入,不能正确传值;

3.排序不能全部互换位置,只是学号的互换。

改进方案:

全部输入,全部改值。

 

7.课程设计心得

开始老师布置作业时我选择的是链表问题,此题是对单向链表的排序、插入及删除操作。

开始时我首先是询问的原先学过的同学,他们告诉我到网上搜搜,有相应的例题,等我把课本上关于这部分的知识看过之后,我真的这样做了,下载下来研究了几天,然后我发现网上的我有好多处都看不懂,和我们学的不太一样,脑子很乱,更不知怎么去改别人编出来的程序,就放了几天。

后来我我要编的内容相继拿给了几个同学看,他们都表示无能为力,这时我真的有些灰心了,我怕自己完不成任务,现在只有靠自己了,我把课本上相应的内容又仔细地研究了一下,并在图书馆借了两本相关的书,看过之后对着电脑整整呆了一天终于编出来了。

我把程序编出来了,我想大声告诉所有的人,我想通过这次作业我不仅更了解这门课程的知识,更好的掌握它,更重要的是当遇到困难时一定要相信自己,不能一心的指着别人,连自己都放弃了你说别人还有什么办法呢?

 

8.参考文献

《visualc++程序设计实验教程》---中国铁道出版社

《visualc++程序设计基础》---中国铁道出版社

《C++程序设计题典》---人民出版社

《C++程序设计与解答》

 

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

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1