将其他程序用作另一个程序的一部分

Using Other Programs as Part of Another Program

本文关键字:程序 一部分 另一个 其他      更新时间:2023-10-16

我正在做我本学期的最后一个编程作业(我猜是我转专业时看到的最后一个计算机程序哈(,并且遇到了障碍。作业要求我们编写两个程序,一个程序从文件中读取一些信息并创建一个哈希表,并将其保存到输出文件中。第二个程序应该允许用户输入密钥,程序将搜索该输出文件中的密钥,并在找到时返回它包含的信息。

仍然处于这个程序的计划阶段,我喜欢在实际开始编码之前将它们全部写在纸上,因为出于某种原因,它可以帮助我弄清楚发生了什么,但我认为我创建哈希表的程序应该可以工作,因为它几乎与我们几周前必须编写的程序相同,该程序只是创建了哈希表(手指交叉(, 但我在搜索程序上遇到了问题。我的搜索程序实际上只有一种方法可以在文件中搜索用户输入的密钥。如果我包含我在提到的仅创建哈希表的程序中使用的搜索函数的代码,则解释我的特定问题可能会更容易。

void Hash::findItem(int key) {
    int index = hash(key);
    bool wasFound = false;
    record* ptr = hashTable[index];
    while(ptr != NULL) {
        if(ptr->key == key) {
            wasFound = true;
            key = ptr->key;
        }
        ptr = ptr->next;
    }
    if(wasFound == true) {
        cout << key << " " << name << " " << code << " " << cost << " " << index << endl;
    }
    else {
        cout << "The key " << key << " was not found in the table." << endl;
    }
}

哈希是我在创建表的程序中使用的类的名称,记录是我用来保存每条记录信息的结构的名称。其他一切都应该不言自明。

所以这就是我遇到麻烦的地方。这段代码中的几乎所有内容实际上是在我的第一个程序中声明和定义的,但是这种方法/函数(不确定正确的术语,我正在学习 3 种不同语言的 3 个编程类,所以我生活在一种不断的混乱状态中(只会在我的搜索程序中使用。我不确定如何连接这两个程序(如果有意义(。比如,如何使我在第一个程序中创建的内容可用于我的搜索程序?

我很抱歉漫无边际,我不擅长简短和甜蜜,比我在编程方面更好。希望这很清楚。如果我需要包含任何其他信息,请告诉我,我很乐意提供帮助。提前感谢您能够提供的任何帮助。

注意我使用"继承"作为这篇文章的标签之一,我不太确定这是继承的问题,但我觉得可能是。如果您觉得不是这样,请告诉我,我可以将其删除,因为我想确保这不会在错误的地方结束并浪费任何人的时间。

假设您有 4 个文件:

  • 通用.h - 普通工作人员的类型声明
  • 共同.cpp - 与所有共同工作人员职能机构
  • main1.cpp - 第一个可执行文件
  • main2.cpp - 第二个可执行文件

所有 CPP 文件都应包含common.h

现在你可以按如下方式编译:如果要调试,可以在每一行添加-g

g++ -c common.cpp -o common.o 
g++ -c main1.cpp -o main1.o
g++ -c main2.cpp -o main2.o
g++ main1.o common.o -o main1
g++ main2.o common.o -o main2

前 3 行用于将源文件编译为目标文件。

最后 2 个是将对象链接到可执行文件。

注意您只需要有 4 个文件...