科技成果信息管理系統(tǒng)-大學C語言課程設計實驗報告_第1頁
科技成果信息管理系統(tǒng)-大學C語言課程設計實驗報告_第2頁
科技成果信息管理系統(tǒng)-大學C語言課程設計實驗報告_第3頁
科技成果信息管理系統(tǒng)-大學C語言課程設計實驗報告_第4頁
科技成果信息管理系統(tǒng)-大學C語言課程設計實驗報告_第5頁
已閱讀5頁,還剩144頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

華中科技大學計算機科學與技術學院

《C語言程序設計》課程設計

基礎部分實驗報告

題目:科技成果信息管理系統(tǒng)

專業(yè):計算機科學與技術

班級:1204

學號:

姓名:

成績:

指導教師:

目錄

一、系統(tǒng)功能結(jié)構設計.................................................1

二、數(shù)據(jù)結(jié)構設計.................................................1

三、程序結(jié)構...................................................4

四、函數(shù)原型及功能..................................................9

五、試驗結(jié)果.................................................13

六、實驗體會...................................................29

七、附錄I:參考文獻....................................................31

八、附錄2:程序清單....................................................31

C語言課程設計實驗報告

一、系統(tǒng)功能結(jié)構設計

航科技成果信息管理系統(tǒng)由五大功能模塊組成:文件模塊,編輯模塊,查詢模塊,統(tǒng)計

模塊,幫助模塊。如下圖所示:

文件模塊編輯模塊■查詢模塊■統(tǒng)計模塊幫助模塊

加載數(shù)據(jù)信添加單位查詢單位1-+

唯軟件信息

及祚者信

m

查詢科技-息

數(shù)

成果.

查詢完成

人員統(tǒng)計各單

位成果排

統(tǒng)計50歲

以下第一

完成人

二、數(shù)據(jù)結(jié)構設計

1.單位信息鏈結(jié)點結(jié)構(DEPTNODE)及用法

typedefstructdept_node

i

C語言課程設計實驗報告

charnumber[8];/*單位編號*/

charname[30];/*單位名稱*/

charPIC[20];/*負責人*/

structdept_node*next;/*指向下一結(jié)點*/

structarchs_node*achs;/*指向科技成果信息鏈結(jié)點的指針*/

GtkTreelteriter;/*treeview中對應treeiter*/

}DEPT_NODE;

中文字段名類型及長度變量名舉例

單位編號char[8]43007401

number

單位名稱char[30]nameHuazhong_university_of_sci&tech

負責人char[20]PICLi_peigeng

2.科技成果信息鏈結(jié)點結(jié)構(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;/*指向下一節(jié)點*/

structmember_node*members;/*指向完成人員信息結(jié)點的指*/

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.完成人員信息鏈結(jié)點結(jié)構(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;/*指向下一個結(jié)點*/

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.三方向的十字交叉鏈表結(jié)構

5.登陸窗體控件結(jié)構體(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;

說明:將登陸窗體相關控件獨立成一個結(jié)構體

6.指向3種節(jié)點的指針聯(lián)合及用法

typedefunionnodep

{

structdept_node*dept;

structachs_node*achs;

structmember_node*member;

}nodep;

說明:用于3種結(jié)構都會用到但不會同時用到的情形

7.兩個傳遞參數(shù)的結(jié)構及其用法

structnodecreate

4

C語言課程設計實驗報告

GtkWidget*window;

GtkWidget*entry[9];

nodepunp;

inttype;

);

structqueryjudge

{

GtkWidget*entry;

intflag;

);

說明:GTK信號連接g_signal_connected將函數(shù)與信號鏈接后之內(nèi)傳遞一個參

數(shù)給函數(shù),所以定義這兩個結(jié)構分別將幾個參數(shù)結(jié)合在一起傳遞

三、程序結(jié)構

1.主程序運行流程

C語言課程設計實驗報告

6

C語言課程設計實驗報告

7

C語言課程設計實驗報告

3.添加流程

試用殛

entry_info?^

根據(jù)type生成

對應的輸入框

點擊確定

-Add_nodegiiz-

傳遞的參數(shù)struct

nodecreate

包含了entry三的text

和type

根捏type與態(tài)分犯相

括入關

敗調(diào)目相應的insert函數(shù)

將pNew鏈在相它位置

在梃狀列表里添加相

應選項

8

C語言課程設計實驗報告

4.單位查詢流程

9

C語言課程設計實驗報告

5.統(tǒng)計50歲以下第一完成人流程

10

C語言課程設計實驗報告

四、函數(shù)原型及功能

(所有GtkWidget*button參數(shù)均為與消息鏈接用)

1.登陸模塊

〃功能:登錄框初始化函數(shù)

〃輸入?yún)?shù):

〃返回值:無

voidinit_login_widget()

〃功能:登錄驗證函數(shù),點擊login按鈕時調(diào)用

〃輸入?yún)?shù):

