数据结构实验报告及心得体会

时间:2024.4.20

20XX~20XX第一学期数据结构实验报告

班级:信管一班

学号:*********

姓名:***

实验报告题目及要求

一、实验题目

设某班级有M(6)名学生,本学期共开设N(3)门课程, 要求实现并修改如下程

序(算法)。

1. 输入学生的学号、姓名和 N 门课程的成绩(输入提示和输出显示使用汉字系统),输出实验结果 。(15分)

2. 计算每个学生本学期 N 门课程的总分,输出总分和N门课程成绩排在前 3 名学生的学号、姓名和成绩。

3. 按学生总分和 N 门课程成绩关键字升序排列名次,总分相同者同名次。

二、实验要求

1.修改算法。将奇偶排序算法升序改为降序。(15分)

2.用选择排序、冒泡排序、插入排序分别替换奇偶排序算法,并将升序算法修改为降序算法;。(45分))

3.编译、链接以上算法,按要求写出实验报告(25)。

4. 修改后算法的所有语句必须加下划线,没做修改语句保持按原样不动。

5.用A4纸打印输出实验报告。

三、实验报告说明

实验数据可自定义,每种排序算法数据要求均不重复。

(1) 实验题目:《N门课程学生成绩名次排序算法实现》;

(2) 实验目的:掌握各种排序算法的基本思想、实验方法和验证算法的准确性;

(3) 实验要求:对算法进行上机编译、链接、运行;

(4) 实验环境(Windows XP-sp3,Visual c++);

(5) 实验算法(给出四种排序算法修改后的全部清单);

(6) 实验结果(四种排序算法模拟运行后的实验结果);

(7) 实验体会(文字说明本实验成功或不足之处)。

三、实验源程序(算法)

Score.c

#include "stdio.h"

#include "string.h"

#define M 6

#define N 3

struct student

{ char name[10];

int number;

int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/

}stu[M];

void changesort(struct student a[],int n,int j)

{int flag=1,i;

struct student temp;

while(flag)

{ flag=0;

for(i=1;i<n-1;i+=2) /*对所有奇数项进行一遍比较*/

if (a[i].score[j]>a[i+1].score[j])

{ temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;

flag=1;

}

for(i=0;i<n-1;i+=2) /*对所有偶数项进行一遍比较*/

if (a[i].score[j]>a[i+1].score[j])

{ temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;

flag=1;

}

}

}

void print_score(struct student a[],int n,int j)

