线性表顺序存储及其应用.docx

上传人:b****1 文档编号:10382582 上传时间:2023-05-25 格式:DOCX 页数:11 大小:17.36KB
下载 相关 举报
线性表顺序存储及其应用.docx_第1页
第1页 / 共11页
线性表顺序存储及其应用.docx_第2页
第2页 / 共11页
线性表顺序存储及其应用.docx_第3页
第3页 / 共11页
线性表顺序存储及其应用.docx_第4页
第4页 / 共11页
线性表顺序存储及其应用.docx_第5页
第5页 / 共11页
线性表顺序存储及其应用.docx_第6页
第6页 / 共11页
线性表顺序存储及其应用.docx_第7页
第7页 / 共11页
线性表顺序存储及其应用.docx_第8页
第8页 / 共11页
线性表顺序存储及其应用.docx_第9页
第9页 / 共11页
线性表顺序存储及其应用.docx_第10页
第10页 / 共11页
线性表顺序存储及其应用.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

线性表顺序存储及其应用.docx

《线性表顺序存储及其应用.docx》由会员分享,可在线阅读,更多相关《线性表顺序存储及其应用.docx(11页珍藏版)》请在冰点文库上搜索。

线性表顺序存储及其应用.docx

线性表顺序存储及其应用

云南大学物理实验教学中心

实验报告

 

课程名称:

软件技术基础上机

实验项目:

线性表(顺序存储)及其应用

学生姓名:

曹砷坚学号:

20081050077

物理科学技术学院物理系08级电子科学与技术专业

成绩

指导教师:

马琳

实验时间:

2010年9月20日时分至时分

实验地点:

格物楼

实验类型:

教学(演示□验证□综合□设计■)学生科研□

课外开放□测试□其它□

云南大学物理实验教学中心实验预习报告

实验一线性表(顺序存储)及其应用

一.实验目的

1.掌握顺序表的建立及基本操作。

二.实验要求

建立一个顺序表,表中元素为学生,每个学生信息包含姓名和学号两部分,对该表实现:

①输出、②插入、③删除、④查找功能。

三.实验原理

1.顺序表的建立

在程序语言设计语言中,通常定义一个一维数组来表示线性表的顺序存存储空间。

因为程序设计语言中一唯数组与计算机中世界的存储空间结构是类似的,这就便于用程序设计语言对线性表进行各种运算处理。

2.顺序表的插入

  在一般情况下,要在第i(1≤i≤n)个元素之前插入一个新元素时,首先要将从最后一个(即第n个)元素开始,直到第i个元素之间的共n-i+1个元素,依次向后移动一个位置;移动结束后,第i个元素将被空出;然后将新元素插入到第i项。

插入结束后,线性表的长度就增加了1。

3.顺序表的删除

  在一般情况下,要删除顺序表第i(1≤i≤n)个元素时,需要从i+1个元素开始将直到第n个元素之间的总共n-i个元素,依次向前移动一个位置。

删除结束后线性

表的长度将减去1。

4.顺序表的查找

从线性表中第一个元素开始,依次将线性表中的元素进行比较,若相等则表示找到(即查找成功);若线性表中所有的元素都与被查找元素进行了比较但都不相等,则表示线性表中没要找的元素(即查找失败)。

四.实验设计

#include"stdafx.h"

#include"malloc.h"

#include"string.h"

#include"conio.h"

#include"iostream.h"

#defineKM7

#defineLENsizeof(STU)

classSTU

{

public:

charname[20];

intnum;

floatscore[7];

STU*next;

};

voidscore_in(floatsco[])

