实验一顺序存储线性表的基本运算

上传人:仙*** 文档编号:72399201 上传时间:2022-04-09 格式:DOC 页数:13 大小:234KB
返回 下载 相关 举报
实验一顺序存储线性表的基本运算_第1页
第1页 / 共13页
实验一顺序存储线性表的基本运算_第2页
第2页 / 共13页
实验一顺序存储线性表的基本运算_第3页
第3页 / 共13页
点击查看更多>>
资源描述
实验一 VC+软件的熟悉与使用实验一 VC+软件的熟悉与使用一、 实验目的1、 熟悉VC+控制台程序的建立、编辑、编译、运行步骤。2、 熟悉VC+环境下调试的基本方法。二、 实验原理在VC+6.0 下建立、编译、调试并运行一个控制台程序,程序的功能描述是:有n个人(1n100)围成一圈,顺序排号(1n)。从第一个人开始报数(从1到5报数),凡报到5的人退出圈子,余下的人继续报数,编写程序,实现按退出圈子的先后顺序输出这个序列。程序源代码如下:#include#includevoid main( ) int i,k,m,n,number100,*p; printf(“input count of person:n=”); scanf(“%d”,&n); if(n100) printf(“errorn”); exit (0); p=number; for(i=0;in;i+) *(p+i)=i+1;i=0; k=0; m=0; while(m”,m+1,*(p+i); *(p+i)=0; k=0; m+; if(m%8=0) printf(“n”); i+; if (i=n) i=0;while(*p=0) p+; printf(“%d:%d”,m+1,*p);三、 实验仪器和设备1、 PC微机2、 Microsoft VC+6.0四、 预习要求1、 根据源程序,画出流程图。2、 C语言源程序的编写方法。五、 实验内容及步骤1、编写一个控制台程序在VC+6.0 下建立、编译并运行一个控制台程序,程序的功能描述是:有n个人(1n100)围成一圈,顺序排号(1n)。从第一个人开始报数(从1到5报数),凡到5的人退出圈子,余下的人继续报数,编写程序,实现按退出圈子的先后顺序输出这个序列。(1)创建新工程。选择File|New命令,显示New对话框。在此对话框的列表栏中,选择Win32 Console Application (Win32 控制台 应用程序)。然后在Project Name 栏中输入新建的工程名,如 ex1。在Location文本框中选择工程存放的文件夹,如图1-1中所示e:studyex1。然后单击OK按钮。图11 新建项目文件对话框在Win32 Console Application-Step 1 of 1对话框中选择An empty project单选项。然后单击Finish按钮,如图1-2所示。图12 新建控制台程序对话框在出现New Project Information对话框中单击OK按钮,完成工程的创建过程。(2)创建C+源程序文件。编辑C+源程序:编辑C+源程序时,选择File|New命令,打开New窗口。在New窗口。选择Files选项卡,在它的列表框中选择C+ Source File,在File Name下面的文本框中输入源程序文件名,单击Add to project复选框,如图1-3所示,再单击OK按钮,出现编辑屏幕。图13 新建源文件对话框(3)在编辑窗口键入编写好的C+源程序,如图1-4所示。图14 编辑窗口(4)保存源程序。输入完源程序后,应注意存盘。选择File|Save(或Save all)命令,保存文件。(5)编译连接和运行源程序。选择Build|Complie queue.cpp命令,这时系统开始对当前的源程序进行编译,编译过程中所出现的错误信息将显示在屏幕下方的Build窗口中。错误信息指出了该错误所在行号和该错误的性质。用户可根据这些错误信息进行修改。编译过程无错误后,可进行连接生成可执行文件(.exe),这时选择Build|Build ex1.exe命令。Build窗口如果出现如图实1-4所示信息,说明编译连接成功,并生成以工程项目的名称为名字的可执行文件(ex1.exe)。运行可执行文件的方法是,选择Build|execute.exe命令,这时,运行该文件,并将结果显示在另一个输出结果的窗口中。(6)关闭、打开工作区。选择File|Close WorkSpace命令,关闭工作区。选择File|Open WorkSpace命令,在弹出的对话框中选定相应得工作区文件(扩展名为.dsw),单击Open按钮,则可重新打开工作区,对建立的工程文件进行修改。2、VC+环境下程序的调试程序调试一般分为两个步骤:第一步是排除语法错误,使得程序能够运行;第二步是排除逻辑错误(即通常说的Debug),使得程序运行后能得到正确的运行结果。语法错误可以利用VC+6.0提供的调试工具(Debug)来排查错误。下面简要介绍在VC+6.0下Debug的基本用法。(1)进行调试状态。首先要确保程序能够编译、建立得到执行程序,也就是已经完成第一步的工作(第一步是排除语法错误),然后选择Build|Start Debug|Step Into命令或者按F11键进入单步执行状态(如图1-5所示)。图15 调试窗口界面(2)设置需要观察的变量。进入Debug状态后,在窗口的右下角有Watch窗口,在该窗口下,有若干个Watch选项卡(Watch,Watch等),在每一个选项卡里可以添加需要观察的变量,只要在Watch表格的Name列中输入相应得变量名。(3)选择适当的执行方式。在单步调试状态下,主菜单中新增了Debug,该菜单中控制执行的菜单项有以下几种。Restart:重新开始执行。Stop Debugging: 退出单步调试状态,返回到正常编辑窗口。Step Into(F11): 单步执行,遇到函数调用则进入到函数中执行。Step Over(F10): 单步执行,遇到函数调用,执行完该函数调用返回到下一条语句。Step Out(Shift+F11): 执行完当前的函数中所有的语句并返回到主调函数的下一条语句。Run to Cursor (Ctrl+F10): 执行光标所在的语句。通过单步执行的方式,可以观察程序执行过程中关键变量的变化情况,从此比较容易的确定错误的原因、改正错误。针对上例,简单介绍单步跟踪调试的方法。首先认为设置一个错误:将实验提示()中的程序的“if(i=n) i=0;”语句去掉。编译、连接后执行会发现结果不正确,要找出其中的编辑错误,一般可以按下面的步骤进行:选择Build|Start Debug|Step Into命令,进行调试状态(即单步执行状态)。设置需要观察的变量。在右下角Watch窗口的Watch1选项卡的name列分别输入需要观察的变量名称如I,*(p+i),这样在程序单步执行时,可以看到两个变量的值。当然,在单步执行的任何时候都可以在watch窗口中输入的个变量名或者表达式以观察它们的值。按F11或F10键单步执行。注意它们两个的区别。如果程序中的语句是调用了标准函数,可以按F10键直接得到函数调用后返回的结果,如果是调用了自定义函数,而且怀疑自定义函数有问题,那么可以按F11键进入到子函数中单步执行。在这里因为程序中没有自定义的函数,可以按F10键单步执行。在程序执行到输入语句“scanf(“%d”,&n);”时应切换到控制台窗口输入n的值,这里输入“9”后按回车键,返回到VC调试环境,在watch窗口中加入变量n,可以观察到它的值是9。继续按F10键单步执行,在单步执行第一个While循环的过程中,会出现输出了第一个正确结果,但是第二个就不正确了,这时观察变量i的值(i应该是0n-1之间的一个值,表示数组元素的位置信息),发现i的值超过了8(这里n=9),显然变量i的值变化有问题。在仔细分析这个While循环,i是用来计数的,当i的值超过n的,应该从起始位置重新开始,所以应该在“i+”语句后加上一条“if(i=n)i=0;”的语句。从上面的分析可以知道,单步执行、设置观察变量的母的主要是用来确定错误的大致范围和位置,具体的排错还要通过对程序的仔细分析最终找到错误的原因,进而改正。六、 实验报告要求画出源程序流程图。实验七 排序实验实验二 顺序存储线性表的基本运算一、 实验目的1、 掌握线性表的定义、顺序存储的方法及基本操作。2、 掌握将算法在VC+6.0语言环境下实现的过程。二、 实验原理利用线性表的顺序存储结构完成一个班级的一个学期的所有课程成绩的管理,要求实现增加、删除学生的成绩记录等运算。三、 实验仪器和设备1、 PC微机2、 Microsoft VC+6.0四、 预习要求1、 复习线性表的定义、线性表的顺序存储结构的定义以及顺序存储线性表的增加、删除元素的算法。2、 掌握顺序存储线性表的C语言的实现。五、 实验内容及步骤1、 分析题意,确定算法。线性表的长度设为全班人数(35人),一个学期的课程设为三门,定义如下:#defineMax_length35typedef structint xh; /*学号*/char name10; /*姓名*/int c1,c2,c3; /*三门课程成绩*/ Element;2、 编辑C语言源程序。(1) 分别编写插入、删除、修改、查找的算法。/*在第i个记录的后面插入一个学生的记录算法*/int Insert_list (int i,Element s ,int *n_pointer)/*n_pointe存放已输入的最大记录数*/ int j,n; n=*n_pointer; if(n= Max_length) | | (in+1) return (0); for(j=n;j=I;j-) sj+1=sj; /*移动*/ printf(“Input Data for inserting (XH Name C1 C2 C3) n”); scanf(“%d%s%d%d%d”,&si.xh,&si.name,&si.c1,&si.c2,&si.c3); n+; *n_pointer=n; return (1);/*删除第i个学生的记录算法*/int Delete_list(int i,Element s ,int *n_pointer)int j,n;n=n_pointer;if(in) return(0);for (j=i+1;j=n;j+)/*移动*/sj-1.xh=sj.xh; strcpy(sj-1.name,sj.name;sj-1.c1=sj.c1; sj-1.c2=sj.c2; sj-1.c3=sj.c3;n-;*n_pointer=n; return (1);/*查找学好为x的算法*/int Locate_list (Element s , int n, int x)int i;for(i=1;i=n;i+) if (si.xh=x) return (i); return (0);/*修改学号为i的学生的记录函数*/int Change_list (int i, Element s ) if( (iMax_length +1) ) return (0); printf (“Input data for updating :n”); scanf (“%d%s%d%d%d”,si.xh,si.name,si.c1,si.c2,si.c3); return (1);/*打印已建立的数据记录,n是记录总数*/void printf_list (Element s ,int n)int i;if(nMax_length) return ;printf (“XH Name C1 C2 C3 n”);printf(“-n”);for(i=1;i=n;i+)printf (“%4d%10s%7d%7d%7dn”,si.xh,si.name,si.c1,si.c2,si.c3)(2)编写主函数调用上述各函数。#include #include #include void main ( )int i, records=0;Element sMax_length; for (i=1;i=Max_length;i+) Insert_list ( i, s, &records);/*创建线性表*/ Printf_list (s, records); /*显示学生记录内容*/ 3、 上机调试、运行源程序。六、 实验报告要求画出源程序流程图。15
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!