科技成果信息管理系统_c语言课程设计实验报告(编辑修改稿)内容摘要:
法与技巧,然后再 循序渐进 地先看 warning,再看代码,再用 GDB,一个问题一个问题 解决,经过同学的给力帮助还有自己在网上学习查找相关内容终于在解决了几个关键问题后跨过了这一步。 那将近一个星期完全没有新代码,花了好几倍的时间调试之前的那几个模块,不过感觉很多基本调试方法之前都没掌握,还是很值得很有收获的,之后的调试便顺利多了。 C 语言的问题很多都是极小的问 题但经过 最后进入写报告阶段,之前就做了一些准备,也有很多 word 排版的经验,所以效果自认为还不错吧,主要是电子版。 就是流程图上因为和图形界面交互的操作比较繁琐,不知道处理得是否得当。 回顾整个课设的历程,第一次做这种实用的大型程序,又是边学边用 GTK+,确实是边写边积累了很多宝贵的经验。 收获在前面已经说了很多了,另一方面真的是深感自己知识与能力的不足,不要好高C 语言课程设计实验报告 31 骛远,想着要学什么什么多少,学了后踏踏实实地写出点东西才是真的学到了,还好感觉这次已经弥补了足够多的欠缺。 系统本身也还有许多有待完善的地方,也如果有需要的话接下来可以做下。 我用的各种查找的方法都有点太依赖于名称,和遍历的方法比起来有很多缺点,但在大量数据的情况也有优势,可以结合一下。 跟真正使用的系统比起里又更是差距甚远,这次感觉到软件的体验方面对程序员来说也真的是个大问题,这个以后可以在工作中和 PM 好好合作做好把。 就是这样了, C 语言的入门算是以课设结束了吧,接下来还有很多用 C 的地方,下次再见吧。 七、 附录 1: 参考文献 [1] gtk2tutorial2 [2] gtk2ReferenceManual [3] 李 开 ,卢萍 ,曹计昌 . C 语言实验与课程设计 ,北京:科学出版社 ,20xx. 八、 附录 2:程序清单 1) ifndef _ACHSMIS_H define _ACHSMIS_H /*头文件 */ include include include include gtk/ C 语言课程设计实验报告 32 define NAME root define PWD 123456 /******************** 结构声明 *********************/ /**完成人员信息链结点结构 */ typedef struct member_node { char number[18]。 /*身份证号 */ char name[20]。 /*姓名 */ char dept_name[30]。 /*工作单位 */ char sex[4]。 /*性别 */ int age。 /*年龄 */ char title[15]。 /*职称 */ int rank。 /*成果排名 */ char achs_name[40]。 /*所属成果名称 */ struct member_node *next。 /*指向下一个结点 */ GtkTreeIter iter。 /*treeview 中对应 treeiter*/ } MEMBER_NODE。 /**科技成果信息链结点结构 */ typedef struct achs_node { char number[12]。 /*成果编号 */ char name[50]。 /*成果名称 */ char field[20]。 /*所属技术领域 */ char first_dept_name[30]。 /*第一完成单位 */ char first_dept_number[8]。 /*第一完成单位编号 */ char first_member_name[20]。 /*第一完成人 */ char award_name[30]。 /*获奖名称 */ char award_level[10]。 /*获奖档次 */ char award_grade[10]。 /*获奖等级 */ struct arhs_node *next。 /*指向下一节点 */ struct member_node *members。 /*指向完成人员信息结点的指针 */ GtkTreeIter iter。 /*treeview 中对应 treeiter*/ } ACHS_NODE。 /**单位信息链结点结构 */ typedef struct dept_node { char number[8]。 /*单位编号 */ char name[30]。 /*单位名称 */ char PIC[20]。 /*负责人 */ C 语言课程设计实验报告 33 struct dept_node *next。 /*指向下一结点 */ struct archs_node *achs。 /*指向科技成果信息链结点的指针 */ GtkTreeIter iter。 /*treeview 中对应 treeiter*/ } DEPT_NODE。 /**将登陆窗体独立成一个结构体 */ struct login_widget { GtkWidget *window。 //主窗体 GtkWidget *label_tips。 //用于信息提示的标签 GtkWidget *button_login。 //两个按钮,一个点击后登录,一个点击后退出 GtkWidget *button_exit。 GtkWidget *entry_username。 //两个文本框,用于输入用户名和密码 GtkWidget *entry_pwd。 GtkWidget *label_username。 //两个标签用于显示 username 文本框和password 文本框提示 GtkWidget *label_pwd。 GtkWidget *vbox。 //垂直布局盒子,包含以下三个水平布局盒子 GtkWidget *hbox_username。 //包含用户名提示标签和用户名文本框,下面的 HBOX 作用类似 GtkWidget *hbox_pwd。 GtkWidget *hbox_button。 } wgt。 typedef union nodep /*指向节点的指针联合 */ { struct dept_node *dept。 struct achs_node *achs。 struct member_node *member。 } nodep。 struct nodecreate /*传递参数 */ { GtkWidget *window。 GtkWidget *entry[9]。 nodep unp。 int type。 }。 struct query_judge /*传递参数 */ { GtkWidget *entry。 int flag。 }。 C 语言课程设计实验报告 34 /******************** 全局变量 *********************/ GtkWidget *window。 /*主界面窗口 */ GtkWidget *showlist。 /*显示属性的位置 */ GtkListStore *liststore。 GtkListStore *lstore[3]。 /*显示栏左边项目名 liststore 组 */ GtkTreeStore *treestore。 /*树形储存 */ GtkWidget *treeview。 /*树状列表目录 */ GtkTreeIter rootiter。 /*根位置 */ GtkTreeIter selectediter。 /*选中的位置 */ /*显示属性 liststore 的控件组 */ GtkTreeIter dept_iter[3]。 GtkTreeIter achs_iter[9]。 GtkTreeIter member_iter[8]。 DEPT_NODE *gp_head。 /*主链头指针 */ char **Str_Pointer[3]。 void (*query_node[3])()。 /* 中已初始化的全局变量 */ extern char *gp_dept_info_filename。 extern char *gp_achs_info_filename。 extern char *gp_member_info_filename。 extern char *Node_Str[]。 extern int NODE_INS[]。 extern char *Dept_Str[]。 extern char *Achs_Str[]。 extern char *Member_Str[]。 enum //iter 里的列号 { COLUMN = 0, COMMENT }。 enum { TYPE_ROOT =1, TYPE_DEPT, TYPE_ACHS, TYPE_MEMBER }。 C 语言课程设计实验报告 35 /******************** 函数声明 *********************/ /***/ void init_menubar(GtkWidget *menubar)。 void create_view_and_model (void)。 void init_show(GtkWidget *list)。 void on_changed(GtkWidget *widget, gpointer statusbar)。 /***/ int LoadData(GtkWidget *button)。 int LoadList(DEPT_NODE **phead)。 void rebuildtree()。 int SaveData(GtkWidget *button)。 int SaveList(DEPT_NODE *phead)。 void quit_save(GtkWidget *button)。 /***/ void Add_node(GtkWidget *button,struct nodecreate *nodec)。 DEPT_NODE * insert_ACHS(ACHS_NODE *pNew)。 ACHS_NODE *insert_MEMBER(MEMBER_NODE *pNew)。 int DelNode(GtkWidget *button)。 void Del_Node(GtkWidget *button)。 int Del_Dept(char *name)。 int Del_Achs(char *name,char *P_name)。 int Del_Member(char *name,char *P_name,char *PP_name)。 void Edit_Node(GtkWidget *button,struct nodecreate *nodec)。 /***/ void dialog_info(char *show)。 void entry_info(GtkWidget *button,int type)。 int Edit_info(GtkWidget *button)。 void Query_info(GtkWidget *button,int type)。 void f_cancel(GtkWidget *button,GtkWidget *win)。 gint Judge_NODE_Type(GtkTreeIter *iter)。 int Show_Node(GtkTreeIter iter)。 GtkListStore *Show_Dept(char *name)。 GtkListStore *Show_Achs(char *name,char *P_name)。 GtkListStore *Show_Member(char *name,char *P_name,char *PP_name)。科技成果信息管理系统_c语言课程设计实验报告(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。