您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 09级源程序阅读与调试II课程设计报告模板
《源程序阅读与调试II》课程设计报告专业:班级:学号:姓名:指导教师姓名:陈宏报告日期:2010年12月《源程序阅读与调试II》课程设计报告第1页实习题一学生信息管理系统1、实习目的1)掌握线性表的链式存储结构。2)能熟练的利用链式存储结构实现线性表的基本操作。3)能熟练的掌握链式存储结构中算法的实现。2、实习内容1)用头插法或尾插法建立带头结点的单链表。2)实现单链表上的插入、删除、查找、输出等基本操作。3)头指针需采用局部变量形式定义。3、程序清单/*带头结点的单链表应用——学生信息管理*/#includestdio.h#includemalloc.h#includestring.h/*定义学生信息的结构*/typedefstructstu{intnum;charname[20];charsex;intage;}student;typedefstudentdatatype;/*#definedatatypestudent*/typedefstructnode/*创建存储一个学生信息的结点*/{datatypedata;/*存储学生信息*/structnode*next;}Node,*linklist;/*Node*=linklist*//*函数声明*/linklistCreateLinkList(linkliststu);voidInsList(linkliststu,inti,datatypex);voidDelList(linklisthead,inti);Node*GetLinkList(linklisthead,inti);voidShowLinkList(linkliststu);/*主函数*/main(){linkliststu;datatypeelem;Node*p;intpos,choice,z=1;clrscr();stu=(Node*)malloc(sizeof(Node));stu-next=NULL;《源程序阅读与调试II》课程设计报告第2页while(z){printf(\n\n\n\n);printf(\t\t\txianxingbiaozixitong\n);printf(\n\t\t*************************************);printf(\n\t\t*1-----------jianbiao*);printf(\n\t\t*2-----------charu*);printf(\n\t\t*3-----------shanchu*);printf(\n\t\t*4-----------xianshi*);/*printf(\n\t\t*5-----------chazhao*);printf(\n\t\t*6-----------qiubiaochang*);*/printf(\n\t\t*0-----------fanhui*);printf(\n\t\t*************************************\n);printf(\t\tqingxuanzecaidanhao(0--6):);scanf(%d,&choice);getchar();switch(choice){case1:/*建表*/stu=CreateLinkList();break;case2:/*插入操作*/printf(pleaseinputinstert-position:\n);scanf(%d,&pos);printf(pleaseinputinsert-element:\n);printf(Pleaseinputinsert-element'num:);scanf(%d,&elem.num);printf(Pleaseinputinsert-element'name:);scanf(%s,elem.name);printf(Pleaseinputinsert-element'sex:);getchar();scanf(%c,&elem.sex);printf(Pleaseinputinsert-element'age:);scanf(%d,&elem.age);InsList(stu,pos,elem);break;case3:/*删除操作*/printf(pleaseinputdelete-position:\n);scanf(%d,&pos);DelList(stu,pos);break;case4:/*显示操作*/ShowLinkList(stu);break;case0:/*退出*/z=0;break;《源程序阅读与调试II》课程设计报告第3页default:printf(ERROR!shurucaidanhaobudui!yingwei:0-4\n);break;}/*switch*/}/*while*/}/*main*//*自定义函数*//*创建函数*/linklistCreateLinkList(linkliststu)/*Node*CreateLinkList()*/{linklistStu;intlen,i;datatypex;Node*s,*p;/*pzhixiangweijiedian*/free(stu);Stu=(Node*)malloc(sizeof(Node));Stu-next=NULL;p=Stu;/*shuruxianxingbiaochangdu*/printf(Pleaseinputlength:);scanf(%d,&len);for(i=1;i=len;i++){printf(PleaseinputNo.%delement'num:,i);scanf(%d,&x.num);printf(PleaseinputNo.%delement'name:,i);scanf(%s,x.name);printf(PleaseinputNo.%delement'sex:,i);getchar();scanf(%c,&x.sex);printf(PleaseinputNo.%delement'age:,i);scanf(%d,&x.age);/*weishangmianshurudexueshengxinxichuangjianjiedian*/s=(Node*)malloc(sizeof(Node));(s-data).num=x.num;strcpy((s-data).name,x.name);(s-data).sex=x.sex;(s-data).age=x.age;p-next=s;p=s;}/*for*/p-next=NULL;returnStu;}/*CreateLinkList*/《源程序阅读与调试II》课程设计报告第4页/*插入函数*/voidInsList(linklisthead,inti,datatypex){Node*s,*p;intj;/*为插入元素创建结点*/s=(Node*)malloc(sizeof(Node));/*s-data=x;*/(s-data).num=x.num;strcpy((s-data).name,x.name);(s-data).sex=x.sex;(s-data).age=x.age;/*如果插入成为第一个结点*/if(i==1){s-next=head-next;head-next=s;}/*if*/else/*如果插入成为非第一个结点*/{/*查找插入位置的前驱结点*/p=GetLinkList(head,i-1);if(p!=NULL)/*插入位置存在*/{s-next=p-next;p-next=s;}/*if*/else/*插入位置不存在*/{printf(\t\tweizhaodao!\n);}/*else*/}/*else*/}/*InsList*//**/voidDelList(linklisthead,inti){Node*p,*q;intj;if(head-next==NULL)/*判空*/{printf(\t\tlianbiaoxiayi!\n);return;}/*查找被删结点的前驱结点*/《源程序阅读与调试II》课程设计报告第5页q=GetLinkList(head,i-1);if(q!=NULL&&q-next!=NULL)/*被删结点以及其前驱结点存在*/{p=q-next;q-next=p-next;printf(yijingbeishanchu:);printf(%11s%16s%11s%11s\n,num,name,sex,age);printf(%11d%16s%11c%11d\n,(p-data).num,(p-data).name,(p-data).sex,(p-data).age);free(p);}else/*被删结点不存在*/printf(\t\tweizhaodao!\n);}/*按序号查找*/Node*GetLinkList(linklisthead,inti){Node*p;intj=0;p=head;while(p-next!=NULL){p=p-next;j++;if(i==j)returnp;/*找到,返回该结点的地址*/}returnNULL;/*没找到,返回NULL*/}/*按**查找voidSearchList(linklisthead,intnumber){node*p;inti=1;if(head==NULL){printf(\t\tlianbiaoxiayi!\n);return;}if(head==NULL){printf(\t\txianxingbiaoweikong!);return;}p=head-next;while(p!=NULL&&p-data!=x){p=p-next;《源程序阅读与调试II》课程设计报告第6页i++;}if(p!=NULL)printf(\t\tzaidi%dweishangzhaodaozhiwei%cdejiedian!,i,x);elseprintf(\t\tweizhaodaozhiwei%cdejiedian!\n,x);}*//*显示函数*/voidShowLinkList(linkliststu){Node*p;if(stu==NULL||stu-next==NULL)printf(Empty!\n);else{printf(%11s%16s%11s%11s\n,num,name,sex,age);for(p=stu-next;p!=NULL;p=p-next)printf(%11d%16s%11c%11d\n,(p-data).num,(p-data).name,(p-data).sex,(p-data).age);printf(\n);}/*else*/}/*ShowLinkList*/4、结论本程序通过建立一个数组,输入一组学生信息,例如:姓名、年龄、性别、学号,然后可以实现学生指定信息的插入、删除、显示、查找以及求表长功能。实习题二栈1、实习目的1)掌握栈的顺序或链式存储结构。2)能熟练的利用存储结构实现栈的基本操作。3)能熟练的掌握存储结构中算法的实现。2、实习内容1)建立顺序栈。2)对刚建立的特殊线性表实现其基本操作,并将结果在屏幕上输出。3)利用栈的基本操作实现十进制数转二(八或十六)进制数的运算。4)利用栈的基本操作实现将中缀表达式转换为后缀表达式5)要求全注释。3、程序清单#includestdio.h#defineSTACKMAX100typedefstructstacknode/*栈的存储结构*/{intdata;structstacknode*next;}stacknode;typedefstruct《源程序阅读与调试II》课程设计报告第7页{stacknode*top;/*指向栈的指针*/}linkstack
本文标题:09级源程序阅读与调试II课程设计报告模板
链接地址:https://www.777doc.com/doc-3121114 .html