科技成果信息管理系统_大学C语言课程设计实验报告.pdf
《科技成果信息管理系统_大学C语言课程设计实验报告.pdf》由会员分享,可在线阅读,更多相关《科技成果信息管理系统_大学C语言课程设计实验报告.pdf(149页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华中科技大学计算机科学与技术学院C语言程序设计课程设计基础部分实验报告题目:科技成果信息管理系统专业:计算机科学与技术班级:1204学号:姓名:成绩:指导教师:目录一、系统功能结构设计.1二、数据结构设计.1三、程序结构.4四、函数原型及功能.9五、试验结果.1 3六、实验体会.2 9七、附录I:参考文献.3 1八、附录2:程序清单.3 1C 语言课程设计实验报告一、系统功能结构设计航科技成果信息管理系统由五大功能模块组成:文件模块,编辑模块,查询模块,统计模块,帮助模块。如下图所示:文件模块编 辑 模 块 查询模块 统计模块帮助模块加载数据 信 添加单位查询完成人员查询单位查询科技成果统计各
2、单位成果排名统计5 0岁以下第一完成人软件信息及祚者信息1+-唯腐m-数.二、数据结构设计1.单位信息链结点结构(DEPT NODE)及用法typedef struct dept_nodeiC 语言课程设计实验报告char number8;char name30;char PIC20;struct dept_node*next;/*单位编号*/*单位名称*/*负责人*/*指向下一结点*/struct archs_node*achs;/*指向科技成果信息链结点的指针*/GtkTreelter iter;/*treeview 中对应 treeiter*/DEPT_NODE;中文字段名类型及长度变量
3、名举例单位编号c h a r 8 number43 0 0 7 40 1单位名称c h a r 3 0 nameH u a z h o n g_ u n i v e r s i t y _ o f _ s c i&t e c h负责人c h a r 2 0 PICL i _ p e i ge n g2.科技成果信息链结点结构(ACHS_NODE)及用法typedef struct achs_nodecharnumber12;/*成果编号*/charname50;/*成果名称*/charfield20;/*所属技术领域*/charfirst_dept_name30;/*第一完成单位*/charf
4、irst_dept_number8;/*第一完成单位编号*/charfirst_member_name20;/*第一完成人*/charaward_name30;/*获奖名称*/2C语言课程设计实验报告char award_level10;/*获奖档次*/char award_grade10;/*获奖等级*/struct arhs_node*next;/*指向下一节点*/struct member_node*members;/*指向完成人员信息结点的指*/GtkTreelter iter;/*treeview 中对应 treeiter*/ACHS_NODE;中文字段名类型及长度变量名举例成果编号
5、c h a r 1 2 numbe2 0 0 7 0 3 1 5 0 0 0 1成果名称c h a r 40 nameT h e _ m e t h o d _ o f _ s t u d y所属技术领域c h a r 2 0 fieldc o m p u t e r第一完成单位c h a r 3 0 first_dept_nameH u a z h o n g_ u n i v e r s i t y _ o f_ s c i&t e c h第一完成单位编号first_dept_numberfirst_dept_number43 0 0 7 40 1第一完成人c h a r 2 0 firs
6、t_member_nameL u _ z h e n gd i n g获奖名称c h a r 3 0 award_nameN a t u r a l s c i e n c e _ o f _ h u bi e _ p r o v i n c e获奖档次c h a r 1 0 award_levelp r o v i n c e /*省级*/获奖等级i n taward_grade1 /*一等奖*/3.完成人员信息链结点结构(M E M B E R _ N O D E)及用法typedef struct member_node3C 语言课程设计实验报告char number18;/*身份证号*
7、/char name20;/*姓名*/char dept_name30;/*工作单位*/char sex4;/*性别*/int age;/*年龄*/char title15;/*职称*/int rank;/*成果排名*/char achs_name40;/*所属成果名称*/struct member_node*next;/*指向下一个结点*/GtkTreelter iter;/*treeview 中对应 treeiter*/MEMBER_NODE;中文字段名类型及长度举例姓名char20numberLuzhengding身份证号char18name420111194801012216工作单位c
8、har30dept_nameIluazhong_university_of_sci&tech性别charsexm年龄intage60职称char15titleprofessor成果排名intrank12C语言课程设计实验报告所属成果名称c h a r 40 achs_nameT h e _ m e t h o d _ o f _ s t u d y4.三方向的十字交叉链表结构5.登陆窗体控件结构体(wgt)及用法struct login_widget(GtkWidget*window;主窗体GtkWidget*label_tips;用于信息提示的标签GtkWidget*buttonogin;两
9、个按钮,一个点击后登录,个点击后退出GtkWidget*button_exit;GtkWidget*entry_username;两个文本框,用于输入用户名和密码GtkWidget*entry_pwd;GtkWidget*label_username;两个标签用于显示username文本框和password文本框提示3C 语言课程设计实验报告GtkWidget*label_pwd;GtkWidget*vbox;垂直布局盒子,包含以下三个水平布局盒子GtkWidget*hbox_username;包含用户名提示标签和用户名文本框,下面的H BOX作用类似GtkWidget*hbox_pwd;Gt
10、kWidget*hbox_button;wgt;说明:将登陆窗体相关控件独立成一个结构体6.指 向3种节点的指针联合及用法typedef union nodepstruct dept_node*dept;struct achs_node*achs;struct member_node*member;nodep;说明:用于3种结构都会用到但不会同时用到的情形7.两个传递参数的结构及其用法struct nodecreate4C 语言课程设计实验报告GtkWidget*window;GtkWidget*entry9;nodep unp;int type;);struct queryjudgeGtkW
11、idget*entry;int flag;);说明:GTK信号连接g_signal_connected将函数与信号链接后之内传递一个参数给函数,所以定义这两个结构分别将几个参数结合在一起传递三、程序结构1.主程序运行流程C语言课程设计实验报告6C语言课程设计实验报告7C语言课程设计实验报告3.添加流程试 用 殛entry_info 根据type生成对应的输入框点击确定-Add_nodegiiz-传递的参数structnodecreate包含了 entry三的text和 type试根捏type与态分犯相括入关败 调目相应的insert函数将pNew链在相它位置在梃状列表里添加相应选项8C语言课程
12、设计实验报告4.单位查询流程9C语言课程设计实验报告5.统计50岁以下第一完成人流程10C语言课程设计实验报告四、函数原型及功能(所有GtkWidget*button参数均为与消息链接用)1.登陆模块功能:登录框初始化函数输入参数:返回值:无void init_login_widget()功能:登录验证函数,点击login按钮时调用输入参数:返回值:无void login(GtkWidget*widget,gpointer data)2.图形界面模块/*初始化部分变量,再依次调用各函数初始化界面各部分*/int main(int argc,char*argv口)/*初始化菜单栏*/void i
13、nit_menubar(GtkWidget*menubar)/*初始化目录*/void create_view_and_model(void)/*初始化显示栏*/void init_show(GtkWidget*list)/*改变状态栏及显示栏*/void on_changed(GtkWidget*widget,gpointer statusbar)11C语言课程设计实验报告功能:将选中的节点信息在显示栏中显示出来输入参数:iter返回值:无int Show_Node(GtkTreeIter iter)值传递不影响 selectediter/*对 应3个节点显示的3个函数,返回对应GtkLis
14、tStore*/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.文件模块功能:读取数据文件输入参数:返回值:r e的二进制前3位记录了三个数据文件是否成功打开,1为成功int LoadData(GtkWidget*button)功能:读取数据文件中数据到链表中输入参数:phead单位节点头指针的地址返回值:r e的二进制前3位记录了三个数据文件是否成功打开,1
15、为成功int LoadList(DEPT_NODE*phead)功能:将链表中节点添加到左侧树状列表中输入参数:返回值:void rebuildtreeQ12C语言课程设计实验报告功能:存储数据文件输入参数:返回值:flag的二进制前3位记录了三个数据文件是否成功打开,1为成功int SaveData(GtkWidget*button)功能:将链表中数据存储在数据文件中输入参数:phead单位节点头指针返回值:flag的二进制前3位记录了三个数据文件是否成功打开,1为成功int SaveList(DEPT_NODE*phead)功能:推出前提示保存输入参数:返回值:void quit_save
16、(GtkWidget*button)4.查询模块功能:根 据type弹出一个查询框,再分别调用对应的Query函数输入参数:type对应枚举的几种类型返回值:无void Query_info(GtkWidget*button,int type)功能:查询学院输入参数:in包 含iter和名称的结构返回值:无void Query_Dept(GtkWidget*button,struct queryJ udge*in)功能:根据type弹出一个查询框,再分别调用对应的Query函数输入参数:type对应枚举的几种类型返回值:无void Query_info(GtkWidget*button,int
17、 type)功能:查询完成人员输入参数:in包 含iter和名称的结构返回值:无void Query_Member(GtkWidget*button,struct queryjudge*in)13C语言课程设计实验报告功能:展开并跳转至指定iter输入参数:iter treeview中的一个目标iter返回值:无void expand_select(GtkTreeIter iter)功能:按.称搜索单位输入参数:D_name单位名称返回值:单位节点指针DEPT_NODE*DEPT_search(char*D_name)功能:按名称搜索痴技成果节点输入参数:A_name科技成果节点名称,ACHS
18、所在学院头科技成果节点指针返回值:科技成果节点节点指针ACHS_NODE*ACHS_search(char*A_name,ACHS_NODE*ACHS)功能:按名称搜索藕人员节点输入参数:M_name完成人员节点名称,ACHS所属科技成果头完成人员节点指针返回值:完成人员节点节点指针MEMBER_NODE*MEMBER_search(char*M_name,MEMBER_NODE*MEMBER)5.添加模块功能:弹出一个输入框输入参数:type对应枚举的几种类型返回值:无void entry_info(GtkWidget*button,int type)功能:添 加3种节点统一函数,由entr
19、y_info确定按钮调用输入参数:返回值:无void Add_node(GtkWidget*button,struct nodecreate*nodec)功能:届入科技成果节点函数,由Add_Node中情况3调用输入参数:pNew指向新节点的指针返回值:对应单位节点指针DEPT_NODE*insert_ACHS(ACHS_NODE*pNew)功能:插入完成人员节点函数,由Add_Node中情况4调用输入参数:pNew指向新节点的指针返回值:对应科技成果节点指针ACHS_NODE*insert_MEMBER(MEMBER_NODE*pNew)6.删除模块功能:删 除3种节点统一函数,由“删除”按
20、钮调用输入参数:返回值:无void Del_Node(GtkWidget*button)14C语言课程设计实验报告功能:删除单位节点,由 Del_Node函数case 2 调用输入参数:nam e单位名称返回值:int 1 为有错,0 为正常int Del_Dept(char*name)功能:删除科技成果节点,由Del_Node函数case 2 调用输入参数:nam e科技成果名称,P_nam e对应单位名称返回值:int 1 为有错,0 为正常int Del_Achs(char*name,char*P_name)功能:删除完成人员节点,由Del_Node函数case 4 调用输入参数:nam
21、 e完成人员名称,P_nam e对应科技成果名称,PP_name对应单位名称返回值:in ti为有错,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.统计模块功能:弹出一个统计框,由传入参数设置具体内容输入参数:title 统计框标题,c o ll第一列标题,c o l2 第
22、二列标题,i n 传入的model返回值:无void Statis_info(char*title,char*coll,char*col2,GtkListStore*in)功能:家计各单位科技成果数量,调 用Statis_info显示统计结果输入参数:返回值:无void statis_funcl(GtkWidget*button)功能:条计各单位完成人员成果排名,调 用 Statis_info显示统计结果输入参数:返回值:无void statis_func2(GtkWidget button)功能:.计 所 有 5 0 岁以下第一完成人,调 用 Statis_info显示统计结果输入参数:返回
23、值:无void statis_func3(GtkWidget*button)15C语言课程设计实验报告9.帮助模块功能:弹出软件信息及作者信息输入参数:返回值:无void help_about(GtkWidget:Jbutton)五、试验结果编译环境:Ubuntulinux64位MingwGcc(源代码配置好后可跨平台编译)GTK 版本:GTK+2.41开发 IDE:Codeblocks 12.111.系统登陆输对自动进入输错显示错误16C 语言课程设计实验报告2.登陆成功进入主界面3.全屏模式17C语言课程设计实验报告张江网格碳0代科外布式15退座管序乐比学年目叨化学除*几5!俵理优化网一美
24、a iia iis融东统的X 性冲恬矶H孚蹂多足打机0人道动投朝瑁目内B史憎江号:044如:91江工作81位:什机学S?性例;舅S K:4S取样:MHI成排菖:4所成事2梅分布式故挺IfettH第蜕:令-20:56 1Z H U0 W4.读取数据20:07 1 ZHUFllS y s te n文 件”S D合N傕 计ffiK:init_meftubar(ctkwidget,menubar):void Q Workspace,MIS_GTK t Sources HeadersBuild target DcbuoProjecttSymbols chMl;h X X m/.L,.,.X;O、X U”
25、、出:1八。:,QWDZC.X :,;c X hclp.c x118119126121122123124125126127128IM130m1321331341351313713139140141142一时3,,is e*0、6 t W A力 a卡BMH,bgett.ew unn IQURX 1,g U K lg,Qllk.MA RU-WSSMlMrr.K m a ltn t/rxxw/rtHVa/co.).传U p lQnl crne 4 t AnXSt HA iMUaNIIa au ir-8une 120.Column i imertiRwd/W rite default(标准gnome菜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 科技成果 信息管理 系统 大学 语言 课程设计 实验 报告
限制150内