计算机软件技术基础实验指导书.doc
《计算机软件技术基础实验指导书.doc》由会员分享,可在线阅读,更多相关《计算机软件技术基础实验指导书.doc(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date计算机软件技术基础实验指导书计算机软件技术基础实验指导书计算机软件技术基础实验指导书信电学院电子信息工程教研室二零一三年-实验一 顺序表的基本操作及学生信息管理实现(选做)一、实验目的1.掌握顺序表结构的实现方式。2.掌握顺序表常用算法初始化、插入、删除等操作的程序实现。2.熟悉利用顺序表解决问题的一般思路。3.学习体会顺序表结构的优点与不足。二、实验内容1.建立一个
2、顺序表、设计顺序表表的基本操作实现算法、调试并输出结果。2.利用顺序表实现学生信息管理。学生的信息包括学号、姓名、性别、班级和联系电话,功能要求:信息浏览:显示所有学生信息列表;插入信息:在线性表的头部插入一个学生信息;删除信息:按照学号删除某个学生的信息;修改信息:实现按照学号修改某个学生信息;退出程序。编写程序调试并输出结果。三、编程指导(1)可仿照1中顺序表的定义形式,建立学生信息结点数据,并进一步建立一个长度为10的顺序表。(2)参考顺序表的算法描述和算法的实现,在本程序中修改顺序表的插入、删除、修改等算法的实现函数。(3)编写主函数,可通过在while循环结构中嵌入switch分支结
3、构实现操作选择功能。(4)可以增加学生的课程成绩,实现成绩的统计分析功能。四、程序运行测试1.信息的浏览2.利用插入功能插入学生信息。3.利用删除功能删除学生信息。4.利用修改功能修改学生信息。五、实验报告要求1.绘制学生信息管理中信息浏览、插入、删除、修改操作实现的流程图。2.详细给出程序运行测试结果(包括测试数据和测试结果)。3.选试验内容1中的任意一个功能,给出程序的详细注释。4.参考程序中某一部分功能的改进(选做)。5.实验心得与体会6.附录:某一部分功能的改进程序内容1参考程序:sxb.h#include using namespace std;template class sq_L
4、Listprivate:int mm;int nn;T *v;public:sq_LList() mm=0;nn=0;return;sq_LList(int) ; void prt_sq_LList(); void ins_sq_LList(int,T); void del_sq_LList(int);template sq_LList:sq_LList(int m)mm=m;v = new Tmm;nn=0;return;template void sq_LList:prt_sq_LList()int i;coutnn=nnendl;for (i=0;inn;i+) coutviendl;
5、return;template void sq_LList:ins_sq_LList(int i,T b)int k; if (nn=mm) /存储空间已满,上溢错误coutoverflownn) i=nn+1; /默认为在最后一个元素之后插入 if(i=i;k-) vk=vk-1; /从最后一个元素直到第主个元素均后移一个位置 vi-1=b; /插入新元素 nn=nn+1; /顺序表长度加1 return; template void sq_LList:del_sq_LList(int i) int k; if(nn=0) /顺序表为空,下溢错误 coutunderflow!endl; re
6、turn; if (inn) /顺序表中没有这个元素 coutNot this element in the list!endl; return; for(k=i;knn;k+) vk-1=vk; /从第主个元素直到最后一个元素均首移一个位置 nn=nn-1; /顺序表长度减1 return;sxb.cpp#include sq_LList.h int main() sq_LList s1(100); /建立容量为100的空顺序表对象s1cout第1次输出顺序表对象s1:endl; s1.prt_sq_LList(); s1.ins_sq_LList(0,1.5); /在第0个元素荫插入15
7、s1.ins_sq_LList(1,2.5); /在第1个元素靛插入25 s1.ins_sq_LList(4,3.5); /在第4个元素前插人35cout第2次输出顺序表对象s1:endl; s1.prt_sq_LList(); s1.del_sq_LList(0); /删除顺序表sl中的第0个元素 s1.del_sq_LList(2); /删除顺序表s1中的第1个元素cout第3次输出顺序表对象sl:endl;s1.prt_sq_LList();return 0;内容2参考程序:#include #include struct dataint number;char name10;char
8、sex5;char classes5; int tel;int insert(struct data st5,int n); /*申明插入函数*/void scanning(struct data st5,int n); /*申明浏览函数*/int del(struct data st5,int n); /*申明删除函数*/void fix(struct data st5,int n); /*申明修改函数*/int main()struct data st5;int chioce,flag=1;int n;n=0;while(flag)printf(请选择功能:n 1信息浏览n 2插入信息n
9、3删除信息n 4-修改信息n 0退出程序n); scanf(%d,&chioce); switch(chioce) case 1: scanning(st,n); break; case 2: n=insert(st,n); break; case 3: n=del(st,n); break; case 4: fix(st,n); break; case 0:flag=0; break; printf(n);printf(谢谢使用!n);return 0;void scanning(struct data st5,int n) /*定义浏览函数*/int i;if(n=0) /*无元素*/pr
10、intf(请选择功能键,先插入名单!n);printf(n);printf(n);elsefor(i=1;i=5)printf(内存已满!n);printf(n);elseprintf(请输入学号:n);scanf(%d,&t.number);printf(请输入姓名:n);scanf(%s,t.name);printf(请输入性别:n);scanf(%s,t.sex);printf(请输入班级:n);scanf(%s,t.classes);printf(请输入号码:n);scanf(%d,&t.tel); for(i=n;i0;i-) /*所有元素后移*/sti+1.number=stn.n
11、umber;strcpy(sti+1.classes,sti.classes);strcpy(sti+1.name,sti.name);strcpy(sti+1.sex,sti.sex); sti+1.tel=sti.tel; st1.number=t.number; strcpy(st1.classes,t.classes); strcpy(st1.name,t.name); strcpy(st1.sex,t.sex); st1.tel=t.tel;p=n+1;return p;int del(struct data st5,int n) /*定义删除函数*/int m,i,q,t;prin
12、tf(请输入你要删除的同学的学号:n);scanf(%d,&m);for(i=1;i=n;i+)if(sti.number=m)t=i;break;for(i=t;in;i+) /*删除结点后的所有元素后移*/sti.number=sti+1.number;sti.tel=sti+1.tel;strcpy(sti.classes,sti+1.classes);strcpy(sti.name,sti+1.name);strcpy(sti.sex,sti+1.sex);q=n-1;return q;void fix(struct data st5,int n) /*定义修改函数*/int i,m,
13、p,t=1;struct data s;printf(请输入你要修改的学生的学号:n); scanf(%d,&m);for(i=1;i=n;i+)if(sti.number=m) while(t) printf(你想要修改哪项数据?n 1代表学号n 2代表姓名n 3代表性别n 4代表班级n 5代表联系方式n (注意:修改完毕请输入)n);scanf(%d,&p);switch(p)case 1:printf(请输入修改后的学号!n);scanf(%d,&s.number);sti.number=s.number;break;case 2:printf(请输入修改后的姓名!n);scanf(%s
14、,s.name);strcpy(sti.name,s.name);break;case 3:printf(请输入修改的性别!n);scanf(%s,s.sex);strcpy(sti.sex,s.sex);break;case 4: printf(请输入修改的班级!n);scanf(%s,s.classes);strcpy(sti.classes,s.classes);break; case 5: printf(请输入修改后的联系方式!n); scanf(%d,&s.tel);sti.tel=s.tel;break;case 0: t=0; break;实验二 栈和队列的基本操作(必做)一、实
15、验目的:1.掌握栈与队列的数据类型描述及特点;2.掌握栈和队列的存储;3.掌握栈的顺序和链式存储存表示与入栈、出栈操作的程序实现;4. 掌握队列的链式存储表示与入队、出队基本操作算法实现。二、实验内容1.根据栈数据结构,分别建立一个顺序栈和链式栈并实现其上基本操作(出栈和入栈等);2.根据队列数据结构,分别建立链队列和循环队列,并完成其上的基本操作(出入队列等)。三、实验步骤1.定义一个顺序栈和链栈结构体(队列结构体)。2.利用入栈功能保存数据。3.利用出栈删除弹出栈内信息。4.利用入队功能保存数据。5.利用出队删除队列信息。四、程序运行测试1.入栈功能测试。2.出栈功能测试。3.入队功能测试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件 技术 基础 实验 指导书
限制150内