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查看源码: