第一篇:2015生產(chǎn)實(shí)習(xí)報(bào)告
陜西科技大學(xué)生產(chǎn)實(shí)習(xí)報(bào)告
一、實(shí)習(xí)目的
生產(chǎn)實(shí)習(xí)是我們學(xué)生參與實(shí)踐活動(dòng)的很重要的一部分,它使我們的專業(yè)知識結(jié)構(gòu)更加完善,理論知識得到進(jìn)一步鞏固。通過生產(chǎn)實(shí)習(xí)使我們獲得基本生產(chǎn)的感性知識,理論聯(lián)系實(shí)際,擴(kuò)大知識面;也是我們接觸社會(huì)、了解產(chǎn)業(yè)動(dòng)態(tài)、了解國情的一個(gè)重要途徑。通過生產(chǎn)實(shí)習(xí),逐步實(shí)現(xiàn)由學(xué)生到社會(huì)的轉(zhuǎn)變,培養(yǎng)學(xué)生初步擔(dān)任技術(shù)工作的能力、初步了解企業(yè)管理的基本方法和技能;認(rèn)知企業(yè)工作的內(nèi)容和方法,這些實(shí)際知識,對我們學(xué)習(xí)后面的課程乃至以后的工作,都是十分必要的基礎(chǔ)。
二、實(shí)習(xí)單位及崗位介紹
我們此次的生產(chǎn)實(shí)習(xí)分為兩個(gè)階段,第一階段為在西安云間信息科技有限公司進(jìn)行android開發(fā)實(shí)訓(xùn),第二個(gè)階段為在陜西捷盈電子科技有限公司進(jìn)行企業(yè)生產(chǎn)實(shí)習(xí)。
西安云間信息科技有限公司,是一家從事高端IT互聯(lián)網(wǎng)技術(shù)培養(yǎng)的技術(shù)公司,由各大型軟件企業(yè)的高級軟件開發(fā)工程師、系統(tǒng)架構(gòu)師等技術(shù)骨干組成的高端IT人才培養(yǎng)公司,致力于培養(yǎng)Linux平臺(tái)、Oracle大型關(guān)系數(shù)據(jù)庫、JAVA EE技術(shù)、通信網(wǎng)絡(luò)技術(shù)、和企業(yè)級應(yīng)用的中高級IT人才。其培養(yǎng)目標(biāo)位:高級軟件開發(fā)工程師、高級網(wǎng)絡(luò)優(yōu)化工程師、數(shù)據(jù)網(wǎng)絡(luò)及網(wǎng)絡(luò)安全認(rèn)證工程師。
陜西捷盈電子科技有限公司成立于2006年。公司以專業(yè)化SMT制造為基礎(chǔ)致力于光電顯示、綠色照明、通訊家電和工業(yè)控制等核心控制電路板的研發(fā)、設(shè)計(jì)、生產(chǎn)、銷售與服務(wù)。我司經(jīng)營范圍:鎮(zhèn)流器、LED燈照明、生產(chǎn)TFT LCD用驅(qū)動(dòng)IC控制基板、液晶顯示器及電視機(jī)用2合1電源、POPLCD TV電源濾波器,TUNER、VIDEO、面板按鍵、遙控器等其他電子產(chǎn)品的SMT基板的開發(fā),銷售自產(chǎn)產(chǎn)品。
公司現(xiàn)擁有8條SMT生產(chǎn)線,4條DIP生產(chǎn)線和1條產(chǎn)品組裝線。擁有DEK H0zi2全自動(dòng)視覺印刷機(jī)、美國HELLER1809EXLN氮?dú)獗Wo(hù)回焊爐、日本JUKI KE2050L、KE2060L貼片機(jī)、日本SAKI BF18D自動(dòng)光學(xué)檢查機(jī)、西門子貼片機(jī)、德國S8M錫厚測試儀、無鉛波峰焊、全自動(dòng)切板機(jī)等儀器設(shè)備。所有生產(chǎn)符合無鉛要求,是中國西部產(chǎn)能最大、配備最優(yōu)的電路板制造企業(yè)。公司已通過ISO-9001和ISO-14001的體系認(rèn)證,并深獲客戶的肯定。其公司整體發(fā)展目標(biāo)為:一個(gè)核心——以利潤為核心,實(shí)現(xiàn)創(chuàng)業(yè)板上市;兩項(xiàng)措施——成為SMT核心供貨商,形成自主產(chǎn)品核心客戶群;三個(gè)支撐——形成以SMT、PWB、綠色照明產(chǎn)品為主體的核心客戶群。其企業(yè)理念為:科技為本,優(yōu)質(zhì)高效,顧客至上,共享雙贏。
陜西科技大學(xué)生產(chǎn)實(shí)習(xí)報(bào)告
三、實(shí)習(xí)安排
6月26日—7月2日:西安云間信息科技有限公司進(jìn)行android開發(fā)實(shí)訓(xùn); 7月3日—7月8日:陜西捷盈電子科技有限公司進(jìn)行企業(yè)生產(chǎn)實(shí)習(xí)。
四、實(shí)習(xí)內(nèi)容及過程
(一)Android 是Google開發(fā)的基于Linux的開源移動(dòng)信息設(shè)備應(yīng)用程序開發(fā)平臺(tái),該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是首個(gè)為移動(dòng)終端打造的真正開放和完整的軟件開發(fā)平臺(tái)。Android涵蓋移動(dòng)信息設(shè)備工作所需要的全部軟件,包括操作系統(tǒng)、用戶界面和應(yīng)用軟件等,正在逐漸成為目前移動(dòng)信息設(shè)備應(yīng)用程序開發(fā)的最主要的平臺(tái),而且必將成為今后移動(dòng)信息設(shè)備應(yīng)用程序開發(fā)的主流工具。
“工欲善其事,必先利其器”,要進(jìn)行android應(yīng)用程序開發(fā),必須首先搭建android開發(fā)環(huán)境,而搭建android開發(fā)環(huán)境需要預(yù)先預(yù)備操作系統(tǒng)、SDK、IDE、開發(fā)插件ADT和JDK。
JDK主要包括Java運(yùn)行環(huán)境(Java Runtime Environment)、一些Java命令工具和Java基礎(chǔ)的類庫文件,Java是開發(fā)任何類型Java應(yīng)用程序的基礎(chǔ)。因?yàn)殚_發(fā)Android引用程序時(shí),使用的開發(fā)語言是Java,而且安裝Eclipse集成開發(fā)環(huán)境也需要JDK的支持,如果沒有JDK,則啟動(dòng)Eclipse時(shí)將會(huì)報(bào)錯(cuò),所以首先在系統(tǒng)中必須正確地安裝和配置JDK。
SDK是軟件開發(fā)工具包,是進(jìn)行軟件開發(fā)的基礎(chǔ)。與其他開發(fā)工具的SDK一樣,Android SDK也是進(jìn)行Android應(yīng)用程序開發(fā)的基礎(chǔ),所以要進(jìn)行Android應(yīng)用程序開發(fā),必須首先在系統(tǒng)中安裝Android SDK。
雖然在正確安裝Android SDK之后,就可以進(jìn)行Android應(yīng)用程序的開發(fā),但是Android SDK僅僅提供了Android應(yīng)用程序的編譯和執(zhí)行工具,并沒有提供程序代碼編寫的環(huán)境。通過使用Android和Eclipse插件ADT,就可以在強(qiáng)大的Eclipse集成開發(fā)環(huán)境中構(gòu)建Android應(yīng)用程序。Eclipse不需要安裝,下載完成后,將Eclipse壓縮文件直接解壓到某個(gè)路徑下面,解壓后的目錄名稱為eclipse。雙擊eclipse文件夾中的可執(zhí)行文件eclipse.exe,如果系統(tǒng)中已經(jīng)正確安裝和配置過JDK,Eclipse就將正確啟動(dòng)。
在通常情況下,一個(gè)Android應(yīng)用程序由以下4個(gè)組件構(gòu)成:活動(dòng)(Activity)、意圖(Intent)、服務(wù)(Service)和內(nèi)容提供器(Content Provide)。這4個(gè)組 2
陜西科技大學(xué)生產(chǎn)實(shí)習(xí)報(bào)告
件是構(gòu)成Android應(yīng)用程序的基礎(chǔ),但并不是每個(gè)Android應(yīng)用程序都必須包含這4個(gè)組件,除了Activity是必要組建外,其余組件都是可選的。
在Android應(yīng)用中,傳感器也是很重要的一部分,Android傳感器主要包括加速度傳感器、陀螺儀傳感器、環(huán)境光照傳感器、磁力傳感器、方向傳感器、壓力傳感器、距離傳感器和溫度傳感器,這是目前Android支持的8種傳感器。
從傳感器管理器中獲取其中某個(gè)或者某些傳感器的方法有如下三種:
1、獲取某種傳感器的默認(rèn)傳感器Sensor defaultGyroscope = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
2、獲取某種傳感器的列表List
3、從系統(tǒng)服務(wù)中獲得傳感器管理器SensorManager sm =(SensorManager)getSystemService(Context.SENSOR_SERVICE);圖4-1和4-2為我們用Android開發(fā)的指南針和水平儀。
圖4-1 指南針 圖4-2 水平儀
(二)在陜西捷盈電子科技有限公司的實(shí)習(xí),是我們真正的第一次企業(yè)實(shí)習(xí)。在這里,我們上班要穿規(guī)定的防靜電服裝和拖鞋,并且手腕上套靜電環(huán),否則有可能因身體靜電而損壞生產(chǎn)的電子產(chǎn)品。剛到公司,企業(yè)負(fù)責(zé)人對我們講解了實(shí)習(xí)注意事項(xiàng)、紀(jì)律以及相關(guān)規(guī)定,之后,我們正式開始了本次的生產(chǎn)實(shí)習(xí)。在二樓的車間中,有南線、中線和北線三條生產(chǎn)線。第一天,在老師的指引以及其他同事的帶領(lǐng)下,我們體驗(yàn)了DIP生產(chǎn)線的操作流程,雖然工作很簡單,只要把自己手里的器件正確插到電路板上就行,但實(shí)際操作起來卻不是那么的容易。
一、我們對此工作不熟悉,速度上達(dá)不到公司的要求;
二、我們操作過的板子質(zhì)量不合格,經(jīng)常需要返工或由老師們進(jìn)行補(bǔ)救。
陜西科技大學(xué)生產(chǎn)實(shí)習(xí)報(bào)告
由于企業(yè)不斷的接到一些大的單子,所以我們這幾天進(jìn)行了稍微的崗位調(diào)換,但所做的工作都和第一天的差不多。所以幾天下來,我們工作的速度也提高了很多,當(dāng)然,工作質(zhì)量也在不斷的提高。最后一天,工廠負(fù)責(zé)人帶領(lǐng)我們對整個(gè)廠子進(jìn)行了參觀,在注塑車間我們?yōu)g覽了完整的塑件的注塑成型工藝過程,其主要包括填充——保壓——冷卻——脫模等4個(gè)階段,這4個(gè)階段直接決定著制品的成型質(zhì)量,而且這4個(gè)階段是一個(gè)完整的連續(xù)過程。
三樓的SMT生產(chǎn)線也使我們頗為震驚,大型的機(jī)器高速運(yùn)轉(zhuǎn),將精小的貼片元件完全正確的貼在電路板上,完全比人工操作要高速并準(zhǔn)確,所以科技的發(fā)展不能不讓我們嘆為觀止!
參觀完成后,負(fù)責(zé)人又為我們帶來了精彩的講座,為我們做了簡單的培訓(xùn),培訓(xùn)資料為:1.捷盈電子公司概況介紹2.企業(yè)管理涉及范圍3.企業(yè)管理遵循的基本要求4.質(zhì)量管理要求和體系簡單介紹5.企業(yè)管理中常用的集中方法6.電子元件焊接技術(shù)。最后又為我們播放了一段焊接技術(shù)的視頻,雖然之前也有過很多焊接的工作,但是在看了視頻后,才發(fā)現(xiàn)我們之前的焊接好多都是不正確的。
五、實(shí)習(xí)總結(jié)及體會(huì)
通過這些天的實(shí)習(xí),我發(fā)現(xiàn)現(xiàn)今科技發(fā)展的速度遠(yuǎn)遠(yuǎn)超過我們的想象,科學(xué)技術(shù)已經(jīng)深深的影響著我們的日常生活,在經(jīng)濟(jì)社會(huì)發(fā)展扮演著不可或缺的角色。21世紀(jì)以來,科學(xué)技術(shù),尤其是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、電子信息技術(shù)的飛速發(fā)展,使得手機(jī)、電腦那些昂貴的奢侈品步入尋常百姓家,成為我們生活的必需品。所以要想不被社會(huì)拋棄,我們不僅應(yīng)該認(rèn)識到科技的重要性,還應(yīng)該努力學(xué)習(xí)科學(xué)技術(shù),用科學(xué)技術(shù)來武裝我們的頭腦。
一個(gè)人,能力和專業(yè)知識固然重要,但是,在職場要成功,最關(guān)鍵的并不在于他的能力與專業(yè)知識,而在于他所具有的職業(yè)素養(yǎng)。工作中需要知識,但更需要智慧,而最終起到關(guān)鍵作用的就是素養(yǎng)。缺少這些關(guān)鍵的素養(yǎng),一個(gè)人將一生庸庸碌碌,與成功無緣。擁有這些素養(yǎng),會(huì)少走很多彎路,以最快的速度通向成功。
工作中,員工應(yīng)具有良好的職業(yè)素養(yǎng),其必備的職業(yè)素養(yǎng)有:
一、勇于承擔(dān)工作任務(wù),承擔(dān)責(zé)任。那些具有強(qiáng)烈責(zé)任感的員工才能在職場中具備更強(qiáng)的競爭力;
二、化工作壓力為動(dòng)力。壓力,是工作中的一種常態(tài),對待壓力,不可回避,要以積極的態(tài)度去疏導(dǎo)、去化解,并將壓力轉(zhuǎn)化為自己前進(jìn)的動(dòng)力;
三、低調(diào)做人,高調(diào)做事。在“低調(diào)做人”中修煉自己,在“高調(diào)做事”中展示自己;
四、服從第一。服從上級的指令是員工的天職,在企業(yè)組織中,沒有服從就沒有一切,那些懂得無
陜西科技大學(xué)生產(chǎn)實(shí)習(xí)報(bào)告
條件服從的員工,才能得到企業(yè)的認(rèn)可與重用。
五、注重團(tuán)隊(duì)合作。當(dāng)今社會(huì),隨著知識經(jīng)濟(jì)時(shí)代的到來,各種知識、技術(shù)不斷推陳出新,競爭日趨緊張激烈,社會(huì)需求越來越多樣化,使人們在工作學(xué)習(xí)中所面臨的情況和環(huán)境極其復(fù)雜。在很多情況下,單靠個(gè)人能力已很難完全處理各種錯(cuò)綜復(fù)雜的問題并采取切實(shí)高效的行動(dòng)。所有這些都需要人們組成團(tuán)體,并要求組織成員之間進(jìn)一步相互依賴、相互關(guān)聯(lián)、共同合作,建立合作團(tuán)隊(duì)來解決錯(cuò)綜復(fù)雜的問題,并進(jìn)行必要的行動(dòng)協(xié)調(diào),開發(fā)團(tuán)隊(duì)?wèi)?yīng)變能力和持續(xù)的創(chuàng)新能力,依靠團(tuán)隊(duì)合作的力量創(chuàng)造奇跡。
例如,我們在Android開發(fā)實(shí)訓(xùn)時(shí),就需要依靠團(tuán)隊(duì)的力量來完成我們的游戲開發(fā),單憑個(gè)人的力量是很難完成任務(wù)的。一段小小的代碼都需要團(tuán)隊(duì)的合作,更何況那些上千上萬行的代碼。要依靠團(tuán)隊(duì),也要服從于團(tuán)隊(duì),當(dāng)我們在生產(chǎn)線上工作時(shí),必須嚴(yán)格注意自己的速度和同事間的配合,流水線上絕不容許我們?nèi)魏我粋€(gè)人有所怠慢,否則整條流水線就會(huì)因?yàn)槟硞€(gè)人的速度慢而停滯不前,進(jìn)而導(dǎo)致整條生產(chǎn)線都沒有效率。
對于即將畢業(yè)的我們,必須很快學(xué)會(huì)從學(xué)校到職場的轉(zhuǎn)變,迅速適應(yīng)新的環(huán)境,并在職場中站穩(wěn)腳步,一步步走向成功。
第二篇:生產(chǎn)實(shí)習(xí)報(bào)告
一.實(shí)習(xí)記錄
1.7月2日
① 講述Gcc Gcc工具鏈四個(gè)步驟:預(yù)處理、編譯、匯編、鏈接。
在Linux操作系統(tǒng)下,在終端中文本編輯的命令為vim +文件名(如test123.c),回車進(jìn)入文件,然后進(jìn)行編寫。編譯命令:gcc +源文件名+-o+可執(zhí)行文件名。運(yùn)行:./ +可執(zhí)行文件名。輸入命令gcc-c test.c 時(shí),則會(huì)生成.o文件。
在文本編輯情況下,有三種模式:命令、輸入、末行,它們之間的轉(zhuǎn)換關(guān)系圖為:
a:輸入i/o/a;b:esc;c:冒號,其中可以為wq:保存退出
q!不保存退出,應(yīng)注意的是保存退出需在末行模式下進(jìn)行
幾種命令:gcc-o test test.c-Wall 把所有警告顯示出來
gcc-o test test.c-O2
提高效率(在底層開發(fā)運(yùn)用)
gcc-o test test.c-g
進(jìn)入gdb調(diào)試模式
② Gdb調(diào)試器
可設(shè)置斷點(diǎn)、單步執(zhí)行、查看變量、查看文件 a.-g 編譯
gcc 源文件-o 可執(zhí)行文件名-g b.gdb空格./test 運(yùn)行 c.l +數(shù)字
顯示代碼 d.b +數(shù)字/函數(shù)名
設(shè)置斷點(diǎn) e.r
執(zhí)行程序 f.p +變量
打印變量 g.n 單步執(zhí)行
h.c 依次繼續(xù)往下執(zhí)行
Ctrl +c停止 i.q 退出
j.s 進(jìn)入函數(shù)
info break 斷點(diǎn)信息
快捷鍵:方向鍵:翻命令
Tab鍵:補(bǔ)全命令
修改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 兩個(gè)源文件生成一個(gè)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平臺(tái)),CC=arm-linux-gcc(arm平臺(tái)),則可寫成:
$(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é)點(diǎn)類型的指針是實(shí)現(xiàn)鏈表的基礎(chǔ),數(shù)據(jù)量大時(shí)用鏈表存儲(chǔ),少時(shí)用數(shù)組。指針最大值為2^32=4G,指針0~4G的一個(gè)數(shù)字。頭指針為“NULL”則表示一個(gè)空表。內(nèi)存分配函數(shù)有malloc和calloc.語句:算術(shù)語句,如i=i+1;i++;關(guān)系語句,i>2;邏輯語句,i<20&&i>10兩個(gè)同時(shí)成立就成立,||(或)一個(gè)成立就成立; 分支:if else 計(jì)算閏年if(year%400==0||(year%4==0&&year%100!=0))循環(huán):while(),do{}while();for(i=0;i<10;i++)i=0只在第一次時(shí)執(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é)點(diǎn)各項(xiàng)操作,給出部分代碼進(jìn)行練習(xí),對鏈表的操作進(jìn)行熟悉。著重強(qiáng)調(diào)增加結(jié)點(diǎn)(尾插入)的操作,得到尾結(jié)點(diǎn)的代碼如下:
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日
① 熟悉鏈表的各項(xiàng)操作,老師給出代碼,加強(qiáng)出錯(cuò)部分的練習(xí)。刪除結(jié)點(diǎn)時(shí)的考慮,刪除的是頭結(jié)點(diǎn)和非頭結(jié)點(diǎn),代碼如下:
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;} ②哈希表
哈希表存儲(chǔ)的基本思想以數(shù)據(jù)表中的每個(gè)記錄的關(guān)鍵字k為自變量,通過一種函數(shù)H(k)計(jì)算出函數(shù)值。把這個(gè)值解釋為一塊連續(xù)存儲(chǔ)空間(即數(shù)組空間)的單元地址(即下標(biāo)),將該記錄存儲(chǔ)到這個(gè)單元中。
構(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ù))編寫代碼,實(shí)現(xiàn)對哈希表的添加、查找操作。
5.7月6日
整理哈希表的操作代碼,對各個(gè)部分進(jìn)行完善,并編寫出了刪除結(jié)點(diǎn)的程序代碼。在刪除頭結(jié)點(diǎn)的時(shí)候,程序運(yùn)行結(jié)果總是出錯(cuò),詢問老師過后,經(jīng)過老師的講解,最后完成了代碼。
6.7月7日
接口設(shè)計(jì) 詞典的存儲(chǔ)格式:文本文件,索引;查詢方式:字符串匹配,二分查找 版本管理工具(git)找出版本之間的差異,回到以前的版本,原則:迭代開發(fā)(逐漸找出功能)、接口分離
$ ^ 所有的依賴文件,$< 只依賴于第一個(gè)文件,在linux終端下,查詢手冊用man命令。給出部分代碼,查詢手冊以便理解。
7.7月8日
講述部分函數(shù)的意義,memset直接設(shè)置內(nèi)存,memset(trans,0,WORD_LEN);從trans開始,長度為多少,都設(shè)為0。Shift+* 移光標(biāo)
#if 0??#endif 此時(shí)這里的內(nèi)容不需要編譯;#if 1??#endif 能打開
8.7月9日
①如何將windows中的文件傳到虛擬機(jī)中?
控制面板—>網(wǎng)絡(luò)連接—>Vmware Workstation啟用,在終端輸入命令ifconfig eth 0 找到地址192.168.8.131;然后虛擬機(jī)打開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中。在代碼中實(shí)現(xiàn)退格鍵的操作。
9.7月10日
實(shí)現(xiàn)了退格鍵操作,并對代碼進(jìn)行完善。下午編寫刪除操作,結(jié)果失敗。
10.7月11日
老師驗(yàn)收程序,進(jìn)行演示。二.設(shè)計(jì)過程
1.題目
(1)建立一個(gè)哈希表,并實(shí)現(xiàn)添加、刪除、查找的功能(2)設(shè)計(jì)一個(gè)英漢字典,要求實(shí)現(xiàn)退格輸出功能
2.題目思路
⑴哈希表存儲(chǔ)的基本思想以數(shù)據(jù)表中的每個(gè)記錄的關(guān)鍵字k為自變量,通過一種函數(shù)H(k)計(jì)算出函數(shù)值。把這個(gè)值解釋為一塊連續(xù)存儲(chǔ)空間(即數(shù)組空間)的單元地址(即下標(biāo)),將該記錄存儲(chǔ)到這個(gè)單元中。需要用除留余數(shù)法構(gòu)造。首先找到地址標(biāo)號后,然后再根據(jù)鏈表的方式存儲(chǔ)進(jìn)去。能夠?qū)崿F(xiàn)可選擇性的添加數(shù)據(jù),然后顯示出哈希表??筛鶕?jù)查找的數(shù)據(jù),顯示出位置,及根據(jù)數(shù)據(jù)刪除時(shí),出現(xiàn)的新哈希表。
⑵英漢詞典需要在二進(jìn)制文件里,建立一個(gè)字典庫,然后再查找編寫一系列功能函數(shù)。此程序用的是聯(lián)想輸入法,在非標(biāo)準(zhǔn)模式下實(shí)現(xiàn)。能夠按首字母查詢并且實(shí)現(xiàn)選擇單詞,出現(xiàn)意思的功能,并且能夠?qū)崿F(xiàn)退格輸出。此時(shí)需要編寫查找匹配單詞的函數(shù),及得到單詞意思的函數(shù)。老師已經(jīng)給出部分代碼,再編寫實(shí)現(xiàn)退格鍵的操作即可。
3.如何實(shí)現(xiàn)
⑴實(shí)現(xiàn)哈希表的流程圖
利用除留余數(shù),得到數(shù)據(jù)位置的代碼 int hash_hash_fun(int data){
int pos;
pos=data%HASH_MAX;
return pos;} 在添加數(shù)據(jù)時(shí),應(yīng)給P開辟空間,之后找到所屬位置,進(jìn)行存儲(chǔ)即可。部分主要代碼如下:
/*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ù)時(shí),首先進(jìn)入 hash_hash_fun函數(shù),找到位置后,方可進(jìn)行查找,此函數(shù)是整個(gè)程序的關(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;}
在刪除的時(shí)候,需要三方面的考慮,刪除的是頭結(jié)點(diǎn),非頭結(jié)點(diǎn),及指針?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;} ⑵實(shí)現(xiàn)英漢詞典退格功能 在實(shí)現(xiàn)查找功能時(shí),需要進(jìn)行輸入數(shù)據(jù)的判斷如果是字母的話,應(yīng)怎樣運(yùn)行,如果是退格鍵時(shí),是怎樣,以及是數(shù)字時(shí)是怎樣,這里需調(diào)用兩個(gè)函數(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] = '