把我的 C 作业贴出来 实验五 图

实验五

一、 实验目的

1.熟悉图的邻接矩阵和邻接表的存储结构

2.熟悉图的邻接矩阵和邻接表的建立算法

3.掌握图的遍历算法

二、 实验内容

1.编写一个算法建立无向图的邻接矩阵,并且从不同的顶点出发,按深度优先搜索遍历。(文件夹:无向图邻接矩阵)

//图的邻接矩阵类型定义.h

const int n=8;

const int e=10;

typedef char vextype;

typedef int adjtype;

typedef struct

{

vextype vexs[n];

adjtype arcs[n][n];

}graph;

//建立无向图邻接矩阵.h

using namespace std;

extern graph * g;

void creatgraph()

{

int i,j,k;

cout<<"请输入"<<n<<"个结点的值(请勿用空格间隔,例如:ABCDEFGH):"<<endl;

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

g->vexs[i]=getchar();

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

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

g->arcs[i][j]=0;

cout<<"请输入"<<e<<"条边(例如:0 1,数字之间用空白字符间隔):"<<endl;

for(k=0;k<e;k++)

{

cin>>i>>j;

g->arcs[i][j]=g->arcs[j][i]=1;

}

}

//深度优先搜索遍历.h

using namespace std;

extern graph * g;

extern int visited[n];

void dfsa( int v )

{

visited[v] = 1;

cout<<"Node:"<<g->vexs[v]<<endl;

for( int j = 0 ; j < n ; j++ )

{

if( g->arcs[v][j] == 1 && visited[j] != 1 )

dfsa(j);

}

}

//无向图邻接矩阵主程序文件.cpp

#include <iostream>

#include <stdlib.h>

#include <stdio.h>

#include "图的邻接矩阵类型定义.h"

#include "建立无向图邻接矩阵.h"

#include "深度优先搜索遍历.h"

using namespace std;

graph*g=new graph;

int visited[n];

int main()

{

creatgraph();

int i;

while(1)

{

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

visited[i]=0;

cout<<"输入出发点序号(0-7),输入-1结束:";

cin>>i;

if(i==-1) break;

dfsa(i);

}

system("PAUSE");

return 0;

}

//

/*

输入格式:

ABCDEFGH

0 1

0 2

1 3

1 4

2 5

2 6

3 7

4 7

5 7

6 7

*/


关于提交综合训练的说明提交文件前,要认真阅读综合训练作业的要求: 一、应用程序的功能 a.定义一个结构体类型数组,结构体类型含有学号、姓名和成绩三个成员; b. 将文本文件stuin.txt(在指定的位置存在,包含100个学生的学号、姓名、成绩等数据)的内容读入到结构体数组中; c. 显示成绩最高的人的学号、姓名和成绩(如果有相同的人要全部显示); d. 显示平均成绩、高于、低于和等于平均成绩的人数; e. 显示成绩为优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)的人数和所占百分比; f. 将以上显示的信息存放到stuout.txt文件中; 也就是说stuout.txt文件中应包含c、d、e的显示内容 二、程序编写要求 1.程序可使用模块化和非模块化两种形式 2.编写提示: a. 定义最高成绩变量,使用r方式打开stuin.dat,使用fscanf读出成绩并求出最高成绩,以只写方式打开stuout.dat文件,循环判断,若成绩等于最高成绩,则打印该生的学号、姓名、成绩等信息(包括重复),并写入stuout.dat文件中 b. 定义平均成绩变量,定义并求出高于、低于、等于平均成绩计数器变量,以a方式打开stuout.dat文件,使用fprintf将高于、低于、等于平均成绩人数写入stuout.datc. 以w方式打开stuout.tat文件,定义各分数段计数器变量,循环判断各学生的成绩,并分段计数,使用fprintf技术结果写入stuout.tat中 二、.整理提交的文件: 1.提交的内容(1).源程序:.c文件(注意:任何两个同学的程序不得完全相同,否则影响综合训练成绩)(2)可执行文件:.exe文件(在debug文件夹中)(3)stuin.txt(注意,可在192.168.2.8网站下载,若下载的文件为dat文件,请使用改名命令改名即可)(4)设计报告.DOC文件(5)stuout.txt(输出结果文件,只有程序正确运行才会产生,如果批改时程序不能运行,但有此文件,视为抄袭,不能及格。使用打开方式中的记事本打开检查,是否与上述f的要求一致) 提交 2.以班级和姓名为文件夹名建立文件夹,将提交的文件粘贴进去,并使用Winrar软件压缩成一个rar文件。 包含的内容: 三、提交综合训练作业:登录92.168.2.8网站,选择综合训练作业,点击“浏览”,打开rar文件,单击“上传综合训练作业)。四、综合训练作业提交的时间:第16周周4之前。 设计报告提纲根据综合训练程序设计的要求,我以设计了学生成绩管理系统,程序的文件名为: ,以下介绍程序的功能、程序调试中出现的问题及处理情况及设计总结。一、系统的功能介绍(此处可以叙述你设计程序的功能,可以用流程表示,也可用语言叙述)二、实际操作中遇到的问题及处理情况。 (要求写5条以上)三、个人总结(此处写通过综合训练的程序设计过程,自己的收获及感想等)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值