




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、員工信息管理系統(tǒng)(數據結構)員工信息管理系統(tǒng)課程設計報告系 別:計算機與信息工程系班級:B080501姓名:李海鵬學號:B08050128指導教師:張紅霞課設時間:2010-6-21 至12010-6-25摘要員工信息管理系統(tǒng)屬于信息管理系統(tǒng)。員工信息管理是每個公司不可缺少的。系統(tǒng)用C程序開發(fā),主要在于建立好一個合適的數據結構, 并要求程序簡潔 實用。本系統(tǒng)利用C語言簡潔、靈活,數據結構豐富等特點,編寫適合公司使用的系統(tǒng)。整個系統(tǒng)使用起來也比較方便,入手簡單,操作方便。論文主要介紹了程序設計過程、設計方案以及測試過程,重點講解了設計過程中的思想,技術解決方案等等。關鍵字:員工信息管理,C程序,
2、數據結構3 / 32目錄前言 3第1章課設題目 4第2章開發(fā)運行環(huán)境及相關知識 4第3章程序總體設計 53.1 主要功能模塊 53.2 數據結構 6第4章程序詳細設計及實現(xiàn) 74.1 輸入函數 74.2 排序函數 74.3 顯示函數 74.4 查找函數 74.5 更改函數 84.6 刪除函數 84.7 主函數 84.8 其他函數 9第5章系統(tǒng)功能測試 95.1 系統(tǒng)主界面 95.2 輸入數據 95.3 顯示數據 105.4 信息排序 105.5 更改信息 115.6 刪除信息 11第6章課設總結 12第7 章 程序清單 13參考文獻 31前言本課程設計旨在理論學習和基礎實驗的基礎上,開發(fā)規(guī)模較
3、大的程序,掌握應用計算機編程解決實際問題的基本方法, 熟悉C程序開發(fā)的全過程,掌握數據結構的使用方法,熟練應用各種數據結構。本次任務是根據給定的數據和程序,應用單向鏈表處理一系列公司員工的信息。通過整個程序開發(fā)的過程,提高綜合應用 C語言的能力、編程和調試能力, 為進一步學習相關專業(yè)課程創(chuàng)建較扎實的理論基礎和實踐基礎。報告將分6 個章節(jié)來詳細講述本次課設題目的開發(fā)過程。第 1 章主要描述課設的題目及要求;第 2 章來介紹程序開發(fā)運行環(huán)境;第 3 章介紹程序主體設計,網絡程序概要;第 4 章是對程序進行詳細分析,對各個函數進行詳細描述,并闡述程序實現(xiàn)技術等信息;第 5 章為測試過程,主要用測試過
4、程中的圖片來表述最終信息;第 6 章也是最后一章,為本次實踐活動的心得體會。員工信息管理系統(tǒng)(數據結構)第 1 章 課設題目1.1 課設題目 每個員工的信息包括:編號、姓名、性別、出生年月、學歷、職務、電話、住址等。系統(tǒng)能夠完成員工信息的查詢、更新、插入、刪除、排序等功能。1.2 基本要求( 1)每條記錄內,包括員工的個人信息,有:編號、姓名、性別、出生年月、學歷、職務、電話、住址等;( 2)按不同關鍵字(如編號,姓名等),對所有員工的信息進行排序;(3) 按照指定條件查找某員工所有信息;(4) 按編號對某個員工的信息進行修改;(5) 加入新員工的信息,并實現(xiàn)排序;(6) 按編號刪除已離職的員
5、工的信息。1.3 其他需求程序除需完成基本功能外,程序源代碼還應具有良好的編程結構和適當的注釋,運行界面清晰,提示內容明確,易于操作。第 2 章 開發(fā)運行環(huán)境及相關知識2.1 運行環(huán)境軟件環(huán)境:Windows 2000,Windows XP和 Windows NT4.0。2.2 開發(fā)工具微軟公司的Microsoft Visual C+ 6.0。Visual C+是一個功能強大的可視化軟件開發(fā)工具。自 1993年Microsoft 公司推出Visual C+1.0后,隨著其新版本的不斷問世,Visual C+E成為專業(yè) 程序員進行軟件開發(fā)的首選工具。雖然微軟公司推出了 Visual C+.NET
6、(Visual C+7.0),但它的應用的 很大的局限性,只適用于 Windows 2000,Windows XP和 Windows NT4.0。所以實 際中,更多的是以Visual C+6.0為平臺。Visual C+6.0不僅是一個C+S譯器,而且是一個基于Windows操作系統(tǒng) 的可視化集成開發(fā)環(huán)境(integrated development environment,IDE )。 Visual C+6.0由許多組件組成,包括編輯器、調試器以及程序向導AppWizard、類向導 Class Wizard等開發(fā)工具。這些組件通過一個名為 Developer Studio 的組件 集成為和諧
7、的開發(fā)環(huán)境。第3章程序總體設計3.1 主要功能模塊依據程序的數據結構和功能,遵照“自頂向下”原則,描述該程序的層次結 構,在總體上包括數據的錄入、增加、刪除、查找、更改和數據的排序等功能模 塊。圖3-1程序主體5 / 32員工信息管理系統(tǒng)(數據結構)3.2 數據結構依據給定的數據格式,個人信息由九個字段來組成,即編號、姓名、性別、 生日、學歷、職務、電話和住址,外加一個判斷關鍵字。本課程設計根據功能需求,使用線性結構來組織數據,因為數據占據空間比 較大,要對表中某項數據進行操作,所以使用鏈表比較方便。結構體定義:typedef struct Stuff char number10;/編號cha
8、r name10;/姓名char sex8;/性別char birthday10;/生日char degree20;/學歷char business20;/職務char phone15;/電話char place50;/住址char con50;/判斷關鍵字struct Stuff *next;/指針域 Stuff;7 / 32Head指針域信息存儲:信息存儲結構如圖3-2數據域指針域圖3-2鏈式存儲結構數據域 指針域 一* NULL員工信息管理系統(tǒng)(數據結構)第 4 章 程序詳細設計及實現(xiàn)4.1 輸入函數函數原型:Stuff *App(Stuff *head);函數功能:通過輸入各項數據給數
9、據元素,來建立一個數據表。算法要點:(1) 用循環(huán)控制輸入記錄;(2) 為每一結構體數據項輸入數據;4.2 排序函數函數原型:voidvoid int(3) 返回輸入記錄數。Sort(Stuff *head);Scpy(char *p,char *q);Sel(char ch,Stuff *p,Stuff *q);函數功能:按照指定關鍵字對員工信息進行排序。算法要點:(1) 比較法對信息進行排序;(2) 使用交換函數,對每項信息進行交換。4.3 顯示函數函數原型:voidShow(Stuff *head);函數功能:輸出表中所有節(jié)點的信息。算法要點:使用循環(huán)輸出所有信息。程序清單:4.4 查找
10、函數函數原型:Stuff *Search(Stuff *head);函數功能:按照指定關鍵字,對相應員工信息進行查找。算法要點:( 1) 輸入字段和信息相應字段的比較;9 / 32員工信息管理系統(tǒng)(數據結構)( 2) 函數中調用刪除和更改函數。4.5 更改函數函數原型:Stuff *Change(Stuff *head,char n10);函數功能:輸入員工編號,查找到員工信息,對其信息進行更新。算法要點:( 1) 信息查找;( 2) 信息重新錄入及保存。4.6 刪除函數函數原型:Stuff *Del(Stuff *head,char n10);函數功能:查找到要刪除員工的相應信息,并將其從表
11、中永久的刪除。算法要點:( 1) 按關鍵字查找信息;( 2) 鏈表中刪除節(jié)點信息,并釋放節(jié)點空間。4.7 主函數主函數主要是調用以上的子函數,用開關語句進行選擇性的調用。大致程序如下:switch(Menu()case 1: 調用函數語句;break;case 2: 調用函數語句;break;case 0:退出程序語句;default:printf("輸入錯誤,請重新輸入!n");4.8其他函數其他函數主要起到輔助功能,如菜單函數,主要起到引導作用;釋放空間函 數,主要用于釋放已經刪除節(jié)點的信息,或者釋放整個鏈表的節(jié)點信息。菜單函數原型:charMenu();釋放函數原型:
12、voidFre(Stuff *head);第5章系統(tǒng)功能測試5.1 系統(tǒng)主界面圖mpnK andgcAdmEr£ 建立1 Oebuti Ceo l.ere"口1 x|12 3 4 5 6 0息信排信信信信 自型工息工工工工 員一加工找出改峪 ,一誨火世輸更刪退話輸入你要選擇的操作:圖5-1系統(tǒng)主界面5.2 輸入數據(1)輸入操作字符1;(2)輸入員工信息;(3)輸入“#"字符結束輸入11 / 32員工信息管理系統(tǒng)(數據結構)15 / 32巔八第2聲員工; 半節(jié):腕【性別汪nt鐘鍵繼續(xù)2- - - -加工找日改除出法R宜輸M刪退言單工息工工工丁息自3息息息信=111
13、信信信青輸入醫(yī)工值息 百揩輸入中結束 事應疊翳利:1 li n出生年月:學歷i職務!電話2010-6 CMes 110出生年月:學歷t職務;電話:住址:*bc:住址:圖5-2輸入操作5.3 顯示數據方諭入你巽選擇的操作;4員工信息如下:1號;編號:姓名;性別i出生年月S學歷:職務:電話;住址1. 01 li 皿2B1B-6 CHas 113 ahc按Enter鍵繼續(xù)-圖5-3顯示信息5.4 信息排序請輸入你要選祥的操作工2請選擇排序條件:1.褊號姓名退出員工信息如下:序號I編號1.31S姓名li:性別FII出生年月學歷1989-10 C職務!電話Nas 110:住址a be序號f編號2-02i
14、姓名 工e,性別請選擇排序條件編號姓名;d退出0核Ent”肄繼續(xù)共;出生年月?學歷1993-11 H;聘務;電話Nas 110:住址 abc圖5-4信息排序5.5更改信息謂輸入你要選擇的操作;入區(qū)工編號® .?i建商”翻年月T歷t職務I曷T信息如下:序痔;編號;姓名1. WZ Li技EM”鍵轉去mas:性別:出生年月J學歷5.6刪除信息人人成為宜 請Mm珊信投你口琴冬隔唇丐 選編 要口,練 即 士一電話I12Q;職務即等圖5-5更正信息住址41 heJ老話:住址12&a be6 佑 操20 二圖5-6刪除信息員工信息管理系統(tǒng)(數據結構)第 6 章 課設總結如何才能真正的去掌握
15、編程的方法,如何才能真正的去理解書上的理論信息, 理論知識用于實踐才是最終的目的。通過本次數據結構課程設計,我對數據結構的理論知識有了更為直接的認識,從實際中獲得了很多寶貴的經驗,這些對我以后做程序開發(fā)將是一筆很寶貴的財富。我有以下兩點感觸:( 1)沒有解決不了的問題。這個程序在課設前一周就開始著手編寫,中間遇到了不少的問題,由于以前寫過類似的程序,所以對其中的一些錯誤很是敏感,也通過不少的途徑來解決了問題。比如, 通過和網上的一些程序代碼的對比,解決了自己程序中輸出亂碼的問題。( 2)注重團隊協(xié)作。雖然此次課設是完全個人完成的,但是我還是要強調團隊的重要性,因為我們以后走項的程序開發(fā)的道路上
16、,沒有單槍匹馬的,都是一個團隊協(xié)作完成的,所以今后的程序開發(fā)過程中,盡可能的和他人合作。萬事開頭難,學好編程,我還有很長的路要走。第 7 章 程序清單#include "stdio.h"/ 清屏函數頭文件#include "stdlib.h"#include "windows.h#include "string.h" typedef struct Stuff char number10;/ 編號char name10;/ 姓名char sex8;/ 性別char birthday10;/ 生日char degree20;/
17、學歷37 / 32char business20;/ 職務char phone15;/ 電話char place50;/ 住址char con50;/ 判斷關鍵字struct Stuff *next;Stuff;charMenu();/ 菜單函數Stuff*App(Stuff *head);/ 添加函數voidSort(Stuff *head);/ 排序函數Stuff*Search(Stuff *head);/ 查找函數Stuff*Change(Stuff *head,char n10);/ 更改函數voidScpy(char *p,char *q);/ 排序中用于交換員工信息Stuff*De
18、l(Stuff *head,char n10);/ 刪除函數intSel(char ch,Stuff *p,Stuff *q);/ 判斷排序及關鍵字專用函數voidShow(Stuff *head);/ 輸出函數voidFre(Stuff *head);/ 釋放函數intn=1;/ 定義全局變量,實現(xiàn)人數統(tǒng)計/ 菜單函數char Menu(void)int ch;printf(" 菜單 n");printf("1.添加員工信息n");printf("2.員工信息排序n");printf("3.查找員工信息n");p
19、rintf("4.輸出員工信息n");printf("5.更改員工信息n");printf("6.刪除員工信息n");printf("0.退出 n");printf("n");printf( “請選擇你的操作:”);scanf(" %d",&ch);return ch;/ 添加成員函數Stuff *App(Stuff *head)Stuff *p=NULL,*q=head;while(n)p=(Stuff *)malloc(sizeof(Stuff);/ 申請結構體空
20、間if(p=NULL)printf(" 空間不足,自動退出系統(tǒng)!n");exit(0);p->next =NULL;/ 指針域為空printf(" 請輸入第%d 名員工 :n",n);printf(" 編號 | 姓名 | 性別 | 出生年月| 學歷 | 職務 | 電話 | 住址 :n");getchar();scanf("%s",p->number );if(strcmp(p->number,"#")+n;scanf("%s%s%s%s%s%s%s",p-&
21、gt;name ,p->sex ,p->birthday ,p->degree ,p->bu siness ,p->phone ,p->place );p->con0='0'/ 防止后面判斷出現(xiàn)隨機值if(head=NULL)head=p;elsewhile(q->next !=NULL)q=q->next ;q->next =p;q=p;/ 尾插法if(!strcmp(p->number ,"#")free(p);/ 完成添加,釋放多余空間break;return head;/ 排序函數vo
22、id Sort(Stuff *head)char ch;Stuff *p,*q,*r;while(1)printf(" 請選擇排序條件:1.編號 |2.姓名 |0.退出 n");getchar();scanf("%c",&ch);if(ch='0') break;if(ch<'1'|ch>'2')printf(" 輸入錯誤,請重新輸入!n");continue;/ 選擇排序p=head;while(p->next!=NULL)q=p->next;r=p;w
23、hile(q!=NULL)if(Sel(ch,r,q)/ 調用判斷函數r=q;q=q->next;if(r!=p)/ 交換信息Scpy(r->number,p->number);Scpy(r->name,p->name);Scpy(r->sex,p->sex);Scpy(r->birthday,p->birthday);Scpy(r->degree,p->degree);Scpy(r->business,p->business);Scpy(r->phone,p->phone);Scpy(r->pla
24、ce,p->place);p=p->next;Show(head);/ 輸出/ 交換函數void Scpy(char *p,char *q)char c50;strcpy(c,p);strcpy(p,q);strcpy(q,c);/ 判斷函數int Sel(char ch,Stuff *p,Stuff *q)switch(ch)/ 實現(xiàn)各個關鍵字查找case '1':return)=0)=0 ;strcmp(q->number ,p->number )<0|strcmp(q->con ,p->numbercase '2'
25、:return strcmp(q->name ,p->name )<0|strcmp(q->con ,p->namedefault :exit(0);/ 查找函數Stuff *Search(Stuff *head)/ 查找判斷/ 兩個控制變量Stuff *p=NULL,*q;intflag;charch,sh;q=&a;while(1)printf(" 請輸入要查找的條件:1.編號 2.姓名0.退出n");scanf(" %c",&ch);if(ch='0')break;if(ch<
26、39;1'|ch>'2')printf(" 輸入錯誤,請重新輸入!n");continue;getchar();printf(" 請輸入 :");gets(q->con);p=head;/ 指向表頭flag=0;while(p!=NULL)if(strcmp(q->con,p->number)=0|strcmp(q->con,p->name)=0)printf(" 員工信息如下:n");printf(" 編號 | 姓名 | 性別 | 出生年月| 學歷 | 職務 |
27、電話 | 住址n%st%st%st%st%st%st%st%sn",p->number ,p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p-> phone ,p->place );printf(" 是否需要:1.更改2.刪除3.繼續(xù) n");scanf(" %c",&sh);if(sh='1')Change(head,p->number);/ 調用更改函數else if(sh='2')hea
28、d=Del(head,p->number);/ 調用刪除函數flag=1;break;p=p->next ;if(flag=0)printf(" 沒有找到該員工信息!n");return head;/ 更改函數Stuff *Change(Stuff *head,char n10)Stuff *p=head;int flag=0;if(head=NULL)printf(" 信息表為空,請先建立信息表!n");elsewhile(p!=NULL)if(!strcmp(p->number,n)printf(" 找到員工,請輸入新的信
29、息:n 編號 | 姓名 | 性別 | 出生年月|學歷 | 職務 | 電話 | 住址 n");scanf("%s%s%s%s%s%s%s%s",p->number ,p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p->phone ,p->place );printf(" 員工信息如下:n");flag=1;p=p->next;if(flag=0)printf(" 未找到該員工信息!n");Show(head);r
30、eturn head;/ 刪除函數Stuff *Del(Stuff *head,char n10)Stuff *p,*pr;int flag;flag=0;p=head,pr=head;if(head=NULL)printf(" 未找到員工信息!n");elsewhile(strcmp(p->number ,n)&&p->next !=NULL)pr=p;p=p->next ;if(!strcmp(p->number ,n)if(p=head)head=p->next ;elsepr->next=p->next ;free(p);printf(" 刪除成功!n");n-;elseprintf(" 未找到員工信息!n");Show(head);return head;/ 輸出函數void Show(Stuff *head)Stuff *p=head;int i=1;if(head!=NULL)printf(" 員工信息如下:n");while(p!=NULL)printf(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省深圳市寶安區(qū)文匯學校2020-2021學年八年級下學期3月月考數學試題
- 生物-山東省淄博市濱州市2024-2025學年度2025屆高三模擬考試(淄博濱州一模)試題和答案
- 2020-2021深圳南聯(lián)學校初中部小學三年級數學上期中第一次模擬試題含答案
- 火災逃生知識培訓課件
- 2025年中考道德與法治一輪復習:九年級下冊必背考點提綱
- 電梯消防施工方案
- 2025年高考地理一輪復習:人教版(2019)高中地理必修第二冊知識點背誦提綱
- 農村超級地基施工方案
- 鋼制門窗防水施工方案
- 2025年天津市河東區(qū)高三一模高考數學模擬試卷(含答案)
- 2024年黑龍江公務員《行政職業(yè)能力測驗》試題真題及答案
- 2025年鄂爾多斯職業(yè)學院單招職業(yè)適應性測試題庫必考題
- 項目立項申請書與立項調研報告
- 2025年企業(yè)與個體工商戶長期供銷合同模板
- 2025年全民國家安全教育日主題教育課件
- 北京市石景山區(qū)2024-2025學年高三上學期期末英語試題【含答案解析】
- 聲學基礎課后題答案
- 腫瘤專業(yè)十種常見疾病質量控制指標全年統(tǒng)計表
- 體育與健康-羽毛球運動
- 2025年南京信息職業(yè)技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2024年南昌健康職業(yè)技術學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
評論
0/150
提交評論