资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
沈阳航空工业学院 数据结构与软件方法实验指导书 实验一 学生成绩管理系统设计 一、问题描述某班有30个学生,每个学生的只要信息包含学号、姓名、各科(计算机、英语、数学等)成绩。要求通过计算机对这些数据信息进行管理,设计出一个学生成绩管理系统。二、实验目的1、掌握线性表的基本运算(插入、删除、修改等)。2、进一步学习C语言程序设计方法与技巧。三、实验内容与要求学生信息表如下学号姓名计算机英语数学98032001李华85659798032002王平87709098032003张小娟76768898032004赵静95857698032030王海8990781、 要求同学们首先建立学生的姓名、学号、课程表,将每个学生的姓名、学号录入,成绩下来后根据学号将录入每人的成绩;2、 班上若有退学或留级的,将删除该学生的信息;3、 若有新插入本班的则将该学生的信息加到该表中;4、 日常可能由于各种原因需要浏览所有学生的成绩信息,也有可能修改学生信息。5、 以上所有的功能都是随机的。需要设计一个合理的输入输出界面或者功能菜单。四、相关算法与分析 学生成绩管理系统设计主要涉及到的是数据结构中线性表的相关知识,包括线性表的插入、删除、查找等基本运算,该实验正是课本中相关内容的综合。学生在实验中首先设计一个合理的输入输出界面,然后将各种运算应用到程序中就可以。线性表的基本运算可以采用顺序存储结构实现也可以采用链式存储结构实现。下面给出了设计的参考范例。#include stdafx.h#include stdlib.h#include string.h#define maxlen 100typedef struct student char name10,no10; int math,eng,comp;elemtype;/*/*以下是线性表顺序存储结构的插入算法begin*/*/int insert(elemtype a,int *n,int i,elemtype x) int j; if(i*n) printf(n when insert, the position is invalid);return 0; else if(*n=maxlen-1) printf(n the list is full!); return 0;else for(j=*n-1;j=i;j-) aj+1=aj;/元素后移 ai=x; /插入元素 (*n)+; /表长加1 return 1;/*/*线性表顺序存储结构的插入算法end*/*/*#/*线性表顺序存储结构的删除算法begin*/*/int del(elemtype a,int *n,int i) int j; if(i*n-1) printf(n when del, the position is invalid!);return 0; else for(j=i+1;j=*n-1;j+) aj-1=aj;/元素前移;(*n)-;return 1; /*/*线性表顺序存储结构的删除算法end*/*/主函数如下:main() elemtype stumaxlen,x; int i,sel,p,q; int *len,temp; char kch10; printf(nn 1-初始化n); printf( 2-录入成绩n); printf( 3-插入n); printf( 4-删除n); printf( 5-修改n); printf( 6-显示n); printf( 0-退出n); len=&temp; *len=-1; do printf(n Input your choice:); scanf(%d,&sel); getchar(); switch(sel) case 1: printf(n input the lists length: ); scanf(%d,len);getchar();for(i=0;i=*len-1;+i) printf(n Enter No, Name); stui.math=0; stui.eng=0; stui.comp=0; gets(stui.no); gets(stui.name);break;case 2: printf(n input the class name and score); gets(kch);if(strcmp(kch,math)=0) for(i=0;i=*len-1;+i) scanf(%d,&stui.math);else if(strcmp(kch,eng)=0) for(i=0;i=0&q=*len-1) for(i=p;i=q;+i) printf(n%8s;%8s;%8u;%8un,stui.no,stui.name,stui.math,stui.eng,stui.comp); else printf(n the position is wrong); break;case 0: exit(0); while(sel!=0); 五、实验进一步的要求及思考题1、可以在实验要求的基础上,进行功能扩展,增加一些统计功能,比方求平均成绩,求各科的平均成绩,求每个人的总成绩,对成绩进行排序等等。2、本指导书给出的范例程序是采用线性表顺序存储结构实现的,同学可以尝试线性表链式存储结构实现。实验二 利用栈实现迷宫的求解一、问题的描述 这是实验心理学中的一个经典问题,心理学家把一只动物从一个无顶盖的大盒子的入口处赶进迷宫。迷宫中设置很多隔壁,对前进方向形成了多处障碍,心理学家在迷宫的唯一出口处放置了一块奶酪,吸引动物在迷宫中寻找通路以到达出口。二、实验目的 1、掌握数据结构栈的基本运算。 2、掌握程序设计中回溯法的应用。 3、理解迷宫问题的本质。 4、回顾C语言程序设计的相关技巧和方法。三、实验内容与要求四、相关算法与分析1、求解的思想:回溯法是一种不断试探且及时纠正错误的搜索方法。下面的求解过程采用回溯法。从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达,则到达新点,否则试探下一方向 ; 若所有的方向均没有通路,则沿原路返回前一点,换下一个方向再继续试探,直到所有可能的通路都探索到,或找到一条通路,或无路可走又返
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号