第一篇:2012生產(chǎn)實習(xí)報告
車輛工程專業(yè)
生產(chǎn)實習(xí)報告 姓名:
班級:
學(xué)號:
指導(dǎo)教師:
提交報告時間:年月
日實習(xí)的時間與地點
實習(xí)時間地點
2012.3.7南京依維柯公司江寧廠區(qū)
2012.3.9汽車鍛造有限公司
2012.3.14汽車轉(zhuǎn)向器有限公司
2012.4.3申華汽車電子有限公司
2012.4.9南京第一機床廠有限公司(原南京機床廠)實習(xí)的目的與內(nèi)容
1:通過下廠生產(chǎn)實習(xí),深入生產(chǎn)第一線進行觀察和調(diào)查研究,獲取必須的感性知識和使學(xué)生叫全面地了解機械制造廠的生產(chǎn)組織及生產(chǎn)過程,了解和掌握汽車專業(yè)基礎(chǔ)的生產(chǎn)實際知識,鞏固和加深已學(xué)過的理論知識,并為后續(xù)的畢業(yè)設(shè)計和工作深造打下基礎(chǔ)。
2:在實習(xí)期間,通過對典型汽車零件,電子器件加工工藝的分析,以及零件加工過程中所用的機床,夾具量具等工藝裝備,汽車流水生產(chǎn)線的參觀,把理論知識和盛傳實踐相結(jié)合起來,提高我們的考察,分析和解決問題的工作能力。3:通過實習(xí),廣泛接觸工人和聽工人技術(shù)人員的專題報告,學(xué)習(xí)他們的生產(chǎn)管理經(jīng)驗,技術(shù)革新和科研成果
4:通過參觀有關(guān)工廠,掌握一臺機器從毛坯到產(chǎn)品的整個生產(chǎn)過程,組織管理,設(shè)備選擇和車間布置等方面的知識,擴大知識面。
5:通過記實習(xí)日記,寫實習(xí)報告,鍛煉與培養(yǎng)我們的觀察,分析問題以及搜集和整理技術(shù)資料等方面的能力。實習(xí)的具體內(nèi)容
3.1 實習(xí)企業(yè)簡介
1南京依維柯汽車有限公司為一家中意合資企業(yè),中方股東為南京汽車集團有限公司(上海汽車全資子公司),外方股東為意大利依維柯股份公司,于1996年3月1日正式運行。公司注冊資本25.27億元人民幣,合資雙方各占50%股份。公司設(shè)有13個部門、8個工廠/分公司、銷售公司和出口公司,在冊員工6000余人,占地面積125萬平方米。公司擁有依維柯和躍進兩大產(chǎn)品平臺,產(chǎn)品線橫跨客車、卡車、箱貨、越野車、底盤和專用車,擁有860多種豐富車型。依維柯品牌擁有得意、都靈、寶迪、歐霸和威尼斯五大產(chǎn)品線,有360多種車型。躍進品牌擁有財神(S品系)、帥虎(H品系)、歐卡(K品系)、凌野(L品系)、開拓者(T品系)和躍進底盤六大產(chǎn)品線,產(chǎn)品品種多達500余種。
2南京第一機床廠有限公司坐落于六朝古都南京城的東南隅,護城河畔。公司前身是“中國農(nóng)業(yè)機械公司南京分公司”,始建于1948年,1953年改名南京機床廠,1998年更名為南京第一機床廠,2007年改制為南京第一機床廠有限公司。公司1998年通過ISO9001質(zhì)量體系認證,是國家機械工業(yè)大型骨干企業(yè),我國數(shù)控車床產(chǎn)業(yè)化基地之一,國家和江蘇省“九五”、“十五”、“十一五”科技攻關(guān)項目承擔(dān)單位,江蘇省暨南京市高新技術(shù)產(chǎn)業(yè)。2010年,國家啟動第三批科技重大專項的申報工作,我公司申報的2個重大專項均獲得批準(zhǔn),這也充分體現(xiàn)公司在行業(yè)內(nèi)較高的研發(fā)水平。專注鑄就品質(zhì),創(chuàng)新引領(lǐng)未來。公司經(jīng)過多年的市場探索,明確了“數(shù)控機床提檔上量,齒輪機床開發(fā)大型、專用機床優(yōu)化做精,齒輪箱生產(chǎn)專業(yè)化”的產(chǎn)品定位方針,并形成“大型高效、高速精密、數(shù)控車銑復(fù)合和車磨復(fù)合加工機床”等四大類機床?!澳蠙C牌”系列機床為評為南京市名牌產(chǎn)品,經(jīng)國家技術(shù)檢測中心多次行業(yè)抽檢,均為優(yōu)質(zhì),多次受到行業(yè)通報表揚。
3南京汽車鍛造有限公司是南京汽車集團有限公司的專業(yè)化鍛件生產(chǎn)子公司,占地13.57萬m2,建筑面積3.8萬m2,固定資產(chǎn)1.5億元,職工200余人,其中技術(shù)人員50人。生產(chǎn)能力30,000噸/年。主要產(chǎn)品為躍進卡車、依維柯旅行車和派力奧轎車鍛件。除汽車鍛件以外,我們還生產(chǎn)工程機械鍛件、船用綁扎件和摩托車鍛件。產(chǎn)品出口美國、德國和意大利等國家。
主要生產(chǎn)設(shè)備有1600t、2500t(2臺)、3200t、4000t熱模鍛壓力機; 315t、630t、2000t平鍛機;300t、400t、730t螺旋壓力機;1t、2t(2臺)、3t、5t電液錘;加熱主要采用中頻感應(yīng)加熱爐。還有全自動半軸套管冷擠壓機;700t、800t、1500t精壓機;懸掛式全自動強力噴丸機;高速自動帶鋸床5臺;250~900t棒料剪床4臺及熱處理連續(xù)電爐生產(chǎn)線9條。
主要檢測設(shè)備有:美國BAIRD快速光譜分析儀、德國TIEDE熒光磁力探傷機、日本MITUTOYO三坐標(biāo)測量儀、美國RAYTEK溫度分選儀、金相顯微鏡和硬度機等。
4南京申華汽車電子廠公司通過ISO/TS16949:2002質(zhì)量體系認證,搭建起車用電子儀表、傳感器、電子控制器、車用塑料件系列研發(fā)、產(chǎn)銷平臺,形成了以國內(nèi)商用車和乘用車系列配套為主的產(chǎn)品格局。公司重視技術(shù)創(chuàng)新和品牌發(fā)展,已形成各檔次水平的車用儀表、傳感器、電子控制器研制系列平臺,數(shù)據(jù)通訊電子技術(shù)得到成功應(yīng)用,汽車電子產(chǎn)品領(lǐng)域?qū)⒆鳛榻窈笾攸c拓展的目標(biāo)。
公司主導(dǎo)產(chǎn)品為大客車、轎車、輕型卡車、中型卡車、重型卡車、輕型商務(wù)車、旅行車、越野車車型等組合電子儀表;轉(zhuǎn)速、水溫、油量、氣壓、油壓報警等傳感器;及電動玻璃升降器等。公司現(xiàn)有產(chǎn)品主要配套服務(wù)南京依維柯公司、上海汽車、上汽通用五菱等整車企業(yè)。
5南京躍進汽車轉(zhuǎn)向器有限公司始建于1958年,自1970年開始生產(chǎn)各類汽車轉(zhuǎn)向器,目前生產(chǎn)機械式、液壓助力式循環(huán)球系列和機械式、液壓助力式齒輪齒條系列、近100個品種,年產(chǎn)25萬臺(套)的生產(chǎn)能力。產(chǎn)品為南汽躍進股份(卡車、SUV系列)、依維柯(輕客系列)、菲亞特(轎車系列)、無錫車身(經(jīng)濟型轎車系列)、北汽福田、昌河鈴木、一汽佳寶等數(shù)十家汽車主機廠配套。本公司已連續(xù)4屆擔(dān)任中國汽車工業(yè)協(xié)會轉(zhuǎn)向器分會理事長單位。本公司于2002年末遷入江寧經(jīng)濟開發(fā)區(qū)新址,是南京高新技術(shù)企業(yè)。廠區(qū)占地4.8萬平方米,現(xiàn)有職工330余人,其中52人具有技術(shù)職稱(高級職稱12人),固定資產(chǎn)5000
多萬元,關(guān)鍵工藝均采用進口設(shè)備.公司下設(shè)轉(zhuǎn)向器研究所,包含產(chǎn)品試驗室,計量檢測中心和計算機中心.主營產(chǎn)品或服務(wù): 主營行業(yè): 機械式循環(huán)球轉(zhuǎn)向器;機械式齒輪齒條轉(zhuǎn)向器;循環(huán)球液壓助力轉(zhuǎn)向器;齒輪齒條液壓助力轉(zhuǎn)向器;機械管柱;可調(diào)管柱;電動管柱;各類傳動裝置;轉(zhuǎn)向系統(tǒng);轉(zhuǎn)向節(jié);助力器、助力泵;轉(zhuǎn)向盤;轉(zhuǎn)向機總成;傳動軸。
3.2 實習(xí)對象的結(jié)構(gòu)與原理
車身,儀表盤,機床,卡車生產(chǎn)線等
3.3 典型的工藝與工藝流程
3.3.1汽車裝配線
汽車裝配線是人和機器的有效組合,最充分體現(xiàn)設(shè)備的靈活性,它將輸送系統(tǒng)、隨行夾具和在線專機、測試設(shè)備有機的組合起來,以滿足汽車零部件的裝配要求。汽車裝配流水線的傳輸方式有同步傳輸?shù)?(強制式)也可以是非同步傳輸/(柔性式),根據(jù)配置的選擇,實現(xiàn)汽車零件手工裝配或半自動裝配。裝配線是汽車批量生產(chǎn)的必要方法。
汽車裝配線設(shè)備主要包括:汽車裝配線所用輸送設(shè)備,發(fā)動機和前后橋等各大總成上線設(shè)備,各種油液加注設(shè)備,出廠檢測設(shè)備及各種專用汽車裝配線設(shè)備。
1.輸送設(shè)備:用于汽車總裝配線,各總成分裝線以及大總成上線的輸送;
2.汽車裝配線大總成上線設(shè)備:指發(fā)動機,前橋,后橋,駕駛室,車輪等總成在分裝,組裝后送至總裝配線并在相應(yīng)工位上線所采用的輸送,吊裝設(shè)備;
3.各種油液加注設(shè)備:包括燃油,潤滑油,清潔劑,冷卻液,制動液,制冷劑等各種汽車裝配線加注設(shè)備;
4.出廠檢測設(shè)備:前束試驗臺,側(cè)滑試驗臺,轉(zhuǎn)向試驗臺,前照燈檢測儀,制動試驗臺,車速表試驗臺,排氣分析儀;
5.專用汽車裝配線設(shè)備:車號打號機,羅紋緊固設(shè)備,車輪裝配專用設(shè)備,自動涂膠機,液壓橋裝小車。
3.3.2 汽車發(fā)動機裝配線
發(fā)動機是汽車領(lǐng)域技術(shù)最密集的關(guān)鍵部件,在汽車發(fā)動機裝配過程中,由于被裝配零件的多樣性、工藝的繁瑣性,汽車發(fā)動機裝配線就顯得尤為重要。汽車發(fā)動機裝配線是一個對發(fā)動機順序裝配的流水線工藝過程,每個工位之間是流水線生產(chǎn),因此,每個環(huán)節(jié)的控制都必須具備高可靠性和一定的靈敏度,才能保證生產(chǎn)的連續(xù)性和穩(wěn)定性。合理地規(guī)劃發(fā)動機裝配線可以更好地實現(xiàn)產(chǎn)品的高精度、高效率、高柔性和高品質(zhì)。
汽車發(fā)動機裝配線主要包括總裝線、分裝線、工位器具及線上工具等。在總裝線和分裝線上,目前國內(nèi)普遍采用柔性輸送線輸送工件,并在線上配置自動化裝配設(shè)備以提高效率。柔性輸送線主要有:摩擦輥道和啟停式動力輥道兩種。裝配線上的自動化設(shè)備主要有自動打號機、擰緊機、自動翻轉(zhuǎn)機以及其它專用裝配設(shè)備等,可大大提高裝配線的裝配能力。
裝配線普遍采用現(xiàn)場總線控制方式,通過現(xiàn)場分布I/O統(tǒng)一控制裝配線的運
行及完成各工位間的通訊。組建現(xiàn)場信息監(jiān)控系統(tǒng)采用以太網(wǎng)等方式,完成裝配線上的信息采集、排產(chǎn)下達、工位監(jiān)控及裝配提示等功能。
在發(fā)動機生產(chǎn)中,裝配線是發(fā)動機最終狀態(tài)、最終結(jié)構(gòu)、最終精度的展示,對確保發(fā)動機的精度、質(zhì)量至關(guān)重要。一條發(fā)動機裝配線要保證發(fā)動機的裝配技術(shù)條件,實現(xiàn)高精度;要保證裝配節(jié)拍,實現(xiàn)高效率;要多機型同時裝配,實現(xiàn)高柔性;要有效地控制裝配精度,實現(xiàn)高質(zhì)量。要實現(xiàn)以上幾個方面必須從生產(chǎn)線的規(guī)劃開始著手。
3.3.3 鍛造的典型工藝流程
鍛造工藝流程的一般順序為:鍛坯下料;鍛坯加熱;輥鍛備坯;模鍛成形;切邊;中間檢驗,檢驗鍛件的尺寸和表面缺陷;鍛件熱處理技術(shù),用來除去鍛造應(yīng)力,提高金屬切削的性能;矯正;即檢查,一般鍛件要經(jīng)過外觀和硬度檢測,重要鍛件還需經(jīng)過化學(xué)成分分析、機械性能、殘余應(yīng)力等檢測和無損探傷;清理,主要是去除鍛件表面氧化皮層。4 實習(xí)的感受與體會
雖然這實習(xí)很簡短,但還是學(xué)到了不少東西,且感觸頗深。與生產(chǎn)車間相比,我們的教室簡直是個安樂窩,車間的噪聲,異味,粉塵,高溫,讓我們這些大老爺們都難受,更別說那些女生了。工人師傅工作時的認真嚴謹也給我們留下深刻印象。每個工廠都是流水線生產(chǎn),每個環(huán)節(jié)都要認真把關(guān),不能出錯,否則整條生產(chǎn)線都將受到影響。而各個工廠也構(gòu)成一條流水線,構(gòu)成一個巨大的產(chǎn)業(yè)鏈,各工廠生產(chǎn)出合格的零部件,整車生產(chǎn)才能進行。通過這次實習(xí),自己去看去聽,還有老師和工人師傅的教導(dǎo),我們獲得許多知識。我們知道知道各個零部件的工藝加工方法,生產(chǎn)目的,生產(chǎn)程序及產(chǎn)品供求情況。了解了一些傳統(tǒng)技術(shù),高新技術(shù)。我們分析了幾道簡單典型零件的加工工藝,對汽車整體裝配生產(chǎn),方法和技術(shù)路線的選擇,零件工藝條件的確定以及流程的編制原則有了更加深刻的認識,將書本知識與實際生產(chǎn)聯(lián)系到一起,為以后參加工作打下基礎(chǔ)。
說實話,這實習(xí)與我想象中的大不一樣。本以為會讓我們更多的參與工作,切身體會實際生產(chǎn),但實際上我們主要工作就是參觀,聽“導(dǎo)游”講解,提一點問題而已,并沒有多少參與感。不過這種情況我也理解,一個月時間本身就充滿水分,這點時間還要在多個工廠間輾轉(zhuǎn),我們并沒有多少時間去受訓(xùn)從而有一定工作能力,工廠接待我們實習(xí)已經(jīng)是花費了有限的精力,若是再去培訓(xùn),工廠效益將受到影響,再考慮到安全問題,學(xué)校與企業(yè)已經(jīng)是盡了最大的努力讓我們多學(xué)習(xí)實際的知識。若是真要有實質(zhì)性的改變,學(xué)校與企業(yè)都要有長期合作的準(zhǔn)備,困難總是有的,總是要靠人去克服的。致謝
非常感謝學(xué)校與各企業(yè)給我們安排了這么一個難得的機會,讓我們將知識與實際聯(lián)系到一起,也非常感謝張鐵山老師和王洪亮老師等各老師還有工人師傅的帶領(lǐng)和細心指導(dǎo)。
第二篇:生產(chǎn)實習(xí)報告
一.實習(xí)記錄
1.7月2日
① 講述Gcc Gcc工具鏈四個步驟:預(yù)處理、編譯、匯編、鏈接。
在Linux操作系統(tǒng)下,在終端中文本編輯的命令為vim +文件名(如test123.c),回車進入文件,然后進行編寫。編譯命令:gcc +源文件名+-o+可執(zhí)行文件名。運行:./ +可執(zhí)行文件名。輸入命令gcc-c test.c 時,則會生成.o文件。
在文本編輯情況下,有三種模式:命令、輸入、末行,它們之間的轉(zhuǎn)換關(guān)系圖為:
a:輸入i/o/a;b:esc;c:冒號,其中可以為wq:保存退出
q!不保存退出,應(yīng)注意的是保存退出需在末行模式下進行
幾種命令:gcc-o test test.c-Wall 把所有警告顯示出來
gcc-o test test.c-O2
提高效率(在底層開發(fā)運用)
gcc-o test test.c-g
進入gdb調(diào)試模式
② Gdb調(diào)試器
可設(shè)置斷點、單步執(zhí)行、查看變量、查看文件 a.-g 編譯
gcc 源文件-o 可執(zhí)行文件名-g b.gdb空格./test 運行 c.l +數(shù)字
顯示代碼 d.b +數(shù)字/函數(shù)名
設(shè)置斷點 e.r
執(zhí)行程序 f.p +變量
打印變量 g.n 單步執(zhí)行
h.c 依次繼續(xù)往下執(zhí)行
Ctrl +c停止 i.q 退出
j.s 進入函數(shù)
info break 斷點信息
快捷鍵:方向鍵:翻命令
Tab鍵:補全命令
修改vim屬性命令:vim ~/.vimrc(~表示當(dāng)前用戶根目錄,.表示隱藏文件)然后編寫:set tabstop=4 set
shiftwidth=4 set
autoindent set
cindent set
nu 2.7月3日
① 版權(quán)和版本聲明:
位于頭文件和函數(shù)定義的開頭,包括版本、作者、更新日期 注釋:函數(shù)介紹、輸入?yún)?shù)、輸出參數(shù)、返回值 /***** 函數(shù)名稱: 函數(shù)功能介紹: 函數(shù)參數(shù);函數(shù)返回值: 其他: *****/ int GStuNum,匈牙利命名規(guī)則;int g_stu_num,unix規(guī)范
調(diào)用多文件編譯
gcc-o test test.c fun.c 兩個源文件生成一個test文件 編寫makefile文件:vim makefile,make編譯。在makefile文件里,要有目標(biāo)并寫出依賴,命令前需加tab鍵。例如: main:test.o
fun.o
gcc-o main-test.o fun.o
test.o:test.c
gcc-c test.c
fun.o:fun.c
gcc-c fun.c
如圖:
也可以用變量代替:開頭CC=gcc(PC平臺),CC=arm-linux-gcc(arm平臺),則可寫成:
$(CC)-o main test.o fun.o
$為使用變量值 clean:rm *.o-rf
rm main-rf ② 數(shù)據(jù)結(jié)構(gòu)
C基本語法:1.變量2.語句3.分支4.循環(huán)5.函數(shù)6.存取7.類8.封裝集成。C++的特性:封裝,集成,多態(tài)
鏈表,最重要的是雙向鏈表(單環(huán)),基本操作:添加、查找、刪除。定義:typedef struct node{ datatype data;struct node *next;}LNode,*LinkList;指向本結(jié)點類型的指針是實現(xiàn)鏈表的基礎(chǔ),數(shù)據(jù)量大時用鏈表存儲,少時用數(shù)組。指針最大值為2^32=4G,指針0~4G的一個數(shù)字。頭指針為“NULL”則表示一個空表。內(nèi)存分配函數(shù)有malloc和calloc.語句:算術(shù)語句,如i=i+1;i++;關(guān)系語句,i>2;邏輯語句,i<20&&i>10兩個同時成立就成立,||(或)一個成立就成立; 分支:if else 計算閏年if(year%400==0||(year%4==0&&year%100!=0))循環(huán):while(),do{}while();for(i=0;i<10;i++)i=0只在第一次時執(zhí)行。r回車字符,%x指針地址
usleep();sleep(1);1秒跳一次fflush(stdout);題目(1.聲明數(shù)組2.錄入學(xué)生信息3.求最高分4.打?。┐a:struct stu{int s;int num;char name[16];};
int main {struct stu stu_arry[10];} 3.7月4日 鏈表
鏈表的創(chuàng)建與遍歷及查找、增加、刪除結(jié)點各項操作,給出部分代碼進行練習(xí),對鏈表的操作進行熟悉。著重強調(diào)增加結(jié)點(尾插入)的操作,得到尾結(jié)點的代碼如下:
for(p=h;p!=NULL;p=p->next){if(p->next==NULL)pp=p;} p=malloc(sizeof(struct node));p->num=num;strcpy(p->name,name);pp->next=p;p->next=NULL;return h;4.7月5日
① 熟悉鏈表的各項操作,老師給出代碼,加強出錯部分的練習(xí)。刪除結(jié)點時的考慮,刪除的是頭結(jié)點和非頭結(jié)點,代碼如下:
struct node *link_del_node_by_num(struct node *h,int num){
struct node *p;
struct node *pp;
/*find node by num*/
for(pp=p=h;p!=NULL;pp=p,p=p->next)
{
if(p->num==num)
break;
}
/*del node is head node*/
if(p==h)
{
h=h->next;
free(p);
}
/*del node is not head node*/
else
{
pp->next=p->next;
free(p);
}
if(p==NULL)
return NULL;
return h;} ②哈希表
哈希表存儲的基本思想以數(shù)據(jù)表中的每個記錄的關(guān)鍵字k為自變量,通過一種函數(shù)H(k)計算出函數(shù)值。把這個值解釋為一塊連續(xù)存儲空間(即數(shù)組空間)的單元地址(即下標(biāo)),將該記錄存儲到這個單元中。
構(gòu)造方法:1.直接定址法 H(k)=k+c 2.除留余數(shù) H(k)=k%m 3.平方取中法 取關(guān)鍵字平方后的中間幾位作為哈希函數(shù)的地址沖突解決方法:開放定址法 H(k)=(k*k+i)%m,Hi=(H(k)+d(i))%m,i=1,2,??k(d為增量函數(shù))編寫代碼,實現(xiàn)對哈希表的添加、查找操作。
5.7月6日
整理哈希表的操作代碼,對各個部分進行完善,并編寫出了刪除結(jié)點的程序代碼。在刪除頭結(jié)點的時候,程序運行結(jié)果總是出錯,詢問老師過后,經(jīng)過老師的講解,最后完成了代碼。
6.7月7日
接口設(shè)計 詞典的存儲格式:文本文件,索引;查詢方式:字符串匹配,二分查找 版本管理工具(git)找出版本之間的差異,回到以前的版本,原則:迭代開發(fā)(逐漸找出功能)、接口分離
$ ^ 所有的依賴文件,$< 只依賴于第一個文件,在linux終端下,查詢手冊用man命令。給出部分代碼,查詢手冊以便理解。
7.7月8日
講述部分函數(shù)的意義,memset直接設(shè)置內(nèi)存,memset(trans,0,WORD_LEN);從trans開始,長度為多少,都設(shè)為0。Shift+* 移光標(biāo)
#if 0??#endif 此時這里的內(nèi)容不需要編譯;#if 1??#endif 能打開
8.7月9日
①如何將windows中的文件傳到虛擬機中?
控制面板—>網(wǎng)絡(luò)連接—>Vmware Workstation啟用,在終端輸入命令ifconfig eth 0 找到地址192.168.8.131;然后虛擬機打開ftp命令 /etc/init.d/vsftpd start nestar-an|grep 20是查看ftp狀況的,修改密碼命令passwd student,解壓縮文件tar xf dict.tar.bz2 ②文件的操作
FILE *pFile=fopen(filename,“rb”)fclose(pFile)關(guān)閉文件
fread(buffer,size,size_count,pFile)從文件可讀取size*size_count到buffer中。在代碼中實現(xiàn)退格鍵的操作。
9.7月10日
實現(xiàn)了退格鍵操作,并對代碼進行完善。下午編寫刪除操作,結(jié)果失敗。
10.7月11日
老師驗收程序,進行演示。二.設(shè)計過程
1.題目
(1)建立一個哈希表,并實現(xiàn)添加、刪除、查找的功能(2)設(shè)計一個英漢字典,要求實現(xiàn)退格輸出功能
2.題目思路
⑴哈希表存儲的基本思想以數(shù)據(jù)表中的每個記錄的關(guān)鍵字k為自變量,通過一種函數(shù)H(k)計算出函數(shù)值。把這個值解釋為一塊連續(xù)存儲空間(即數(shù)組空間)的單元地址(即下標(biāo)),將該記錄存儲到這個單元中。需要用除留余數(shù)法構(gòu)造。首先找到地址標(biāo)號后,然后再根據(jù)鏈表的方式存儲進去。能夠?qū)崿F(xiàn)可選擇性的添加數(shù)據(jù),然后顯示出哈希表??筛鶕?jù)查找的數(shù)據(jù),顯示出位置,及根據(jù)數(shù)據(jù)刪除時,出現(xiàn)的新哈希表。
⑵英漢詞典需要在二進制文件里,建立一個字典庫,然后再查找編寫一系列功能函數(shù)。此程序用的是聯(lián)想輸入法,在非標(biāo)準(zhǔn)模式下實現(xiàn)。能夠按首字母查詢并且實現(xiàn)選擇單詞,出現(xiàn)意思的功能,并且能夠?qū)崿F(xiàn)退格輸出。此時需要編寫查找匹配單詞的函數(shù),及得到單詞意思的函數(shù)。老師已經(jīng)給出部分代碼,再編寫實現(xiàn)退格鍵的操作即可。
3.如何實現(xiàn)
⑴實現(xiàn)哈希表的流程圖
利用除留余數(shù),得到數(shù)據(jù)位置的代碼 int hash_hash_fun(int data){
int pos;
pos=data%HASH_MAX;
return pos;} 在添加數(shù)據(jù)時,應(yīng)給P開辟空間,之后找到所屬位置,進行存儲即可。部分主要代碼如下:
/*malloc memory*/
p=(struct node*)malloc(sizeof(struct node));
/*input data*/
printf(“input add data:n”);
scanf(“%d”,&add_data);
getchar();
pos=hash_hash_fun(add_data);
p->num=add_data;
p->next=hash[pos];
hash[pos]=p;
在查找數(shù)據(jù)時,首先進入 hash_hash_fun函數(shù),找到位置后,方可進行查找,此函數(shù)是整個程序的關(guān)鍵,輸出結(jié)果為位置加上數(shù)據(jù)的形式。代碼如下:
struct node *hash_find(struct node *hash[],int f_num){
int pos;
struct node *p;
printf(“input find f_num:n”);
scanf(“%d”,&f_num);
pos=hash_hash_fun(f_num);
for(p=hash[pos];p!=NULL;p=p->next)
{
if(p->num==f_num)
{
printf(“[%d] %dn”,pos,p->num);
break;
}
}
if(p==NULL)
printf(“no find.n”);
return p;}
在刪除的時候,需要三方面的考慮,刪除的是頭結(jié)點,非頭結(jié)點,及指針?biāo)傅臑榭?,這樣才能更準(zhǔn)確的刪除表中數(shù)據(jù)。代碼如下:
struct node *hash_del(struct node *hash[],int num){
int pos;
struct node *h=NULL;
struct node *p;
struct node *pp;
printf(“input del num:n”);
scanf(“%d”,&num);
pos=hash_hash_fun(num);
for(pp=p=h=hash[pos];p!=NULL;pp=p,p=p->next)
{
if(p->num==num)
break;
}
printf(“[%d] %dn”,pos,p->num);
if(p==h)
{
hash[pos] = p->next;
free(p);
}
else
{
pp->next=p->next;
free(p);
}
if(p==NULL)
return NULL;} ⑵實現(xiàn)英漢詞典退格功能 在實現(xiàn)查找功能時,需要進行輸入數(shù)據(jù)的判斷如果是字母的話,應(yīng)怎樣運行,如果是退格鍵時,是怎樣,以及是數(shù)字時是怎樣,這里需調(diào)用兩個函數(shù)isalpha()判斷字母和isdigit()判斷數(shù)字。這里把字母的判斷和退格鍵的判斷寫到了一塊,代碼如下:
if(isalpha(c)||(c=='177'))
{
trans[n] = c;
//back space
if(c == '177')
{
n--;
if(n < 0)n = 0;
trans[n] = '