用GTK和MySQL完成学生信息管理系统

今天终于要在博客上垒代码了!我现在学习过的东西不多,都是入门级的水平,如果是大牛就不需要关注这里了,当然您若肯给ABitNo进行指点,那我不胜感激。

先上图看看我的小成果
student-gtk1

说起来,最近我一直都是在学习Java的,因为自己想用Java来做个网站。但是我们要交一个数据库实验的作业——学生信息管理系统,实验要求用PowerBuilder和SQL Server来完成,而这两样东西都是我不屑一顾的垃圾,我自然是不会用它们来做的。本来我是想用Java写个Web界面的,后来一想何不开发个Linux专用的版本,于是就开始学习我一直都很想学但是却因为Java一直没时间学的GTK。

现在写这些GTK的文章主要有两个目的,一是留给自己备忘,二是给像我一样的初学者指一点方向。

想想自己这一个周的学习,还是很佩服自己的,之前一直都在Java中混,只是会用C语言写个Hello world ! 而我依然是只用了一周的时间就用C和GTK完成了作业,也真是不容易的(我向来都是这么不谦虚)。

说了这么多,一直都没到重点,不过我还是要再啰嗦几句。要学GTK,先要学下C吧,我学习C就看了一本书《C语言程序设计 现代方法》,是美国的K. N. King写的,强烈推荐!

下面就开始说正题了,我现在要说的这个学生信息管理系统其实并不复杂,就是一些简单的信息查询、添加和删除,所以我着重要说的不是怎么做这么个系统,而是在这其中我学习到的一些知识

  • GTK+-2.0的基本使用
  • Glade 3.6与GTK+-2.0的混合使用
  • 一些简单的Glib用法
  • Linux下C语言Socket编程的入门
  • Linux下用C语言操作MySQL

大体上就是这么多内容了,会分别在后续的文章中介绍,如果有兴趣可以继续关注ABitNo。。。

现在已经发了三篇了
Glade 3与GTK+-2入门
Linux下C语言连接MySQL
用GTK的GtkTreeView实现表格

