科技成果信息管理系统_大学C语言课程设计实验报告.docx
《科技成果信息管理系统_大学C语言课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《科技成果信息管理系统_大学C语言课程设计实验报告.docx(148页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华中科技大学计算机科学与技术学院C语言程序设计课程设计基础部分实验报告题目:科技成果信息管理系统专业:计算机科学与技术班级:1204学号:姓名:成绩:指导教师:目录一、系统功能结构设计1二、数据结构设计1三、程序结构4四、函数原型及功能9五、试验结果13六、实验体会29七、附录1:参考文献31八、附录2:程序清单31、系统功能结构设计航科技成果信息管理系统由五大功能模块组成:文件模块,编辑模块,查询模块,统计模块,帮助模块。如下图所示:二、数据结构设计1 .单位信息链结点结构(DEPT NODE)及用法char number8;char name30;char PIC20;struct dep
2、t_node *next;/*单位编号*/*单位名称*/*负责人*/*指向下一结点*/struct archs_node *achs;/*指向科技成果信息链结点的指针*/GtkTreelter iter;/*treeview 中对应 treeiter*/ DEPT_NODE;中文字段名类型及长度变量名举例单位编号char8number43007401单位名称char30nameHuazhong_university_of_sci&tech负责人char20PICLi_peigeng2 .科技成果信息链结点结构(ACHS_NODE)及用法typedef struct achs_nodechar
3、number12;char name50;char field20;char first_dept_name30;char first_dept_number8;/*成果编号*/*成果名称*/*所属技术领域*/*第一完成单位*/*第一完成单位编号*/char first_member_name20;/*第一完成人*/char award_name30;/*获奖名称*/char award_level10;/*获奖档次*/char award_grade10;/*获奖等级*/struct arhs_node *next;/*指向下一节点*/struct member_node * members
4、;/*指向完成人员信息结点的指*/GtkTreelter iter;/*treeview 中对应 treeiter*/ ACHS_NODE;中文字段名类型及长度变量名举例成果编号char12numbe200703150001成果名称char40nameThe_method_of_study所属技术领域char20fieldcomputer第一完成单位char30first_dept_nameHuazhong_university_of _sci&tech第一完成单位编号first_dept_numberfirst_dept_number43007401第一完成人char20first_memb
5、er_nam eLu_zhengding获奖名称char30award_nameNaturalsci ence_of_hub ie_province获奖档次char10awardjevelprovince/*省级*/获奖等级intaward_grade1/*一等奖*/3 .完成人员信息链结点结构(MEMBER_NODE)及用法typedef struct member_nodechar number18;/*身份证号*/char name20;/*姓名*/char dept_name30;/*工作单位*/char sex4;/*性别*/int age;/*年龄*/char title15;/*
6、职称*/int rank;/*成果排名*/charachs_name40;/*所属成果名称*/struct member_node *next;/*指向下一个结点*/GtkTreelter iter;/*treeview 中对应 treeiter*/ MEMBER_NODE;中文字段名类型及长度举例姓名char20numberLu_zhengding身份证号char18name420111194801012216工作单位char30dept_nameHuazhong_university_of_sci&tech性别charsexm年龄intage60职称char15titleprofessor
7、成果排名intrank1所属成果名称char 40The_method_of_studyachs_name4 .三方向的十字交叉链表结构5 .登陆窗体控件结构体(wgt)及用法struct login_widgetGtkWidget *window;主窗体GtkWidget *label_tips;用于信息提示的标签GtkWidget *buttonogin;两个按钮,一个点击后登录,一个点击后退出GtkWidget *button_exit;GtkWidget *entry_username;两个文本框,用于输入用户名和密码GtkWidget *entry_pwd;GtkWidget *la
8、bel_username;两个标签用于显示username文本框和password文本框提示GtkWidget *label_pwd;GtkWidget *vbox;垂直布局盒子,包含以下三个水平布局盒子GtkWidget *hbox_username;包含用户名提示标签和用户名文本框,下面的HBOX作用类似GtkWidget *hbox_pwd;GtkWidget *hbox_button; wgt;说明:将登陆窗体相关控件独立成一个结构体6 .指向3种节点的指针联合及用法typedef union nodepstruct dept_node *dept;struct achs_node *
9、achs;struct member_node * member; nodep;说明:用于3种结构都会用到但不会同时用到的情形7 .两个传递参数的结构及其用法struct nodecreateGtkWidget *window;GtkWidget *entry9;nodep unp;int type;);struct queryjudgeGtkWidget *entry;int flag;);说明:GTKg_signal_connected将函数与信号链接后之内传递一个参数给函数,所以定义这两个结构分别将几个参数结合在一起传递三、程序结构1.主程序运行流程3.添加流程试川entry_inf。函
10、数 a根提type生成对应的输入框点击理定Add.nodegiJx传递的参数structnodecreate包含了 entry里的text和 type措入夫败调用相应的insert函数将pNew琏在相应住置4.单位查询流程试用限制H5.统计50岁以下第一完成人流程四、函数原型及功能(所有GtkWidget *button参数均为与消息链接用)1 .登陆模块功能:登录框初始化函数输入参数:返回值:无void init_login_widgetO/功能:登录验证函数,点击login按钮时调用输入参数:返回值:无void login(GtkWidget *widget,gpointer data)2
11、 .图形界面模块/*初始化部分变量,再依次调用各函数初始化界面各部分*/int main( int argc, char *argv)/*初始化菜单栏*/void init_menubar(GtkWidget *menubar)/*初始化目录*/void create_view_and_model (void)/*初始化显示栏*/void init_show(GtkWidget *list)/*改变状态栏及显示栏*/void on_changed(GtkWidget *widget, gpointer status bar)功能:将选中的节点信息在显示栏中显示出来输入参数:iter返回值:无i
12、nt Show_Node(GtkTreeIter iter)/值传递彳:影响 selected iter/*对应3个节点显示的3个函数,返回对应GtkListStore*/GtkListStore *Show_Dept(char *name);GtkListStore *Show_Achs(char *name,char *P_name);GtkListStore *Show_Member(char *name,char *P_name,char *PP_name);3 .文件模块功能:读取数据文件输入参数:返回值:re的二进制前3位记录了三个数据文件是否成功打开,1为成功int LoadDa
13、ta(GtkWidget *button)功能:读取数据文件中数据到链表中输入参数:phead单位节点头指针的地址返回值:re的二进制前3位记录了三个数据文件是否成功打开,1为成功int LoadList(DEPT_NODE *phead)功能:将链表中节点添加到左侧树状列表中输入参数:返回值:void rebuildtreeQ功能:存储数据文件输入参数:返回值:flag的二进制前3位记录了三个数据文件是否成功打开,1为成功int SaveData(GtkWidget * button)功能:将链表中数据存储在数据文件中输入参数:phead单位节点头指针返回值:flag的二进制前3位记录了三个
14、数据文件是否成功打开,1为成功int SaveList(DEPT_NODE *phead)功能:推出前提示保存输入参数:返回值:void quit_save(GtkWidget *button)4 .查询模块功能:根据type弹出一个查询框,再分别调用对应的Query函数输入参数:type对应枚举的几种类型返回值:无void Query_info(GtkWidget button,int type)功能:查询学院输入参数:in包含iter和名称的结构返回值:无void Query_Dept(GtkWidget *button,struct query Judge *in)功能:根据type弹出
15、一个查询框,再分别调用对应的Query函数输入参数:type对应枚举的几种类型返回值:无void Query_info(GtkWidget button,int type)功能:查询完成人员输入参数:in包含iter和名称的结构返回值:无void Query_Member(GtkWidget *button,struct query_judge *in)功能:展开并跳转至指定iter输入参数:iter treeview中的一个目标iter返回值:无void expand_select(GtkTree!ter iter)功能:按,称搜索单位输入参数:D_name单位名称返回值:单位节点指针DEP
16、T_NODE *DEPT_search(char *D_name)功能:按名称搜索藉技成果节点输入参数:A_name科技成果节点名称,ACHS所在学院头科技成果节点指针返回值:科技成果节点节点指针ACHS_NODE *ACHS_search(char *A_name,ACHS_NODE *ACHS)功能:按名称搜索完成人员节点输入参数:M_name完成人员节点名称,ACHS所属科技成果头完成人员节点指针返回值:完成人员节点节点指针MEMBER_NODE*MEMBER_search(char*M_name,MEMBER_NODE *MEMBER)5 .添加模块功能:弹出一个输入框输入参数:typ
17、e对应枚举的几种类型返回值:无void entry_info(GtkWidget *button,int type)功能:添加3种节点统一函数,由entry_info确定按钮调用输入参数:返回值:无void Add_node(GtkWidget *button,struct nodecreate *nodec)功能:插入科技成果节点函数,由Add_Node中情况3调用输入参数:pNew指向新节点的指针返回值:对应单位节点指针DEPT_NODE *insert_ACHS(ACHS_NODE *pNew)功能:插入完成人员节点函数,由Add_Node中情况4调用输入参数:pNew指向新节点的指针返
18、回值:对应科技成果节点指针ACHS_NODE *insert_MEMBER(MEMBER_NODE *pNew)6 .删除模块功能:删除3种节点统一函数,由删除按钮调用输入参数:返回值:无void Del_Node(GtkWidget button)功能:删除单位节点,由Del_Node函数case 2调用输入参数:name单位名称返回值:int 1为有错,0为正常int Del_Dept(char *name)功能:删除科技成果节点,由Del_Node函数case 2调用输入参数:name科技成果名称,P_name对应单位名称返回值:int 1为有错,0为正常int Del_Achs(cha
19、r *name,char *P_name)功能:删除完成人员节点,由DeLNode函数case4调用输入参数:name完成人员名称,P_name对应科技成果名称,PP_name对应单位名称返回值:inti为有错,0为正常int Del_Member(char *name,char *P_name,char *PP_name)7 .编辑模块功能:弹出一个编辑框输入参数:返回值:无int Edit_info(GtkWidget *button)功能:编辑节点输入参数:返回值:无void Edit_Node(GtkWidget *button,struct nodecreate *nodec)8 .
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 科技成果 信息管理 系统 大学 语言 课程设计 实验 报告
限制150内