版權說明:本文檔由用戶提供并上傳,收益歸屬內(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作計劃新聞部第六屆工作計劃
- 睡美蓮紡織品創(chuàng)業(yè)計劃書創(chuàng)業(yè)計劃書
- 脫貧攻堅幫扶工作總結(jié)計劃及思路
- 初三數(shù)學教師教學工作計劃
- 2025二年級新學期數(shù)學教研組的工作計劃
- 工作計劃it行業(yè)
- 四年美術下冊教學計劃
- 實習生教學工作計劃錦集
- 《城市規(guī)劃展廳》課件
- 《大學計算機基礎》課件-第3章 操作系統(tǒng)與應用
- 供應鏈環(huán)境下新寶公司庫存管理優(yōu)化
- 初高中英語教學銜接結(jié)題報告
- 商業(yè)綜合體(購物中心)商業(yè)運營管理內(nèi)容及管理手冊
- 中國書法欣賞之楷書欣賞PPT課件
- 江森ADS備份及恢復數(shù)據(jù)操作手冊
- 學校電教設備使用記錄表
- 工程量清單項目編碼完整版
- 項目工程質(zhì)量管理體系
- 《高壓電動機保護》PPT課件.ppt
- 在全市油氣輸送管道安全隱患整治工作領導小組第一次會議上的講話摘要
- 小學英語后進生的轉(zhuǎn)化工作總結(jié)3頁
評論
0/150
提交評論