科技成果信息管理系统-大学C语言课程设计实验报告_第1页
科技成果信息管理系统-大学C语言课程设计实验报告_第2页
科技成果信息管理系统-大学C语言课程设计实验报告_第3页
科技成果信息管理系统-大学C语言课程设计实验报告_第4页
科技成果信息管理系统-大学C语言课程设计实验报告_第5页
已阅读5页,还剩144页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华中科技大学计算机科学与技术学院

《C语言程序设计》课程设计

基础部分实验报告

题目:科技成果信息管理系统

专业:计算机科学与技术

班级:1204

学号:

姓名:

成绩:

指导教师:

目录

一、系统功能结构设计.................................................1

二、数据结构设计.................................................1

三、程序结构...................................................4

四、函数原型及功能..................................................9

五、试验结果.................................................13

六、实验体会...................................................29

七、附录I:参考文献....................................................31

八、附录2:程序清单....................................................31

C语言课程设计实验报告

一、系统功能结构设计

航科技成果信息管理系统由五大功能模块组成:文件模块,编辑模块,查询模块,统计

模块,帮助模块。如下图所示:

文件模块编辑模块■查询模块■统计模块帮助模块

加载数据信添加单位查询单位1-+

唯软件信息

及祚者信

m

查询科技-息

成果.

查询完成

人员统计各单

位成果排

统计50岁

以下第一

完成人

二、数据结构设计

1.单位信息链结点结构(DEPTNODE)及用法

typedefstructdept_node

i

C语言课程设计实验报告

charnumber[8];/*单位编号*/

charname[30];/*单位名称*/

charPIC[20];/*负责人*/

structdept_node*next;/*指向下一结点*/

structarchs_node*achs;/*指向科技成果信息链结点的指针*/

GtkTreelteriter;/*treeview中对应treeiter*/

}DEPT_NODE;

中文字段名类型及长度变量名举例

单位编号char[8]43007401

number

单位名称char[30]nameHuazhong_university_of_sci&tech

负责人char[20]PICLi_peigeng

2.科技成果信息链结点结构(ACHS_NODE)及用法

typedefstructachs_node

charnumber[12];/*成果编号*/

charname[50];/*成果名称*/

charfield[20];/*所属技术领域*/

charfirst_dept_name[30];/*第一完成单位*/

charfirst_dept_number[8];/*第一完成单位编号*/

charfirst_member_name[20];/*第一完成人*/

charaward_name[30];/*获奖名称*/

2

C语言课程设计实验报告

charaward_level[10];/*获奖档次*/

charaward_grade[10];/*获奖等级*/

structarhs_node*next;/*指向下一节点*/

structmember_node*members;/*指向完成人员信息结点的指*/

GtkTreelteriter;/*treeview中对应treeiter*/

}ACHS_NODE;

中文字段名类型及长度变量名举例

成果编号char[12]200703150001

numbe

成果名称char[40]The_method_of_study

name

所属技术领域char[20]computer

field

第一完成单位char[30]Huazhong_university_of

first_dept_name_sci&tech

第一完成单位43007401

编号first_dept_first_dept_number

number

第一完成人char[20]Lu_zhengding

first_member_nam

e

获奖名称char[30]Naturalscience_of_hub

award_nameie_province

获奖档次char[10]province/*省级*/

award_level

获奖等级int1/*一等奖*/

award_grade

3.完成人员信息链结点结构(MEMBER_NODE)及用法

typedefstructmember_node

3

C语言课程设计实验报告

charnumber[18];/*身份证号*/

charname[20];/*姓名*/

chardept_name[30];/*工作单位*/

charsex[4];/*性别*/

intage;/*年龄*/

chartitle[15];/*职称*/

intrank;/*成果排名*/

charachs_name[40];/*所属成果名称*/

structmember_node*next;/*指向下一个结点*/

GtkTreelteriter;/*treeview中对应treeiter*/

}MEMBER_NODE;

