资源简介
本人是南京航空航天大学的学生,我们的一个计算机软件基础大作业是编写4个程序,分别是约瑟夫斯问题、停车场管理、带权图的最小生成树提取、几种排序算法的比较。希望能够帮助到大家,尤其是南航的学弟学妹们!工程里面的注释写的很清楚,相信大家认真看能够理解。 最后我们还有一个Hololens的一个课设项目,混合现实的游戏王,最后做出来也会给大家分享的! 希望大家别忘了给个好评吧,原创不易,这篇写的算很累了!
代码片段和文件信息
#include “stdio.h“
#include “stdlib.h“
#include “time.h“
#define MaxVertexNum 100 //设置小区数最多为100
#define VertexNum 9
double LeastNum;//用于记录最短边长度
double LongestNum;//用于记录最长边长度,程序过程中不改变
double adjacent[VertexNum][VertexNum];
//邻接矩阵,不用于处理数据,而是用于暂时存储从文件读来的数据
//进而在邻接表存储数据时读取此数组数据即可
//二维数组数据为0的元素说明之间没有通道
//在处理完数据后,此数组会用来暂时存储处理后的数据,并写入到另一个文件中
typedef struct node
{//边表结点
char adjvex;
double weight;//权值
struct node *next;
}EdgeNode;
typedef struct vnode
{//顶点表结点
char vertex;
EdgeNode *firstedge;
}VertexNode;
typedef struct
{
VertexNode adjlist[MaxVertexNum];
int ne;
}ALGraph;
void PrintInformation1();//输出程序信息和个人信息
void PrintInformation2();//程序结束信息
void CreateALGraph(ALGraph *);//将文件中数据导入进来构建无向图邻接表
void MinimumSpanningTree(ALGraph *);//将无向图转化为最小生成树
void ResultOutput(double *arrayint n1int n2);//将数据在控制台显示出来
void read_data(void);//从输入文件读取数据到邻接矩阵
void cout_data(void);//将邻接矩阵中的数据输出到输出文件
void read_array(double *arrayint n1int n2FILE *fp);//内部函数,用户无需调用
void cout_array(double *arrayint n1int n2FILE *fp);//内部函数,用户无需调用
void main()
{
ALGraph *G;
PrintInformation1();
G = (ALGraph*)malloc(sizeof(ALGraph));
G->n = VertexNum;//为G指向的图分配空间,设置点数(小区数)
read_data();
CreateALGraph(G);
MinimumSpanningTree(G);
cout_data();//输出到文件
ResultOutput((double *)adjacentVertexNumVertexNum);//输出到控制台
PrintInformation2();
system(“pause“);
}
void PrintTime()
{
time_t t;
time(&t);
printf(“%s“ ctime(&t));
printf(“\r\n“);
}
void PrintInformation1()
{
printf(“实验名称:实验三.管道铺设施工的最佳方案问题\r\n“);
printf(“学号:xxxxxxxxx(程序中修改)\r\n“);
printf(“姓名:老郭(本人绰号)\r\n“);
printf(“====================\r\n“);
printf(“程序运行开始Current local time and date:“);
PrintTime();
}
void PrintInformation2()
{
printf(“\r\n====================\r\n“);
printf(“程序运行结束Current local time and date:“);
PrintTime();
}
void CreateALGraph(ALGraph *G)
{
//建立无向图的邻接表存储
int i=0j=0k=0;
EdgeNode *s;
for (i = 0; i < G->n; i++)
{
G->adjlist[i].vertex = 65 + i;
printf(“\t%c“ (G->adjlist[i].vertex));//控制台输出列表头
G->adjlist[i].firstedge=NULL;
}
printf(“\n“);
for(k=0;kn;k++)
{
for(j=0;jn;j++)
{
if(adjacent[k][j]!=0)
{
s = (EdgeNode*)malloc(sizeof(EdgeNode));
s->adjvex = 65+j;
s->weight=adjacent[k][j];
s->next = G->adjlist[k].firstedge;
G->adjlist[k].firstedge = s;
}
}
}
}
void read_data(void)
{
int ij;
FILE *fp;
fp=fopen(“gyp_program3_Input.dat““r“); // 输入数据文件
read_array((double *)adjacentVertexNumVertexNumfp);
fclose(fp);
for (i = 0; i < VertexNum; i++)
{
for (j = 0; j < VertexNum; j++)
{
if (adjacent[i][j] > LongestNum)
{
LongestNum = adjacent[i][j];//即给LongestNum设置的初值为最大边边值
}
}
}
}
void read_array(double *arrayint n1int n2FILE *fp)
{
int ij;
float q;
for(i=0;i for(j=0;j {
fscanf(fp“%f“&q);
*array++
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-20 15:22 gyp_program3\.vs\
目录 0 2018-10-20 15:22 gyp_program3\.vs\gyp_program3\
目录 0 2018-11-06 21:36 gyp_program3\.vs\gyp_program3\v15\
文件 26112 2018-11-06 21:36 gyp_program3\.vs\gyp_program3\v15\.suo
文件 1818624 2018-11-06 21:36 gyp_program3\.vs\gyp_program3\v15\Browse.VC.db
目录 0 2018-10-20 15:22 gyp_program3\.vs\gyp_program3\v15\ipch\
目录 0 2018-10-20 22:01 gyp_program3\.vs\gyp_program3\v15\ipch\AutoPCH\
目录 0 2018-10-21 10:44 gyp_program3\.vs\gyp_program3\v15\ipch\AutoPCH\1a465263fa0f3cf4\
文件 2555904 2018-11-06 21:35 gyp_program3\.vs\gyp_program3\v15\ipch\AutoPCH\1a465263fa0f3cf4\GYP_PROGRAM3.ipch
目录 0 2018-10-20 15:22 gyp_program3\.vs\gyp_program3\v15\ipch\AutoPCH\c44db10c3fc72864\
文件 2621440 2018-10-20 15:19 gyp_program3\.vs\gyp_program3\v15\ipch\AutoPCH\c44db10c3fc72864\GYP_PROGRAM3.ipch
目录 0 2018-10-22 17:01 gyp_program3\Debug\
文件 41472 2018-11-06 21:36 gyp_program3\Debug\gyp_program3.exe
文件 368352 2018-11-06 21:36 gyp_program3\Debug\gyp_program3.ilk
文件 561152 2018-11-06 21:36 gyp_program3\Debug\gyp_program3.pdb
文件 255 2018-09-28 20:49 gyp_program3\Debug\gyp_program3_Input.dat
文件 392 2018-11-06 21:36 gyp_program3\Debug\gyp_program3_Output.dat
文件 413696 2018-10-12 17:50 gyp_program3\gyp_program3.sdf
文件 903 2018-09-20 16:11 gyp_program3\gyp_program3.sln
文件 11776 2018-10-12 17:50 gyp_program3\gyp_program3.suo
目录 0 2018-11-06 21:36 gyp_program3\gyp_program3\
目录 0 2018-10-21 10:44 gyp_program3\gyp_program3\Debug\
文件 1185 2018-10-21 10:44 gyp_program3\gyp_program3\Debug\gyp_program3.Build.CppClean.log
文件 128 2018-11-06 21:36 gyp_program3\gyp_program3\Debug\gyp_program3.log
文件 25970 2018-11-06 21:36 gyp_program3\gyp_program3\Debug\gyp_program3.obj
目录 0 2018-11-06 21:36 gyp_program3\gyp_program3\Debug\gyp_program3.tlog\
文件 674 2018-11-06 21:36 gyp_program3\gyp_program3\Debug\gyp_program3.tlog\CL.command.1.tlog
文件 2946 2018-11-06 21:36 gyp_program3\gyp_program3\Debug\gyp_program3.tlog\CL.read.1.tlog
文件 504 2018-11-06 21:36 gyp_program3\gyp_program3\Debug\gyp_program3.tlog\CL.write.1.tlog
文件 232 2018-11-06 21:36 gyp_program3\gyp_program3\Debug\gyp_program3.tlog\gyp_program3.lastbuildstate
文件 1158 2018-11-06 21:36 gyp_program3\gyp_program3\Debug\gyp_program3.tlog\li
............此处省略17个文件信息
- 上一篇:风力摆PID调节源代码
- 下一篇:平衡小车蓝牙控制Apk 3个
评论
共有 条评论