A. 什麼是ERP軟體(源代碼)
開玩笑吧?
源代碼這里可貼不開
1、ERP的概念
企業資源計劃(EnterpriseResourcePlanning,簡稱ERP)系統是一種主要面向製造行業進行物質資源、資金資源和信李碰息資源集成一體化管理的企業信息管理系統。通過運用ERP,企業能夠利用計算機對企業的資金、貨物、人員和信息等資源進行自動化管理,具有製造,辦公操作,供應鏈管理,人力資源管理,項目管理,財務與管理,客戶服務,銷售與市場營銷等商業功能。企業資源計劃對於在企業高度普及計算機輔助管理,實現企業管理信息化和自動化,提高工作效率和增強快速反應能力,都具有十分重要的意義。
2、ERP的時代背景
在信息時代,企業所處的商業環境己經發生了根本性變化。顧客需求瞬息萬變、技術創新不斷加速、產品生命周期不斷縮短、市場競爭日趨激烈,這些構成了影響現代企業生存與發展的三大力量:顧客、競爭和變化(3C)。工業時代依靠規模化競爭的企業,「層級制」的管理模式和以MRPII應用為主的管理手段已經不再適用於今天企業的發展。為了適應「顧客、競爭和變化」的外部環境,企業必須進行管理思想上的革命(Revolution)、管理模式與流程上的重組()和管理技術手段上的更新(Reform)(3R),從而在全球范圍內,引發了一場以企業再造(BPR)為主要內容的管理模式革命和以企業資源計劃(ERP)系統應用為主體的管理手段革命。
3、ERP的由來
工業時代的競爭是產品生產成本的競爭,規模化大生產是降低生產成本的有效方式。大生產給製造業帶來了許多困難,主要問題就是要解決庫存積壓與短缺的矛盾。為解決這個關鍵問題,l957年,美國生產與庫存控制協會成立,開始進行生產與庫存控制方面的研究與理論推廣。隨著60年代計算機的商哪巧談業化應用,第一套物料需求計劃MRP(Materialplanning)軟體面世,在企業物料管理工作中應用。
在企業管理中,生產管理不僅涉及物流,還涉及資金流。這要求把財務子系統與生產子系統結合到一起,建立整體化的管理系統,實現資金流與物流的統一管理。80年代,人們把製造、財務、銷售寬做、采購和工程技術等各個子系統集成為一體化的系統,稱為製造資源計劃(ResourcePlanning)系統,英文縮寫仍是MRP。為了區別MRP,而稱作MRPⅡ。
90年代中後期,企業所處的時代背景與競爭環境發生了根本性變化,企業資源計劃系統(ERP)應運而生。ERP在MRPⅡ基礎上進一步發展了企業信息管理系統,擴展了管理范圍,把企業與客戶、供應商和經銷商等因素整合在一起,形成一個完整的企業供應鏈系統,並對供應鏈上的所有環節進行有效管理,包括訂單、采購、庫存、計劃、生產製造、質量控制、運輸、分銷、服務與維護,以及企業財務、人事、實驗室和項目管理等諸多方面。ERP系統主要應用於供應鏈管理。
B. 用C++語言編寫 電腦故障信息管理系統
開機無顯示故障檢查流程: 一、開機能聽到「嘀」一聲(正常啟動聲音); 說明主機啟動正常,若無顯示,則檢查顯示電源是否正常;檢查數據線是否松動(若主板有集成顯卡和獨立顯卡,則檢查是否插的正確)。檢查顯卡是否松動或被氧化了,重新插拔一下(若集成顯卡則檢查內存)。 二、開機聽不到「嘀」一聲; 說明故障在於主機,打開機箱檢查。 1、通電開機,若電源和CPU風扇運轉正常。 則可能是內存被氧化。處理辦法:斷開主機電源,拔下內存,用橡皮擦拭後重新插牢。(若裝有獨立顯卡,則按此法檢查獨立顯卡)。 2、通電後,CPU風扇不轉; 則可能是主板供電故障,檢查是否漏液或鼓包電容。若沒有,則故障較隱蔽,請專人檢查。 3、通電後,電源風扇不轉; 則首先檢查電源插頭是否松動。若插頭正常,則斷開電源插頭,用曲別針或鐵絲連接插頭的「綠線」和「黑線」孔後,再接通電源,若風扇運轉,說明電源鏈迅正常。若不轉,說明電源壞了,更換電源。 常見故障二:CMOS設置不能保存 此類故障一般是由於主板電池電壓不足造成,對此予以更換即可,但有的主板電池更換後同樣不能解決問題,此時有兩種可能: 1. 主板電路問題,對此要找專業人員維修; 2. 主板CMOS跳線問題,有時候因為錯誤的將主板上的CMOS跳線設為清除選項,或者設置成外接電池,使得CMOS數據無法保存。 常見故障三:在Windows下安裝主板驅動程序後出現死機或光碟機讀盤速度變慢的現象 在一些雜牌主板上有時會出現此類現象,將主板驅動程序裝完後,重新啟動計算機不能以正常模式進入Windows 98桌面,而且該驅動程序在Windows 98下不能被卸載。如果出現這種情況,建議找到最新的驅動重新安裝,問題一般都能夠解決,如果實在不行,就只能重新安裝系統。 常見故障四:安裝Windows或啟動Windows時滑鼠不可用 出現此類故障的軟體原因一般是由於CMOS設置錯誤引起的。在CMOS設置的電源管理欄有一項modem use IRQ項目,他的選項分別為3、4、5......、NA,一般它的默認選項為3,將其設置為3以外的中斷項即可。 常見故障五:電腦頻繁死機,在進行CMOS設置時也會出現死機現象 在CMOS里發生死機現象,一般為主板或CPU有問題,如若按下法不能解決故障,那就只有更換主板或CPU了。 出現此類故障一般是由於主板Cache有問題或主板設計散熱不良引起,筆者在815EP主板上就曾發現因主板散熱不夠好而導致該故障的現象。在死機後觸摸CPU周圍主板元件,發現其溫度非常燙手。在更換大功率風扇之後,死機故障得以解決。對於Cache有問題的故障,我們可以進入CMOS設置,將Cache禁止後豎喚大即可順利解決問題,當然,Cache禁止後速度肯定會受到有影響。 常見故障六:主板COM口或並行口、IDE口失靈 出現此類故障一般是由於用戶帶電插拔相關硬體造成,此時用戶可以用多功能卡代替,但在代替之前必須先禁余豎止主板上自帶的COM口與並行口(有的主板連IDE口都要禁止方能正常使用)。
編輯本段二.顯卡
顯卡常見故障及解決方法 常見故障一:開機無顯示 此類故障一般是因為顯卡與主板接觸不良或主板插槽有問題造成。對於一些集成顯卡的主板,如果顯存共用主內存,則需注意內存條的位置,一般在第一個 內存條插槽上應插有內存條。由於顯卡原因造成的開機無顯示故障,開機後一般會發出一長兩短的蜂鳴聲(對於AWARD BIOS顯卡而言)。 常見故障二:顯示花屏,看不清字跡 此類故障一般是由於顯示器或顯卡不支持高解析度而造成的。花屏時可切換啟動模式到安全模式,然後再在Windows 98下進入顯示設置,在16色狀態下點選 「應用」、「確定」按鈕。重新啟動,在Windows 98系統正常模式下刪掉顯卡驅動程序,重新啟動計算機即可。也可不進入安全模式,在純DOS環境下,編SYSTEM.INI文件,將display.drv=pnpdrver改為display.drv=vga.drv後,存檔退出,再在Windows里更新 驅動程序。 常見故障三:顏色顯示不正常,此類故障一般有以下原因: 1. 顯示卡與顯示器信號線接觸不良 2. 顯示器自身故障 3. 在某些軟體里運行時顏色不正常,一般常見於老式機,在BIOS里有一項校驗顏色的選項,將其開啟即可 4. 顯卡損壞; 5. 顯示器被磁化,此類現象一般是由於與有磁性能的物體過分接近所致,磁 化後還可能會引起顯示畫面出現偏轉的現象。 常見故障四:死機 出現此類故障一般多見於主板與顯卡的不兼容或主板與顯卡接觸不良;顯卡與其它擴展卡不兼容也會造成死機。 常見故障五:屏幕出現異常雜點或圖案 此類故障一般是由於顯卡的顯存出現問題或顯卡與主板接觸不良造成。需清潔顯卡金手指部位或更換顯卡。 常見故障六:顯卡驅動程序丟失 顯卡驅動程序載入,運行一段時間後驅動程序自動丟失,此類故障一般是由 於顯卡質量不佳或顯卡與主板不兼容,使得顯卡溫度太高,從而導致系統運行不穩定或出現死機,此時只有更換顯卡。 此外還有一類特殊情況,以前能載入顯卡驅動程序,但在顯卡驅動程序載入後,進入Windows時出現死機。可更換其它型號的顯卡在載入其驅動程序後,插入舊顯卡予以解決。如若還不能解決此類故障,則說明注冊表故障,對注冊表進 行恢復或重新安裝操作系統即可。
編輯本段三.音效卡
常見故障一:音效卡無聲
出現這種故障常見的原因有: 1. 驅動程序默認輸出為「靜音」。單擊屏幕右下角的聲音小圖標(小嗽叭),出現音量調節滑塊,下方有「靜音」選項,單擊前邊的復選框,清除框內的對號,即可正常發音。 2. 音效卡與其它插卡有沖突。解決辦法是調整PnP卡所使用的系統資源,使各卡互不幹擾。有時,打開「設備管理」,雖然未見黃色的驚嘆號(沖突標志),但音效卡就是不發聲,其實也是存在沖突,只是系統沒有檢查出來。 3. 安裝了Direct X後音效卡不能發聲了。說明此音效卡與Direct X兼容性不好,需要更新驅動程序。 4. 一個聲道無聲。檢查音效卡到音箱的音頻線是否有斷線。
常見故障二:音效卡發出的噪音過大
出現這種故障常見的原因有: 1. 插卡不正。由於機箱製造精度不夠高、音效卡外擋板製造或安裝不良導致音效卡不能與主板擴展槽緊密結合,目視可見音效卡上「金手指」與擴展槽簧片有錯位。這種現象在ISA卡或PCI卡上都有,屬於常見故障。一般可用鉗子校正。 2. 有源音箱輸入接在音效卡的Speaker輸出端。對於有源音箱,應接在音效卡的Line out端,它輸出的信號 沒有經過音效卡上的功放,雜訊要小得多。有的音效卡上只有一個輸出端,是Line out還是Speaker要靠卡上的跳線決定,廠家的默認方式常是Speaker,所以要拔下音效卡調整跳線。 3. Windows自帶的驅動程序不好。在安裝音效卡驅動程序時,要選擇「廠家提供的驅動程序」而不要選 「Windows默認的驅動程序」如果用「添加新硬體」的方式安裝,要選擇「從磁碟安裝」而不要從列表框中選擇。如果已經安裝了Windows自帶的驅動程序,可選「控制面板→系統→設備管理→聲音、視頻和游戲控制器」,點中各分設備,選「屬性→驅動程序→更改驅動程序→從磁碟安裝」。這時插入音效卡附帶的磁碟或光碟,裝入廠家提供的驅動程序。
常見故障三:音效卡無法「即插即用」
1. 盡量使用新驅動程序或替代程序。筆者曾經有一塊音效卡,在Windows 98下用原驅動盤安裝驅動程序怎麼也裝不上,只好用Creative SB16驅動程序代替,一切正常。後來升級到Windows Me,又不正常了再換用Windows 2000(完整版)自帶的音效卡驅動程序才正常。 2. 最頭痛的問題莫過於Windows 9X下檢測到即插即用設備卻偏偏自作主張幫你安裝驅動程序,這個驅動程序偏是不能用的,以後,每次當你刪掉重裝都會重復這個問題,並且不能用「添加新硬體」的方法解決。筆者在這里泄露一個獨門密招:進入Win9xinfother目錄,把關於音效卡的*.inf文件統統刪掉再重新啟動後用手動安裝,這一著百分之百靈驗,曾救活無數音效卡性命……當然,修改注冊表也能達到同樣的目的。 3. 不支持PnP音效卡的安裝(也適用於不能用上述PnP方式安裝的PnP音效卡):進入「控制面板」/「添加新硬體」/「下一步」,當提示「需要Windows搜索新硬體嗎?」時,選擇「否」,而後從列表中選取「聲音、視頻和游戲控制器」用驅動盤或直接選擇音效卡類型進行安裝。
常見故障四:播放CD無聲
1. 完全無聲。用Windows 98的「CD播放器」放CD無聲,但「CD播放器」又工作正常,這說明是光碟機的音頻線沒有接好。使用一條4芯音頻線連接CD-ROM的模擬音頻輸出和音效卡上的CD-in即可,此線在購買CD-ROM時會附帶。 2. 只有一個聲道出聲。光碟機輸出口一般左右兩線信號,中間兩線為地線。由於音頻信號線的4條線顏色一般不同,可以從線的顏色上找到一一對應介面。若音效卡上只有一個介面或每個介面與音頻線都不匹配,只好改動音頻線的接線順序,通常只把其中2條線對換即可。
常見故障五:PCI音效卡出現爆音
一般是因為PCI顯卡採用Bus Master技術造成掛在PCI匯流排上的硬碟讀寫、滑鼠移動等操作時放大了背景 雜訊的緣故。解決方法:關掉PCI顯卡的Bus Master功能,換成AGP顯卡,將PCI音效卡換插槽上。
常見故障六:無法正常錄音
首先檢查麥克風是否有沒有錯插到其他插孔中了,其次,雙擊小喇叭,選擇選單上的「屬性→錄音」,看看各項設置是否正確。接下來在「控制面板→多媒體→設備」中調整「混合器設備」和「線路輸入設備」,把它們設為「使用」狀態。如果「多媒體→音頻」中「錄音」選項是灰色的那可就糟了,當然也不是沒有挽救的餘地,你可以試試「添加新硬體→系統設備」中的添加「ISA Plug and Play bus」,索性把音效卡隨卡工具軟體安裝後重新啟動。
常見故障七:無法播放Wav音樂、Midi音樂
不能播放Wav音樂現象比較罕見,常常是由於「多媒體」→「設備」下的「音頻設備」不只一個,禁用一個即可;無法播放MIDI文件則可能有以下3種可能: 1. 早期的ISA音效卡可能是由於16位模式與32位模式不兼容造成MIDI播放的不正常,通過安裝軟體波表的 方式應該可以解決 2. 如今流行的PCI音效卡大多採用波表合成技術,如果MIDI部分不能放音則很可能因為您沒有載入適當的波表音色庫。 3. Windows音量控制中的MIDI通道被設置成了靜音模式。 常見故障八:PCI音效卡在WIN98下使用不正常 有些用戶反映,在音效卡驅動程序安裝過程中一切正常,也沒有出現設備沖突,但在WIN98下面就是無法出聲或是出現其他故障。這種現象通常出現在PCI音效卡上,請檢查一下安裝過程中您把PCI音效卡插在的哪條PCI插槽上。有些朋友出於散熱的考慮,喜歡把音效卡插在遠離AGP插槽,靠近ISA插槽的那幾條PCI插槽中。問題往往就出現在這里,因為Windows98有一個Bug:有時只能正確識別插在PCI-1和PCI-2兩個槽的音效卡。而在ATX主板上緊靠AGP的兩條PCI才是PCI-1和PCI-2(在一些ATX主板上恰恰相反,緊靠ISA的是PCI-1),所以如果您沒有把PCI音效卡安裝在正確的插槽上,問題就會產生了。
編輯本段四.硬碟
硬碟是負責存儲我們的資料的軟體的倉庫,硬碟的故障如果處理不當往往會導致系統的無法啟動和數據的丟失,那麼,當我們應該如何應對硬碟的常見故障呢?
常見故障一:系統不認硬碟
系統從硬碟無法啟動,從A盤啟動也無法進入C盤,使用CMOS中的自動監測功能也無法發現硬碟的存在。這種故障大都出現在連接電纜或IDE埠上,硬碟本身故障的可能性不大,可通過重新插接硬碟電纜或者改換IDE口及電纜等進行替換試驗,就會很快發現故障的所在。如果新接上的硬碟也不被接受,一個常見的原因就是硬碟上的主從跳線,如果一條IDE硬碟線上接兩個硬碟設備,就要分清楚主從關系。
常見故障二:硬碟無法讀寫或不能辨認
這種故障一般是由於CMOS設置故障引起的。CMOS中的硬碟類型正確與否直接影響硬碟的正常使用。現在的機器都支持「IDE Auto Detect」的功能,可自動檢測硬碟的類型。當硬碟類型錯誤時,有時乾脆無法啟動系統,有時能夠啟動,但會發生讀寫錯誤。比如CMOS中的硬碟類型小於實際的硬碟容量,則硬碟後面的扇區將無法讀寫,如果是多分區狀態則個別分區將丟失。還有一個重要的故障原因,由於目前的IDE都支持邏輯參數類型,硬碟可採用「Normal,LBA,Large」等,如果在一般的模式下安裝了數據,而又在CMOS中改為其它的模式,則會發生硬碟的讀寫錯誤故障,因為其映射關系已經改變,將無法讀取原來的正確硬碟位置。
常見故障三:系統無法啟動
造成這種故障通常是基於以下四種原因: 1. 主引導程序損壞 2. 分區表損壞 3. 分區有效位錯誤 4. DOS引導文件損壞 其中,DOS引導文件損壞最簡單,用啟動盤引導後,向系統傳輸一個引導文件就可以了。主引導程序損壞和分區有效位損壞一般也可以用FDISK /MBR強制覆寫解決。分區表損壞就比較麻煩了,因為無法識別分區,系統會把硬碟作為一個未分區的裸盤處理,因此造成一些軟體無法工作。不過有個簡單的方法——使用Windows 2000。找個裝有Windows 2000的系統,把受損的硬碟掛上去,開機後,由於Windows 2000為了保證系統硬體 的穩定性會對新接上去的硬碟進行掃描。Windows 2000的硬碟掃描程序CHKDSK對於因各種原因損壞的硬碟都 有很好的修復能力,掃描完了基本上也修復了硬碟。 分區表損壞還有一種形式,這里我姑且稱之為「分區映射」,具體的表現是出現一個和活動分區一樣的分區。一樣包括文件結構,內容,分區容量。假如在任意區對分區內容作了變動,都會在另一處體現出來,好像是映射的影子一樣。我曾遇上過,6.4G的硬碟變成8.4G(映射了2G的C區)。這種問題特別尷尬,這問題不影響使用,不修復的話也不會有事,但要修復時,NORTON的DISKDOCTOR和PQMAGIC卻都變成了睜眼瞎,對分區總容量和硬碟實際大小不一致視而不見,滿口沒問題的敷衍你。對付這問題,只有GHOST覆蓋和用NORTON的拯救盤恢復分區表。
常見故障四:硬碟出現壞道
這是個令人震驚,人見人怕的詞。近來IBM口碑也因此江河日下。當你用系統Windows系統自帶的磁碟掃描程序SCANDISK掃描硬碟的時候,系統提示說硬碟可能有壞道,隨後閃過一片恐怖的藍色,一個個小黃方塊慢慢的伸展開,然後,在某個方塊上被標上一個「B」…… 其實,這些壞道大多是邏輯壞道,是可以修復的。根本用不著送修(據說廠商之所以開發自檢工具就是因為受不了返修的硬碟中的一半根本就是好的這一「殘酷的」事實)。 那麼,當出現這樣的問題的時候,我們應該怎樣處理呢? 一旦用「SCANDISK」掃描硬碟時如果程序提示有了壞道,首先我們應該重新使用各品牌硬碟自己的自檢程序進行完全掃描。注意,別選快速掃描,因為它只能查出大約90%的問題。為了讓自己放心,在這多花些時間是值得的。 如果檢查的結果是「成功修復」,那可以確定是邏輯壞道,可以拍拍胸脯喘口氣了;假如不是,那就沒有什麼修復的可能了,如果你的硬碟還在保質期,那趕快那去更換吧。 由於邏輯壞道只是將簇號作了標記,以後不再分配給文件使用。如果是邏輯壞道,只要將硬碟重新格式化就可以了。但為了防止格式化可能的丟棄現象(因為簇號上已經作了標記表明是壞簇,格式化程序可能沒有檢查就接受了這個「現實」,於是丟棄該簇),最好還是重分區,使用如IBM DM之類的軟體還是相當快的,或者GHOST覆蓋也可以,只是這兩個方案都多多少少會損失些數據。
常見故障五:硬碟容量與標稱值明顯不符
一般來說,硬碟格式化後容量會小於標稱值,但此差距絕不會超過20%,如果兩者差距很大,則應該在開機時進入BIOS設置。在其中根據你的硬碟作合理設置。如果還不行,則說明可能是你的主板不支持大容量硬碟,此時可以嘗試下載最新的主板BIOS並進行刷新來解決。此種故障多在大容量硬碟與較老的主板搭配時出現。另外,由於突然斷電等原因使BIOS設置產生混亂也可能導致這種故障的發生。 常見故障六:無論使用什麼設備都不能正常引導系統 這種故障一般是由於硬碟被病毒的「邏輯鎖」鎖住造成的,「硬碟邏輯鎖」是一種很常見的惡作劇手段。中了邏輯鎖之後,無論使用什麼設備都不能正常引導系統,甚至是軟盤、光碟機、掛雙硬碟都一樣沒有任何作用。 「邏輯鎖」的上鎖原理:計算機在引導DOS系統時將會搜索所有邏輯盤的順序,當DOS被引導時,首先要去找主引導扇區的分區表信息,然後查找各擴展分區的邏輯盤。「邏輯鎖」修改了正常的主引導分區記錄,將擴展分區的第一個邏輯盤指向自己,使得DOS在啟動時查找到第一個邏輯盤後,查找下個邏輯盤總是找到自己,這樣一來就形成了死循環。 給「邏輯鎖」解鎖比較容易的方法是「熱拔插」硬碟電源。就是在當系統啟動時,先不給被鎖的硬碟加 電,啟動完成後再給硬碟「熱插」上電源線,這樣系統就可以正常控制硬碟了。這是一種非常危險的方法,為了降低危險程度,碰到「邏輯鎖」後,大家最好依照下面幾種比較簡單和安全的方法處理。 1. 首先准備一張啟動盤,然後在其他正常的機器上使用二進制編輯工具(推薦UltraEdit)修改軟盤上的IO.SYS文件(修改前記住先將該文件的屬性改為正常),具體是在這個文件裡面搜索第一個「55AA」字元串,找到以後修改為任何其他數值即可。用這張修改過的系統軟盤你就可以順利地帶著被鎖的硬碟啟動了。不過這時由於該硬碟正常的分區表已經被破壞,你無法用「Fdisk」來刪除和修改分區,這時你可以用Diskman等軟體恢復或重建分區即可。 2. 因為DM是不依賴於主板BIOS來識別硬碟的硬碟工具,就算在主板BIOS中將硬碟設為「NONE」,DM也可識別硬碟並進行分區和格式化等操作,所以我們也可以利用DM軟體為硬碟解鎖。 首先將DM拷到一張系統盤上,接上被鎖硬碟後開機,按「Del」鍵進入BIOS設置,將所有IDE介面設為 「NONE」並保存後退出,然後用軟盤啟動系統,系統即可「帶鎖」啟動,因為此時系統根本就等於沒有硬碟。啟動後運行DM,你會發現DM可以識別出硬碟,選中該硬碟進行分區格式化就可以了。這種方法簡單方便,但是有一個致命的缺點,就是硬碟上的數據保不住了 常見故障七:開機時硬碟無法自舉,系統不認硬碟 這種故障往往是最令人感到可怕的。產生這種故障的主要原因是硬碟主引導扇區數據被破壞,表現為硬碟主引導標志或分區標志丟失。這種故障的罪魁禍首往往是病毒,它將錯誤的數據覆蓋到了主引導扇區中。市面上一些常見的殺毒軟體都提供了修復硬碟的功能,大家不妨一試。但若手邊無此類工具盤,則可嘗試將全0數據寫入主引導扇區,然後重新分區和格式化,其方法如下:用一張干凈的DOS啟動盤啟動計算機,進入A:\>後輸入以下命令(括弧內為注釋): A:\>DEBUG(進入DEBUG程序) -F 100 3FF0(將數據區的內容清為0) -A 400(增加下面的命令) MOV AX,0301 MOV BX,0100 MOV CX,0001 MOV DX,0080 INT 13 INT 03 -G=400(執行對磁碟進行操作的命令) -Q(退DEBUG程序) 用這種方法一般能使你的硬碟復活,但由於要重新分區和格式化,裡面的數據可就難保了。以上是硬碟在日常使用中的一些常見故障及解決方法,希望能對大家有所啟發。如果硬碟的故障相當嚴重並不能用上述的一些方法處理時,則很可能是機械故障。由於硬碟的結構相當復雜,所以不建議用戶自己拆卸,而應求助於專業人員予以維修。
編輯本段五.內存
內存是電腦中最重要的配件之一,它的作用毋庸置疑,那麼內存最常見的故障都有哪些呢?
常見故障一:開機無顯示
內存條原因出現此類故障一般是因為內存條與主板內存插槽接觸不良造成,只要用橡皮擦來回擦試其金手指部位即可解決問題(不要用酒精等清洗),還有就是內存損壞或主板內存槽有問題也會造成此類故障。 由於內存條原因造成開機無顯示故障,主機揚聲器一般都會長時間蜂鳴(針對Award Bios而言)。 常見故障二:Windows注冊表經常無故損壞,提示要求用戶恢復此類故障一般都是因為內存條質量不佳引起,很難予以修復,唯有更換一途。
常見故障三:Windows經常自動進入安全模式
此類故障一般是由於主板與內存條不兼容或內存條質量不佳引起,常見於高頻率的內存用於某些不支持此頻率內存條的主板上,可以嘗試在CMOS設置內降低內存讀取速度看能否解決問題,如若不行,那就只有更換內存條了。
常見故障四:隨機性死機
此類故障一般是由於採用了幾種不同晶元的內存條,由於各內存條速度不同產生一個時間差從而導致死 機,對此可以在CMOS設置內降低內存速度予以解決,否則,唯有使用同型號內存。還有一種可能就是內存條與主板不兼容,此類現象一般少見,另外也有可能是內存條與主板接觸不良引起電腦隨機性死機。01
常見故障五:內存加大後系統資源反而降低
此類現象一般是由於主板與內存不兼容引起,常見於高頻率的內存內存條用於某些不支持此頻率的內存條的主板上,當出現這樣的故障後你可以試著在COMS中將內存的速度設置得低一點試試。 常見故障六:運行某些軟體時經常出現內存不足的提示此現象一般是由於系統盤剩餘空間不足造成,可以刪除一些無用文件,多留一些空間即可,一般保持在 300M左右為宜。 常見故障七:從硬碟引導安裝Windows進行到檢測磁碟空間時,系統提示內存不足 此類故障一般是由於用戶在config.sys文件中加入了emm386.exe文件,只要將其屏蔽掉即可解決問題
C. C語言編寫電腦配件銷售管理系統 求解答!!!!!...............
哥們,能不能給我也發一個
D. tn6文件的的源代碼怎麼看,或者是怎麼把指標從電腦版通達信的導入手機通達信
一、手機版指標導入流程圖解
這里要清楚一點手機版不能使用選股指標,選股指標只能通過電腦版使用的。代碼判斷iphone型號4 5 6 6plus
第一步:打開通達信手機版軟體。這里我就不貼圖片了,我相信沒有人做不到打不開通達信手機版軟體。
第二步:打開通達信手機版軟體之後選擇行情界面,然後隨便打開一隻個股日線圖
第三步:在打開的日線圖上選擇指標名稱點擊一下,主圖和幅圖一樣的
第四步:選擇指標編輯,然後選擇新建指標。重點說一下,這個位置要切換指標的話可以直接選擇下方的指標名稱。
第五步:填寫指標名稱並選擇主圖還是幅圖指標,然後點擊公式編輯
第六步:直接復制源碼點擊保存就可以了。
電腦版指標導入教程
第一步:打開通達信電腦版軟體選擇功能——公示系統——公式管理器
第二步:新建指標,這里重點說一下技術指標就選擇技術指標新建,選股指標就選擇選股指標新建。
第三步:粘貼指標源碼選擇指標位置,點擊確定
第四步:TN6格式導入
二、電腦版指標安裝
電腦版指標安裝分為兩種方式,一種是直接導入公式,一種是復制粘貼源代碼。
首先登錄電腦版通達信軟體,隨便點開一隻股票。在右下角點擊"更多」,再點擊「公式管理」打開公式管理器(也可點擊左上角系統--公式系統--公式管理器),打開後我們先來講解第一種安裝方式。
1、直接導入公式
打開指標公式文件後,會彈出一個界面讓你勾選所屬指標類型,大類和小類都打上勾,再點擊「確定」。這樣,導入指標公式就完成了。
完成導入公式後,可以再打開「公式管理」界面,找到你剛才所勾選的大類小類名下新增的指標公式。比如我新增的「小情人指標」是勾選了放在大類(技術指標公式)和小類(均線型)下,依次打開這兩個選項就可以找到「小情人指標(用戶)」,選中指標公式,還可以點擊右上角的「加入常用」,這樣此指標就會出現在右下角的指標欄上,方便直接調用。
特別注意:指標公式後綴是tn6,可以正常導入。如果是從網上下載別人分享的指標公式,要特別注意下後綴,有些文件不能導入,還要避免胡亂下載使電腦中毒。
2、復制粘貼源代碼
同樣打開「公式管理」界面,首先先選擇你的指標要放在哪個大類和小類,比如先點開大類(技術指標公式),再點擊選中小類(其他類型)。注意:滑鼠一定要選中小類(其他類型)後,再去點擊右上角「新建」指標。
點擊「新建」後,會顯示指標公式編輯器。將公式名稱填好,再選擇畫線方式,如果你是新增主圖指標,就選擇」主圖疊加「,如果是新增副圖指標,就選擇」副圖「。此外,還要特別注意:如果你新增的指標是有參數的,必須將參數設置一並填好。再在界面空白處復制粘貼進去你的指標源代碼。
最後,點擊右上角的」測試公式「對你的新增指標進行測試,測試結果會在最下方顯示。通過的話,一定要記得去點擊右上角的」確定「按鈕,這樣你的新增指標就完成了。如何找到你新增的這個指標方法同上,此處不再贅述。
E. 什麼是電腦系統的「源代碼」
源程序是指未編譯的文本代碼。
驗證碼主要是為防止暴利破解,所以需要防止圖片識別。所以驗證碼一般情況下為書寫不正規,且有隨機的背景雜點,或雜線
源代碼(也稱源程序),是指一系列人類可讀的計算機語言指令。
在現代程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。計算機源代碼的最終目的是將人類可讀的文本翻譯成為計算機可以執行的二進制指令,這種過程叫做編譯,通過編譯器完成。
作用 :
源代碼主要功用有如下2種作用:
生成目標代碼,即計算機可以識別的代碼。
對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程序員都忽視軟體說明的編寫,因為這部分雖然不會在生成的程序中直接顯示,也不參與編譯。但是說明對軟體的學習、分享、維護和軟體復用都有巨大的好處。因此,書寫軟體說明在業界被認為是能創造優秀程序的良好習慣,一些公司也硬性規定必須書寫。
需要指出的是,源代碼的修改不能改變已經生成的目標代碼。如果需要目標代碼做出相應的修改,必須重新編譯。
代碼組合 :
源代碼作為軟體的特殊部分,可能被包含在一個或多個文件中。一個程序不必用同一種格式的源代碼書寫。例如,一個程序如果有C語言庫的支持,那麼就可以用C語言;而另一部分為了達到比較高的運行效率,則可以用匯編語言編寫。
較為復雜的軟體,一般需要數十種甚至上百種的源代碼的參與。為了降低種復雜度,必須引入一種可以描述各個源代碼之間聯系,並且如何正確編譯的系統。在這樣的背景下,修訂控制系統(RCS)誕生了,並成為研發者對代碼修訂的必備工具之一。
還有另外一種組合:源代碼的編寫和編譯分別在不同的平台上實現,專業術語叫做軟體移植。
版權 :
如果按照源代碼類型區分軟體,通常被分為兩類:自由軟體和非自由軟體。自由軟體一般是不僅可以免費得到,而且公開源代碼;相對應地,非自由軟體則是不公開源代碼。所有一切通過非正常手段獲得非自由軟體源代碼的行為都將被視為非法。
質量 :
對於計算機而言,並不存在真正意義上的「好」的源代碼;然而作為一個人,好的書寫習慣將決定源代碼的好壞。源代碼是否具有可讀性,成為好壞的重要標准。軟體文檔則是表明可讀性的關鍵。
效率 :
雖然我們可以通過不同的語言來實現計算機的同一功能,但在執行效率上則存在不同。普遍規律是:越高級的語言,其執行效率越低。這也是為什麼匯編語言生成的文件比用VB語言生成文件普遍要小的
F. c語言商品管理系統源代碼,加註釋
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define SIZE 300
typedef struct
{
char name[30];
int num;
char shang[10];
float price;
}record;
void DataInput(record *com, int *nptr);
int DataRead(record *com,int *nptr) ;
void DataStorage(record *com, int n); /*信息保存到文件*/
void DataFind( );
void DataDisPlay( );
void DataAdd( );
void DataDel( );
void DataStatistic( );
int main( )
{
record shangpin[SIZE];
int number=20; /*設商品數*/
char fn;
printf("\t~~~~~~商品管理系統~~~~~~");
while(1)
{
printf("\n\t\t1.商品信息錄入\n"); /*顯示主菜單*/
printf("\t\t2.商品信息顯示\n");
printf("\t\t3.商品信息查找\n");
printf("\t\t4.商品信息添加\n");
printf("\t\t5.商品信息刪除\n");
printf("\t\t6.商品信息統計\n");
printf("\t\t0.退出系統頃空首");
printf("\n\t~~~~~~~~~~~~~~~~\n");
printf("\t請輸入你的一個選項(數字0-6): ");
fflush(stdin);
scanf("%c",&fn);
puts("\n");
switch(fn) /*切換到不同功能*/
{
case '1':
DataInput(shangpin, &number );
break; /*錄入信息*/
case '2':DataDisPlay();
break; /*信息顯虧脊示*/
case '3':
DataFind();
break; /*信息查找*/
case '4':
DataAdd( );
break; /*增加*/
case '5':
DataDel( );
break; /*刪除*/
case '6':
DataStatistic();
break; /*信息統計*/
case '0':
return 0;
default:puts("\t\t沒有這個項!返回主菜單!");
break;
}
printf("\n\t\t完畢!按任意鍵繼續");
getch( );
puts("\n");
}
}
void DataInput(record *com, int *nptr) /*商品信息錄入*/
{
int i = 0;
int n ; /*錄入的總數*/
char YesOrNo; /*判斷是否保存*/
char shangming[30]; /*商名*/
int haoma; /*商品號*/
char shangjia[10]; /*單價*/
float danjia;
printf("\t\t請輸入商品個數:");
scanf("%d",&n);
*nptr = n; /*nptr返回商品個數*/
printf("\t\t現在開始錄入這%d個商品信息:\n\n",n);
while(i<n)
{
printf("請輸入商品的商品名:",i+1);
scanf("%s",&shangming);
printf("請輸入商品雀數的商品號:",i+1);
scanf("%d",&haoma);
printf("請輸入商品的生產商:",i+1);
scanf("%s",&shangjia);
printf("請輸入商品的單價 :",i+1);
scanf("%f",&danjia);
if(danjia>=0&&danjia<=1000) /*有效的單價才錄入*/
{
strcpy(com[i].name,shangming);
com[i].num = haoma;
strcpy(com[i].shang,shangjia);
com[i].price = danjia;
i =i+1;
}
else
printf("輸入的單價是一個無效的值!!!\n\n");
} /*結束while*/
printf("要保存您剛才錄入的數據嗎(Y/N)?"); /*選擇保存*/
fflush(stdin);
scanf("%c",&YesOrNo);
if(YesOrNo=='y'||YesOrNo=='Y')
DataStorage(com,n);
else if(YesOrNo=='n'||YesOrNo=='N')
return;
else
printf("輸入了不正確的選項\n");
return;
} /*結束函數*/
void DataFind( ) /*查找*/
{
void OnNumber(record *com,int n ); /*按商品號排序*/
int key; /*key為要查找的關鍵值*/
int low = 0; /*下限*/
int high ; /*上限*/
int mid ; /*中間值*/
char ans; /*選項*/
record com[SIZE];
int n;
if(DataRead(com,&n)==1) /*從文件中讀取信息*/
{
OnNumber(com,n); /*先按商品號排序*/
high = n;
do
{
printf("\n\n\t\t請輸入你要查找的商品號:");
scanf("%d",&key);
low = 0;high = n;
while (low <=high)
{
mid = (high + low)/2; /*折半查找法*/
if (key == com[mid].num )
{
printf("\n\t\t你要找的是第%d個商品\n",mid + 1);
printf("\t\t結果如下:\n\n");
printf("序號\t\t商品名\t 商品號\t生產商\t單價\n");
printf("%3d%17s%12d%12s%8.1f\n",mid+1,com[mid].name,com[mid].num,com[mid].shang,
com[mid].price);
break; /*如果找到則退出循環*/
}
if (key > com[mid].num ) low = mid + 1;
else high = mid - 1;
}
if (low > high)
printf("\t\t,沒有找到這個價格!\n");
printf("\n\t\t還要繼續查詢嗎(Y/N)?");
ans = getch( );
}
while (ans =='Y'||ans == 'y'); /*結束do....while*/
}
}
void DataStorage(record *com, int n) /*錄入保存文件*/
{
int i;
FILE *comPtr;
char FileName[20];
printf("請輸入您要保存的文件名:");
scanf("%s",FileName);
printf("正在將商品信息保存到文件,請稍候……\n");
if((comPtr=fopen(FileName,"w"))==NULL)
printf("沒有該文件\n");
else
for(i=0 ; i<n ; i++)
fprintf(comPtr,"\n%17s%12d%12s%8.1f",com[i].name,com[i].num,com[i].shang,com[i].price);
fclose(comPtr);
}
int DataRead(record *com,int *nptr) /*讀取文件*/
{
int i=0;
char datafile[20];
FILE *comPtr;
*nptr = 0;
printf("請輸入文件名:");
scanf("%s",datafile);
if((comPtr = fopen(datafile,"r")) == NULL) /*打開文件*/
{
printf("沒有該文件,請重新輸入!\n");
return 0;
}
else
{
printf("正在讀取商品單價,請稍候……\n");
while (!feof(comPtr))
{
fscanf(comPtr,"%s%d%s%f",&com[i].name,&com[i].num,&com[i].shang,&com[i].price);
i++;
}
*nptr = i;
printf("\n");
fclose(comPtr);
return 1;
}
}
void DataDisPlay()
{
void OnPrice(record *com,int n ); /*按單價*/
void OnNumber(record *com,int n ); /*按商品號*/
int N;
int i;
record com[300];
char YesNo; /*是否按順序顯示*/
char tp;
if(DataRead(com,&N)==1) /*從文件讀取數據*/
{
printf("序號\t\t商品名\t 商品號\t生產商\t單價\n");
for(i=0;i<N;i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,com[i].price);
printf("要按順序顯示嗎?(Y/N)?");
fflush(stdin);
scanf("%c",&YesNo);
if(YesNo=='y'||YesNo=='Y')
{
printf("\t請輸入排序方式:\n");
printf("\t(1.按價格排序從低到高;2.按商品號排序從低到高.)");
fflush(stdin);
scanf("%c",&tp);
if(tp=='1')
OnPrice(com,N);
else if(tp =='2')
OnNumber(com,N);
else
printf("\t輸入了不正確項!\n");
}
}
} /*結束顯示成績*/
void OnPrice(record *com,int n ) /*按單價順序*/
{ int i,j;
record temp;
printf("\t\t按單價排序---\n\n");
printf("商品總數為%d:\n",n);
for(j=0 ; j<n-1 ; j++) /*冒泡排序*/
for(i=0 ; i<n-j-1 ; i++)
if(com[i].price>com[i+1].price)
{
temp=com[i];
com[i]=com[i+1];
com[i+1]=temp;
}
printf("\n\t\t按成績排序的結果如下(按分數從低到高):\n\n");
printf("序號\t\t商品名\t 商品號\t生產商\t單價\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);
}
void OnNumber(record *com,int n ) /*按序號順序*/
{
int i,j;
record temp;
printf("\t\t按商品號排序---\n\n");
printf("商品總數為%d:\n",n);
for(j=0 ; j<n-1 ; j++)
for(i=0 ; i<n-j-1 ; i++)
if(com[i].num>com[i+1].num)
{
temp=com[i];
com[i]=com[i+1];
com[i+1]=temp;
}
printf("\n\t按商品號排序的結果如下(按商品號從小到大):\n\n");
printf("序號\t\t商品名\t 商品號\t生產商\t單價\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);
}
void DataAdd( ) /*增加*/
{
int i=0,n,m; /*商品名稱*/
char shangming[30];
int haoma; /*生產商*/
char shangjia[10];
float danjia;
char YesOrNo;
record com[SIZE];
printf("\t\t讀取原有數據信息---\n");
if(DataRead(com,&n)==1)
{
printf("\t\t信息讀取完畢!\n\n");
printf("\t\t請輸入要添加的商品總數:");
scanf("%d",&m);
printf("\t\t現在開始錄入這%d個商品信息:\n\n",m);
while(i<m)
{
printf("第%d個商品的商品名:",i+1);
scanf("%s",&shangming);
printf("第%d個商品的商品號:",i+1);
scanf("%d",&haoma);
printf("第%d個商品的生產商:",i+1);
scanf("%s",&shangjia);
printf("第%d個商品的單價:",i+1);
scanf("%f",&danjia);
if(danjia>=0&&danjia<=1000) /*有效的單價才錄入*/
{
strcpy(com[i+n].name,shangming);
com[i+n].num = haoma;
strcpy(com[i+n].shang,shangjia);
com[i+n].price = danjia;
i =i+1;
}
else
printf("輸入的單價是一個無效的值,請重新輸入!\n\n");
}
printf("要保存您剛才錄入的數據嗎(Y/N)?");
fflush(stdin);
scanf("%c",&YesOrNo);
if(YesOrNo=='y'||YesOrNo=='Y')
DataStorage(com,n+m);
else if(YesOrNo=='n'||YesOrNo=='N')
return;
else
printf("輸入了不正確項,返回上一級\n");
return;
}
}
void DataDel( )//刪除
{
void OnNumber(record *com,int n );
record com[SIZE];
int i; /*總記錄數*/
int n; /*要刪除的記錄號*/
int m;
printf("\t\t讀取原有數據信息---\n");
if(DataRead(com,&n)==1)
{
printf("\t\t原始數據如下:\n\n");
OnNumber(com,n );
printf("請輸入你要刪除的記錄的序號");
scanf("%d",&m);
if(m>=1 && m<=n)
{
for(i=m-1;i<n-1;i++)
com [i] = com[i+1];
DataStorage(com,n-1);
}
}
}
void DataStatistic( ) /*統計信息*/
{
int high=0,low=200,ave=0;
int n,i,sum=0;
int g,l;
record com[SIZE];
printf("讀取數據信息---\n");
if(DataRead(com,&n)==1)
{
printf("商品總數為%d\n\n",n);
for(i=0;i<n;i++)
{
if(com[i].price>high)
{
high = com[i].price;
g=i;
}
if(com[i].price<low)
{
low = com[i].price;
l=i;
}
sum += com[i].price;
}
ave=sum/n;
printf("\t\t最高\t最低\t平均\n"); /*計算值*/
printf("商品單價統計:\t%d\t%d\t%d\n\n",high,low,ave);
printf("序號\t\t商品名\t 商品號\t生產商\t單價\n");
for(i=0 ; i<n ; i++)
printf("%3d%17s%12d%12s%8.1f\n",i+1,com[i].name,com[i].num,com[i].shang,
com[i].price);
printf("\t\t 序號\t\t 商品名\t 商品號\t 生產商 單價\n");
printf("單價最高的商品是:%3d%17s%12d%12s%8.1f\n\n",g+1,com[g].name,com[g].num,com[g].shang,com[g].price);
printf("單價最低的商品是:%3d%17s%12d%12s%8.1f\n",l+1,com[l].name,com[l].num,com[l].shang,com[l].price);
} /*結束統計*/
}
G. 別人用excel表格做的管理系統怎麼查看此管理系統的源碼
新建excel文件,alt+F11進入VBA編輯器,插入模塊,輸入以下代碼:
Sub MoveProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, False ' 引用下面的自定義函數
End If
End Sub
Private Function VBAPassword(FileName As String, Optional Protect As Boolean = False)
If Dir(FileName) = "" Then
Exit Function
Else
FileCopy FileName, FileName & ".bak"
End If
Dim GetData As String * 5
Open FileName For Binary As #1
Dim CMGs As Long
Dim DPBo As Long
For i = 1 To LOF(1)
Get #1, i, GetData
If GetData = "CMG=""" Then CMGs = i
If GetData = "[Host" Then DPBo = i - 2: Exit For
Next
If CMGs = 0 Then
MsgBox "請先對VBA編碼設置一個保護密碼...", 32, "提示"
Exit Function
謹跡灶 州團 End If
If Protect = False Then
Dim St As String * 2
Dim s20 As String * 1 '取得一個0D0A十六進制字串
Get #1, CMGs - 2, St '取得一個20十六制字串
Get #1, DPBo + 16, s20 '替換加密部份機碼
For i = CMGs To DPBo Step 2
Put #1, i, St
Next '加入不配對符號
祥扮 If (DPBo - CMGs) Mod 2 <> 0 Then
Put #1, DPBo + 1, s20
End If
MsgBox "文件解密成功......", 32, "提示"
Else
Dim MMs As String * 5
MMs = "DPB="""
Put #1, CMGs, MMs
MsgBox "對文件特殊加密成功......", 32, "提示"
End If
Close #1
End Function
2. 運行上面的代碼,選擇你的文件,移除密碼成功後打開文件,按alt+F11查看源碼: