gpt4 book ai didi

c++ - 如何使用 C++ 制作测验数据库

转载 作者:行者123 更新时间:2023-11-28 05:22:22 24 4
gpt4 key购买 nike

/这只是创建数据库的代码的一部分。随机访问问题将在同一主要功能中生成。这段代码有什么问题?请看一看并帮忙/

#include<iostream>
#include<cstring>

class ques{
void in_data(char qu[500],char p[25],char q[25],char r[25],char s[25],char ans1)
{
std::strcpy(question,qu);
std::strcpy(a,p);
std::strcpy(b,q);
std::strcpy(c,r);
std::strcpy(d,s);
ans=ans1;

}

};

int main()
{

ques q[2];
q[0].in_data("what is 2+2","alpha","beta","gamma","delta","d");
q[1].in_data("choose a","a","b","c","d","a");

return 0;
}

最佳答案

你的代码有很多错误:

1- 使 in_data() 公开以便能够像在您的 main 中一样从外部调用它,否则您会得到编译时错误 accessing private data 记住一个成员类默认是私有(private)的,而结构是公共(public)的

2- 声明成员数据:question, a, b, ... 你正在使用它们而不声明它们。

3- 你声明了 in_data 将一个字符作为第六个参数,同时你在 main 中向它传递了一个 const 字符串:

q[0].in_data("what is 2+2","alpha","beta","gamma","delta","d"); // "d" is a constant character string not just a single character so change it to 'd'
q[1].in_data("choose a","a","b","c","d","a"); // look at in_data how was defined.

您的代码将如下所示:

#include<iostream>
#include <string>
using namespace std;

class ques
{
public: // make in_data public to use from outside
void in_data(char qu[500], char p[25], char q[25], char r[25], char s[25], char ans1) // so pass eg: 'a' not "a"
{
strcpy(question, qu);
strcpy(a, p);
strcpy(b, q);
strcpy(c, r);
strcpy(d, s);
ans = ans1;
}
private:
char question[500];
char a[25];
char b[25];
char c[25];
char d[25];
char ans;
};

int main()
{

ques q[2];
q[0].in_data("what is 2+2","alpha","beta","gamma","delta",'d');
q[1].in_data("choose a","a","b","c","d",'a');

return 0;
}
  • 最后,只要在代码中必须使用 class string 而不是使用字符数组,为什么不使用它呢?

关于c++ - 如何使用 C++ 制作测验数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41210939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com