论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 其他 >

A450C语言课程设计报告

六、各功能模块的算法处理流程图及相关说明

1、主函数 main() paper51.com

2、初始化函数 STUDENT  *init() 内容来自论文无忧网 www.paper51.com

3、菜单选择函数 int menu_select(); 内容来自www.paper51.com

4、输入记录函数 STUDENT *create()

内容来自论文无忧网 www.paper51.com

算法:先声明一个首节点head,并将head->next设为NULL。每输入一个数据就声明一个新节点p,把p->next设为NULL,并且链接到之前列表的尾端。

copyright paper51.com

N-S流程图如下: copyright paper51.com

head=NULL paper51.com

for(;;) http://www.paper51.com

            指针p指向新开辟的单元 http://www.paper51.com

                指针p是否为空

内容来自论文无忧网 www.paper51.com

        是                                        否

内容来自www.paper51.com

输入学号p->num

paper51.com

        输出          p->num是否为0 内容来自论文无忧网 www.paper51.com

        内存      是                              否 内容来自www.paper51.com

        溢出                        输入姓名p->name copyright paper51.com

                  停止      for(i=0;i<3;i++)

copyright paper51.com

                  输入                 输入成绩 内容来自www.paper51.com

                  返回       p->sum=s;

paper51.com

                  菜单       p->average=(float)s/3; 内容来自论文无忧网 www.paper51.com

      p->order=0; http://www.paper51.com

              p->next=head;head=p; 内容来自www.paper51.com

5、 记录函数 void print(STUDENT *head)

内容来自论文无忧网 www.paper51.com

算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。重复执行此步聚直到p指针指向NULL为止。 http://www.paper51.com

N-S流程图如下: http://www.paper51.com

 p=head,使指向第一个结点

内容来自www.paper51.com

                   输出p所指向的结点  

paper51.com

                      p指向一下个结点 copyright paper51.com

          当p指的不是表尾

paper51.com

6、 找记录函数 void search(STUDENT *head) 内容来自www.paper51.com

算法:采用线性查找法往下一个节点查找。输入所要查找的学生的学号s,设一个指针变量p,先指向第一个结点,当strcmp(p->name,s) && p != NULL时,使p后移一个结点,如果p!=NULL,输出p所指的结点。 http://www.paper51.com

N-S流程图如下:

copyright paper51.com

输入要查找的学生的学号s paper51.com

p=head,使p指向第一结点 内容来自www.paper51.com

当记录的学号不是要找的,或指针不为空时 http://www.paper51.com

                      p=p->next http://www.paper51.com

                p!=NULL如果指针不为空 paper51.com

                是                                 否 copyright paper51.com

                                            显示没有该

内容来自论文无忧网 www.paper51.com

                输出p所指向的结点          学生 copyright paper51.com

7、删除记录函数 STUDENT *delete(STUDENT*head) 内容来自www.paper51.com

算法:从p指向的第一个结点开始,检查该结点中的num值是否等于输入的要求删除的那个学号。如果相等就将该结点删除,如不相等,就将p后移一个结点,再如此进行下去,直到遇到表尾为止。 内容来自www.paper51.com

N-S流程图如下: 内容来自论文无忧网 www.paper51.com

p1=head;

内容来自论文无忧网 www.paper51.com

                输入入要删除的学号s

内容来自www.paper51.com

当(strcmp(p1->num,s))&& p1 != NULL 内容来自www.paper51.com

        p2=p1   p1=p1->next

http://www.paper51.com

                      p1是要删除的结点

copyright paper51.com

        是                                       否 内容来自www.paper51.com

paper51.com

            p1所指是头结点

copyright paper51.com

       是                        否          输出”找不 copyright paper51.com

                                             到”

paper51.com

head=p1->next          p2->next=p1-next      的信息“ (删除头结点) 内容来自论文无忧网 www.paper51.com

8、排序函数 STUDENT *sort(STUDENT *head) 内容来自www.paper51.com

N-S流程图: 内容来自论文无忧网 www.paper51.com

temp=head->next,head->next=NULL 内容来自www.paper51.com

 当temp!=NULL时

paper51.com

           t=temp;temp=temp->next;p1=head;p2=head; 内容来自www.paper51.com

           当t->average<p1->average&&p1!=NULL时 copyright paper51.com

p2=p1;p1=p1->next; http://www.paper51.com

  p1=p2 http://www.paper51.com

                是                                       否 copyright paper51.com

                   t->next=p1;               t->next=p1;

内容来自www.paper51.com

                   head=t;                    p2->next=t; 内容来自www.paper51.com

                      p1=head; 内容来自论文无忧网 www.paper51.com

       当p1!=NULL时 内容来自www.paper51.com

i++;p1->order=i;p1=p1->next;

http://www.paper51.com

                   输出“排序成功” http://www.paper51.com

------分隔线----------------------------
联系方式