




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流員工信息管理系統(tǒng)(數(shù)據(jù)結(jié)構(gòu)).精品文檔.員工信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告系 別: 計(jì)算機(jī)與信息工程系 班 級: B080501 姓 名: 李海鵬 學(xué) 號: B08050128 指導(dǎo)教師: 張紅霞 課設(shè)時(shí)間:2010-6-21到2010-6-25 摘要員工信息管理系統(tǒng)屬于信息管理系統(tǒng)。員工信息管理是每個(gè)公司不可缺少的。系統(tǒng)用C程序開發(fā),主要在于建立好一個(gè)合適的數(shù)據(jù)結(jié)構(gòu),并要求程序簡潔實(shí)用。本系統(tǒng)利用C語言簡潔、靈活,數(shù)據(jù)結(jié)構(gòu)豐富等特點(diǎn),編寫適合公司使用的系統(tǒng)。整個(gè)系統(tǒng)使用起來也比較方便,入手簡單,操作方便。論文主要介紹了程序設(shè)計(jì)過程、設(shè)計(jì)方案以及測
2、試過程,重點(diǎn)講解了設(shè)計(jì)過程中的思想,技術(shù)解決方案等等。關(guān)鍵字:員工信息管理,C程序,數(shù)據(jù)結(jié)構(gòu)目錄前言3第1章 課設(shè)題目4第2章 開發(fā)運(yùn)行環(huán)境及相關(guān)知識4第3章 程序總體設(shè)計(jì)53.1 主要功能模塊53.2 數(shù)據(jù)結(jié)構(gòu)6第4章 程序詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)74.1 輸入函數(shù)74.2 排序函數(shù)74.3 顯示函數(shù)74.4 查找函數(shù)74.5更改函數(shù)84.6 刪除函數(shù)84.7 主函數(shù)84.8 其他函數(shù)9第5章 系統(tǒng)功能測試95.1 系統(tǒng)主界面95.2 輸入數(shù)據(jù)95.3 顯示數(shù)據(jù)105.4 信息排序105.5 更改信息115.6 刪除信息11第6章 課設(shè)總結(jié)12第7章 程序清單13參考文獻(xiàn)22前言本課程設(shè)計(jì)旨在理論學(xué)習(xí)
3、和基礎(chǔ)實(shí)驗(yàn)的基礎(chǔ)上,開發(fā)規(guī)模較大的程序,掌握應(yīng)用計(jì)算機(jī)編程解決實(shí)際問題的基本方法,熟悉C程序開發(fā)的全過程,掌握數(shù)據(jù)結(jié)構(gòu)的使用方法,熟練應(yīng)用各種數(shù)據(jù)結(jié)構(gòu)。本次任務(wù)是根據(jù)給定的數(shù)據(jù)和程序,應(yīng)用單向鏈表處理一系列公司員工的信息。通過整個(gè)程序開發(fā)的過程,提高綜合應(yīng)用C語言的能力、編程和調(diào)試能力,為進(jìn)一步學(xué)習(xí)相關(guān)專業(yè)課程創(chuàng)建較扎實(shí)的理論基礎(chǔ)和實(shí)踐基礎(chǔ)。報(bào)告將分6個(gè)章節(jié)來詳細(xì)講述本次課設(shè)題目的開發(fā)過程。第1章主要描述課設(shè)的題目及要求;第2章來介紹程序開發(fā)運(yùn)行環(huán)境;第3章介紹程序主體設(shè)計(jì),網(wǎng)絡(luò)程序概要;第4章是對程序進(jìn)行詳細(xì)分析,對各個(gè)函數(shù)進(jìn)行詳細(xì)描述,并闡述程序?qū)崿F(xiàn)技術(shù)等信息;第5章為測試過程,主要用測試
4、過程中的圖片來表述最終信息;第6章也是最后一章,為本次實(shí)踐活動(dòng)的心得體會(huì)。第1章 課設(shè)題目1.1課設(shè)題目每個(gè)員工的信息包括:編號、姓名、性別、出生年月、學(xué)歷、職務(wù)、電話、住址等。系統(tǒng)能夠完成員工信息的查詢、更新、插入、刪除、排序等功能。1.2基本要求(1)每條記錄內(nèi),包括員工的個(gè)人信息,有:編號、姓名、性別、出生年月、學(xué)歷、職務(wù)、電話、住址等;(2)按不同關(guān)鍵字(如編號,姓名等),對所有員工的信息進(jìn)行排序;(3) 按照指定條件查找某員工所有信息;(4) 按編號對某個(gè)員工的信息進(jìn)行修改;(5) 加入新員工的信息,并實(shí)現(xiàn)排序;(6) 按編號刪除已離職的員工的信息。1.3 其他需求 程序除需完成基本
5、功能外,程序源代碼還應(yīng)具有良好的編程結(jié)構(gòu)和適當(dāng)?shù)淖⑨?,運(yùn)行界面清晰,提示內(nèi)容明確,易于操作。第2章 開發(fā)運(yùn)行環(huán)境及相關(guān)知識2.1 運(yùn)行環(huán)境軟件環(huán)境:Windows 2000,Windows XP和Windows NT4.0。2.2開發(fā)工具微軟公司的Microsoft Visual C+ 6.0。2.3開發(fā)工具簡介Visual C+是一個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C+1.0后,隨著其新版本的不斷問世,Visual C+已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。 雖然微軟公司推出了Visual C+.NET(Visual C+7.0),但它的應(yīng)
6、用的很大的局限性,只適用于Windows 2000,Windows XP和Windows NT4.0。所以實(shí)際中,更多的是以Visual C+6.0為平臺(tái)。 Visual C+6.0不僅是一個(gè)C+編譯器,而且是一個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment,IDE)。Visual C+6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 這些組件通過一個(gè)名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。第3章 程序總體設(shè)計(jì)3.1 主要功能模塊依據(jù)
7、程序的數(shù)據(jù)結(jié)構(gòu)和功能,遵照“自頂向下”原則,描述該程序的層次結(jié)構(gòu),在總體上包括數(shù)據(jù)的錄入、增加、刪除、查找、更改和數(shù)據(jù)的排序等功能模塊。主函數(shù)main()輸入顯示查找排序更改刪除退出按編號按姓名按編號按姓名圖3-1 程序主體3.2 數(shù)據(jù)結(jié)構(gòu)依據(jù)給定的數(shù)據(jù)格式,個(gè)人信息由九個(gè)字段來組成,即編號、姓名、性別、生日、學(xué)歷、職務(wù)、電話和住址,外加一個(gè)判斷關(guān)鍵字。本課程設(shè)計(jì)根據(jù)功能需求,使用線性結(jié)構(gòu)來組織數(shù)據(jù),因?yàn)閿?shù)據(jù)占據(jù)空間比較大,要對表中某項(xiàng)數(shù)據(jù)進(jìn)行操作,所以使用鏈表比較方便。結(jié)構(gòu)體定義:typedef struct Stuff char number10; /編號 char name10; /姓名
8、 char sex8; /性別 char birthday10; /生日 char degree20; /學(xué)歷 char business20; /職務(wù) char phone15; /電話 char place50; /住址 char con50; /判斷關(guān)鍵字 struct Stuff *next; /指針域 Stuff;信息存儲(chǔ):信息存儲(chǔ)結(jié)構(gòu)如圖3-2Head 指針域數(shù)據(jù)域 指針域數(shù)據(jù)域 指針域NULL圖 3-2 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)第4章 程序詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)4.1 輸入函數(shù)函數(shù)原型:Stuff *App(Stuff *head);函數(shù)功能:通過輸入各項(xiàng)數(shù)據(jù)給數(shù)據(jù)元素,來建立一個(gè)數(shù)據(jù)表。算法要點(diǎn):
9、(1) 用循環(huán)控制輸入記錄;(2) 為每一結(jié)構(gòu)體數(shù)據(jù)項(xiàng)輸入數(shù)據(jù);(3) 返回輸入記錄數(shù)。4.2 排序函數(shù)函數(shù)原型:void Sort(Stuff *head);void Scpy(char *p,char *q);int Sel(char ch,Stuff *p,Stuff *q);函數(shù)功能:按照指定關(guān)鍵字對員工信息進(jìn)行排序。算法要點(diǎn):(1)比較法對信息進(jìn)行排序; (2)使用交換函數(shù),對每項(xiàng)信息進(jìn)行交換。4.3 顯示函數(shù)函數(shù)原型:void Show(Stuff *head);函數(shù)功能:輸出表中所有節(jié)點(diǎn)的信息。算法要點(diǎn):使用循環(huán)輸出所有信息。程序清單:4.4 查找函數(shù)函數(shù)原型:Stuff *Se
10、arch(Stuff *head);函數(shù)功能:按照指定關(guān)鍵字,對相應(yīng)員工信息進(jìn)行查找。算法要點(diǎn):(1) 輸入字段和信息相應(yīng)字段的比較;(2) 函數(shù)中調(diào)用刪除和更改函數(shù)。4.5更改函數(shù)函數(shù)原型:Stuff *Change(Stuff *head,char n10);函數(shù)功能:輸入員工編號,查找到員工信息,對其信息進(jìn)行更新。算法要點(diǎn):(1) 信息查找;(2) 信息重新錄入及保存。4.6 刪除函數(shù)函數(shù)原型:Stuff *Del(Stuff *head,char n10);函數(shù)功能:查找到要?jiǎng)h除員工的相應(yīng)信息,并將其從表中永久的刪除。算法要點(diǎn):(1) 按關(guān)鍵字查找信息;(2) 鏈表中刪除節(jié)點(diǎn)信息,并釋
11、放節(jié)點(diǎn)空間。4.7 主函數(shù)主函數(shù)主要是調(diào)用以上的子函數(shù),用開關(guān)語句進(jìn)行選擇性的調(diào)用。大致程序如下: switch(Menu()case 1: 調(diào)用函數(shù)語句; break; case 2: 調(diào)用函數(shù)語句; break; case 0: 退出程序語句;default: printf("輸入錯(cuò)誤,請重新輸入!n");4.8 其他函數(shù)其他函數(shù)主要起到輔助功能,如菜單函數(shù),主要起到引導(dǎo)作用;釋放空間函數(shù),主要用于釋放已經(jīng)刪除節(jié)點(diǎn)的信息,或者釋放整個(gè)鏈表的節(jié)點(diǎn)信息。菜單函數(shù)原型:char Menu();釋放函數(shù)原型:void Fre(Stuff *head);第5章 系統(tǒng)功能測試5.1
12、 系統(tǒng)主界面圖 5-1 系統(tǒng)主界面5.2 輸入數(shù)據(jù)(1)輸入操作字符1;(2)輸入員工信息;(3)輸入“#”字符結(jié)束輸入。圖 5-2 輸入操作5.3 顯示數(shù)據(jù)圖 5-3 顯示信息5.4 信息排序圖 5-4信息排序5.5 更改信息圖 5-5 更正信息5.6 刪除信息圖 5-6刪除信息第6章 課設(shè)總結(jié)如何才能真正的去掌握編程的方法,如何才能真正的去理解書上的理論信息,理論知識用于實(shí)踐才是最終的目的。通過本次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),我對數(shù)據(jù)結(jié)構(gòu)的理論知識有了更為直接的認(rèn)識,從實(shí)際中獲得了很多寶貴的經(jīng)驗(yàn),這些對我以后做程序開發(fā)將是一筆很寶貴的財(cái)富。我有以下兩點(diǎn)感觸:(1)沒有解決不了的問題。這個(gè)程序在課設(shè)前
13、一周就開始著手編寫,中間遇到了不少的問題,由于以前寫過類似的程序,所以對其中的一些錯(cuò)誤很是敏感,也通過不少的途徑來解決了問題。比如,通過和網(wǎng)上的一些程序代碼的對比,解決了自己程序中輸出亂碼的問題。(2)注重團(tuán)隊(duì)協(xié)作。雖然此次課設(shè)是完全個(gè)人完成的,但是我還是要強(qiáng)調(diào)團(tuán)隊(duì)的重要性,因?yàn)槲覀円院笞唔?xiàng)的程序開發(fā)的道路上,沒有單槍匹馬的,都是一個(gè)團(tuán)隊(duì)協(xié)作完成的,所以今后的程序開發(fā)過程中,盡可能的和他人合作。萬事開頭難,學(xué)好編程,我還有很長的路要走。 第7章 程序清單#include "stdio.h"#include "stdlib.h"#include "
14、;windows.h " /清屏函數(shù)頭文件#include "string.h"typedef struct Stuff char number10; /編號 char name10; /姓名 char sex8; /性別 char birthday10; /生日 char degree20; /學(xué)歷 char business20; /職務(wù) char phone15; /電話 char place50; /住址 char con50; /判斷關(guān)鍵字 struct Stuff *next; Stuff;char Menu(); /菜單函數(shù)Stuff *App(St
15、uff *head); /添加函數(shù)void Sort(Stuff *head); /排序函數(shù)Stuff *Search(Stuff *head); /查找函數(shù)Stuff *Change(Stuff *head,char n10); /更改函數(shù)void Scpy(char *p,char *q); /排序中用于交換員工信息Stuff *Del(Stuff *head,char n10); /刪除函數(shù)int Sel(char ch,Stuff *p,Stuff *q); /判斷排序及關(guān)鍵字專用函數(shù)void Show(Stuff *head); /輸出函數(shù)void Fre(Stuff *head);
16、 /釋放函數(shù)int n=1; /定義全局變量,實(shí)現(xiàn)人數(shù)統(tǒng)計(jì)/菜單函數(shù)char Menu(void)int ch; printf("-菜單-n"); printf(" 1.添加員工信息n"); printf(" 2.員工信息排序n"); printf(" 3.查找員工信息n"); printf(" 4.輸出員工信息n"); printf(" 5.更改員工信息n"); printf(" 6.刪除員工信息n"); printf(" 0.退出n"
17、;);printf("-n");printf(“請選擇你的操作:”); scanf(" %d",&ch); return ch;/添加成員函數(shù)Stuff *App(Stuff *head)Stuff *p=NULL,*q=head; while(n)p=(Stuff *)malloc(sizeof(Stuff); /申請結(jié)構(gòu)體空間 if(p=NULL)printf("空間不足,自動(dòng)退出系統(tǒng)!n"); exit(0); p->next =NULL; /指針域?yàn)榭?printf("請輸入第%d名員工:n"
18、,n); printf(" 編號 | 姓名 | 性別 | 出生年月 | 學(xué)歷 | 職務(wù) | 電話 | 住址 :n"); getchar(); scanf("%s",p->number ); if(strcmp(p->number,"#")+n;scanf("%s%s%s%s%s%s%s",p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p->phone ,p->place ); p->con0=&
19、#39;0' /防止后面判斷出現(xiàn)隨機(jī)值 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;/排序函數(shù)void Sort(Stuff *head)char ch; Stuff *p,*q,*r; while(1)printf("請選擇排序條件:1.編號|2.姓名|0.退出n");get
20、char(); scanf("%c",&ch); if(ch='0') break; if(ch<'1'|ch>'2')printf("輸入錯(cuò)誤,請重新輸入!n"); continue; p=head; while(p->next!=NULL) /選擇排序q=p->next; r=p; while(q!=NULL)if(Sel(ch,r,q) /調(diào)用判斷函數(shù)r=q; q=q->next; if(r!=p) /交換信息Scpy(r->number,p->num
21、ber); 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->place,p->place); p=p->next; Show(head); /輸出/交換函數(shù)void Scpy(char *p,char *q)char c50;
22、strcpy(c,p); strcpy(p,q); strcpy(q,c);/判斷函數(shù)int Sel(char ch,Stuff *p,Stuff *q)switch(ch) /實(shí)現(xiàn)各個(gè)關(guān)鍵字查找case '1':return strcmp(q->number ,p->number )<0|strcmp(q->con ,p->number )=0 ; case '2': return strcmp(q->name ,p->name )<0|strcmp(q->con ,p->name )=0 ; def
23、ault : exit(0);/查找函數(shù)Stuff *Search(Stuff *head)Stuff *p=NULL,*q; int flag; /查找判斷 char ch,sh; /兩個(gè)控制變量 q=&a; while(1)printf("請輸入要查找的條件:1.編號2.姓名0.退出n"); scanf(" %c",&ch); if(ch='0') break; if(ch<'1'|ch>'2')printf("輸入錯(cuò)誤,請重新輸入!n");continu
24、e;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(" 編號 | 姓名 | 性別 | 出生年月 | 學(xué)歷 | 職務(wù) | 電話 | 住址 n%s t%s t%s t%s t%s t%s t%s t%sn",p->number ,p->nam
25、e ,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); /調(diào)用更改函數(shù)else if(sh='2')head=Del(head,p->number); /調(diào)用刪除函數(shù)flag=1;break;p=p->next ;if(
26、flag=0)printf("沒有找到該員工信息!n");return head;/更改函數(shù)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("找到員工,請輸入新的信息:n 編號 | 姓名 | 性別 | 出生年月 | 學(xué)歷 | 職務(wù) | 電話 | 住址 n");scanf("%s
27、%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); return head;/刪除函數(shù)Stuff *Del(Stuff *head,char n10)Stuff *p,*pr;int f
28、lag;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;/輸出函數(shù)void Show(Stuff *head)Stuff *p=head;int i=1;if(head!=NULL)printf("員工信息如下:n"); while(p!=NULL)printf("%d. %s %s %s %s %s %s %s %sn",i+,p->number ,p->name ,p->sex ,p-&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廉政風(fēng)險(xiǎn)防范管理工作實(shí)施方案(醫(yī)院版)
- 明廚亮灶視頻聯(lián)網(wǎng)監(jiān)管系統(tǒng)解決方案
- 老年友善管理工作制度(14篇)
- 海洋特色農(nóng)產(chǎn)品開發(fā)
- 2025年石首市市直初中小學(xué)選調(diào)教師考試筆試試題(含答案)
- 2025年山東奇瑞汽車多崗招聘考試筆試試題(含答案)
- 老年護(hù)理課件視頻下載
- 老年護(hù)理課件-衣著護(hù)理
- 老年醫(yī)學(xué)專業(yè)技能課件
- 老年人睡眠健康教育課件
- 高墩(40m高)安全專項(xiàng)施工方案(專家)
- 苯系物的危害及怎樣預(yù)防
- 第二十一章-醫(yī)療與護(hù)理文件記錄課件
- 配電室運(yùn)行維護(hù)投標(biāo)方案(技術(shù)標(biāo))
- (骨科)維生素D水平評估在骨科的應(yīng)用及研究新進(jìn)展課件
- 煙草證遷移申請書范本
- 中南大學(xué)工程測量實(shí)習(xí)報(bào)告
- 40篇 短文搞定3500詞匯
- 行風(fēng)建設(shè)培訓(xùn)課件
- 思政課說課稿課件
- 施耐德ATS48軟啟動(dòng)器使用手冊
評論
0/150
提交評論