文档库 最新最全的文档下载
当前位置:文档库 › 顺序框图 实验二 打印

顺序框图 实验二 打印

顺序框图 实验二 打印
顺序框图 实验二 打印

北京建筑大学

理学院信息与计算科学专业实验报告

课程名称软件工程实验名称顺序图实验地点专业机房基c-423 日期2015-10-18 姓名黄成运班级信121 学号2108191211112 指导教师张长伦成绩

【实验目的】

通过本次试验使学生掌握UML建模语言的基础知识和rose软件的基本用法。掌握绘制交互框图的基本步骤和方法,并能熟练的使用rose软件绘制顺序框图以及协作框图(collaboration Diagram)。

【实验要求】

根据实验题目内容,完成相应的实验任务。

【实验内容】

下面是单项用例的用例文档中的基本路径。

客户选择机票购买业务

选择出发地和目的地

选择航班日期

查找与条件匹配的航班

创建满足条件的航班列表

显示满足条件的航班列表

选择期望的航班

得到此航班的详细信息

确定购买此航班

索要客户信用卡信息

客户提交信用卡

对信用卡持有者进行身份验证

信用卡有效付款成功并添加该客户至该航班

产生成功信息

显示购买成功信息

打印此次航班机票信息

1.请你将该用例场景绘制成顺序框图,顾客使用机票销售软件系统实现自助购买机票。

2.画出功能实现的流程图。

【实验结果】

顺序框图

流程图

订票

选择出发地、目的地

和航班日期

查找匹配的航班

选择期望的航班并确认购买提交信用卡信息并

进行确认

支付成功

购买成功并打印

无匹配航班信用卡信息有误

实验二顺序程序设计

实验二简单C程序设计—顺序结构 一、实验目的 1.掌握C语言中使用最多的一种语句――赋值语句的使用方法。 2.掌握各种类型数据的输入输出方法,能正确使用各种格式输出符。 二、实验内容和步骤 1.掌握各种格式输出符的使用方法。 #include int main() {int a,b; float d,e; char c1,c2; double f,g; long n,m; unsigned p,q; a=61;b=62; c1='a';c2='b'; d=3.56; e=-6.87; f=3156.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); return 0; } (1)运行此程序并分析运行结果。 a,b都是以整型输出。C1c2以字符型输出。d,e以浮点型输出,数据长度都为6位,所以前面都有空格占位,加上小数点,数字或负号一共6位。 f以浮点型输出,数据长度为15位,小数位有6位,故前面有四个空格;g以浮点型输出,数据长度为15位,小数位有12位,故前面有一个空格;m,n都以长整型输出;p,q都以无字符型输出。 (2)在此基础上,修改程序的第9-14行: a=61;b=62; c1=a;c2=b; f=3156,890121;g=0.123456789; d=f;e=g; p=a=m=50000;q=b=n=-60000; 运行程序,分析运行结果。 把a,b的值依次赋给c1,c2,c1,c2的数据类型为字符型,根Ascll代码可知61对应=,62对应>;将f,g的值赋给d,e,d,e的数据类型为浮点型,且数据长度为6位,小数位有2位,故得出此结果;按照运算符的结合顺序可知程序把50000依次赋给了m,p,a,把-60000

数据结构实验2.1顺序表

附页(实验2-1代码): 头文件“DEFINE2-1.h”: #define MaxSize 10 typedef struct { char data[MaxSize]; int length; }SqList; #include #include #include"DEFINE2-1.h" void InitList(SqList * &L) //初始化线性表 { L = (SqList*)malloc(sizeof(SqList)); //分配存放线性表的空间L->length = 0; //置空线性表长度为0 } bool ListInsert(SqList *&L, int i, char e) //插入数据元素 { int j; if (i<1 || i>L->length + 1) return false; //参数错误是返回false I--; //将顺序表逻辑序号转换为物理序号for (j = L->length; j>i; j--) //将data[i]及后面元素后移一个位置L->data[j] = L->data[j - 1]; L->data[i] = e; //插入元素e L->length++; //顺序表长度+1 return true; //成功插入返回true } void DispList(SqList *L) //输出线性表L { int i; for (i = 0; ilength; i++) //扫描顺序表输出各元素值printf("%3c", L->data[i]); printf("\n\n"); } int ListLength(SqList *L) //求线性表L的长度 { return (L->length); }