{ int i,k;

printf(“ 奇偶交换 成绩 %d 排序表",j+1);

printf("\n");

printf(" 名 次 学 号 姓 名 分 数\n");

k=1;

for(i=0;k<N&&i<n;i++)

{ if(i>0&&a[i].score[j]!=a[i-1].score[j])

k++;

printf(" %4d ",k);

printf("%4d",a[i].number);

printf(" %s",a[i].name);

printf(" %6d",a[i].score[j]);

printf("\n");

}

}

main()

{ int i,j,k;

for (i=0;i<M;i++) /*输入每个学生信息*/

{ printf("请输入第 %d 名学生分数: ",i+1);printf("\n");

printf("姓 名: ");

scanf("%s",stu[i].name);

printf("编 号: ");

scanf("%4d",&stu[i].number);

printf("数据结构: ");

scanf("%4d",&stu[i].score[0]);

printf("离散数学: ");

scanf("%4d",&stu[i].score[1]);

printf("大学英语: ");

scanf("%4d",&stu[i].score[2]);

}

for(i=0;i<M;i++) /*计算每个学生总分*/

{ stu[i].score[N]=0;

for(j=0;j<N;j++)

stu[i].score[N]+=stu[i].score[j];

}

changesort(stu,M,N); /*对总分进行排序*/

printf(" 学生总分成绩排序表\n");

printf(" 名次 学号 姓 名 数据结构 离散数学 大学英语 总 分\n");

k=1;

for(i=0;i<M;i++)

{ if(i>0&&stu[i].score[N]!=stu[i-1].score[N])

k++;

printf("%4d",k);

printf(" %4d",stu[i].number);

printf(" %s",stu[i].name);

for(j=0;j<N+1;j++)

printf(" %6d",stu[i].score[j]);

printf("\n");

}

changesort(stu,M,0); /*对数据结构成绩进行排序*/

print_score(stu,M,0); /*输出数据结构前 3 名同学成绩*/

changesort(stu,M,1); /*对离散数学成绩进行排序*/

print_score(stu,M,1); /*输出离散数学前 3 名同学成绩*/

changesort(stu,M,2); /*对大学英语成绩进行排序*/

print_score(stu,M,2); /*输出大学英语前 3 名同学成绩*/

}

源代码结果:

请输入第 1 名学生分数:

姓 名: 小史

编 号: 01

数据结构: 87

离散数学: 90

大学英语: 78

请输入第 2 名学生分数:

姓 名: 小欣

编 号: 02

数据结构: 78

离散数学: 80

大学英语: 92

请输入第 3 名学生分数:

姓 名: 小宇

编 号: 03

数据结构: 88

离散数学: 76

大学英语: 95

请输入第 4 名学生分数:

姓 名: 小芷

编 号: 04

数据结构: 79

离散数学: 84

大学英语: 88

请输入第 5 名学生分数:

姓 名: 小析

编 号: 05

数据结构: 78

离散数学: 68

大学英语: 91

请输入第 6 名学生分数:

姓 名: 小彤

编 号: 06

数据结构: 88

离散数学: 76

大学英语: 90

学生总分成绩排序表

名次 学号 姓 名 数据结构 离散数学 大学英语 总 分

1 5 小析 78 68 91 237

2 2 小欣 78 80 92 250

3 4 小芷 79 84 88 251

4 6 小彤 88 76 90 254

5 1 小史 87 90 78 255

6 3 小宇 88 76 95 259

奇偶交换 成绩 1 排序表

名 次 学 号 姓 名 分 数

1 5 小析 78

1 2 小欣 78

2 4 小芷 79

3 1 小史 87

奇偶交换 成绩 2 排序表

名 次 学 号 姓 名 分 数

1 5 小析 68

2 6 小彤 76

2 3 小宇 76

3 2 小欣 80

奇偶交换 成绩 3 排序表

名 次 学 号 姓 名 分 数

1 1 小史 78

2 4 小芷 88

3 6 小彤 90

Press any key to continue

Change.c

#include "stdio.h"

#include "string.h"

#define M 6

#define N 3

void changesort(struct student a[],int n,int j);

void print_score(struct student a[],int n,int j);

struct student

{

char name[10];

int number;

int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/

}stu[M];

main()

{

int i,j,k;

for (i=0;i<M;i++) /*输入每个学生信息*/

{

printf("请输入第 %d 名学生分数: ",i+1);printf("\n");

printf("姓 名: ");

scanf("%s",stu[i].name);

printf("编 号: ");

scanf("%4d",&stu[i].number);

printf("数据结构: ");

scanf("%4d",&stu[i].score[0]);

printf("离散数学: ");

scanf("%4d",&stu[i].score[1]);

printf("大学英语: ");

scanf("%4d",&stu[i].score[2]);

}

for(i=0;i<M;i++) /*计算每个学生总分*/

{

stu[i].score[N]=0;

for(j=0;j<N;j++)

stu[i].score[N]+=stu[i].score[j];

}

changesort(stu,M,N); /*对总分进行排序*/

printf(" 学生总分成绩排序表\n");

printf(" 名次 学号 姓 名 数据结构 离散数学 大学英语 总 分\n");

k=0;

for(i=0;i<M+1;i++)

{

if(i>0&&stu[i].score[N]!=stu[i-1].score[N])

{

k++;

printf("%4d",k);

printf(" %4d",stu[i-1].number);

printf(" %s",stu[i-1].name);

for(j=0;j<N+1;j++)

{

printf(" %6d",stu[i-1].score[j]);

}

}

printf("\n");

}

changesort(stu,M,0); /*对数据结构成绩进行排序*/

print_score(stu,M,0); /*输出数据结构前 3 名同学成绩*/

changesort(stu,M,1); /*对离散数学成绩进行排序*/

print_score(stu,M,1); /*输出离散数学前 3 名同学成绩*/

changesort(stu,M,2); /*对大学英语成绩进行排序*/

print_score(stu,M,2); /*输出大学英语前 3 名同学成绩*/

}

void changesort(struct student a[],int n,int j)

{

int flag=1,i;

struct student temp;

while(flag)

{

flag=0;

for(i=1;i<n-1;i+=2) /*对所有奇数项进行一遍比较*/

if (a[i].score[j] < a[i+1].score[j])

{

temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;

flag=1;

}

for(i=0;i<n-1;i+=2) /*对所有偶数项进行一遍比较*/

if (a[i].score[j] < a[i+1].score[j])

{

temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;

flag=1;

}

}

}

void print_score(struct student a[],int n,int j)

{

int i,k;

printf(" 奇偶交换 成绩 %d 排序表",j+1);

printf("\n");

printf(" 名 次 学 号 姓 名 分 数\n");

k=1;

for(i=0;k<N&&i<n;i++)

{

if(i>0&&a[i].score[j]!=a[i-1].score[j])

k++;

printf(" %4d ",k);

printf("%4d",a[i].number);

printf(" %s",a[i].name);

printf(" %6d",a[i].score[j]);

printf("\n");

}

}

升序改降序:

请输入第 1 名学生分数:

姓 名: 小史

编 号: 01

数据结构: 87

离散数学: 90

大学英语: 78

请输入第 2 名学生分数:

姓 名: 小欣

编 号: 02

数据结构: 78

离散数学: 80

大学英语: 92

请输入第 3 名学生分数:

姓 名: 小宇

编 号: 03

数据结构: 88

离散数学: 76

大学英语: 95

请输入第 4 名学生分数:

姓 名: 小芷

编 号: 04

数据结构: 79

离散数学: 84

大学英语: 88

请输入第 5 名学生分数:

姓 名: 小析

编 号: 05

数据结构: 78

离散数学: 68

大学英语: 91

请输入第 6 名学生分数:

姓 名: 小彤

编 号: 06

数据结构: 88

离散数学: 76

大学英语: 90

学生总分成绩排序表

名次 学号 姓 名 数据结构 离散数学 大学英语 总 分

1 3 小宇 88 76 95 259

2 1 小史 87 90 78 255

3 6 小彤 88 76 90 254

4 4 小芷 79 84 88 251

5 2 小欣 78 80 92 250

6 5 小析 78 68 91 237

奇偶交换 成绩 1 排序表

名 次 学 号 姓 名 分 数

1 3 小宇 88

1 6 小彤 88

2 1 小史 87

3 4 小芷 79

奇偶交换 成绩 2 排序表

名 次 学 号 姓 名 分 数

1 1 小史 90

2 4 小芷 84

3 2 小欣 80

奇偶交换 成绩 3 排序表

名 次 学 号 姓 名 分 数

1 3 小宇 95

2 2 小欣 92

3 5 小析 91

Press any key to continue

Seletsort.c

#include "stdio.h"

#include "string.h"

#define M 6

#define N 3

void changesort(struct student a[],int n,int j);

void print_score(struct student a[],int n,int j);

struct student

{

char name[10];

int number;

int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/

}stu[M];

main()

{

int i,j,k;

for (i=0;i<M;i++) /*输入每个学生信息*/

{

printf("请输入第 %d 名学生分数: ",i+1);printf("\n");

printf("姓 名: ");

scanf("%s",stu[i].name);

printf("编 号: ");

scanf("%4d",&stu[i].number);

printf("数据结构: ");

scanf("%4d",&stu[i].score[0]);

printf("离散数学: ");

scanf("%4d",&stu[i].score[1]);

printf("大学英语: ");

scanf("%4d",&stu[i].score[2]);

}

for(i=0;i<M;i++) /*计算每个学生总分*/

{

stu[i].score[N]=0;

for(j=0;j<N;j++)

stu[i].score[N]+=stu[i].score[j];

}

changesort(stu,M,N); /*对总分进行排序*/

printf(" 学生总分成绩排序表\n");

printf(" 名次 学号 姓 名 数据结构 离散数学 大学英语 总 分\n");

k=0;

for(i=0;i<M+1;i++)

{

if(i>0&&stu[i].score[N]!=stu[i-1].score[N])

{

k++;

printf("%4d",k);

printf(" %4d",stu[i-1].number);

printf(" %s",stu[i-1].name);

for(j=0;j<N+1;j++)

{

printf(" %6d",stu[i-1].score[j]);

}

}

printf("\n");

}

changesort(stu,M,0); /*对数据结构成绩进行排序*/

print_score(stu,M,0); /*输出数据结构前 3 名同学成绩*/

changesort(stu,M,1); /*对离散数学成绩进行排序*/

print_score(stu,M,1); /*输出离散数学前 3 名同学成绩*/

changesort(stu,M,2); /*对大学英语成绩进行排序*/

print_score(stu,M,2); /*输出大学英语前 3 名同学成绩*/

}

void changesort(struct student a[],int n,int j)

{

int flag=1,i,m,k;

struct student temp;

while(flag)

{

flag=0;

for(i=0;i<n-1;i++) /*选择排序法*/

{

k=i;

for(m=i+1;m<n;m++)

if (a[m].score[j]>a[k].score[j])

{

k=m;

temp=a[i];

a[i]=a[k];

a[k]=temp;

flag=1;

}

}

}

}

void print_score(struct student a[],int n,int j)

{

int i,k;

printf(" 选择交换 成绩 %d 排序表",j+1);

printf("\n");

printf(" 名 次 学 号 姓 名 分 数\n");

k=1;

for(i=0;k<N&&i<n;i++)

{

if(i>0&&a[i].score[j]!=a[i-1].score[j])

k++;

printf(" %4d ",k);

printf("%4d",a[i].number);

printf(" %s",a[i].name);

printf(" %6d",a[i].score[j]);

printf("\n");

}

}

简单选择:

请输入第 1 名学生分数:

姓 名: 小史

编 号: 01

数据结构: 87

离散数学: 90

大学英语: 78

请输入第 2 名学生分数:

姓 名: 小欣

编 号: 02

数据结构: 78

离散数学: 80

大学英语: 92

请输入第 3 名学生分数:

姓 名: 小宇

编 号: 03

数据结构: 88

离散数学: 76

大学英语: 95

请输入第 4 名学生分数:

姓 名: 小芷

编 号: 04

数据结构: 79

离散数学: 84

大学英语: 88

请输入第 5 名学生分数:

姓 名: 小析

编 号: 05

数据结构: 78

离散数学: 68

大学英语: 91

请输入第 6 名学生分数:

姓 名: 小彤

编 号: 06

数据结构: 88

离散数学: 76

大学英语: 90

学生总分成绩排序表

名次 学号 姓 名 数据结构 离散数学 大学英语 总 分

1 3 小宇 88 76 95 259

2 1 小史 87 90 78 255

3 6 小彤 88 76 90 254

4 4 小芷 79 84 88 251

5 2 小欣 78 80 92 250

6 5 小析 78 68 91 237

选择交换 成绩 1 排序表

名 次 学 号 姓 名 分 数

1 3 小宇 88

1 6 小彤 88

2 1 小史 87

3 4 小芷 79

选择交换 成绩 2 排序表

名 次 学 号 姓 名 分 数

1 1 小史 90

2 4 小芷 84

3 2 小欣 80

选择交换 成绩 3 排序表

名 次 学 号 姓 名 分 数

1 3 小宇 95

2 2 小欣 92

3 5 小析 91

Press any key to continue

Bubblesort.c

#include "stdio.h"

#include "string.h"

#define M 6

#define N 3

void changesort(struct student a[],int n,int j);

void print_score(struct student a[],int n,int j);

struct student

{

char name[10];

int number;

int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/

}stu[M];

main()

{

int i,j,k;

for (i=0;i<M;i++) /*输入每个学生信息*/

{

printf("请输入第 %d 名学生分数: ",i+1);printf("\n");

printf("姓 名: ");

scanf("%s",stu[i].name);

printf("编 号: ");

scanf("%4d",&stu[i].number);

printf("数据结构: ");

scanf("%4d",&stu[i].score[0]);

printf("离散数学: ");

scanf("%4d",&stu[i].score[1]);

printf("大学英语: ");

scanf("%4d",&stu[i].score[2]);

}

for(i=0;i<M;i++) /*计算每个学生总分*/

{

stu[i].score[N]=0;

for(j=0;j<N;j++)

stu[i].score[N]+=stu[i].score[j];

}

changesort(stu,M,N); /*对总分进行排序*/

printf(" 学生总分成绩排序表\n");

printf(" 名次 学号 姓 名 数据结构 离散数学 大学英语 总 分\n");

k=0;

for(i=0;i<M+1;i++)

{

if(i>0&&stu[i].score[N]!=stu[i-1].score[N])

{

k++;

printf("%4d",k);

printf(" %4d",stu[i-1].number);

printf(" %s",stu[i-1].name);

for(j=0;j<N+1;j++)

{

printf(" %6d",stu[i-1].score[j]);

}

}

printf("\n");

}

changesort(stu,M,0); /*对数据结构成绩进行排序*/

print_score(stu,M,0); /*输出数据结构前 3 名同学成绩*/

changesort(stu,M,1); /*对离散数学成绩进行排序*/

print_score(stu,M,1); /*输出离散数学前 3 名同学成绩*/

changesort(stu,M,2); /*对大学英语成绩进行排序*/

print_score(stu,M,2); /*输出大学英语前 3 名同学成绩*/

}

void changesort(struct student a[],int n,int j)

{

{

int flag=1,i;

struct student temp;

while(flag)

{

flag=0;

for(i=0;i<n;i++) /*冒泡排序法*/

if (a[i].score[j] < a[i+1].score[j])

{

temp=a[i];

a[i]=a[i+1];

a[i+1]=temp;

flag=1;

}

}

}

}

void print_score(struct student a[],int n,int j)

{

int i,k;

printf(" 冒泡交换 成绩 %d 排序表",j+1);

printf("\n");

printf(" 名 次 学 号 姓 名 分 数\n");

k=1;

for(i=0;k<N&&i<n;i++)

{

if(i>0&&a[i].score[j]!=a[i-1].score[j])

k++;

printf(" %4d ",k);

printf("%4d",a[i].number);

printf(" %s",a[i].name);

printf(" %6d",a[i].score[j]);

printf("\n");

}

}

运行结果:

请输入第 1 名学生分数:

姓 名: 小史

编 号: 01

数据结构: 87

离散数学: 90

大学英语: 78

请输入第 2 名学生分数:

姓 名: 小欣

编 号: 02

数据结构: 78

离散数学: 80

大学英语: 92

请输入第 3 名学生分数:

姓 名: 小宇

编 号: 03

数据结构: 88

离散数学: 76

大学英语: 95

请输入第 4 名学生分数:

姓 名: 小芷

编 号: 04

数据结构: 79

离散数学: 84

大学英语: 88

请输入第 5 名学生分数:

姓 名: 小析

编 号: 05

数据结构: 78

离散数学: 68

大学英语: 91

请输入第 6 名学生分数:

姓 名: 小彤

编 号: 06

数据结构: 88

离散数学: 76

大学英语: 90

学生总分成绩排序表

名次 学号 姓 名 数据结构 离散数学 大学英语 总 分

1 3 小宇 88 76 95 259

2 1 小史 87 90 78 255

3 6 小彤 88 76 90 254

4 4 小芷 79 84 88 251

5 2 小欣 78 80 92 250

6 5 小析 78 68 91 237

冒泡交换 成绩 1 排序表

名 次 学 号 姓 名 分 数

1 3 小宇 88

1 6 小彤 88

2 1 小史 87

3 4 小芷 79

冒泡交换 成绩 2 排序表

名 次 学 号 姓 名 分 数

1 1 小史 90

2 4 小芷 84

3 2 小欣 80

冒泡交换 成绩 3 排序表

名 次 学 号 姓 名 分 数

1 3 小宇 95

2 2 小欣 92

3 5 小析 91

Press any key to continue

Jusertsort.c

#include "stdio.h"

#include "string.h"

#define M 6

#define N 3

void changesort(struct student a[],int n,int j);

void print_score(struct student a[],int n,int j);

struct student

{

char name[10];

int number;

int score[N+1]; /*score[N]为总分,score[0]-score[2]为学科成绩*/

}stu[M];

main()

{

int i,j,k;

for (i=0;i<M;i++) /*输入每个学生信息*/

{

printf("请输入第 %d 名学生分数: ",i+1);printf("\n");

printf("姓 名: ");

scanf("%s",stu[i].name);

printf("编 号: ");

scanf("%4d",&stu[i].number);

printf("数据结构: ");

scanf("%4d",&stu[i].score[0]);

printf("离散数学: ");

scanf("%4d",&stu[i].score[1]);

printf("大学英语: ");

scanf("%4d",&stu[i].score[2]);

}

for(i=0;i<M;i++) /*计算每个学生总分*/

{

stu[i].score[N]=0;

for(j=0;j<N;j++)

stu[i].score[N]+=stu[i].score[j];

}

changesort(stu,M,N); /*对总分进行排序*/

printf(" 学生总分成绩排序表\n");

printf(" 名次 学号 姓 名 数据结构 离散数学 大学英语 总 分\n");

k=0;

for(i=0;i<M+1;i++)

{

if(i>0&&stu[i].score[N]!=stu[i-1].score[N])

{

k++;

printf("%4d",k);

printf(" %4d",stu[i-1].number);

printf(" %s",stu[i-1].name);

for(j=0;j<N+1;j++)

{

printf(" %6d",stu[i-1].score[j]);

}

}

printf("\n");

}

changesort(stu,M,0); /*对数据结构成绩进行排序*/

print_score(stu,M,0); /*输出数据结构前 3 名同学成绩*/

changesort(stu,M,1); /*对离散数学成绩进行排序*/

print_score(stu,M,1); /*输出离散数学前 3 名同学成绩*/

changesort(stu,M,2); /*对大学英语成绩进行排序*/

print_score(stu,M,2); /*输出大学英语前 3 名同学成绩*/

}

void changesort(struct student a[],int n,int j)

{

int i, m;

struct student temp;

/*插入排序法*/

for(i=1; i<n; i++)

{

temp = a[i];

for(m=i; m>0 && temp.score[j] > a[m-1].score[j]; m--)

{

a[m] = a[m-1];

}

a[m] = temp;

}

}

void print_score(struct student a[],int n,int j)

{

int i,k;

printf(" 插入交换 成绩 %d 排序表",j+1);

printf("\n");

printf(" 名 次 学 号 姓 名 分 数\n");

k=1;

for(i=0;k<N&&i<n;i++)

{

if(i>0&&a[i].score[j]!=a[i-1].score[j])

k++;

printf(" %4d ",k);

printf("%4d",a[i].number);

printf(" %s",a[i].name);

printf(" %6d",a[i].score[j]);

printf("\n");

}

}

请输入第 1 名学生分数:

姓 名: 小史

编 号: 01

数据结构: 87

离散数学: 90

大学英语: 78

请输入第 2 名学生分数:

姓 名: 小欣

编 号: 02

数据结构: 78

离散数学: 80

大学英语: 92

请输入第 3 名学生分数:

姓 名: 小宇

编 号: 03

数据结构: 88

离散数学: 76

大学英语: 95

请输入第 4 名学生分数:

姓 名: 小芷

编 号: 04

数据结构: 79

离散数学: 84

大学英语: 88

请输入第 5 名学生分数:

姓 名: 小析

编 号: 05

数据结构: 78

离散数学: 68

大学英语: 91

请输入第 6 名学生分数:

姓 名: 小彤

编 号: 06

数据结构: 88

离散数学: 76

大学英语: 90

学生总分成绩排序表

名次 学号 姓 名 数据结构 离散数学 大学英语 总 分

1 3 小宇 88 76 95 259

2 1 小史 87 90 78 255

3 6 小彤 88 76 90 254

4 4 小芷 79 84 88 251

5 2 小欣 78 80 92 250

6 5 小析 78 68 91 237

插入交换 成绩 1 排序表

名 次 学 号 姓 名 分 数

1 3 小宇 88

1 6 小彤 88

2 1 小史 87

3 4 小芷 79

插入交换 成绩 2 排序表

名 次 学 号 姓 名 分 数

1 1 小史 90

2 4 小芷 84

3 2 小欣 80

插入交换 成绩 3 排序表

名 次 学 号 姓 名 分 数

1 3 小宇 95

2 2 小欣 92

3 5 小析 91

Press any key to continue

心得体会

本学期开设的《数据结构基础》课程已经告一段落,现就学习体会进行学习总结.

这是一门纯属于设计的科目,它需用把理论变为上机调试。刚开始学的时候确实有很多地方我很不理解,每次上课时老师都会给我们出不同的设计题目,对于我们一个初学者来说,无疑是一个具大的挑战,撞了几次壁之后,我决定静下心来,仔细去写程序。老师会给我们需要编程的内容一些讲解,顺着老师的思路,来完成自己的设计,我们可以开始运行自己的程序。

这门课结束之后,我总结了学习中遇到的一些问题,最为突出的,书本上的知识与老师的讲解都比较容易理解,但是当自己采用刚学的知识点编写程序时却感到十分棘手,有时表现在想不到适合题意的算法,有时表现在算法想出来后,只能将书本上原有的程序段誊写到自己的程序中再加以必要的连接以完成程序的编写。

刚开始学的时候确实有很多地方我很不理解,每次上上机课时老师都会给我们出不同的设计题目,对于我们一个初学者来说,无疑是一个具大的挑战,撞了几次壁之后,我决定静下心来,仔细去写程序。老师会给我们需要编程的内容一些讲解,顺着老师的思路,来完成自己的设计,我们可以开始运行自己的程序,可是好多处的错误让人看的可怕,还看不出到底是哪里出现了错误,但是程序还是得继续下去,我多次请教了老师和同学,逐渐能自己找出错误,并加以改正。TC里检查错误都是用英文来显示出来的,经过了这次课程设计,现在已经可以了解很多错误在英文里的提示,这对我来说是一个突破性的进步,眼看着一个个错误通过自己的努力在我眼前消失,觉得很是开心。此次的程序设计能够成功,是我和我的同学三个人共同努力作用的结果。在这一段努力学习的过程中,我们的编程设计有了明显的提高。

其实现在想起来,收获还真是不少,虽然说以前非常不懂这门语言,在它上面花费了好多心血,觉得它很难,是需用花费了大量的时间编写出来的。现在真正的明白了一些代码的应用,每个程序都有一些共同点,通用的结构,相似的格式。只要努力去学习,就会灵活的去应用它。

以上便是我对《数据结构基础》这门课的学习总结,我会抓紧时间将没有吃透的知识点补齐,克服学习中遇到的难关,在打牢基础的前提下向更深入的层面迈进!

更多相关推荐:
数据结构课程设计 实验报告 心得体会 C++

专业班级姓名学号设计时间指导教师排序算法比较分析08软件工程2班汪伟08010xxxxx20xx91520xx927杨薇薇课程设计报告的内容一题目排序算法比较1设计目的1掌握各种排序的基本思想2掌握各种排序方法...

数据结构综合实验心得体会

心得体会:做了一个星期的程序设计终于做完了,在这次程序设计课中,真是让我获益匪浅。对大一学习的C语言和这学期开的数据结构,并没有掌握,很多知识都不太懂,突然让自己独立完成一个程序让我手忙脚乱,起码在我认为那真的…

数据结构课程设计 实验报告 心得体会 链表 C语言

数据结构课程设计设计题目:两个链表的交叉合并专业班级:08软件工程3班姓名:**学号:***设计时间:20XX/9/25指导教师:**一、设计题目实现两个链表的合并设计目的1.掌握线性链表的建立。2.掌握线性链…

数据结构实验报告七

云南大学软件学院数据结构实验报告本实验项目方案受教育部人才培养模式创新实验区X3108005项目资助实验难度ABC学期20xx秋季学期任课教师秦江龙实验题目哈希表查找小组长联系电话147xxxxxxxx电子邮件...

数据结构实验报告

实验报告实验课程:数据结构实验项目:实验专业:计算机科学与技术姓名:**学号:***指导教师:**实验时间:20**-12-7重庆工学院计算机学院数据结构实验报告实验一线性表1.实验要求掌握数据结构中线性表的基…

数据结构实验报告

数据结构实验报告专业软件工程班级软件1306姓名刘树珍20xx年12月太原理工大学学生实验报告太原理工大学学生实验报告太原理工大学学生实验报告太原理工大学学生实验报告太原理工大学学生实验报告

数据结构树的实验报告

数据结构实验报告目的要求1掌握二叉树的存储实现2掌握二叉树的遍历思想3掌握二叉树的常见算法的程序实现实验内容1输入字符序列建立二叉链表2中序遍历二叉树递归算法3中序遍历二叉树非递归算法最好也能实现先序后序非递归...

数据结构上机实验报告1

广东工业大学实验报告自动化学院网络工程专业班学号姓名何宇航成绩评定教师签名许亮一实验目的1利用单向循环链表存储结构模拟循环过程按照出列的顺序输出各个人的编号2测试数据m的初值为20n77个人的密码依次为3172...

数据结构总结实验报告 胡伯丛

迷宫求解一需求分析1以二维数组Mazem2n2表示迷宫其中Maze0j和Mazem1j0ltjltn1及Mazei0Mazein10ltiltm1为添加的一圈障碍数组中以元素值为0表示通路1表示障碍限定迷宫的大...

数据结构实验报告

数据结构实验报告班级10011406姓名邹姗蓉学号20xx302614Email583970216qqcom日期20xx实验题目求赋权图中一个结点到所有结点的最短路径的长度实验目的了解熟悉迪杰斯特拉算法的使用实...

数据结构实验报告-图的遍历

数据结构验报告实验图的遍历一实验目的1理解并掌握图的逻辑结构和物理结构邻接矩阵邻接表2掌握图的构造方法3掌握图的邻接矩阵邻接表存储方式下基本操作的实现算法4掌握图的深度优先遍历和广度优先原理二实验内容1输入顶点...

数据结构课程设计报告心得体会

心得体会接近两个星期的课程设计课让我学到了很多单从我的任务来说求先序序列并不是很难再加上数据结构课上老师也讲了很多类似的知识所以算法思想上我是十分清楚的不过在用c语言写代码的时候也遇到了大大小小的问题并且c语言...

数据结构实验报告心得体会(25篇)