计算机程序设计基础课程设计报告链表设计_第1页
计算机程序设计基础课程设计报告链表设计_第2页
计算机程序设计基础课程设计报告链表设计_第3页
计算机程序设计基础课程设计报告链表设计_第4页
计算机程序设计基础课程设计报告链表设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、吉首大学计算机程序设计基础课程设计报告学院:城乡资源与规划学院专业: 09级资管 班级: 09级资管 课题: 链表设计 姓名: 学号: 指导教师: 报告成绩: 日期:2011年6月25日目 录一、课程设计目的2二、课程设计要求2三、设计题目分析23.1题目简介23.2设计要求2四、课程设计类容24.1总体设计24.2详细设计34.3调试与测试4五、设计心得与总结9六、建议9参考书目:9一、课程设计目的掌握函数的运用。加深对结构体类型数据、结构体指针类型数据的认识,熟练链表的概念,熟悉链表的操作。二、课程设计要求建立一个班级(10个学生)的学生情况表(采用链表),每个学生的数据包括学号、姓名和一

2、门课的成绩。要求程序采用如下的结构框图:主函数创建函数输出函数菜单函数三、设计题目分析3.1题目简介 建立一个包含主函数、菜单函数、创建函数和输出函数四个功能模块的单链表,能输出10个学生的成绩,学号以及姓名。3.2设计要求 设计的程序中应当包含一个主函数和一个菜单函数,而在主函数中应当包含一个输入函数和一个输出函数,即创建输入链表和输出链表,此外,还可以创建插入、删除链表的节点等等,设计的程序要求按照如下结构框图: 主函数创建函数输出函数菜单函数四、课程设计类容4.1总体设计 首先要创建一个主函数,在主函数中调用其他设计的几个子函数。包括一个创建学生信息的结构体;一个输入学生信息的创建链表;

3、一个输出学生信息的输出链表;一个菜单函数。他们都是通过主函数的调用实现的。4.2详细设计 (1)创建结构体 struct student算法:它包括学生的姓名;学生的成绩;学生的学号。关键是要把这个类型定义好,如char name80;float score;long num.(2)用struct student *creat()创建链表算法:先定义一个指向链表头的指针型的函数struct student*creat(),然后head=null,创建第一个结点p=q=(struct student *)malloc(sizeof(struct student),然后用while语句将该结点加入

4、链表,然后head=p,作为表头,再然后p=(struct student *)malloc(sizeof(len)开辟下一个结点,以此类推创建一个链表。(3)用struct student *print()来输出链表算法:输出函数的算法比较简单,p首先指向第一个结点,输完第一个结点之后,将p原来所指向的next赋给p,即p=p-next,而p-next就成为了下一个结点的起始地址,依次顺序输出链表的信息。(4)menu函数是一个菜单函数,它会在switch语句中被调用。算法:首先输出一个菜单:*menu*1.creat list 2.print list 3.exit然后是做一个do-whi

5、le的循环,输入数值c后,再判断c是否满足(c3),满足的话就继续做循环,不满足结束,然后返回c的值,被调用到主函数里。输出开始输入一个1-3的 数c3return cn结束y 输入c(5)在主函数里会调用其他三个子函数。算法:先是定义了一个switch语句,然后在这个开关语句里又调用了菜单函数menu,在这个switch语句里,当条件符合case 1时,调用creat函数;当条件符合case 2时,调用print函数;当条件符合case 3时,则退出(exit)。 4.3调试与测试首先创建 struct student 结构体: char name80; long int num; int

6、score; struct student *next;接着创建struct student *creat()函数:struct student *creat() struct student *head,*p1,*p2; n=0; head=null; p1=p2=(struct student *)malloc(len); printf(enter date); scanf(%ld%d%s,&p1-num,&p1-score,p1-name); while(p1-num!=0) n+; if(n=1) head=p1; head-next=null; else p2-next=p1; p2

7、=p1; p1=(struct student *)malloc(sizeof(len); printf(enter date); scanf(%ld%d%s,&p1-num,&p1-score,&p1-name); p2-next=null; return(head);紧接着创建struct student *print()函数:void print(struct student *head) struct student *p1; p1=head; if(head!=null) do printf(%ld,%s,%dn,p1-num,p1-name,p1-score); p1=p1-nex

8、t; while(p1!=null); else printf(this is a null list);接着创建菜单函数:int menu() int c; printf(nn%16s, ); printf(*menu*n); printf(tt1.creat listn); printf(tt2.print listn); printf(tt3.exitn); do printf(ntenter select(1-3):); scanf(%d,&c); while(c3); return c; 再写出主函数是要调用上面三个函数:void main() while(1) switch(men

9、u() case 1:head=creat(); break;case 2:print(head); printf(ntcontinue!); getch(); break; case 3:exit(0); 运行的结果是:*menu*1.creat list 2.print list3.exitenter select(1-3):furenhuanenter data01,86, zoufuenter data02,99, wangxuanenter data03,89, xiekuienter data04,88,yangyunguangenter data05,92, yushuaimin

10、genter data06,79, limengfeienter data07,69,liangleienter data08,87, fenghaiboenter data09,97, heshunleenter data10,58, zhaoguoguoenter data0*menu*1.creat list2.print list3.exitenter select(1-3): *menu*1.creat list2.print list3.exitenter select(1-3):201,86,zoufu02,99,wangxuan03,89,xiekui04,88,yangyunguang05,92,yushuaiming06,79,limengfei07,69,lianglei08,87,fenghaibo09,97,heshunle10,58,zhaoguoguocontinue!*menu*1.creat list2.print list3.exitenter select(1-3):3返回主界面:五、设计心得与总结此链表设计过程中要掌握函数的运用,加深对结构体类型数据,结构体指针类型数据的认识,熟练链表的概念,熟悉链表的操作。六、建议通过此次程序设计,我初步掌握了链表设计的基

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论