×

电脑报价系统源代码,c语言商品管理系统源代码,加注释

admin admin 发表于2024-03-18 15:47:41 浏览19 评论0

抢沙发发表评论

本文目录一览:

题目:用C++写一个简单的电脑报价系统 ,要求如下。

一、定义基础抽象数据模型。
1、文件读取类。
2、数据模型,继承文件读取,拥有链表功能,存放关系数据模型功能,查询功能,列出打印链表功能
3、定义数据模型物料,分类,厂商,报价 继承数据模型
物料实例化属性1:代码,2:名称,3:规格,4,分类(实际存分类代码),5:创建时间
分类实例化属性1:代码,2:名称, 6:创建时间
厂商实例化属性1:代码,2:名称, 6:创建时间
报价实例化属性1:单号,2:物料(实际存储物料代码),3:厂商(实际存厂商代码) 4:报价时间
按照这个思路来就没问题了

查找电脑配置的代码是什么


oppo串号查询手机配置?
oppo手机指令代码大全
完整指令
*#06#可查询手机串号
*#1234#可查询硬件代码和手机版
*#6776#可查询手机版本,出厂信息等
*#*#4636#*#*可查询电池使用情况和温度,更改网络类型
*#800#断言开关(别乱摁,否则无限重启)
*#801#工程模式开关
*#802#GPS扫描测试
*#803#WLAN设置
*#804#自动搜网
*#805#蓝牙测试
*#806#自动老化测试
*#807#自动测试
*#808#手动测试
*#809#回音测试
*#811#OTA开关(仅正式版可用)
*#8778#总清除(重置手机)
*#888#查看固件版本
*#99#打开/关闭屏幕常亮
*#900#蓝牙开启
*#901#蓝牙关闭
电脑开机出现硬件信息怎么办?
电脑开机出现硬件信息解决方法:
1.首先,将pe启动盘插在电脑上,然后在开机的时候按下键盘上的热键进入pe系统,然后选择第一项回车进入。
2.接着,进入到pe系统之后,在桌面上找到分区工具,双击图标进入。
3.之后,在软件的菜单栏上选择硬盘。
4.在弹出的下拉菜单中点击重建主引导记录选项。
5、最后,出现对话框选择是,然后工具就会开始修复系统的主引导记录,修复完毕之后电脑开机就不会出现硬件信息。
什么软件可以查看应用代码?
android代码阅读器app这是一款能快速识别源代码的手机应用,通过安卓代码阅读器app你可轻松查询文件源代码,浏览多种主流编程语言等。
安卓代码阅读器app是一款简单的源码阅读器,支持语法高亮显示以及多种主题风格显示,能自动识别源码文件。android代码阅读器,轻松阅读源代码,界面风格多样自由选择,工程便捷管理。
开机自检时如何识别主机主要硬件(主板芯片组+内存容量+硬盘品牌、容量,显卡型号、显存容量%2?
一、开机自检中查看硬件配置机器组装结束后即使不装操作系统也可以进行加电测试,在开机自检的画面中就隐藏着硬件配置的简单介绍哟(由于开机画面一闪而过,要想看清楚的话,记得及时伸手按住“PAUSE”键)。1.显卡信息开机自检时首先检查的硬件就是显卡,因此启动机器以后在屏幕左上角出现的几行文字就是有显卡的“个人资料”介绍。四行文字中,第一行“GeForce4MX440??”标明了显卡的显示核心为GeForce4MX440、支持AGP8X技术;第二行“Version??”标明了显卡BIOS的版本,我们可以通过更新显卡BIOS版本“榨取”显卡性能,当然更新后这一行文字也会随之发生变化;第三行“Copyright(C)??”则为厂商的版权信息,标示了显示芯片制造厂商及厂商版权年限;第四行“64.0MBRAM”则标明了显卡显存容量。2.CPU及硬盘、内存、光驱信息显示完显卡的基本信息之后,紧接着出现的第二个自检画面则显示了更多的硬件信息,像CPU型号、频率、内存容量、硬盘及光驱信息等都会出现在此画面中。该画面最上面两行文字标示了主板BIOS版本及BIOS制造商的版权信息;紧接着的文字一看就明白啦,当然是主板芯片组喽;其下几行文字则标明了CPU的频率及内存容量、速度。呵呵,我这个CPU和内存是超频使用的,所以频率可不太正规哟;下面四行“IDE??”则标明了连接在IDE主从接口上的设备,包括硬盘型号及光驱型号等等。3.主板信息在第二个自检画面的最下方还会出现一行关于主板的信息,前面的日期显示的是当前主板的BIOS更新日期,后面的符号则是该主板所采用的代码,根据代码我们可以了解主板的芯片组型号和生产厂商。以往老主板的自检画面中最下方文字的中间标明的是主板芯片组,这一块板子则将其提到了自检画面的上方。机器启动之后按“DEL”键进入BIOS设置页面,在基本信息中同样也可以看到机器的硬件信息,与开机画面显示的没有区别。二、利用设备管理器查看硬件配置进入操作系统之后,在安装硬件驱动程序的情况下还可以利用设备管理器与DirectX诊断工具来查看硬件配置。下面看看如何利用设备管理器查看硬件信息。进入桌面,鼠标右击“我的电脑”图标,在出现的菜单中选择“属性”,打开“系统属性”窗口,点击“硬件--设备管理器”,在“设备管理器”中显示了机器配置的所有硬件设备。从上往下依次排列着光驱、磁盘控制器芯片、CPU、磁盘驱动器、显示器、键盘、声音及视频等信息,最下方则为显示卡。想要了解哪一种硬件的信息,只要点击其前方的“+”将其下方的内容展开即可。利用设备管理器除了可以看到常规硬件信息之外,还可以进一步了解主板芯片、声卡及硬盘工作模式等情况。例如想要查看硬盘的工作模式,只要双击相应的IDE通道即可弹出属性窗口,在属性窗口中可轻检看到硬盘的设备类型及传送模式。这些都是开机画面所不能提供的。需要注意的是在WindowsXp之前的操作系统中所提供的设备管理器是无法用来查看CPU工作频率的,好在我们还有DirectX诊断工具。三、利用DirectX诊断工具查看硬件配置DirectX诊断工具可以帮助我们对硬件工作情况作出测试、诊断并进行修改,当然我们也可以利用它来查看机器的硬件配置。运行“系统信息”窗口,找到“工具--DirectX诊断工具”(或者进入安装盘符中Windows目录下的System32目录中运行Dxdiag.exe),在窗口中可以方便地查看硬件信息。1.查看基本信息在“DirectX诊断工具”窗口中点击“系统”选项卡,当前日期、计算机名称、操作系统、系统制造商及BIOS版本、CPU处理器频率及及内存容量一目了然。注意喽,虽然我将Celeron2.0MHz超频至2.40MHz使用,但是DirectX却不认这个帐,依然显示的是未超频的原始频率。看来没有AIDA32,我们同样也可以识别奸商是否将超频的CPU卖给我们!!2.查看显卡信息在“DirectX诊断工具”窗口中点击“显示”选项卡,在这里我们可以看到显卡的制造商、显示芯片类型、显存容量、显卡驱动版本、监视器等常规信息。3.查看音频信息音频设备往往为人所忽视,但缺了它又不行,单击“声音”选项卡,对其做一番了解吧.同样在出现的窗口中能看到设备的名称、制造商及其驱动程序等等极为详细的资料。不同的是我们还可以点击右下角的“测试DirectSound(T)”对声卡进行一下简单的测试。
怎样从识别码查车辆配置?
1、首先我们要登录手机微信,在发现里点击微信小程序;
2、接着进入微信小程序后,在搜索栏里输入“车架号”后,就会显示出多个车架号信息查询的小程序了,如下图所示;
3、这时候我们要看清楚:有的查询车架号信息小程序,需要选择品牌型号,对一些车辆品牌型号不支持查询,大多数还是查询的到的;
4、然后点击车架号VIN进入小程序后,首先按照步骤要求输入17位车架号。这时候要通过拍照上传行驶证上的车辆识别代号,因为手写输入会出现格式有误,造成查询失败,上传后点击查询,如下图所示;
5、最后可以在下面查询出的结果,对照车辆配置型号即可。

电脑上如何查看网页源代码

有的小伙伴在进行网页布局时,想要写出更好看的样式,那么这时候我们就需要查看一些网页的源代码来进行学习了,如何查看网页源代码呢?小编就来为大家介绍一下吧。
具体如下:1. 第一步,双击打开“浏览器”软件。
2. 第二步,来到浏览器页面后,点击页面右上角的【...】选项。
3. 第三步,我们可以看到如下图所示的弹出选项框,点击【开发人员工具】选项,或者我们可以按快捷键【F12】来查看网页源码。
4. 第四步,点击网页源代码窗口左上角的【元素】选项,这样我们就可以看到div css了。
5. 第五步,点击下图红框中的三角图标,我们就可以对该代码进行展开或者折叠操作了。
6. 第六步,我们可以通过点击每段div样式的代码,来了解到样式的定义。

什么是电脑系统的“源代码”?

源程序是指未编译的文本代码。
验证码主要是为防止暴利破解,所以需要防止图片识别。所以验证码一般情况下为书写不正规,且有随机的背景杂点,或杂线
源代码(也称源程序),是指一系列人类可读的计算机语言指令。
在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。
作用 :
源代码主要功用有如下2种作用:
生成目标代码,即计算机可以识别的代码。
对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。
需要指出的是,源代码的修改不能改变已经生成的目标代码。如果需要目标代码做出相应的修改,必须重新编译。
代码组合 :
源代码作为软件的特殊部分,可能被包含在一个或多个文件中。一个程序不必用同一种格式的源代码书写。例如,一个程序如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。
较为复杂的软件,一般需要数十种甚至上百种的源代码的参与。为了降低种复杂度,必须引入一种可以描述各个源代码之间联系,并且如何正确编译的系统。在这样的背景下,修订控制系统(RCS)诞生了,并成为研发者对代码修订的必备工具之一。
还有另外一种组合:源代码的编写和编译分别在不同的平台上实现,专业术语叫做软件移植。
版权 :
如果按照源代码类型区分软件,通常被分为两类:自由软件和非自由软件。自由软件一般是不仅可以免费得到,而且公开源代码;相对应地,非自由软件则是不公开源代码。所有一切通过非正常手段获得非自由软件源代码的行为都将被视为非法。
质量 :
对于计算机而言,并不存在真正意义上的“好”的源代码;然而作为一个人,好的书写习惯将决定源代码的好坏。源代码是否具有可读性,成为好坏的重要标准。软件文档则是表明可读性的关键。
效率 :
虽然我们可以通过不同的语言来实现计算机的同一功能,但在执行效率上则存在不同。普遍规律是:越高级的语言,其执行效率越低。这也是为什么汇编语言生成的文件比用VB语言生成文件普遍要小的

现在商城系统源代码比较完善的都有哪些?授权价格都在什么价位?

商城系统目前有ecshop,大商创,还有一款友价。
推荐使用ecshop和友价。
ecshop也算是老牌的商城系统了,几年的发展拥有很多插件,很容易二次开发,使用起来也很简单易懂。ecshop正版商业授权在3000-5000左右,但是网上有很多破解过的,个人使用过,感觉很方便,虽然用不了正版的插件,但是因为用的人多,所以也是有很多低价就可以购买的插件可以使用,用起来没有大问题,如果不是企业用的话,可以试试破解版。如果是商用,建议去官网购买正版授权,正版授权是永久的。正版授权支持PC、APP、小程序。
还有一款友价,友价适合做门户商城,收录感觉也比ecshop来的快。友价偏向于虚拟物品交易,虚拟物品交易系统完善的很全。价格在2000-3000元,但是后续有很多需要另外购买才能实现功能的插件,所以如果不是做虚拟物品交易,建议还是用上面的ecshop。友价也拥有破解版,功能上可能稍微比正版的少。商用一律建议购买正版。
大商创没实际用过,我就不推荐了。还有很多其他的商城系统,不过本人都没实际用过,不好评价,我接触过的电商客户们用的比较多的都是这2款。你可以自己试着看一下,如果符合你的预期可以选择,如果不符合预期,可以另行选择。

计算机代码有哪些?

计算机程序包括那些
程序包括很多种!可执行程序.exe是最熟悉的
只要是可以双击运行的都叫程序!
病毒也是程序!
电脑最基本代码有哪些
是诊断卡代码吧?主板检测卡常见代码检修

一、主板检测卡各指示灯说明
BIOS灯:为BIOS运行灯、正常工作时应不停闪动
CLK灯:为时钟灯、正常为常亮
OSC灯:为基准时钟灯、正常为常亮
RESET灯:为复位灯、正常为开机瞬间闪一下,然后熄灭
RUN灯:为运行灯、工作时应不停闪动
+12V、-12V、+5V、+3.3V灯正常为常亮
二、常见代码检修
1、00、CO、CF、FF或D1
测BIOS芯片CS有无片选:
(1)、有片选:换BIOS、测BIOS的OE是否有效、测PCI的AD线、 测 CPU复位有无1.5V--0V跳变
(2)、无片选:测PCI的FRAME、测CPU的DBSY ADS#,如不正常 则北桥坏、若帧周期信号不正常则南桥坏
2、C0
CPU插槽脏、针脚坏、接触不好
换电源、换CPU、换转接卡有时可解决问题
刷BIOS、检查BIOS座
I/O坏、北桥虚焊、南弱桥坏
PCB断线、板上粘有导电物
3、C1、C3、C6、A7或E1
内存接触不良(用镊子划内存槽)
测内存工作电压SDRAM (3.3V),DDR(2.5和1.25V)
测时钟(CLK0~CLK3)
CPU旁排阻是否损坏
测CPU地址线和数据线
测DDR的负载排阻和数据排阻
北桥坏
4、C1~05循环跳变
测32.768MHZ是否正常
BIOS损坏
I/O或南桥损坏
5、C1、C3、C6
刷BIOS、检查BIOS座
换电源、换CPU,换转接卡有时可解决问题
PCB断线、板上粘有导电物
换内存条,PC100、PC133,或速度更快更稳定的内存
换内存插槽,有些主板的内存条插槽要先插最靠里面或最靠外面的槽才可工作
目测内存槽是否有短路等机械类损坏现象
没内存的CLK0、CLK1、CLK2、CLK3、CLK4,内存主供电
打阻值检查是否有断路现象
换I/O芯片、北桥虚焊或北桥坏
6、循环显示C1-C3或C1-C5
刷BIOS
换I/O有时可解决问题、检查I/O外围电路
PCB断线、板上粘有导电物
换电源、换CPU、换内存
南桥坏
7、其它代码
刷BIOS
换电源、CPU、内存
检查I/O外围电路、换I/O芯片
PCB断线、板上粘有导电物、南桥坏
8、bO代码
测内存的数据负载电压1.25V、2.5V(DDR)
清CMOS
测北桥供电或北桥坏
9、25代码
测AGP核心供电4X(1.5V)、8X(0.8V)、2X(3.3V)
北桥供电、北桥坏
10、走od后不亮
测PCI插槽之间电阻和排阻
外频、倍频跳线
11、若显示Ob显示器仍不亮
换显卡,有时主板与显卡不兼容
换电源、换CPU、换内存
换显卡插槽、PCB断线、板上......
电脑的常用运行代码有哪些?
说太多了你用不到,说几个最经常用的给你
msconfig这个里边可以设置开机自动启动的项目,也可以关闭系统服务,经常用到
regedit注册表编辑器,这个对高级用户来说也经常用到,初学也用
cmd打开MS-DOS的命令,进阶必须用他
dxdiag查看directX的,里边有系统各组件的信息,比如显卡,声卡,系统版本等
ping 网站域名 这个是查看你和某个网站或者ip的连接的,主要看掉线没
gpedit.msc 组策略,对系统有很多设置需要在里边修改,比如禁用什么组件或者功能等,其他的就不用管先,学好这几个再说
计算机常用的信息编码有哪几种
在计算机硬件中,编码(coding)是在一个主题或单元上为数据存储,管理和分析的目的而转换信息为编码值(典型的如数字)的过程。在软件中,编码意味着逻辑地使用一个特定的语言如C或C++来执行一个程序字符编码:使用二进制数对字符进行的编码称字符编码。
ASCII码:美国标准信息交换码的英文简称,是计算机中用二进制表示字母、数字、符号的一种编码标准。ASCII码有两种,使用7位二进制数的称为基本ASCII码;使用8位二进制数的称为扩展ASCII码。
汉字编码:用于表示汉字字符的二进制字符编码。汉字编码根据其用途不同可分为输入码、内部码、字型码和地址码等。
1基本信息
编码单位
最小的单元是位(bit),接着是字节(Byte),一个字节=8位,英语表示是1 byte=8 bits 。机器语言的单位Byte。1 KB=1024 Byte; 1 MB=1024 KB; 1 GB=1024 MB ; 1TB=1024 GB。
进制
二进制数由0和1,八进制数由0-7, 十进制数由0-9,十六进制数由0-9,A,B,C,D,E,F组成,
上层字符
字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集是多个字符的 *** ,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB 18030字符集、Unicode字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。
2编码分类
1.ASCII
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于罗马字母表的一套电脑编码系统,它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO 646。
包含内容:
控制字符:回车键、退格、换行键等。
可显示字符:英文大小写字符、 *** 数字和西文符号
ASCII扩展字符集扩展:表格符号、计算符号、希腊字母和特殊的拉丁符号。
第0~31号及第127号(共33个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
第32~126号(共94个)是字符,其中第48~57号为0~9十个 *** 数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
2.GB2312
GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施,是中国国家标准的简体中文字符集。它所收录的汉字已经覆盖99.75%的使用频率,基本满足了汉字的计算机处理需要。在中国大陆和新加坡获广泛使用。
GB2312收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。其中包括6763个汉字......
计算机代码是什么意思
1.理论上的概念
源代码是相对目标代码和可执行代码而言的。
源代码就是用汇编语言和高级语言写出来的地代码。
目标代码是指源代码经过编译程序产生的能被cpu直接识别二进制代码。
可执行代码就是将目标代码连接后形成的可执行文件,当然也是二进制的。
2.最直观的概念
在这个网页上右键鼠标,选择查看源文件.出来一个记事本,里面的内容就是此网页的源代码.
===================================================
关于两者的区别联系:
1.从字面意义上来讲,源文件是指一个文件,指源代码的 *** .源代码则是一组具有特定意义的可以实现特定功能的字符(程序开发代码).
2."源代码"在大多数时候等于"源文件".
枫舞在上面说过"2.最直观的概念 在这个网页上右键鼠标,选择查看源文件.出来一个记事本,里面的内容就是此网页的源代码."这句话就体现了他们的关系,此处的源文件是指网页的源文件,而源代码就是源文件的内容,所以又可以称做网页的源代码..
计算机有哪些编程语言?
工业编程语言: A+ | Ada | 汇编语言| B | Brain *** | C | C++ | C++/CLI| Cg | COBOL | Eiffel | Erlang | FORTRAN | IronPython | Java | JRuby | Jython | LISP | Oberon | Objective-C| Ocaml | Pascal | Perl | Powerbuilder | Python | QBASIC | R | REXX | Ruby | Self | Smalltalk | SQL | Tcl/Tk | Visual Basic | PHP | C# | F# | J# | Visual Basic .NET
脚本编程语言: ActionScript | JavaScript | JScript | Nuva | PostScript | VBScript | lua
学术编程语言: APL/J | Haskell | Logo | ML | pascal|Prolog | Scheme | SAC
其他编程语言: ALGOL | BASIC| Clipper | Forth | Modula-2/Modula-3 | MUMPS | PL/I | Simula

在线车险报价系统哪有有源代码能下载

有网址
北京精友

操作系统的源代码指的是什么??

像linux是用C语言写的.在安装盘是看不到源码的.如果你的是正版的话一般的会一张是linux的源码,也就是用C代码.
像windows这样的系统是用计算机语言写的然后用再打包.打包主要是让源码装.就像一个表一样.你知道现在是几点.但如果你没有什么打开这个表壳的东西的话.你也不知道它里是什么样的
操作系统的源代码是组成操作系统的所有源程序集,一般是汇编或C等语言编写而成,至于与计算机硬件打交道。一旦公开源代码,将意味着版权的丧失。
源代码经过编译后生产可执行文件、动态连接库、资源等文件,这样就实现了对操作系统内部算法和技术细节的封装,从而达到“不可见”的目的。

如何查看电脑上某程序的源代码 如计算器

可以通过Github源码平台查看电脑中的计算器源码,接下来具体的演示一下:
1、进入github的微软个人主页,如下图所示
2、搜索calculator,如下图所示
3、进入计算器的项目主页,点击download按钮下载源码
4、保存源码的压缩文件,用编程工具Visual Studio打开即可
电脑上的图片只是数据格式,没有源代码。
1,下载并安装WINHEX之类的16进制编辑器。
2,运行WINHEX,点文件,打开,然后选择要查看的图片文件。
3,打开后,看到的就是图片的所有数据。
windows 系统不是开源的,所以哪里都不会出现源代码。而网上的都是用编程语言模拟实现,并不是真正的windows下的程序源代码。你可以看Linux下的程序代码,而且在谷歌也能搜到,因为linux是开源的Unix系统,可以找的到。windows的就拉到吧。
GOOD LUCK。
一般电脑可执行的程序都没有源代码的。
你电脑里的计算器也没有源代码。
所以在你没有找到某程序的源代码的情况下是看不到源代码的。
可以通过GitHub源代码pingbai在计算机中检查计算器的源代码。具体操作方式如下:
1、进入GitHub的Microsoft个人问题主页,如下图所示。
2、搜索计算器,如下图所示。
3、进入计算器的项目主页,点击下载按钮下载源代码,如下图所示。
4、保存源压缩文件并用visual studio打开它。
扩展资料:
GitHub的Windows应用
GitHub 使用 git 分布式版本控制系统,而 git 最初是 LinusTorvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。
GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。
GitHub for Windows 是一个 Metro 风格应用程序,集成了自包含版本的 Git,bash 命令行 shell,PowerShell 的 posh-git 扩展。
GitHub 为 Windows 用户提供了一个基本的图形前端去处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在本地和远程版本库之间同步。微软也通过CodePlex向开发者提供 git 版本控制系统,而 GitHub 创造了一个更具有吸引力的 Windows 版本。

c语言商品管理系统源代码,加注释

#include
#include
#include
#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{
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 ; ifprintf(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;iprintf("%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 ; jfor(i=0 ; iif(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 ; iprintf("%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 ; jfor(i=0 ; iif(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 ; iprintf("%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{

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 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 {
if(com[i].price>high)
{
high = com[i].price;
g=i;
}
if(com[i].price {
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 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);
} /*结束统计*/
}