50 COMMENTS >>LEAVE<<

  1. 一个菜鸟的技术站

    站做的很漂亮,继续努力。

  2. LAONB

    博主很棒嘛,主题不错,有时间也来我的网站逛逛。

  3. ABitNo
    @LAONB

    哈哈,你的也不错,经过修改的iNove 很好,内容也很好。。。
    LAONB美工不错。。。

  4. TualatriX

    很棒!GTK+Mysql是个很好的组合啊。
    希望ABitNo将这个专辑写下去,到时帮你宣传一下,让更多的渴望在Linux下编程的朋友能快速上手:)

  5. ABitNo
    @TualatriX

    谢谢TualatriX大哥的鼓励,我会好好努力的。。。
    现在已经写了两篇了。。。

  6. clinmw

    你好,我现在也正在学用GTK+编写学生管理系统,你能不能把你的源代码发给我学习学习,谢谢
    我的油箱是clinmw@cqu.edu.cn

  7. ABitNo
    @clinmw

    好的,已经发送了,有什么不明白的,看我后面写的相关的文章哈。。。

  8. 海贼阿D

    博主人很谦虚,站也做得很漂亮。
    也才架好小站,希望能从博主这里取经。

  9. Xhcker

    好东西!学习了。

  10. vinx

    其实用单机版的系统是不是用sqlite更合适一点,个人感觉mysql用于服务器端的比较多

  11. wenbo

    这样的程序,用ruby和shoes半小时就可以完成。。。我不是说c和gtk不好,而是桌面数据库程序本来就不适合用这类低级的工具开发。

  12. ABitNo
    @海贼阿D

    谢谢夸奖!大家共同进步了!

  13. ABitNo
    @Xhcker

    可惜我的C语言是相当的不好,写的代码很差,打算再好好学一下

  14. ABitNo
    @vinx

    这个倒是,sqlite简单好用。主要是之前我没听过,囧。。。是最近学Ruby的时候才知道sqlite的,很方便。

  15. ABitNo
    @wenbo

    是的,完全赞同!不过我是想学一下C语言和GTK,哈哈。。。一个程序员怎么可以不会C呢(我就不会)。。。而且要学Linux。。。

  16. LeoWL

    太好了,你的站点能订阅rss,时刻关注一下。。。

  17. raynix
  18. ABitNo
    @raynix

    真心的感謝。。。
    你的“极客路线“非常棒!

  19. ABitNo
    @LeoWL

    哈哈,谢谢,有一群人关心支持的感觉真爽啊。。。

  20. tmdab123

    呵呵 不错 大学时间蛮多 可以好好研究

    我现在快毕业

    之前学的mysql全还给老师了 哈哈

    真是尴尬!

  21. ABitNo
    @tmdab123

    哈哈,我也真想快快毕业呢。。。都是自学的。。。哈哈。。。

  22. xuqin

    你好阿,我是一个linux用户,看了你的文章后,我现在也在学习gtk,能把你用gtk编写的代码发我看看吗,谢谢你了
    xuqin1019@gmail.com

  23. ABitNo
    @xuqin

    好啊,不过我的代码可是非常差劲的,看了不要嘲笑我啊。。。

  24. xuqin
    @ABitNo

    呵呵,不会,我刚学,现在大二,用的ubuntu,请问你大几了

  25. ABitNo
    @xuqin

    哈哈,那谢谢啊。。。我现在也是大二,之前用Ubuntu了,现在用ArchLinux

  26. king

    也刚学linux下的gtk~~希望ABitNo能把源代码发给我下……共同学习下……谢谢!kinglcy@163.com

  27. ABitNo
    @king

    不好意思啊,我的那代码不小心删除了,你可以看看向前面的那位朋友要一下,给他发个email

    等考完试,要好好学习下GTK

  28. longhtml

    你好,看了你的文章后,我现在也在学习gtk,能把你用gtk编写的代码发我看看吗,谢谢你了
    longhtml@163.com

  29. ABitNo
    @longhtml

    我的都没了。。。那些代码也不好,等考试完我好好学习下,好好写点。。。

  30. renewjoy

    不晓得现在哪个同学还有这个代码,如果有的话,请共享一下吧。谢谢
    rlj_linux@126.com

  31. 黄芽

    你好,小弟新学linux编程.
    之前一直在搞.net开发,
    现在一下子转到linux+c
    下面,有好多东西不明白。
    在.net下要连接Mysql,只要引用一个mysql程序集就可以了,下载这个dll,然后引用到项目里,不需要安装MyMsql客户端就可以连接远程mysql服务器了。

    现在换到c语言下面,我的机器上没有安装Mysql Client,
    只是引用了 #include 是不可以的。
    c语言环境,是类似.net,要下载什么库,然后放到项目里去引用么,
    如果是这样子的,请问怎么操作。谢谢。
    我看到你那篇:Linux下C语言连接MySQL,要在机器上安装Mysql Client
    我想布属的时候也不会要求别人安装Mysql Client吧,可不可以像类似.net里面,只要引用一个dll文件就可以了呢。
    这样的情况下,怎么样用 c去连接远程 Mysql呢

  32. ABitNo
    @黄芽

    我不明白,难道可以不安装mysql client就直接安装mysql server的吗?
    你加我的gtalk吧,那样比较容易说明白。。。
    wolfplanet@gmail.com

  33. 黄芽
    @黄芽

    Mysql是一台远程独立的服务器,
    .net 开发时,我本机是不用安装 Client,只要添加一个叫程序集的dll文件引用就可以了,
    如果是c下,如何不安装client进行连接呢

  34. ABitNo
    @黄芽

    我明白你的意思了,这个也是有个mysql的lib的,应该只要安装一个libmysqlclient就成

  35. 黄芽
    @ABitNo

    这个mysql的lib是必须安装的么?
    可不可以直接就是一个dll文件,复制到当前目录下就可以了?

  36. ABitNo
    @黄芽

    你得明白Linux与windows的习惯是不一样的

  37. 黄芽
    @黄芽

    我的理解:
    1.c调用远程mysql服务器,
    头部的
    #include 有用的前提是。
    本地机器上必须要有相应的mysql驱动程序(或者叫库)

    2.这种库必须是安装的(unix-like必须这样?)通过安装my sqlcliet 或直接安装这个mysql库都可以。

    3.直接把编译好的库,unix下好像叫so共享库,win下叫dll拷贝到开发项目里,引用是不可以的.

  38. ABitNo
    @黄芽

    你如果非得要把编译好的库放到自己程序里也可以啊,不过那么做有什么好处呢???

  39. 黄芽
    @黄芽

    布属的时候,直接拷过去就可以运行了,

    ps:可能是习惯了,win下.net运行方式,
    开发时,把相库的库都引用到项目里,布属的时候直接拷过去,就可以运行了。不用再为了连接mysql,再要去 安装 用以支持mysql的库。

    为了支持一个程序的运行,自己还要辛辛苦苦去找,去安装相应的库,可能unix-like下大家是这种习惯 :)

  40. ABitNo
    @黄芽

    不过每一个项目都copy一份那不太浪费了吧。。。

    你的gtalk怎么不在线啊。。。

  41. 黄芽
    @黄芽

    是给很多人发,每个人一份。
    是这样的,这是一个安排任务的小工具。
    项目组里,每人运行后。定时去读取远程mysql.
    在这种情况下:是不是每个人都要自行去安装一下mysql连接库。
    按win下的思想。只要把这个库包含在程序里,直接拷给别人就可以直接运行了。
    别人拿到程序,里面直接就包含了库,不必要再去安装了。呵呵

  42. 111

    这个gtk形成glade文件,,编译后形成一堆文件。。你说的在c中实现连接sql,,到底要改哪些文件??!!

  43. ABitNo
    @111

    glade文件就是个xml,怎么会编译成一堆文件呢。。。

    c语言http://abitno.linpie.com/linux-c-connect-mysql.html

  44. Master Linux

    Linux下C语言连接MySQL
    这篇博文中的
    row = mysql_num_rows(res_ptr) + 1;
    //错误了,不用加1

    一开始没发现错误,但后来看到结果只有4行,程序却说找到了5行。

  45. temp

    你好,我现在在学者GTK+,可以把学生信息管理的源代码发我一份吗?谢谢..

  46. whwtracy111

    我也在学GTK 能否发我一份代码? 谢谢
    264661921@qq.com

  47. ABitNo
    @whwtracy111

    支持学GTK,不过代码是没有了,时间太久了。。。

  48. 百无一用哥

    同样学习GTK中,现在连点击按钮怎么从entry获取值都还不会,貌似现在深入示范GTK控件使用,值传递的例子很少啊。网上找找基本都是简单的些个HelloWorld什么的- -,英文资料倒是不少,英语十分糟糕的哥飘过。在中国学电脑就是学Windows,学C就是MSVC害了一代人啊。

  49. GTK

    我现在也在学习gtk,能把你用gtk编写的代码发我看看吗,谢谢你了!!
    laboratory901@gmail.com

  50. jun

    哈哈,我做完了发吧,哈哈,。。。

LEAVE A RESPONSE >>CANCEL<<

loader