{

inti=0;

while(i

{

printf("enterscore%d\n",i);

cin>>sco[i];

i++;

}

}

voidpw_in(char*pw)

{

charc;

//charpw[128]={'\0'};

charincr[2]={0,'\0'};

inti=0;

while('\r'!

=(c=getch()))

{

if(c==0x08){

i--;

printf("\b");

printf("");

printf("\b");

continue;

}else{

printf("*");

}

incr[0]=c;

strcat(pw,incr);

i++;

}

pw[i]='\0';

printf("\n");

//printf("\n%s",pw);

}

intgl_log()

{

inti=0,user=1;

charid[20]="";

charid1[20]="pcgg5244";

charpw1[128]="524413";

charpw[128]={'\0'};

printf("chooseuser:

1student2teacher\n");

cin>>user;

printf("enterID:

\n");

cin>>id;

printf("enterpassword:

\n");

pw_in(pw);

intcmp_id=strcmp(id,id1);

intcmp_pw=strcmp(pw,pw1);

if(user==1&&cmp_id==0&&cmp_pw==0)i=1;

elseif(user==2&&cmp_id==0&&cmp_pw==0)i=2;

returni;

}

STU*gl_rd()

{

//STUh;

STU*head=0;

fpos_tpos=0;

FILE*fp;

fp=fopen("list.dat","rb");

STU*q1=newSTU;

fread(q1,LEN,1,fp);

head=q1;

while(q1->next)

{

q1=newSTU;

pos+=LEN;

fsetpos(fp,&pos);

fread(q1,LEN,1,fp);

}

//printf("%s%d%.1f\n",q1->name,q1->num,q1->score[0]);

fclose(fp);

returnhead;

}

voidgl_fd(intstu_num)

{

STU*h=gl_rd();

while(h)

{

if(h->num==stu_num)

{

printf("studentname:

%sstudentnumber:

%d\n",h->name,h->num);

floatsum=0,avr=0;

for(inti=0;i

{

sum+=h->score[i];

printf("score%d:

%.1f",i,h->score[i]);

}

printf("\n");

avr=sum/KM;

printf("totalscore:

%.1faveragescore:

%.1f\n",sum,avr);

}

h=h->next;

}

}

STU*creat()

{

charsi='y';

STU*head=0;

STU*p1=newSTU;

FILE*fp;

fp=fopen("list.dat","ab+");

fseek(fp,0,SEEK_END);

head=p1;

printf("entername&num:

\n");

cin>>p1->name>>p1->num;

score_in(p1->score);

while(si=='y')

{

STU*p2=p1;

p1=newSTU;

p2->next=p1;

fwrite(p2,LEN,1,fp);

printf("next:

\n");

cin>>p1->name>>p1->num;

score_in(p1->score);

printf("more?

y//n\n");

cin>>si;

}

p1->next=0;

fwrite(p1,LEN,1,fp);

fclose(fp);

returnhead;

}

intmain(intargc,char*argv[])

{

intlog_u=gl_log();

while(0==log_u)

{

printf("error!

\n");

log_u=gl_log();

}

if(log_u==1)

{

intnum=0;

printf("enterstudentnumber:

\n");

cin>>num;

gl_fd(num);

}

elseif(log_u==2)

{

FILE*file;

if((file=fopen("list.dat","r"))==NULL)creat();

elsefclose(file);

intcs=0;

printf("makeachoose:

0exit1add2change3insert4chaxun\n");

cin>>cs;

switch(cs)

{

case0:

break;

case1:

printf("x\n");break;

case2:

printf("x\n");break;

case3:

printf("x\n");break;

case4:

printf("x\n");break;

}

}

//STU*h=creat();

/*

STUh;

fpos_tpos;

FILE*fp;

//charstr[100]="";

fp=fopen("list.dat","rb");

//fwrite(h,LEN,1,fp);

//rewind(fp);

//fread(&h,LEN,1,fp);

//fgetpos(fp,&pos);

//printf("%d\n",pos);

pos=0;

fsetpos(fp,&pos);

fread(&h,LEN,1,fp);

printf("%s%d%.1f\n",h.name,h.num,h.score[0]);

//fseek(fp,0,SEEK_END);

fclose(fp);

*/

/*

while(h)

{

if(h->num==1)

{

printf("name:

%snum:

%d\n",h->name,h->num);

floatsum=0,avr=0;

for(inti=0;i

{

sum+=h->score[i];

}

avr=sum/KM;

printf("totalscore:

%.1faveragescore:

%.1f\n",sum,avr);

}

h=h->next;

}

*/

return0;

}

 

云南大学物理实验教学中心实验报告

 

云南大学物理实验教学中心实验报告(原始数据及现象记录)

 

实验指导老师签名

学生签名

实验指导老师填写

1、实验记录是否完整准确□2、有无涂改抄袭现象□

云南大学物理实验教学中心实验报告

 

云南大学物理实验教学中心实验报告

 

评分内容

预习

操作

数据处理与分析

实验报告

其他

综合评定成绩

分数

教师评语:

签字:

--------------------------------------------------------------------------------------------------------------------------

备注:

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2