中文字段名类型及长度举例

姓名char[20]Luzhengding

number

身份证号char[18/p>

name

工作单位char[30]Iluazhong_university_of_sci&tech

dept_name

性别charm

sex

年龄int60

age

职称char[15]professor

title

成果排名int1

rank

2

C语言课程设计实验报告

所属成果名称char[40]The_method_of_study

achs_name

4.三方向的十字交叉链表结构

5.登陆窗体控件结构体(wgt)及用法

structlogin_widget

GtkWidget*window;〃主窗体

GtkWidget*label_tips;〃用于信息提示的标签

GtkWidget*button」ogin;〃两个按钮,一个点击后登录,…个点击后退出

GtkWidget*button_exit;

GtkWidget*entry_username;〃两个文本框,用于输入用户名和密码

GtkWidget*entry_pwd;

GtkWidget*label_username;〃两个标签用于显示username文本框和

password文本框提示

3

C语言课程设计实验报告

GtkWidget*label_pwd;

GtkWidget*vbox;〃垂直布局盒子,包含以下三个水平布局盒子

GtkWidget*hbox_username;〃包含用户名提示标签和用户名文本框,下

面的HBOX作用类似

GtkWidget*hbox_pwd;

GtkWidget*hbox_button;

}wgt;

说明:将登陆窗体相关控件独立成一个结构体

6.指向3种节点的指针联合及用法

typedefunionnodep

{

structdept_node*dept;

structachs_node*achs;

structmember_node*member;

}nodep;

说明:用于3种结构都会用到但不会同时用到的情形

7.两个传递参数的结构及其用法

structnodecreate

4

C语言课程设计实验报告

GtkWidget*window;

GtkWidget*entry[9];

nodepunp;

inttype;

);

structqueryjudge

{

GtkWidget*entry;

intflag;

);

说明:GTK信号连接g_signal_connected将函数与信号链接后之内传递一个参

数给函数,所以定义这两个结构分别将几个参数结合在一起传递

三、程序结构

1.主程序运行流程

C语言课程设计实验报告

6

C语言课程设计实验报告

7

C语言课程设计实验报告

3.添加流程

试用殛

entry_info®^

根据type生成

对应的输入框

点击确定

-Add_nodegiiz-

传递的参数struct

nodecreate

包含了entry三的text

和type

根捏type与态分犯相

括入关

败调目相应的insert函数

将pNew链在相它位置

在梃状列表里添加相

应选项

8

C语言课程设计实验报告

4.单位查询流程

9

C语言课程设计实验报告

5.统计50岁以下第一完成人流程

10

C语言课程设计实验报告

四、函数原型及功能

(所有GtkWidget*button参数均为与消息链接用)

1.登陆模块

〃功能:登录框初始化函数

〃输入参数:

〃返回值:无

voidinit_login_widget()

〃功能:登录验证函数,点击login按钮时调用

〃输入参数:

〃返回值:无

voidlogin(GtkWidget*widget,gpointerdata)

2.图形界面模块

/**初始化部分变量,再依次调用各函数初始化界面各部分*/

intmain(intargc,char*argv口)

/**初始化菜单栏*/

voidinit_menubar(GtkWidget*menubar)

/**初始化目录*/

voidcreate_view_and_model(void)

/**初始化显示栏*/

voidinit_show(GtkWidget*list)

/**改变状态栏及显示栏*/

voidon_changed(GtkWidget*widget,gpointerstatusbar)

11

C语言课程设计实验报告

〃功能:将选中的节点信息在显示栏中显示出来

〃输入参数:iter

〃返回值:无

intShow_Node(GtkTreeIteriter)〃值传递不影响selectediter

/**对应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为成功

intLoadData(GtkWidget*button)

〃功能:读取数据文件中数据到链表中

〃输入参数:phead单位节点头指针的地址

〃返回值:re的二进制前3位记录了三个数据文件是否成功打开,1为成功

intLoadList(DEPT_NODE**phead)

〃功能:将链表中节点添加到左侧树状列表中

〃输入参数:

〃返回值:

voidrebuildtreeQ

12

C语言课程设计实验报告

〃功能:存储数据文件

〃输入参数:

〃返回值:flag的二进制前3位记录了三个数据文件是否成功打开,1为成功

intSaveData(GtkWidget*button)

〃功能:将链表中数据存储在数据文件中

〃输入参数:phead单位节点头指针

〃返回值:flag的二进制前3位记录了三个数据文件是否成功打开,1为成功

intSaveList(DEPT_NODE*phead)

〃功能:推出前提示保存

〃输入参数:

〃返回值:

voidquit_save(GtkWidget*button)

4.查询模块

〃功能:根据type弹出一个查询框,再分别调用对应的Query函数

〃输入参数:type对应枚举的几种类型

〃返回值:无

voidQuery_info(GtkWidget*button,inttype)

〃功能:查询学院

〃输入参数:in包含iter和名称的结构

〃返回值:无

voidQuery_Dept(GtkWidget*button,structqueryJudge*in)

〃功能:根据type弹出一个查询框,再分别调用对应的Query函数

〃输入参数:type对应枚举的几种类型

〃返回值:无

voidQuery_info(GtkWidget*button,inttype)

〃功能:查询完成人员

〃输入参数:in包含iter和名称的结构

〃返回值:无

voidQuery_Member(GtkWidget*button,structqueryjudge*in)

13

C语言课程设计实验报告

〃功能:展开并跳转至指定iter

〃输入参数:itertreeview中的一个目标iter

〃返回值:无

voidexpand_select(GtkTreeIteriter)

〃功能:按.称搜索单位

〃输入参数:D_name单位名称

〃返回值:单位节点指针

DEPT_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.添加模块

〃功能:弹出一个输入框

〃输入参数:type对应枚举的几种类型

〃返回值:无

voidentry_info(GtkWidget*button,inttype)

〃功能:添加3种节点统一函数,由entry_info确定按钮调用

〃输入参数:

〃返回值:无

voidAdd_node(GtkWidget*button,structnodecreate*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种节点统一函数,由“删除”按钮调用

〃输入参数:

〃返回值:无

voidDel_Node(GtkWidget*button)

14

C语言课程设计实验报告

〃功能:删除单位节点,由Del_Node函数case2调用

〃输入参数:name单位名称

〃返回值:int1为有错,0为正常

intDel_Dept(char*name)

〃功能:删除科技成果

节点,由Del_Node函数case2调用

〃输入参数:name科技成果名称,P_name对应单位名称

〃返回值:int1为有错,0为正常

intDel_Achs(char*name,char*P_name)

〃功能:删除完成人员节点,由Del_Node函数case4调用

〃输入参数:name完成人员名称,P_name对应科技成果名称,PP_name对应

单位名称

〃返回值:inti为有错,0为正常

intDel_Member(char*name,char*P_name,char*PP_name)

7.编辑模块

〃功能:弹出…个编辑框

〃输入参数:

〃返回值:无

intEdit_info(GtkWidget"button)

〃功能:编辑节点

〃输入参数:

〃返回值:无

voidEdit_Node(GtkWidget*button,structnodecreate*nodec)

8.统计模块

〃功能:弹出一个统计框,由传入参数设置具体内容

〃输入参数:title统计框标题,coll第一列标题,col2第二列标题,in传入的

model

〃返回值:无

voidStatis_info(char*title,char*coll,char*col2,GtkListStore*in)

〃功能:家计各单位科技成果数量,调用Statis_info显示统计结果

〃输入参数:

〃返回值:无

voidstatis_funcl(GtkWidget*button)

〃功能:条计各单位完成人员成果排名,调用Statis_info显示统计结果

〃输入参数:

〃返回值:无

voidstatis_func2(GtkWidget"button)

〃功能:.计所有50岁以下第一完成人,调用Statis_info显示统计结果

〃输入参数:

〃返回值:无

voidstatis_func3(GtkWidget*button)

15

C语言课程设计实验报告

9.帮助模块

〃功能:弹出软件信息及作者信息

〃输入参数:

〃返回值:无

voidhelp_about(GtkWidget:}Jbutton)

五、试验结果

编译环境:Ubuntulinux64位

MingwGcc

(源代码配置好后可跨平台编译)

GTK版本:GTK+2.41

开发IDE:Codeblocks12.11

1.系统登陆

输对自动进入

输错显示错误

16

C语言课程设计实验报告

2.登陆成功进入主界面

3.全屏模式

17

C语言课程设计实验报告

■:■令-20:561ZHU

瑁目内B

史憎江号:044如

««:91江

工作81位:什・机学S?

性例;

网格碳0代科舅

外布式15退座管序乐比SK:4S

取样:MHI

成■排菖:4

分布式故挺第蜕

学年所■成事2梅IfettH

▼目叨化学除

*几5!俵理优化网一

»美aiiaiis融东统的X性冲恬

▼矶H孚蹂

►多足》打机0人道动投朝

0W

张江

4.读取数据

Systen文件”SD合N傕计ffiK20:071ZHU

BuildtargetDcbuo

:init_meftubar(ctkwidget,menubar):void

・ch>Ml;hXXm/.L,,,「♦.,.X;O、XU"”、出:1八」。:,QWDZC.X":,;;cXhclp.cx

Projectt

Symbols118

▼QWorkspace119

126

,,MIS_GTK121

•t»Sources122

123

►Headers124

125

126

127

128

IM

130

m

132

133

134

135

13«

137

13«

139

140

141

142

一时3,

⑻,

Fll»

is>»e*'0、6tWA•力・a卡・BMH,b・gett.■ewunnIQURX1

,g〃UKlg,Qllk.MARU->WSS'«MlMrr'.«K»ma>l'tnt'

/rxxw/rtHVa«/co..)»■».传Up>lQn«l<crne«4tAnXStHAiMUaNIIaa

uir-8une120.ColumniimertiRwd/Write'default

(标准gnome菜单栏在最上面)

18

C语言课程设计实验报告

5.读取成功

点击相应节点右侧显示相关信息

6.添加单位

19

C语言课程设计实验报告

(添加成功提示)

20

C语言课程设计实验报告

7.添加科技成果

21

C语言课程设计实验报告

8.添加完成人员

文忤寿加amailwas

m加科按成果

:sut«_hjnc1{CtkWKjQet*button):Z

不加先成人员

•chsMt5.hXsX.XmytibxXXKit.XittMia-cXopeftie.cX

projecrSymbol%

l9

*QWorkspace2e

21fl>_____________________«5

▼,MIS_CTK22

»«2«:

»£»Sources23▼ttavivK

24KS

►Headen•水电口含ar更震应是tt

2s工作,位:

2e彭根

27SH:

28»网络tea需列

29京江

3«含海EW-

3A1成■屉名:

当月

所■成■名悻

3M3▼分钻式故・年哲理泰彼

35■里

36«UI

37

季东

38对

•自动化*林

48

日sort.dejstru41▼几51首理优化向■

e(o)42NA«

43

at13IX阳

m•金海\ooo\,关联MaiftlftJRtt的8《

0]luiwfcoa▼机械学陵

日⑴

-多£3行机R人看6左1

HI*

rw-内网\80\

,一叫mu贵江

mib"―.——-_,

S(2]zr/”>w“,《。aa・•・Q^nai«a-v«t>iufc*“—一,—>—■>]

S[3]B■•■«««riatw*l-anaM-MruMe)

/noK/znu/M/co9AMnlfl•|-wwM-MTMBtel

用⑷

une31.Column1Rea<3/wricedefault

9.添加错误返回信息

22

C语言课程设计实验报告

目录理目内容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论