顺序结构实验报告

程序设计基础 实验报告 实验编号 1905B000201 实验名称顺序结构 实验地点软件技术实验室(2) 班级19软嵌2班 学号 姓名

一、实验目的: 1、掌握编程环境的使用 2、掌握基本数据类型、变量的定义和赋值; 3、掌握输入输出语句 4、理解顺序结构的使用 二、实验内容: 问题1: 源代码: #include void main() { int num1,num2,sum,min,mul,yushu; float shang; printf("Enter num1:"); scanf("%d",&num1); printf("Enter num2:"); scanf("%d",&num2); sum=num1+num2; min=num1-num2; mul=num1*num2; shang= (float)num1/num2; yushu=num1%num2; printf("%d+%d=%d\n",num1,num2,sum); printf("%d-%d=%d\n",num1,num2,min);

printf("%d*%d=%d\n",num1,num2,mul); printf("%d/%d=%.2f\n",num1,num2,shang); printf("%d%%%d=%d\n",num1,num2,yushu); return 0; } 输入:5 3 结果: 问题2: 源代码: #include int main() { int time1, time2,m,n; printf("Enter time1:"); scanf( "%d" ,&time1); printf("Enter time2:"); scanf("%d",&time2); m=(time2-time1)/100;

实验-4顺序结构

实验4:顺序结构程序设计 实验名称:顺序结构程序设计成绩: 实验日期:年月日实验报告日期:年月日 一、实验目的 1、掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。 2、初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。 二、实验内容 在Turbo C下完成程序题: (1)根据商品原价和折扣率,计算商品的实际售价(结果精确到小数点后2位) (2)根据圆柱体的半径和高,计算圆周长、圆面积、圆柱体表面积、圆柱体体积(结果精确到小数点后3位) 注:变量名可以自由选择,以易于理解为原则;数据由键盘输入。 三、实验要求 1、实验前编制程序框图、编写源程序、准备测试数据。 2、实验测试数据要求从键盘输入。应尽力追求程序的完美。比如要求输入数据,应当显示提示 字符串,提示用户输入;输出时要求有文字说明。 3、在Turbo C下完成程序的编辑、编译、运行,获得程序结果。如果结果有误,应找出原因, 并设法更正之。 4、编制的程序必须保存在D:\用户目录中。注:用户目录可以用学号或姓名拼音简写。 四、实验步骤、过程 1、启动操作系统,进入DOS窗口;切换到用户磁盘,创建、进入用户目录。(方法、命令与 实验1相同) 2、启动Turbo C集成开发环境。(方法与实验1相同) 3、完成2个程序题。(编辑、保存、编译连接、运行程序,步骤与实验1相同) 4、退出Turbo C集成开发环境,关机。

五、源程序清单、测试数据、结果。 1、根据商品原价和折扣率,计算商品的实际售价 程序框图: 程序 main() { float price,discount,fee; printf("Input Price,Discount:"); fee=price*(1-discount/100); } 运行: Input Price,Discount: Fee= 注:下划线表示程序运行后用户输入的数据,表示回车,以后不再解释。 2、根据圆柱体的半径和高,计算圆周长、圆面积、圆柱体表面积、圆柱体体积程序 void main() { float r,h,pi=3.1415926; float c0,s0,s,v; printf("Input r,h(m):"); scanf("%f,%f",&r,&h);

数据结构实验 顺序表

信息学院 数据结构实验报告 学号:姓名:班级: 课程名称:数据结构实验名称:编写一个程序,实现对顺序表的如下操作: 1)初始化 2)创建一个顺序表(表长度至少为10)3)输出所创建的顺序表 4)键盘输入插入位置和插入元素,完成对表中插入元素的运算 5)键盘输入删除位置,实现对删除算法的调用,并输出被删除元素的值 6)创建两张有序表,实现这两张有序表的合并,并输出合并后的有序表。 实验性质:√①综合性实验②设计性实验③验证性实验实验时间:试验地点:机房 本实验所用设备:pc及C++6.0

【数据结构】: #define Maxsize 100 typedef int ElemType; typedef struct {ElemType elem[Maxsize]; int last; }SqeList;//建立顺序表; 【算法思想】: 通过基本算法熟悉数据结构。 创建表,运用增删改查实现表的操作后, 合并两表。 【算法描述】: void InitList(SqeList *L){printf("表已初始化!\n");L->last=-1;} void CreateForm(SqeList *L1){ InitList(L1); int i,n; printf("请输入要建表中的数组元素的个数,且不超过100:\n"); scanf("%d",&n); printf("你将输入的元素:\n"); for(i=0;ilast++; scanf("%5d",&L1->elem[i]); } }//CreateForm()函数的功能为建立一个线性表。 int Empty(SqeList *L1){ if(L1->last==-1){printf("表为空!");return 1;} else { printf("表不为空");return 0; } }//Empty()函数判断表是否为空 void Intsert(SqeList *L1,int i,ElemType e)//在顺序表中插入新元素。{ if(Empty(L1))printf("表已满,不可插入!\n"); else { printf("请输入插入的位置\n");scanf("%5d",&i); if(i<1||i>L1->last+2)printf("插入非法操作!\n");

实验2顺序结构程序设计

《C语言程序设计》实验报告 ---------------------------------------------------------------------------------------------- 实验2顺序结构程序设计 一、实验目的 (1)掌握C语言中赋值语句的使用方法。 (2)掌握各种类型数据的输入与输出方法,能正确使用各种格式转换符。(3)掌握C语言的顺序结构程序设计。 二、实验内容与步骤 1.输入程序,观察程序运行结果 (1)输入并运行下面的程序,掌握用scanf()函数输入多个整型数据时,格式说明中无分隔符的正确使用。 /*c2-1.c*/ #include int main() { int i,j; printf("Enter i,j\n"); scanf("%d%d",&i,&j); printf("i=%d,j=%d\n",i,j); return 0; } 总结与反思: 1.printf("Enter i,j\n");语句是对下面的输入语句起提示作用;2. 本题在scanf()语句中,输入两个整数之间可用空格、Tab或回车键分隔,但用其他的分隔符不能得到正确的值。 (2)输入并运行下面的程序,掌握用scanf()函数输入多个整型数据时,格式说明中逗号分隔符的正确使用。 /*c2-2.c*/ #include int main() { int i,j; printf("Enter i,j\n");

scanf("%d,%d",&i,&j); printf("i=%d,j=%d\n",i,j); return 0; } 总结与反思:本题在scanf()语句中,输入两个整数之间必须用逗号分割,用 其他的分隔符时第一个变量能得到正确的值,第二个变量不能得到正确的值。(3)输入并运行下面的程序,掌握格式scanf()函数中普通字符按原样输入的使用方法。 /*c2-3.c*/ #include int main() { float i,j; scanf("i=%f,j=%f",&i,&j); printf("i=%.3f,j=%.3f\n",i,j); return 0; } 总结与反思:用scanf()函数输入内容,必须严格按照格式说明部分进行键入。 (4)输入并运行下面的程序,如果scanf()函数中格式与变量类型的对应关系错误,将不能得到正确的结果。 /*c2-4.c*/ #include int main() { int i,j; scanf("%f,%f",&i,&j); printf("i=%d,j=%d\n",i,j); return 0; } 总结与反思:1.与int(基本整型)对应的应是%d,与float(浮点型)对应的是%f。 2.scanf()函数格式说明应与定义的变量类型一致! (5)输入一个大写字母A,将它转换为小写字母a,输出小写字母a及对应的ASCII码值97,要求输出格式为“j=a,j=97”,完善下面程序中的输出语句。 /*c2-5.c*/ #include int main() { int j;char i; scanf("%c",&i); j=i+32; printf("j=%c,j=%d\n",j,j);

顺序表的应用数据结构实验报告记录

顺序表的应用数据结构实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

大学数据结构实验报告 课程名称数据结构实验第(三)次实验实验名称顺序表的应用 学生姓名于歌专业班级学号 实验成绩指导老师(签名)日期2018年9月30日一、实验目的 1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。 2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。 3.掌握对多函数程序的输入、编辑、调试和运行过程。 二、实验要求 1.预习C语言中结构体的定义与基本操作方法。 2.对顺序表的每个基本操作用单独的函数实现。 3.编写完整程序完成下面的实验内容并上机运行。 4.整理并上交实验报告。 三、实验内容: 1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1)根据指定学生个数,逐个输入学生信息 (2)逐个显示学生表中所有学生的相关信息 (3)根据姓名进行查找,返回此学生的学号和成绩 (4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩) (5)给定一个学生信息,插入到表中指定的位置 (6)删除指定位置的学生记录 (7)统计表中学生个数 四、实验设计 1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1)根据指定学生个数,逐个输入学生信息 for(count=0; count

实验二+顺序结构程序设计

实验二顺序结构程序设计 一、实验学时 2学时 二、实验目的 (一)掌握简单结构的C语言程序设计; (二)掌握输入、输出函数的正确使用。 三、预习要求 熟悉并掌握scanf()函数,printf()函数,getchar()函数和putchar()函数的语法格式,比较它们在使用时的异同。 四、实验内容 (一)输入并运行下面的程序,掌握scanf()函数输入多个整型数据时,格式说明中无分隔符的正确使用。 main ( ) { int i,j; scanf("%d%d",&i,&j); printf("i=%d,j=%d\n",i,j); } 注意:运行程序时,当调用格式输入函数scanf()时,首先返回用户屏幕,等待用户从键盘上输入两个整数并回车,程序才能继续向下执行。 从键盘上为变量i,j赋值32和18时,两个整数之间可用空格、Tab或回车键分隔。试一试,用其它的分隔符输入时各个变量,能否得到正确值。 (二)输入并运行下面的程序,观察与上一程序的区别。注意:printf("Enter i,j\n");语句对下面的输入语句起提示作用。 main ( ) { int i,j; printf("Enter i,j\n"); scanf("%d%d",&i,&j); printf("i=%d,j=%d\n",i,j); } 注意:运行程序时,先执行printf("Enter i,j\n");,当调用格式输入函数scanf()时,返回用户屏幕,屏幕上会有提示Enter i,j,等待用户从键盘上输入两个整数。 (三)输入并运行下面的程序,掌握scanf()函数输入多个整型数据时,格式说明中逗号分隔符的正确使用。 main ( ) { int i,j; printf("Enter i,j\n"); scanf("%d,%d",&i,&j); printf("i=%d,j=%d\n",i,j); }

实验一 顺序程序设计

实验一顺序程序设计 一、实验目的: 1、学习顺序程序的设计方法 2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程 3、学习和掌握字符及字符串的输入输出方法 二、实验环境: 硬件环境IBM/PC 及其兼容机 软件环境操作系统DOS 编辑程序EDIT或其他编辑程序 汇编程序MASM.EXE 连接程序LINK.EXE 调试程序DEBUG.EXE 可视化编程环境emu8086 三、实验内容: 1、已知X和Y是数据段中的两个无符号字节单元,用程序完成表达式Z=(X2+Y2)/2的计算。 2、从键盘读入两个一位数(按键时保证按下的是数字键),显示它们的积。 四、实验要求: 1、画出实验程序流程图,独立完成源代码的编写。 开始 X中的内容 送AL 计算X*X X*X乘积 送BX Y中的内 容送AL 计算Y*Y 计算X*X+Y*Y 计算(X*X+Y*Y)/2结果送Z单元 结束 开始 读入第1个数字 并保存在BL中 读入第2个数字 将两个数字都转换成十进制数 两个数相乘, 积在AX中 积除以10取商送AL,余数在AH中 转换成相应的 ASCII码,并 保存在BX中 输出十位数 输出个位数 结束

2、在DOS环境下使用MASM完成对源代码的编译、连接,有必要的情况下使用debug.exe 进行调试。 3、WINDOS环境下使用EMU8086完成上第2步的工作。 4、与程序流程图比较,验证是否完成规定的功能,若未达要求,返回第1步。 5、提交完成的源代码,要求对关键语句进行注释。 ①源代码如下: DA TA SEGMENT X DB 5 Y DB 4 Z DW ? DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX ;初始化数据段 MOV AL,X ;X中的内容送AL MUL AL ;计算X*X MOV BX,AX ;X*X乘积送BX MOV AL,Y ;Y中的内容送AL MUL AL ;计算Y*Y ADD AX,BX ;计算X2+Y2 SHR AX,1 ;计算(X2+Y2)/2 MOV Z,AX ;结果送Z单元 MOV AH,4CH INT 21H ;返回DOS CODE ENDS END START ;汇编结束 ②源代码如下: CODE SEGMENT ASSUME CS:CODE MAIN: MOV AH,1 INT 21H ;读入第1个数字 MOV BL,AL ;保存在BL中 MOV AH,2 MOV DL,13 INT 21H ;回车 MOV DL,10 INT 21H ;换行 MOV AH,1 INT 21H ;读入第2个数字 SUB AL,30H ;第2个数字转换成十进制数 SUB BL,30H ;第1个数字转换成十进制数 MUL BL ;两个数相乘,积在AX中

数据结构实验一顺序表的实现

数据结构实验一顺序表的实现 班级学号分数 一、实验目的: 1.熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现; 2.以线性表的各种操作的实现为重点; 3.通过本次学习帮助学生加深C语言的使用,掌握算法分析方法并对已经设计 出的算法进行分析,给出相应的结果。 二、实验要求: 编写实验程序,上机运行本程序,保存程序的运行结果,结合程序进行分析并写出实验报告。 三、实验容及分析: 1.顺序表的建立 建立一个含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。 程序如下: 头文件SqList.h的容如下: #include #include #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int ElemType; typedef int Status; typedef struct{ ElemType *elem; int length; int listsize; }SqList; Status InitList_Sq(SqList *L) { L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));

if(!L->elem) return(OVERFLOW); L->length=0; L->listsize=LIST_INIT_SIZE; return OK; } Status CreatList_Sq(SqList *L,int n) { int i; printf("输入%d个整数:\n",n); for(i=0;ielem[i]); return OK; } //以下是整个源程序: #include #include"SqList.h" int main() { int i,n; SqList a; SqList *l = &a; if(InitList_Sq(l)==-2) printf("分配失败"); printf("\n输入要建立的线性表l的长度n:");//输入线性表得长度scanf("%d",&n); l->length=n; printf("线性表的长度是:%d\n",l->length); CreatList_Sq(l,n);//生成线性表 printf("输出线性表l中的元素值:");//输出线性表中的元素 for(i=0;ilength;i++) printf("%7d",l->elem[i]); getchar(); } 程序的运行结果:

数据结构实验报告

南京工程学院实验报告 操作的函数程序清单,分别用顺序表和链表结构完成,并在首页上表明团队名称、成员及个人的工作(函数),未来的成绩评定时将包含这一部分的团队成绩及个人的工作成绩。 一、实验目的 1.熟悉上机环境,进一步掌握语言的结构特点。 2.掌握线性表的顺序存储结构的定义及实现。 3.掌握线性表的链式存储结构——单链表的定义及实现。 4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。 5.掌握线性表在链式存储结构——单链表中的各种基本操作。 二、实验内容 1.顺序线性表的建立、插入及删除。 2.链式线性表的建立、插入及删除。 三、实验步骤 1.建立含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。 2.利用前面的实验先建立一个顺序表L={21,23,14,5,56,17,31},然后在第i个位置插入元素68。 3.建立一个带头结点的单链表,结点的值域为整型数据。要求将用户输入的数据按尾插入法来建立相应单链表。 四、程序主要语句及作用(main函数程序清单) 程序1的主要代码(附简要注释) #include #define MAXSIZE 1024 typedef int elemtype; typedef struct{ elemtype vec[MAXSIZE]; int len; }sequenlist; elemtype geti(sequenlist s, int i); elemtype deli(sequenlist *s,int i); elemtype insi(sequenlist *s,int i,int b); int main(int argc, char *argv[]){ int i,n,x; sequenlist a; printf("输入n(n>3):"); scanf("%d",&n);

最简单的C程序设计—顺序程序设计实验报告

嘉应学院计算机学院 实验报告 课程名称程序设计基础实验名称实验地点 指导老师实验时间提交时间 班级姓名座号 一、实验目的和要求 (1)掌握C语言中使用最多的一种语句——赋值语句的使用方法。 (2)掌握各种类型数据的输入输出的方法,能正确使用各种格式装换符。 (3)进一步掌握编写程序的和调试程序的方法。 二、实验环境和方法 实验方法: (一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 (二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。 (三)根据实验内容,编译程序。 实验环境:Windows xp Visual C++6.0 三、实验内容及过程描述 实验步骤: ①进入Visual C++ 6.0集成环境。 ②输入自己编好的程序。 ③检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改正。 ④进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容:编译以下题目的程序并调试运行。 实验① (1)通过下面的程序掌握各种格式装换符的正确使用方法。 ①输入以下程序:

②运行程序并分析结果如图: ③在此基础上,将程序第10~14行改为 c1=a;c2=b; f=3157.;g=0.; d=f;e=g; P=a=m=50000;q=b=n=-60000; 运行程序,分析结果如: (二)设圆半径r=1.5,圆柱高h=3,求圆周长﹑圆面积﹑圆球表面积﹑圆球体积﹑圆柱体积。用scanf 输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字。 程序代码为: #include int main() {int a,b; float d,e; char c1,c2; double f,g; long m,n; unsigned int p,q; a=61,b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.;g=0.; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,q,m,n,p,q); } #include int main() {float h,r,l,s,sq,vq,vz; float pi=3.; printf("请输入圆半径r ,圆柱高h :"); scanf("%f,%f",&r,&h); l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=3.0/4.0*pi*r*r*r; vz=pi*r*r*h;

数据结构实验一顺序表

数据结构实验一 1、实验目的 ?掌握线性表的逻辑特征 ?掌握线性表顺序存储结构的特点,熟练掌握顺序表的基本运算 2、实验内容: 建立顺序表,完成顺序表的基本操作:初始化、插入、删除、逆转、输出、销毁, 置空表、求表长、查找元素、判线性表是否为空; 1.问题描述:利用顺序表,设计一组输入数据(假定为一组整数),能够对顺序表进行如下操作: ?创建一个新的顺序表,实现动态空间分配的初始化; ?根据顺序表结点的位置插入一个新结点(位置插入),也可以根据给定的值进行插入(值插入),形成有序顺序表; ?根据顺序表结点的位置删除一个结点(位置删除),也可以根据给定的值删除对应的第一个结点,或者删除指定值的所有结点(值删除); ?利用最少的空间实现顺序表元素的逆转; ?实现顺序表的各个元素的输出; ?彻底销毁顺序线性表,回收所分配的空间; ?对顺序线性表的所有元素删除,置为空表; ?返回其数据元素个数; ?按序号查找,根据顺序表的特点,可以随机存取,直接可以定位于第i 个结点,查找该元素的值,对查找结果进行返回; ?按值查找,根据给定数据元素的值,只能顺序比较,查找该元素的位置,对查找结果进行返回; ?判断顺序表中是否有元素存在,对判断结果进行返回; .编写主程序,实现对各不同的算法调用。 2.实现要求: ?“初始化算法”的操作结果:构造一个空的顺序线性表。对顺序表的空间进行动态管理,实现动态分配、回收和增加存储空间; ?“位置插入算法”的初始条件:顺序线性表L 已存在,给定的元素位置为i,且1≤i≤ListLength(L)+1 ; 操作结果:在L 中第i 个位置之前插入新的数据元素e,L 的长度加1; ?“位置删除算法”的初始条件:顺序线性表L 已存在,1≤i≤ListLength(L) ; 操作结果:删除L 的第i 个数据元素,并用e 返回其值,L 的长度减1 ; ?“逆转算法”的初始条件:顺序线性表L 已存在; 操作结果:依次对L 的每个数据元素进行交换,为了使用最少的额外空间,对顺序表的元素进行交换; ?“输出算法”的初始条件:顺序线性表L 已存在; 操作结果:依次对L 的每个数据元素进行输出; ?“销毁算法”初始条件:顺序线性表L 已存在;

实验一 顺序结构程序设计

实验一顺序结构程序设计 一、实验目的 1. 掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。2 2. 学会使用有关算术运算符,以及包含这些运算符的表达式。 3. 掌握数据的输入输出方法,能正确使用各种格式转换符。 二、实验学时数 4学时 三、实验内容和步骤 1..启动TC 2.0编译系统,进入编辑界面,建立一个新文件。文件名自定。(要求每个学生建立一个自己的文件夹,每个同学的练习和作业的源程序命名形成系列,便于检查、查找和考核)。 利用一个小程序验证常量、变量的使用方法与特点,验证数据类型和表达式值的计算规则及其输出格式。 参考程序: main( ) { char c1,c2; c1=97;c2=98; printf(″%c,%c\n″,c1,c2); } (1)在此基础上加入以下printf语句,并运行。 printf(″%d,%d\n″,c1,c2); (2)将第二行改为以下语句,并运行。 int c1,c2; (3)将第三行改为以下语句,并运行。 c1=300;c2=400; 分别写出三次运行结果。 2.编程并调试运行 (1)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf 函数输出这两个字符。上机运行此程序,比较putchar和printf函数输出字符的特点。 (2)试编写程序,从键盘输入一个大写字母,要求改用小写字母输出。 3.写出下面程序的运行结果: 1)main() { int x=1,y=1,z=1; y=y+x; x=x+y; printf(″%d\n″,x); printf(″%d\n″,y); } 2) main()

数据结构-实验报告顺序表基本运算

(封面) 学生实验报告 学院:国际经贸学院 课程名称:数据结构 专业班级: 09电子商务 姓名: 学号:

学生实验报告 (经管类专业用) 一、实验目的及要求: 1、目的 通过实验,实现顺序表的各种基本运算。 2、内容及要求 编写一个程序,实现顺序表的各种基本运算,并在此基础上设计一个主程序完成下列功能: (1) 初始化顺序表L (2) 依次采用尾插法插入a,b,c,d,e (3) 输出顺序表L (4) 输出顺序表L长度; (5) 判断顺序表L是否为空; (6) 判断顺序表L 的第3个元素; (7) 输出元素‘a’的位置; (8) 在第4个元素位置上插入‘f’元素; (9) 输出顺序表L (10) 删除L的第3个元素; (11) 输出顺序表L (12) 释放顺序表L 二、仪器用具:

三、实验方法与步骤: 一、查阅顺序表等相关资料,熟悉顺序表基本概念和流程 二、“开展”顺序表实验流程 三、整理实验数据和文档,总结实验的过程,编写实验报告 四、实验结果与数据处理: 1、顺序表的代码: #include #include #define MaxSize 50 typedef char ElemType; typedef struct { ElemType data[MaxSize]; int length; } SqList; void InitList(SqList *&L) { L=(SqList *)malloc(sizeof(SqList)); L->length=0; } void DestroyList(SqList *L) { free(L); } int ListEmpty(SqList *L) { return(L->length==0); } int ListLength(SqList *L) { return(L->length); }

数据结构实验2

《数据结构》实验报告 实验序号:2 实验项目名称:顺序表的操作

附源程序清单: 1. #include #include #define LIST_INIT_SIZE100 // 数组最大值 #define INIT_ERROR-1 //初始化出错判断用 typedef struct tadDATALIST//顺序表结构体 { int nLength; //长度 int anData[LIST_INIT_SIZE]; //数组 int *pElem; }List, *pList; List C; //A和B组合后的新数组 int InitList(pList D) { int nLength = 0; int nInput = 0; char cOverSign ; //读取所有整数,输入回车结束输入 while (1) { if (scanf("%d", &nInput) != 1) //对于非法出入给出判断 { printf("非法输入!!!\n"); return INIT_ERROR; }

D-> anData[nLength] = nInput; //赋值 nLength ++; if ((cOverSign = getchar()) == '\n') //按下回车键,结束输入 { return nLength; //返回长度 } } } int Alternate(pList anData_A, pList anData_B) { C.nLength = 0; //初始化新数组的长度为0 int nIndex1 = 0; int nIndex2 = 0; while((nIndex1 < anData_A -> nLength) && (nIndex2 < anData_B -> nLength)) //当有一个数组到达长度限制后,退出执行后两个while语句中的一个 { C.anData[C.nLength] = anData_A->anData[nIndex1]; //先把A的第一个元素给c nIndex1 ++; C.nLength++; C.anData[C.nLength] = anData_B->anData[nIndex2]; //接着把B的第一个元素给C nIndex2 ++; C.nLength++; } while (nIndex1 < anData_A->nLength) { C.anData[C.nLength] = anData_A->anData[nIndex1]; nIndex1 ++; C.nLength++; } while (nIndex2 < anData_B->nLength) { C.anData[C.nLength] = anData_B->anData[nIndex2]; nIndex2 ++; C.nLength++; }

3、顺序程序设计作业

实验3 顺序程序设计 一、实验目的 1.学习编写简单的C程序。 2.在编写和调试程序的过程中,培养发现问题、分析问题、解决问题的能力。 3.掌握程序的基本组成:说明数据、输入数据、加工数据、输出数据。 二、实验预备知识 1.C语言的各种数据类型; 2.C语言的各种运算符和表达式; 3.C程序中各种数据的输入和输出。 三、实验内容 编写程序,实现以下功能。 1.由键盘任意输入一个圆的半径,计算其面积。 2.由键盘任意输入一个三角形的3条边,计算其面积。 3.由键盘任意输入一个长方体的长、宽、高,计算体积。 4.由键盘任意输入一个圆柱的半径和高,计算其底面积、表面积、体积。 5.由键盘任意输入4门课程的成绩,计算它们的平均成绩。 6.由键盘任意输入一个数字字符(‘0’-‘9’),将其转换为数字输出。 7.由键盘任意输入1个大写字母,将其转化为小写字母后输出。 8.由键盘任意输入银行存款本金、存款年利率、存款年限、利息税,计算本金和利息总和。9.由键盘任意输入2个数据,将它们交换后输出。 10.由键盘任意输入1个4位数整数,分别输出其中的个位、十位、百位、千位。 四、实验分析 1.分析并总结不同数据类型的数据,它们的表示形式、表示范围、机内所占字节的数量、可以进行的运算的不同。 2.当表达式中出现了多种运算符时,应特别注意它们的优先级和结合性。 3.正确使用格式输入和输出函数中的各种格式符。 4.掌握顺序程序设计的方法。 五、实验报告 1.在实验过程中,将每一个程序的源代码保存,如1.C、2.C、3.C、。。。。。。、10.C。 2.建立本人学号和姓名为名称的文件夹,如:2014211234王军-3,将每一个程序的源代码存入此文件夹(删除其他所有文件,只保留.C 的源程序文件,并且压缩)。 3.将此文件压缩文件上传到:学生交作业\2015春C语言程序设计作业\第3次作业\机械14-1。

数据结构实验报告-顺序表的创建、遍历及有序合并操作

数据结构实验报告-顺序表的创建、遍历及有序合并操作二、实验内容与步骤 实现顺序表的创建、遍历及有序合并操作,基本数据结构定义如下: typedef int ElemType; #define MAXSIZE 100 #define FALSE 0 #define TRUE 1 typedef struct {ElemType data[MAXSIZE]; int length; }seqlist; 创建顺序表,遍历顺序表 #include #include #define MAXSIZE 100 #define Icreament 20 #define FALSE 0

#define TRUE 1 typedef int ElemType; //用户自定义数据元素类型 // 顺序表结构体的定义 typedef struct { ElemType *elem; //顺序表的基地址 int length; //顺序表的当前长度 int listsize; //预设空间容量 }SqList; //线性表的顺序存储结构 SqList* InitList() //创建空的顺序表 { SqList* L = (SqList*)malloc(sizeof(SqList));//定义顺序表L if(!L) { printf("空间划分失败,程序退出\n"); return NULL; } L->elem=(ElemType *)malloc(MAXSIZE*sizeof(ElemType)); if(!L->elem) { printf("空间划分失败,程序退出\n");

数据结构实验两个有序顺序表的合并

南昌大学实验报告 学生姓名:李木子学号:专业班级:软工实验类型:□验证□综合□设计□创新实验日期:实验成绩: 一、实验项目名称 两个有序顺序表的结合 二、实验目的 顺序表的创建 .实现顺序表的追加 .实现顺序表的显示 .两顺序表的合并 三、实验基本原理 四、主要仪器设备及耗材 电脑, 五、实验步骤 ******************************************* * 顺序表的创建 * * .实现顺序表的追加 * * .实现顺序表的显示 * * .两顺序表的合并 * ******************************************* <> <> ; ************************************ * 顺序表结构体的定义 *

************************************ { []; ; }; ************************************ * 函数声明 * ************************************ (*); (*); (); (); (*); (*); (***); ************************************ * 顺序表的初始化函数 * ************************************ (*) { >; } ************************************ * 顺序表的追加函数 * ************************************ (*) { (>) { ("\顺序表是满的!"); (); } >[>]; >>; }

相关文档
相关文档 最新文档