代码之家  ›  专栏  ›  技术社区  ›  flashnik

对于C++编程中的学生编程来说,什么更好?[关闭]

  •  14
  • flashnik  · 技术社区  · 16 年前

    我是这所大学的计算机科学教师(讲师)。本课程基于Cordman和Knuth以及C++中的学生程序算法。但有时通过GUI显示算法是如何工作的或者仅仅是任务的结果是很好的。在我看来,能写出完整的程序也是非常重要的。他们将有关于图形用户界面的课程,但三年后,事实上,在毕业前。我认为他们应该能够更早地编写简单的GUI应用程序。所以我想教他们。

    你认为他们学习什么更有用:用Qt编程GUI或者在C语言中编写GUI调用非托管C++库?

    更新。

    为了开发C++应用程序,学生们使用MS VisualStudio,所以C已经安装了。但qt-afaik也可以整合到vs.

    我有以下C的优点(在答案中有一些建议):

    • 需要做一个额外的层。 这是更多的工作,但它迫使你 明确规定合同双方 图形用户界面和处理数据。图形用户界面和算法之间的边界变得非常清晰。
    • 它在雇主中更受欢迎。至少在我们居住的俄罗斯。在C + +和PInvoke中从C语言应用程序/ ASP.NET网站中编写性能关键算法是相当普遍的。也许它在世界其他地方并不那么普遍,但在俄罗斯,Windows非常流行,特别是由于某些原因,在公司和企业中,因此大多数B2B应用程序都是Windows应用程序。
    • 快速发展。快多了 在.NET中编码,然后在C++中 原因很多。

    但问题是,这是一种针对学生的新语言。以及调用库的混乱。

    7 回复  |  直到 16 年前
        1
  •  14
  •   Michael Aaron Safyan    16 年前

    QT实际上是C++,最好让学生熟悉QT。C是一个完全不同的野兽,如果你使用C语言,你很可能会让你的学生对什么东西是微软或者C特定的,而实际上是在ISO C++标准中所定义的东西感到困惑。此外,QT和C++是可移植的,所以使用Mac OS X或Linux的学生将感谢您选择跨平台框架(Qt也适用于Windows);而如果使用C.*,则会强迫学生使用Windows(是的,有单声道,但它几乎不工作于跨平台的QT)。

    你也可能对使用我的 C++ Project Template 它提供了充分的基础设施,用于使用CMake在C++中开发QT-GUI应用程序,并且已经在Mac OS X和Ubuntu Linux下进行测试和验证(并且,如果我在Windows上得到反馈,我将确保它在那里也能工作)。该模板包含在使用“-gui”命令行选项运行时在qt中显示“hello world”GUI的代码。

        2
  •  6
  •   Peter Alexander    16 年前

    我建议QT仅仅是因为它是C++,而不是C++。

    C++和C语言之间的接口可能是混乱的,在我看来,这会分散学生的练习对象(如你所说的算法)。

        3
  •  1
  •   Jerry Coffin    16 年前

    Qt- p/援引使用C++中的C++库添加了一个完全不需要考虑的层次。如果您打算使用.NET,则可能考虑使用C++/CLI,它连接托管代码和本机代码。 许多的 更容易的。

        4
  •  1
  •   TWA    16 年前

    我会用C_来表示GUI。

    在这里使用C语言的方式比使用QT的C++更多,那么为什么不准备他们在毕业后最容易遇到的事情呢?

    我在学术界经常看到的一个问题是不教现实世界中使用的东西。当然,其他的东西都很酷,我个人也很喜欢。不过,放学后体验真实世界是我的首要任务。

    另外,我认为询问一堆程序员通常不是这个问题的最佳建议来源。我想看看大多数公司在你的位置雇佣什么样的技术,很可能是大多数桌面GUI的东西。

        5
  •  1
  •   Iggy    16 年前

    在C语言中编写GUI并调用非托管C++库,因为VS是一个很好的启动IDE,.NET是最全面的一组可用库。这假定您的学生可以访问Windows计算机。如果它们是在Linux上,那么qt就是解决问题的方法。

        6
  •  0
  •   Logan Capaldo    16 年前

    这里有一个疯狂的想法,(重新)用C语言编写GUI应用程序的算法。这也有用处,1)它巧妙地回避了P/Access、C++/CLI或COM的全部堆砌,只是为了绘制一些漂亮的图片,2)不同于使用QT,它使你有机会强调算法、程序和编程语言之间的区别。

        7
  •  0
  •   sth    16 年前

    我认为在这里开始创建C++/C非托管/管理混合应用程序是没有任何意义的。

    对于教学来说,如果学生不必为图形用户界面学习一种新的编程语言,那当然会更容易。此外,托管代码和非托管代码以及不同语言中的不同类型之间的接口将不必要地使事情复杂化。很多时间和精力将浪费在这些主题上,而不是帮助任何人学习本课程主题的算法。

    此外,对于“现实生活”的有用性,我认为很明显,只有极少数的项目将使用C++/C混合动力。如果您在C语言中使用GUI,那么您也将使用该语言来实现其背后的逻辑。我不知道在C++中创建C++应用程序的GUI会得到什么。