〃返回值:無

voidlogin(GtkWidget*widget,gpointerdata)

2.圖形界面模塊

/**初始化部分變量,再依次調(diào)用各函數(shù)初始化界面各部分*/

intmain(intargc,char*argv口)

/**初始化菜單欄*/

voidinit_menubar(GtkWidget*menubar)

/**初始化目錄*/

voidcreate_view_and_model(void)

/**初始化顯示欄*/

voidinit_show(GtkWidget*list)

/**改變狀態(tài)欄及顯示欄*/

voidon_changed(GtkWidget*widget,gpointerstatusbar)

11

C語言課程設計實驗報告

〃功能:將選中的節(jié)點信息在顯示欄中顯示出來

〃輸入?yún)?shù):iter

〃返回值:無

intShow_Node(GtkTreeIteriter)〃值傳遞不影響selectediter

/**對應3個節(jié)點顯示的3個函數(shù),返回對應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.文件模塊

〃功能:讀取數(shù)據(jù)文件

〃輸入?yún)?shù):

〃返回值:re的二進制前3位記錄了三個數(shù)據(jù)文件是否成功打開,1為成功

intLoadData(GtkWidget*button)

〃功能:讀取數(shù)據(jù)文件中數(shù)據(jù)到鏈表中

〃輸入?yún)?shù):phead單位節(jié)點頭指針的地址

〃返回值:re的二進制前3位記錄了三個數(shù)據(jù)文件是否成功打開,1為成功

intLoadList(DEPT_NODE**phead)

〃功能:將鏈表中節(jié)點添加到左側(cè)樹狀列表中

〃輸入?yún)?shù):

〃返回值:

voidrebuildtreeQ

12

C語言課程設計實驗報告

〃功能:存儲數(shù)據(jù)文件

〃輸入?yún)?shù):

〃返回值:flag的二進制前3位記錄了三個數(shù)據(jù)文件是否成功打開,1為成功

intSaveData(GtkWidget*button)

〃功能:將鏈表中數(shù)據(jù)存儲在數(shù)據(jù)文件中

〃輸入?yún)?shù):phead單位節(jié)點頭指針

〃返回值:flag的二進制前3位記錄了三個數(shù)據(jù)文件是否成功打開,1為成功

intSaveList(DEPT_NODE*phead)

〃功能:推出前提示保存

〃輸入?yún)?shù):

〃返回值:

voidquit_save(GtkWidget*button)

4.查詢模塊

〃功能:根據(jù)type彈出一個查詢框,再分別調(diào)用對應的Query函數(shù)

〃輸入?yún)?shù):type對應枚舉的幾種類型

〃返回值:無

voidQuery_info(GtkWidget*button,inttype)

〃功能:查詢學院

〃輸入?yún)?shù):in包含iter和名稱的結(jié)構

〃返回值:無

voidQuery_Dept(GtkWidget*button,structqueryJudge*in)

〃功能:根據(jù)type彈出一個查詢框,再分別調(diào)用對應的Query函數(shù)

〃輸入?yún)?shù):type對應枚舉的幾種類型

〃返回值:無

voidQuery_info(GtkWidget*button,inttype)

〃功能:查詢完成人員

〃輸入?yún)?shù):in包含iter和名稱的結(jié)構

〃返回值:無

voidQuery_Member(GtkWidget*button,structqueryjudge*in)

13

C語言課程設計實驗報告

〃功能:展開并跳轉(zhuǎn)至指定iter

〃輸入?yún)?shù):itertreeview中的一個目標iter

〃返回值:無

voidexpand_select(GtkTreeIteriter)

〃功能:按.稱搜索單位

〃輸入?yún)?shù):D_name單位名稱

〃返回值:單位節(jié)點指針

DEPT_NODE*DEPT_search(char*D_name)

〃功能:按名稱搜索癡技成果節(jié)點

〃輸入?yún)?shù):A_name科技成果節(jié)點名稱,ACHS所在學院頭科技成果節(jié)點指針

〃返回值:科技成果節(jié)點節(jié)點指針

ACHS_NODE*ACHS_search(char*A_name,ACHS_NODE*ACHS)

〃功能:按名稱搜索藕人員節(jié)點

〃輸入?yún)?shù):M_name完成人員節(jié)點名稱,ACHS所屬科技成果頭完成人員節(jié)點

指針

〃返回值:完成人員節(jié)點節(jié)點指針

MEMBER_NODE*MEMBER_search(char*M_name,MEMBER_NODE

*MEMBER)

5.添加模塊

〃功能:彈出一個輸入框

〃輸入?yún)?shù):type對應枚舉的幾種類型

〃返回值:無

voidentry_info(GtkWidget*button,inttype)

〃功能:添加3種節(jié)點統(tǒng)一函數(shù),由entry_info確定按鈕調(diào)用

〃輸入?yún)?shù):

〃返回值:無

voidAdd_node(GtkWidget*button,structnodecreate*nodec)

〃功能:屆入科技成果節(jié)點函數(shù),由Add_Node中情況3調(diào)用

〃輸入?yún)?shù):pNew指向新節(jié)點的指針

〃返回值:對應單位節(jié)點指針

DEPT_NODE*insert_ACHS(ACHS_NODE*pNew)

〃功能:插入完成人員節(jié)點函數(shù),由Add_Node中情況4調(diào)用

〃輸入?yún)?shù):pNew指向新節(jié)點的指針

〃返回值:對應科技成果節(jié)點指針

ACHS_NODE*insert_MEMBER(MEMBER_NODE*pNew)

6.刪除模塊

〃功能:刪除3種節(jié)點統(tǒng)一函數(shù),由“刪除”按鈕調(diào)用

〃輸入?yún)?shù):

〃返回值:無

voidDel_Node(GtkWidget*button)

14

C語言課程設計實驗報告

〃功能:刪除單位節(jié)點,由Del_Node函數(shù)case2調(diào)用

〃輸入?yún)?shù):name單位名稱

〃返回值:int1為有錯,0為正常

intDel_Dept(char*name)

〃功能:刪除科技成果

節(jié)點,由Del_Node函數(shù)case2調(diào)用

〃輸入?yún)?shù):name科技成果名稱,P_name對應單位名稱

〃返回值:int1為有錯,0為正常

intDel_Achs(char*name,char*P_name)

〃功能:刪除完成人員節(jié)點,由Del_Node函數(shù)case4調(diào)用

〃輸入?yún)?shù):name完成人員名稱,P_name對應科技成果名稱,PP_name對應

單位名稱

〃返回值:inti為有錯,0為正常

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

7.編輯模塊

〃功能:彈出…個編輯框

〃輸入?yún)?shù):

〃返回值:無

intEdit_info(GtkWidget"button)

〃功能:編輯節(jié)點

〃輸入?yún)?shù):

〃返回值:無

voidEdit_Node(GtkWidget*button,structnodecreate*nodec)

8.統(tǒng)計模塊

〃功能:彈出一個統(tǒng)計框,由傳入?yún)?shù)設置具體內(nèi)容

〃輸入?yún)?shù):title統(tǒng)計框標題,coll第一列標題,col2第二列標題,in傳入的

model

〃返回值:無

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

〃功能:家計各單位科技成果數(shù)量,調(diào)用Statis_info顯示統(tǒng)計結(jié)果

〃輸入?yún)?shù):

〃返回值:無

voidstatis_funcl(GtkWidget*button)

〃功能:條計各單位完成人員成果排名,調(diào)用Statis_info顯示統(tǒng)計結(jié)果

〃輸入?yún)?shù):

〃返回值:無

voidstatis_func2(GtkWidget"button)

〃功能:.計所有50歲以下第一完成人,調(diào)用Statis_info顯示統(tǒng)計結(jié)果

〃輸入?yún)?shù):

〃返回值:無

voidstatis_func3(GtkWidget*button)

15

C語言課程設計實驗報告

9.幫助模塊

〃功能:彈出軟件信息及作者信息

〃輸入?yún)?shù):

〃返回值:無

voidhelp_about(GtkWidget:}Jbutton)

五、試驗結(jié)果

編譯環(huán)境:Ubuntulinux64位

MingwGcc

(源代碼配置好后可跨平臺編譯)

GTK版本:GTK+2.41

開發(fā)IDE:Codeblocks12.11

1.系統(tǒng)登陸

輸對自動進入

輸錯顯示錯誤

16

C語言課程設計實驗報告

2.登陸成功進入主界面

3.全屏模式

17

C語言課程設計實驗報告

■:■令-20:561ZHU

瑁目內(nèi)B

史憎江號:044如

??:91江

工作81位:什?機學S?

性例;

網(wǎng)格碳0代科舅

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

取樣:MHI

成■排菖:4

分布式故挺第蛻

學年所■成事2梅IfettH

▼目叨化學除

*幾5!俵理優(yōu)化網(wǎng)一

?美aiiaiis融東統(tǒng)的X性沖恬

▼磯H孚蹂

?多足》打機0人道動投朝

0W

張江

4.讀取數(shù)據(jù)

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.讀取成功

點擊相應節(jié)點右側(cè)顯示相關信息

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?網(wǎng)絡tea需列

29京江

3?含海EW-

3A1成■屜名:

當月

所■成■名悻

3M3▼分鉆式故?年哲理泰彼

35■里

36?UI

37

季東

38對

?自動化*林

48

日sort.dejstru41▼幾51首理優(yōu)化向■

e(o)42NA?

43

at13IX陽

m?金海\ooo\,關聯(lián)MaiftlftJRtt的8《

0]luiwfcoa▼機械學陵

日⑴

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

HI*

rw-內(nèi)網(wǎng)\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語言課程設計實驗報告

目錄理目內(nèi)容

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論