2020大一C++程序设计项目 小学期源码公开
作者:传扬
文章末尾附加源码
项目设计
1.数据输入和储存
本系统内核采用邻接矩阵,但主界面是通过点和边的关系来进行输入的,这样用户可以直观的把图形输入到计算机里,不需要掌握“离散数学”上的“邻接矩阵”,降低用户使用程序的难度。
2.无向图的连通判断以及分支的输出
程序可以对用户输入的无向图进行连通性判断,倘若该图是连通图,则输出“此图是连通图”,反之输出“此图不是连通图”。
同时,程序要达到用户在选择输出无向图分支后能够清晰的看出图中的每一个分支,即使是连通图,也要把唯一的分支给输出到主界面。
3.有向图连通性判断
弱连通图的判定
判断用户输入的图是否为弱连通图,倘若是弱连通图,则输出“此图是弱连通图”,倘若不是则输出“此图不是弱连通图”。
单向连通图的判定
判断用户输入的图形是否为单向连通图,倘若是单向连通图,则输出“此图是单向连通图”,倘若不是则输出“此图不是单向连通图”。
强连通图的判定
判断用户输入的图形是否为强连通图,倘若是强连通图,则输出“此图是强连通图”,倘若不是则输出“此图不是强连通图”。
4.无向图的欧拉回路判断和输出
程序可以对用户输入的无向图进行欧拉性判断,倘若该图是欧拉图,则告诉用户“此图是欧拉图”,并输出其欧拉回路,否则输出“此图不是欧拉图”
5. 用户体验
为了提高用户的使用体验,本程序设计结构非常完整。无论是输入无向图或有向图,都有撤回上一组输入数据的功能,避免用户误输入而得重启整个程序,并且在判别完有向图后,程序可以返回到主页无缝对无向图进行判定,反之亦然。
项目实现过程
启动程序时,我们便可以看见如下欢迎界面:
//伪代码
void welcome() {
while (true) {
cout << "-------主页-------" << endl;
cout << "1.无向图" << endl;
cout << "2.有向图" << endl;
cout << "3.退出系统" << endl;
cout << "请选择您要输入的图形类型:";
int n;
cin >> n;
switch (n) {
case 1: {
enterUndigraph();
break;
}
case 2