C 语言中的电子表格应用程序



我希望创建一个简单的电子表格应用程序,允许用户根据他们的输入自定义行和列。

例如用户输入, 新SS 10 9

这意味着用户想要创建一个包含 10 列和 9 行的新电子表格。

应创建一个空电子表格并将其显示在控制台窗口中。

这里的问题是,用户将始终输入额外的行和列,因为额外的行和列用于标题。

因此,10 列和9 行将有 11 列和 10 行存储在 3D 数组中,因为每列和每行的第一个索引是标题。 它应该看起来像这样。

第一行将显示: A B C D E F G H I J

第一列将显示:1 2 3 4 5 6 7 8 9

作为他们的标签

中间的空格是它们的索引,例如 A1、A2、B4 等,然后用户可以编辑其中的值。

谁能教我如何开始? 我在这里是一个非常新的C程序员。 我面临着代码的一些问题。 我能够创建一个 2D 数组,但我需要根据用户想要的行数和列更改第一行和第一列以将其打印为标题。 所以如果 5 列,它将是 (A-E(

WORKSHEET *ws_new(int cols, int rows) {
//return NULL;
int r;
int c;
int n[rows][cols];
for (r=1;r<=rows;r++)
{
for(c=1;c<=cols;c++)
{
//printf("%d",cols);
n[r][c]=0;
printf("%d", n[r][c]);
}
printf("n");
}
}

我正在寻找一个简单的电子表格应用程序

电子表格不能是一个简单的应用程序。它们有两个复杂的相关组件:

一个
  • 很好的GUI呈现一个单元格表(你也可以考虑一个终端界面,使用ncurses之类的东西,但这不会比提供一个简单的GUI更简单(。如果您的程序不提供某些表格界面,请不要将其称为电子表格。

  • 一个懒惰的"功能"解释器,在每个电子表格单元格中运行(或解释公式的 2D 数组(;你涉及一些脚本语言,你的电子表格在概念上有一些公式矩阵。

你可以查看(寻找灵感(现有自由软件电子表格的源代码,例如Gnumeric

对于 GUI 部分,请使用一些现有的 GUI 工具包。由于你想用 C 语言编写代码,请考虑 GTK。

对于解释器部分,首先阅读Dragon Book(在阅读SICP之后(,例如Programming Languages Pragmatics,可能还有Lisp In Small Pieces。如果您想解析自己的公式语言,请阅读有关解析技术、递归下降解析的更多信息,并查看 bison 中缀计算示例。

你至少需要几个月,也许几年的工作。

您可以嵌入一些现有的解释器(而不是设计和实现自己的解释器(。考虑使用 Lua 或 Guile。

你不完整的代码在概念上是错误的:电子表格需要的是一些公式矩阵,而不仅仅是数字矩阵(如n数组(。每个单元格都包含一个公式(或公式和纯数字的标记并集(,并且您希望保留该公式的 AST。显然包含数字的单元格是公式简化为常数的退化情况。

这个答案展示了如何将数字矩阵实现为某种抽象数据类型。它可以激发您将电子表格表示为一些公式矩阵。当然,您还需要为公式的 AST 提供一个类型。

相关内容

最新更新