求助,我后台有一个无限级分类树菜单表,我在前台调用此表,怎么才有级数地调用出来

xiachao2008 2012-05-28 06:14:18
我要实现就像这样的效果 http://www.tmall.com/?spm=1.1000386.220593.1&TBG=146280.176778.1


我要实现就像这样的效果

我应该怎么做呢,我做了以下工作

我后台的无限分类树表



CREATE TABLE IF NOT EXISTS `www.dianxin.com`.`dx_gd_type` (
`t_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '分类ID\n' ,
`t_name` VARCHAR(120) NULL COMMENT '购物名称分类\n' ,
`t_family_id` varchar(11) NOT NULL DEFAULT '00000000' COMMENT ' 父ID,顶级分类默认为0\n' ,
`t_orders` SMALLINT(5) NULL COMMENT '购物分类排序\n' ,
`t_remark` varchar(50) NULL COMMENT '备注\n' ,
PRIMARY KEY (`t_id`) )
ENGINE = MyISAM DEFAULT CHARSET=utf8
COMMENT = '点心购物类型表\n';


注: t_family_id分类这样的,(存的是下面这种规律的数字)

10 代表衣服
20 代表数码
30 代表家具

二级分类
1001 代表男式衣服
1002 代表女式衣服

三级分类

100201 代表女式内衣
100202 代表女式……

要实现像上图的效果,我应该怎么写这个调用代码呢?
...全文
473 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
作业本_ 2013-12-09
  • 打赏
  • 举报
回复
这所有的一二三级分类菜单都是从数据库里面读出来的吗?? 或是放在一个集合中 求代码, 谢谢..
qq120848369 2012-05-29
  • 打赏
  • 举报
回复
复杂问题用递归呗, 哪有循环万能解决方案!
xuzuning 2012-05-29
  • 打赏
  • 举报
回复
递归呀!
生成的不是一个树状数组吗?

function func($ar) {
foreach($ar as $k=>$v) {
if($k == 'value') {
// 输出本级的数据
}else {
func($v);
}
}
}
xiachao2008 2012-05-29
  • 打赏
  • 举报
回复
最重要的是,
我写了三次循环遍历的结果是错误的
[Quote=引用 2 楼 的回复:]
PHP code

//从数据库很容易得到这样的数组
$ar = array(
array('10', '代表衣服'),
array('20', '代表数码'),
array('30', '代表家具'),
array('1001', '代表男式衣服'),
array('1002', '代表女式衣服'),
array('100201', '代表女式内衣'),
array……
[/Quote]
xiachao2008 2012-05-29
  • 打赏
  • 举报
回复
其实我只所以这么着急要弄懂这个,是因为,此数组我也不知道前台怎么遍历出来。

所以我想,得想弄懂后台是怎么生成的,才能知道前台该怎么调用,

我在前台用了三个循环,第一个循环一级分类,第二个循环一级分类,第三个循环三级分类,

如果有N个分类,那我要写N个循环哟。

感觉我的思路不对,但是又找不到其它思路了。



[Quote=引用 2 楼 的回复:]
PHP code

//从数据库很容易得到这样的数组
$ar = array(
array('10', '代表衣服'),
array('20', '代表数码'),
array('30', '代表家具'),
array('1001', '代表男式衣服'),
array('1002', '代表女式衣服'),
array('100201', '代表女式内衣'),
array……
[/Quote]
xiachao2008 2012-05-29
  • 打赏
  • 举报
回复
看来是我没有到这个级别,还是看不明白。



[Quote=引用 13 楼 的回复:]

如果你不反感使用 eval 函数,那么可以这样写
PHP code
$r = array();
foreach($ar as $v) {
$k = "r['" . join("']['", str_split(array_shift($v), 2)) ."']['value']";
eval("\$$k = \$v;");
}
[/Quote]
xuzuning 2012-05-29
  • 打赏
  • 举报
回复
如果你不反感使用 eval 函数,那么可以这样写
$r = array();
foreach($ar as $v) {
$k = "r['" . join("']['", str_split(array_shift($v), 2)) ."']['value']";
eval("\$$k = \$v;");
}
xiachao2008 2012-05-29
  • 打赏
  • 举报
回复
其实我的问题是一遇到这样的代码&我就看不懂了。
特别是数组代&这样符号的,更是难理解

以前在网上搜了些这方面的文档,感觉还是看懂了的,但是当在实际应用中,一遇到,又不会了。
[Quote=引用 10 楼 的回复:]

$p =& $r;
$p =& $p[$k];
引用呀!

设原串为 100201,切割后为 10 02 01 ,$r 为数组
则 $p 依次引用
$r
$r['10']
$r['10']['02']
$r['10']['02']['01']
[/Quote]
码无边 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
PHP code

//从数据库很容易得到这样的数组
$ar = array(
array('10', '代表衣服'),
array('20', '代表数码'),
array('30', '代表家具'),
array('1001', '代表男式衣服'),
array('1002', '代表女式衣服'),
array('100201', '代表女式内衣'),
array……
[/Quote]太简单拉!受教
xiachao2008 2012-05-29
  • 打赏
  • 举报
回复
唉,还是没有看懂

不过你上面的提示,写了4个循环把他遍历出来了,
以后有时间,在来学习。。。

感谢

[Quote=引用 27 楼 的回复:]

这样写,格式你自己控制
PHP code
function func($ar) {
if(! is_array($ar)) return;
foreach($ar as $key=>$item) {
echo '<dl>';
foreach($item as $k=>$t)
if($k == 'value') {
echo "<dt>$ke……
[/Quote]
xuzuning 2012-05-29
  • 打赏
  • 举报
回复
$p =& $r;
$p =& $p[$k];
引用呀!

设原串为 100201,切割后为 10 02 01 ,$r 为数组
则 $p 依次引用
$r
$r['10']
$r['10']['02']
$r['10']['02']['01']

xuzuning 2012-05-29
  • 打赏
  • 举报
回复
这样写,格式你自己控制
function func($ar) {
if(! is_array($ar)) return;
foreach($ar as $key=>$item) {
echo '<dl>';
foreach($item as $k=>$t)
if($k == 'value') {
echo "<dt>$key</dt>";
foreach($t as $v) echo "<dd>$v</dd>";
}else func($t);
echo '</dl>';
}
}
xiachao2008 2012-05-29
  • 打赏
  • 举报
回复
为什么有这样的感概?[Quote=引用 23 楼 的回复:]

其实数据库的设计更加重要吧,呵呵,我虽然没弄过这方面的,但感觉数据库的设计方式会影响着这个算法

不知道有经验人士可否指出楼主所示的数据表结构是否为一个典型的无限分级表结构呢?
[/Quote]
xiachao2008 2012-05-29
  • 打赏
  • 举报
回复

<?php
array (
10 =>
array (
'value' =>
array (
't_id' => '4092',
't_name' => '女装',
't_family_id' => '10',
't_orders' => NULL,
't_remark' => NULL,
),
'01' =>
array (
'value' =>
array (
't_id' => '4099',
't_name' => '上装',
't_family_id' => '1001',
't_orders' => NULL,
't_remark' => NULL,
),
'01' =>
array (
'value' =>
array (
't_id' => '4123',
't_name' => 'T恤/卫衣',
't_family_id' => '100101',
't_orders' => NULL,
't_remark' => NULL,
),
),
'02' =>
array (
'value' =>
array (
't_id' => '4124',
't_name' => '针织衫/毛衣',
't_family_id' => '100102',
't_orders' => NULL,
't_remark' => NULL,
),
),
'03' =>
array (
'value' =>
array (
't_id' => '4125',
't_name' => '衬衫/雪纺衫',
't_family_id' => '100103',
't_orders' => NULL,
't_remark' => NULL,
),
),
'04' =>
array (
'value' =>
array (
't_id' => '4126',
't_name' => '小西服/小外套',
't_family_id' => '100104',
't_orders' => NULL,
't_remark' => NULL,
),
),
'05' =>
array (
'value' =>
array (
't_id' => '4127',
't_name' => '风衣/呢大衣',
't_family_id' => '100105',
't_orders' => NULL,
't_remark' => NULL,
),
),
'06' =>
array (
'value' =>
array (
't_id' => '4128',
't_name' => '背心/吊带衫',
't_family_id' => '100106',
't_orders' => NULL,
't_remark' => NULL,
),
),
'07' =>
array (
'value' =>
array (
't_id' => '4129',
't_name' => '马甲',
't_family_id' => '100107',
't_orders' => NULL,
't_remark' => NULL,
),
),
'08' =>
array (
'value' =>
array (
't_id' => '4130',
't_name' => '棉衣/棉服',
't_family_id' => '100108',
't_orders' => NULL,
't_remark' => NULL,
),
),
'09' =>
array (
'value' =>
array (
't_id' => '4131',
't_name' => '羽绒服',
't_family_id' => '100109',
't_orders' => NULL,
't_remark' => NULL,
),
),
10 =>
array (
'value' =>
array (
't_id' => '4132',
't_name' => '皮衣/皮草',
't_family_id' => '100110',
't_orders' => NULL,
't_remark' => NULL,
),
),
),
'02' =>
array (
'value' =>
array (
't_id' => '4100',
't_name' => '下装',
't_family_id' => '1002',
't_orders' => NULL,
't_remark' => NULL,
),
'01' =>
array (
'value' =>
array (
't_id' => '4133',
't_name' => '裤子',
't_family_id' => '100201',
't_orders' => NULL,
't_remark' => NULL,
),
),
'02' =>
array (
'value' =>
array (
't_id' => '4134',
't_name' => '牛仔裤',
't_family_id' => '100202',
't_orders' => NULL,
't_remark' => NULL,
),
),
'03' =>
array (
'value' =>
array (
't_id' => '4135',
't_name' => '裤袜/丝袜/打底裤',
't_family_id' => '100203',
't_orders' => NULL,
't_remark' => NULL,
),
),
),
'03' =>
array (
'value' =>
array (
't_id' => '4101',
't_name' => '裙',
't_family_id' => '1003',
't_orders' => NULL,
't_remark' => NULL,
),
'01' =>
array (
'value' =>
array (
't_id' => '4136',
't_name' => '连衣裙',
't_family_id' => '100301',
't_orders' => NULL,
't_remark' => NULL,
),
),
'02' =>
array (
'value' =>
array (
't_id' => '4137',
't_name' => '半身裙',
't_family_id' => '100302',
't_orders' => NULL,
't_remark' => NULL,
),
),
),
),
20 =>
array (
'value' =>
array (
't_id' => '4093',
't_name' => '男装',
't_family_id' => '20',
't_orders' => NULL,
't_remark' => NULL,
),
'01' =>
array (
'value' =>
array (
't_id' => '4102',
't_name' => '上装',
't_family_id' => '2001',
't_orders' => NULL,
't_remark' => NULL,
),
'01' =>
array (
'value' =>
array (
't_id' => '4138',
't_name' => 'T恤',
't_family_id' => '200101',
't_orders' => NULL,
't_remark' => NULL,
),
),
'02' =>
array (
'value' =>
array (
't_id' => '4139',
't_name' => '衬衫',
't_family_id' => '200102',
't_orders' => NULL,
't_remark' => NULL,
),
),
'03' =>
array (
'value' =>
array (
't_id' => '4140',
't_name' => '外套',
't_family_id' => '200103',
't_orders' => NULL,
't_remark' => NULL,
),
),
'04' =>
array (
'value' =>
array (
't_id' => '4141',
't_name' => 'POLO衫',
't_family_id' => '200104',
't_orders' => NULL,
't_remark' => NULL,
),
),
'05' =>
array (
'value' =>
array (
't_id' => '4142',
't_name' => '针织衫/毛衣',
't_family_id' => '200105',
't_orders' => NULL,
't_remark' => NULL,
),
),
'06' =>
array (
'value' =>
array (
't_id' => '4143',
't_name' => '卫衣',
't_family_id' => '200106',
't_orders' => NULL,
't_remark' => NULL,
),
),
'07' =>
array (
'value' =>
array (
't_id' => '4144',
't_name' => '羽绒服',
't_family_id' => '200107',
't_orders' => NULL,
't_remark' => NULL,
),
),
),
'02' =>
array (
'value' =>
array (
't_id' => '4103',
't_name' => '下装',
't_family_id' => '2002',
't_orders' => NULL,
't_remark' => NULL,
),
'01' =>
array (
'value' =>
array (
't_id' => '4145',
't_name' => '裤子',
't_family_id' => '200201',
't_orders' => NULL,
't_remark' => NULL,
),
),
),
'03' =>
array (
'value' =>
array (
't_id' => '4104',
't_name' => '配件',
't_family_id' => '2003',
't_orders' => NULL,
't_remark' => NULL,
),
'01' =>
array (
'value' =>
array (
't_id' => '4146',
't_name' => '男鞋',
't_family_id' => '200301',
't_orders' => NULL,
't_remark' => NULL,
),
),
'02' =>
array (
'value' =>
array (
't_id' => '4147',
't_name' => '运动鞋',
't_family_id' => '200302',
't_orders' => NULL,
't_remark' => NULL,
),
),
'03' =>
array (
'value' =>
array (
't_id' => '4148',
't_name' => '箱包票夹',
't_family_id' => '200303',
't_orders' => NULL,
't_remark' => NULL,
),
),
),
),
)
?>

[Quote=引用 21 楼 的回复:]

用 var_export(数组) 得到的是 php 代码,拿来就能用
[/Quote]
xuzuning 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 的回复:]

哦,感谢
我上面的遍历方法是不是又错了。
[/Quote]
你给出用 var_export(数组) 得到的结果
给你看看
K-dash 2012-05-29
  • 打赏
  • 举报
回复
其实数据库的设计更加重要吧,呵呵,我虽然没弄过这方面的,但感觉数据库的设计方式会影响着这个算法

不知道有经验人士可否指出楼主所示的数据表结构是否为一个典型的无限分级表结构呢?
xiachao2008 2012-05-29
  • 打赏
  • 举报
回复
哦,感谢
我上面的遍历方法是不是又错了。

[Quote=引用 21 楼 的回复:]

用 var_export(数组) 得到的是 php 代码,拿来就能用
[/Quote]
xuzuning 2012-05-29
  • 打赏
  • 举报
回复
用 var_export(数组) 得到的是 php 代码,拿来就能用
xiachao2008 2012-05-29
  • 打赏
  • 举报
回复
我不知道怎么写的嘛

[Quote=引用 18 楼 的回复:]

复杂问题用递归呗, 哪有循环万能解决方案!
[/Quote]
xiachao2008 2012-05-29
  • 打赏
  • 举报
回复
按照你的提示,我向下面写了下去

但是现在问题是,我不知道怎么判断这个子分类结束了。结束了,我得加上</dd> 或者说是 </div>

还有一个问题,现在遍历出来的数组只有前3个元素 大分类一个,二维分类一个 三级分类一个。
可以帮我看看问题在什么地方吗?

别外,我还想问一个问题,我数据库里得到源数组,我用什么函数输出字符串来,人家拿着就可以用这个数组?

public function func($arr,$count,$beforcount,$spList){
foreach($arr as $key => $val){
if( $key == 'value') {
if($count==1){
$html .= '<div class="right_nav" id="menu_'.$val["t_family_id"].'">';
} else if($count==2 ){
$html .= '<dt class="lef"><h1>'.$val["t_name"].'</h1></dt><dd>';
} else if( $count==3 ){
$html .= '<a href="">'.$val["t_name"].'</a>';
}
$spList = array_merge($spList, array($html));
array_shift($arr);

} else {
$beforcount = $count;
$count++;
$this->func($val,$count,$beforcount,$spList);
}
}
if(count($arr)==0){
$s_html = '';
foreach($spList as $key => $val){
$s_html = $s_html.$val;
}
echo "<pre>";print_r($spList);exit();
}
}



[Quote=引用 17 楼 的回复:]

递归呀!
生成的不是一个树状数组吗?

function func($ar) {
foreach($ar as $k=>$v) {
if($k == 'value') {
// 输出本级的数据
}else {
func($v);
}
}
}
[/Quote]
加载更多回复(9)
主要功能模块介绍 1. 企业信息:发布介绍企业的各类信息,如企业简介、组织机构、营销网络、企业荣誉、联系方式,并可随意增加新的栏目等。 2. 新闻动态:发布企业新闻和业内资讯,从后台前台真正实现无限分类显示,并随意控制显示,大大增加信息发布的灵活性。 3. 产品展示:发布企业产品,按产品类别显示及搜索产品,并可多选产品直接下订单询盘,无限分类,大大增加信息发布的灵活性。 4. 下载资源:发布供网站浏览者和客户下载的资料等,如使用手册、销售合同、软件等,无限分类。 5. 人力资源:发布招聘信息,人才策略,浏览者可在线递交简历。 6. 其他信息:相当于无限扩展栏,并可进行无限分类,可以用于发布网站主栏目未归类的信息,如解决方案、成功案例、购买流程等。 7. 会员中心:会员可任意设置别,并可根据别限制浏览相关内容,会员机制与订购、应聘、留言三大模块有机结合的,我们充分考虑到了网站访问者的惰性,所以会员机制与三大模块又可完全脱离,即未注册也同样能留言、下订单、递交简历。 8. 留言反馈:以留言板的模式让有意见和建议的浏览者反馈回来,可设悄悄话留言方式,可设默认是否通过审核后显示留言。 9. 站内检索:可检索站内全部栏目内容。 10. 弹窗广告:对企业重要活动或重大新闻以弹窗形式推广,可随意设弹窗大小和是否开通弹窗。 11. 友情链接:可设文字和图片链接方式。 12. 网站导航:可随意开通、屏蔽网站模块,并可设置站外链接,让网站可大可小。 13. 系统管理:管理密码修改、网站信息设置、网站空间统计。 14. 数据维护:在线备份、压缩、恢复数据库,管理登录日志。 15. 流量统计:非常详尽的访问统计数据,可做网站推广的重要参考。 16. 管理权限:可根据需要增设多个管理员帐户,并任意分配不同管理权限。 17. 多(简英)语版中,每种语言可制作出完全不一样的内容,以方便不同语种针对不同浏览习惯的用户,当然也可制作完全一样的内容,保持内容的一致性。如果你觉得英语页面不不需要轻松实现开关功能,也可将其改为其他语种(如韩、日等)。 本系统主要亮点 1. 信息模块化处理,网站速度超快。 2. 前台内容栏目结构清晰,易于访问者查看想要的内容,也是搜索引擎最喜欢的网页结构,相信很乐意光顾你用本系统搭建的站点。 3. 后台管理同样结构清晰,便于管理,提高效率。 4. 人机交互数据输入界面十分干净清爽,我们坚信这是一流的设计思想。 5. 所有信息内容在线完成编辑,就象WORD一样简单、可视而又功能完善,几乎能完成你想要的所有效果。 6. 任意设置的会员别和浏览权限精确到每条记录,这对于希望不同内容针对不查看对象开放来讲,无疑是最佳解决方案。 7. 独具创意的其他信息无限扩展栏,对于希望发布固定栏目无法归类的其他信息,将是非常棒的途径。 8. 当企业信息介绍内容过长,需要多次滚屏时,可以考虑对内容做内分页处理。 9. 流量统计信息可以清零重置。 10. 信息暂存功能,即对于某些临时不需要发布的内容暂存起来,不用删除,以后重新开放即可。 11. 所有前台提交单防刷新处理,有效过滤垃圾信息提效。 V11版升内容: 1.根据用户意见,删除不常用的需求信息发布模块,让系统更加简洁实用; 2.加入信息更新时间,更人性化; 3.优化了产品信息发布模块,并增加产品订购车功能; 4.优化了招聘信息发布模块; 5.前台网页采用DIV+CSS布局,易于风格维护; 6.前台代码全新编写,执行速度提高40%,超快; 7.植入SEO(搜索引擎优化)技术,缩短 ? 后面的参数,让网页更易被收录和搜索; 8.优化三语版各语种的页面转换方式和数据调用方式; 9.前台提交单防刷新处理,有效过滤垃圾信息的提交; 10.增加可选已上传图片功能; 11.增加前台flash幻灯广告后台管理; 13.删除信息时删除相关文件,此功能可以设置开启或关闭; 14.根据用户意见,前台产品类别显示在类别较多时显示过长,影响页面美观和浏览,因此增加类别折叠显示样式(默认为不折叠)
功能简介: 1.可按**板和形查看帖子内容及版面,形的支持回复帖子分页 2.发投票帖功能,投票分多投和单投票 3.查看投票用户功能 4.精华区功能 5.不降低排序效率下,增加帖子置顶功能 6.帖子锁定(禁回复)功能 7.不降低排序效率下,增加帖子总固顶功能 8.加入查看主题帖需要积分功能 9.加入回复主题帖需要积分功能 10.加入查看主题帖需要经验功能 11.加入回复主题帖需要经验功能 12.加入主题仅本版版主才能查看功能 13.加入主题仅本版版主才能回复功能 14.加入主题仅版主才能回复功能 15.加入主题仅版主才能回复功能 16.加入主题仅认证会员才能查看功能 17.加入主题仅认证会员才能回复功能 18.支持插入情符号到当前光标位置 19.发的帖子可以选择是否是UBB编号(有些帖子含有UBB字符但又需要显示) 20.判断重复帖功能 21.发的帖子内容一直保存,不用因错误而需要返回重填而引起的数据丢失 22.上传的附件可以支持多个插入到文章中. 23.上传附件大小限制,并自动判断是否是图像格式 24.引入GBLSDK,自动判断上传的100多种图像格式,并自动转换为GIF或JPG或PNG格式. 25.上传的图片如果太大,可自动生成缩略图. 26.上传的图片如果非GIF,jpg,png等浏览器直接支持显示的格式,自动生成一幅缩略显示,并作链接 27.上传方式可以选择是否采用DotNet上传功能(支持上传最大4M的文件) 28.可查看当前帖子长度,支持插入当前时间(本地) 29.支持显示当前页执行时间(毫秒) 30.支持[html]标签,直接插入html内容,仅管理员可以使用之 31.UBB编码转移,使用户签名和帖子内容显示速度最优. 32.投票帖显示为投票人数,超过20人投票的显示为热投票帖 33.支持版主删除帖子 34.删除帖子时更新最后回复人和回复时间为最后帖子的信息 35.删除帖子主题帖时自动删除整个主题,如果回复帖巨多,采用分段方式删除,删除中间允许意外中断 36.如果删除的是投票帖自动删除投票信息 37.允许管理员和版主精华和取消精华帖子,帖子可以是回复帖和主题帖 38.论坛支持海量数据,无论有多少的帖子,查看任何页面速度一率恒定 39.支持玩家发件箱和收件箱,有新消息自动提示并闪烁加语音提示 40.支持管理员查看查看一切收件发件信息,但内容无权查看 41.支持清空收件箱功能 42.支持管理员清空一切收件箱和发件箱内容功能 43.加入**历查看 44.新用户注册,可自定义最短注册名 45.加入新用户注册间隔时间判断,防止有人恶意添加用户数据 46.用户发送短信息加入判断重复信息和时间间隔设定功能,防止恶意加数据 47.支持用户自动头像,可预设定是否允许用户自定义头像 48.支持论坛预有头像数量设定(默认有500个头像) 49.支持论坛预定义最大用户自定头像宽度(高度跟宽度一样) 50.支持论坛预定义是否允许上传文件(分任何人,仅管理员,禁止) 51.支持用户自上传头像的图像文件 52.支持论坛设定是否支持GBLSDK 53.自动判断用户上传头像是否是图像文件(支持100多种图像格式) 54.上传头像大小自动获取,如果太大,自动转换为缩略图.如果不是jpg,gif,png等格式,自动转换成常用格式. 55.用户登陆可以选择Cookie保留时间 56.支持用户资料修改,重定义头像 57.用户积分排行榜 58.用户经验排行榜 59.查看在线用户功能 60.在线用户跟踪功能,跟踪当前浏览页面,所在论坛,所在帖子等. 61.支持查看特定论坛在线人数统计功能 62.论坛首页最上页显示登陆用户资料(包括IP,浏览器和操作系统) 63.支持论坛最后更新时间和发帖人功能 64.支持论坛分类功能,主题帖和总帖统计功能 65.支持论坛版面只有登陆用户才能访问功能 66.支持论坛版面只对认证会员开放功能 67.支持论坛版面禁止发新帖子 68.支持论坛版面不允许修改论坛帖子 69.支持论坛版面不允许删除论坛帖子 70.支持论坛版面禁止回复帖子 71.支持论坛版面只对论坛版主以上开放 72.各论坛限制功能是与的关系,可以同时限制多个功能 73.可以设定论坛版主,可以设定多个,至少允许17个版主 74.可以设定版主的权限是否禁止删除帖子 75.可以设定版主的权限是否禁止精华帖子 76.可以设定某用户是否是认证会员(正式会员) 77.可以设定某用户禁止发和回复帖子 78.可以设定某用户禁止修改个人资料和帖子内容 79.可以设定某用户所有发言屏蔽 80.支持管理员修改某用户特殊资料,包括登陆失败等信息 81.支持设定荣誉称号,比如"管理员","贵宾"等,并可以自定义称号(无限) 82.支持用户等,等主要根据积分来进行,在线时间(经
内容简介 本书全面介绍了应用C语言进行开发的各种技术和技巧,全书共分12章,内容包括基础知识、指针、数据结构、算法、数学应用、文件操作、库函数应用、图形图像、系统调用、加解密与安全性、游戏、综合应用等。全书共提供300个实例,每个实例都突出了其实用性。   本书既可作为C程序的初学者学习用书,也可作为程序开发人员、相关培训机构老师和学生的参考用书。 第1章 基础知识 1 1.1 进制转换 2 实例001 十进制转换为十六进制 2 实例002 十进制转换为二进制 3 实例003 n进制转换为十进制 4 实例004 以IP地址形式输出 5 1.2 条件判断 6 实例005 3个数由小到大排序 6 实例006 a2+b2 8 实例007 整倍数 9 实例008 判断闰年 10 实例009 阶梯问题 11 实例010 评定成绩 12 实例011 整数加减法练习 13 实例012 模拟ATM机界面程序 14 1.3 多重循环打印图形 17 实例013 用#打印三角形 17 实例014 用*打印图形 18 实例015 绘制余弦曲线 20 实例016 打印乘法口诀 21 实例017 打印杨辉三角 22 1.4 循环的数学应用 23 实例018 序列求和 23 实例019 简单的运算 24 实例020 用while语句求n! 25 实例021 特殊等式 26 实例022 求一个正整数的所有因子 27 实例023 一元钱兑换方案 28 实例024 对调数问题 29 实例025 数平方和运算的问题 30 1.5 数组 31 实例026 逆序存放数据 32 实例027 相邻元素之和 33 实例028 选票统计 34 实例029 模拟比赛打分 35 实例030 对调最大与最小数位置 36 实例031 二维数组行列互换 37 实例032 使用数组统计学生成绩 39 实例033 打印5阶幻方 40 1.6 字符和字符串操作 41 实例034 统计各种字符个数 41 实例035 字符串倒置 43 实例036 字符串替换 44 实例037 回文字符串 45 实例038 不用strcat连接两个字符串 46 实例039 删除字符串中连续字符 47 实例040 字符升序排列 49 实例041 在指定的位置后插入字符串 50 1.7 函数 51 实例042 求字符串中字符的个数 51 实例043 递归解决年龄问题 53 实例044 求学生的平均身高 54 实例045 分数计算器程序 55 1.8 趣味计算 57 实例046 加油站加油 57 实例047 小球下落问题 58 实例048 灯塔数量 59 实例049 买苹果问题 60 实例050 猴子吃桃 61 实例051 老师分糖果 62 实例052 新同学的年龄 63 实例053 百钱百鸡问题 64 实例054 彩球问题 65 实例055 求总数问题 66 1.9 宏定义与位运算 67 实例056 用宏定义实现值互换 67 实例057 普通的位运算 69 实例058 循环移位 70 第2章 指针 73 2.1 指针变量 74 实例059 使用指针实现数据交换 74 实例060 使用指针实现整数排序 75 实例061 指向结构体变量的指针 76 2.2 指针与数组 77 实例062 使用指针输出数组元素 77 实例063 用指针实现逆序存放数组元素值 79 实例064 输出二维数组有关值 80 实例065 输出二维数组任一行任一列值 81 实例066 使用指针查找数列中最大值、最小值 83 实例067 用指针数组构造字符串数组 84 实例068 将若干字符串按照字母顺序输出 85 2.3 指针与函数 86 实例069 用指向函数的指针比较大小 86 实例070 使用返回指针的函数查找最大值 88 实例071 使用指针函数求学生成绩 89 实例072 寻找指定元素的指针 90 实例073 寻找相同元素的指针 91 2.4 字符串与指针 92 实例074 使用指针实现字符串复制 92 实例075 字符串的连接 94 实例076 字符串插入 95 实例077 字符串的匹配 96 2.5 指向指针的指针 97 实例078 使用指针的指针输出字符串 98 实例079 实现输入月份号输出该月份英文名 99 实例080 使用指向指针的指针对字符串排序 100 第3章 数据结构 103 3.1 结构体 104 实例081 结构体简单应用 104 实例082 找最高分 106 实例083 平均成绩 108 实例084 比较计数 109 实例085 信息查询 110 实例086 计算开机时间 111 3.2 链 112 实例087 创建单向链 112 实例088 创建双向链 114 实例089 创建循环链 117 实例090 双链逆置 118 实例091 双链逆序输出 120 实例092 约瑟夫环 122 实例093 创建顺序并插入元素 123 实例094 向链中插入结点 125 实例095 从链中删除结点 126 实例096 合并两个链 129 实例097 单链就地逆置 130 实例098 头插入法建立单链 132 3.3 栈和队列 133 实例099 应用栈实现进制转换 133 实例100 用栈设置密码 135 实例101 栈实现行编辑程序 138 实例102 括号匹配检测 141 实例103 用栈及递归计算多项式 143 实例104 链队列 144 实例105 循环缓冲区问题 147 3.4 串与广义 149 实例106 串的模式匹配 149 实例107 简单的文本编辑器 151 实例108 广义的存储 154 实例109 广义的复制 156 3.5 二叉 160 实例110 二叉的递归创建 160 实例111 二叉的遍历 162 实例112 线索二叉的创建 164 实例113 二叉排序 166 实例114 哈夫曼编码 167 3.6 图及图的应用 169 实例115 图的邻接存储 170 实例116 图的深度优先搜索 172 实例117 图的广度优先搜索 175 实例118 Prim算法求最小生成 177 实例119 迪杰斯特拉算法 180 第4章 算法 183 4.1 简单问题算法 184 实例120 任意次方后的最后三位 184 实例121 计算π的近似值 184 实例122 小于500的所有勾股数 185 实例123 能否组成三角形 186 实例124 偶数拆分 187 实例125 乘积大于和的数 188 实例126 求各位上和为5的数 189 实例127 计算某日是该年第几天 190 4.2 排序算法 191 实例128 直接插入排序 192 实例129 希尔排序 193 实例130 起泡排序 194 实例131 快速排序 195 实例132 选择排序 197 实例133 归并排序 198 4.3 查找算法 199 实例134 顺序查找 199 实例135 二分查找 201 实例136 分块查找 202 实例137 哈希查找 203 4.4 定理与猜想 206 实例138 斐波那契数列 206 实例139 角谷猜想 207 实例140 哥德巴赫猜想 208 实例141 四方定理 209 实例142 尼科彻斯定理 210 4.5 逻辑推理与判断 211 实例143 魔术师的秘密 211 实例144 婚礼上的谎言 212 实例145 谁讲了真话 213 实例146 黑纸与白纸 215 实例147 判断坏球 216 第5章 数学应用 221 5.1 素数问题 222 实例148 求100~200的素数 222 实例149 可逆素数 223 实例150 回文素数 224 5.2 整数趣题 225 实例151 阿姆斯特朗数 225 实例152 特殊的完全平方数 226 实例153 求1000以内的完全数 227 实例154 三重回文数 228 实例155 亲密数 229 实例156 自守数 230 实例157 满足abcd=(ab+cd)2的数 231 实例158 神奇的数字6174 232 实例159 一数三平方 233 5.3 数学问题求解 234 实例160 求等差数列 234 实例161 求整数的绝对值 235 实例162 正弦、余弦、正切值 236 实例163 自然对数的底e的计算 237 实例164 最大公约及最小公倍数 238 实例165 求解二元一次不定方程 239 实例166 二分法求解方程 241 实例167 牛顿迭代法解方程的根 242 5.4 矩阵 243 实例168 打印特殊方阵 243 实例169 求3×3矩阵对角元素之和 244 实例170 矩阵的加法运算 245 实例171 矩阵的乘法运算 246 实例172 打印n阶螺旋方阵 247 5.5 生活中的数学 249 实例173 求车运行速度 249 实例174 卖西瓜 250 实例175 打渔晒网问题 251 实例176 水池注水问题 252 实例177 捕鱼和分鱼问题 253 实例178 递归解分鱼问题 254 实例179 巧分苹果 255 第6章 文件操作 257 6.1 文件读写操作 258 实例180 读取磁盘文件 258 实例181 将数据写入磁盘文件 259 实例182 格式化读写文件 260 实例183 成块读写操作 262 实例184 随机读写文件 263 实例185 以行为单位读写文件 265 6.2 文件内容操作 266 实例186 复制文件内容到另一文件 267 实例187 错误处理 268 实例188 合并两个文件信息 270 实例189 统计文件内容 271 6.3 文件的创建、查找及删除 272 实例190 创建文件 273 实例191 创建临时文件 274 实例192 查找文件 275 实例193 重命名文件 275 实例194 删除文件 276 实例195 删除文件中的记录 277 6.4 文件相关操作 279 实例196 关闭打开的所有文件 279 实例197 同时显示两个文件的内容 281 实例198 显示目录内同类型文件 282 实例199 文件分割 284 实例200 文件加密 286 第7章 库函数调用 289 7.1 时间转换和操作函数 290 实例201 固定格式输出当前时间 290 实例202 当前时间转换 291 实例203 显示程序运行时间 292 实例204 获取DOS系统时间 293 实例205 设置DOS系统日期 293 实例206 设置DOS系统时间 294 实例207 读取并设置bios的时钟 295 7.2 数学函数 296 实例208 求相对的最小整数 296 实例209 求直角三角形斜边 297 实例210 小数分离 298 实例211 求任意数n次幂 299 7.3 字符串、字符函数 300 实例212 函数实现字符匹配 300 实例213 任意大写字母转小写 301 实例214 字符串复制到指定空间 302 实例215 查找位置信息 303 7.4 其他函数 304 实例216 复制当前目录 304 实例217 产生惟一文件 305 实例218 不同亮度显示 306 实例219 字母检测 307 实例220 建立目录 308 实例221 删除目录 309 实例222 数字检测 310 实例223 快速分类 311 实例224 访问系统temp中的文件 313 实例225 设置组合键 314 第8章 图形图像 317 8.1 基本图形 318 实例226 绘制直线 318 实例227 绘制格 319 实例228 绘制矩形 321 实例229 绘制椭圆 322 实例230 绘制圆弧线 323 实例231 绘制扇区 324 实例232 绘制空心圆 325 实例233 画一个箭头 326 实例234 绘制正弦曲线 327 实例235 绘制彩带 329 8.2 色彩填充及使用 330 实例236 黄色网格填充的椭圆 330 实例237 红色间隔点填充多变形 332 实例238 绘制五角星 333 实例239 颜色变换 334 实例240 彩色扇形 335 实例241 输出不同字体 336 8.3 屏幕操作 338 实例242 相同图案的输出 338 实例243 设置文本及背景颜色 340 实例244 简单的键盘画图程序 342 实例245 鼠标绘图 344 实例246 艺术清屏 346 8.4 图形动画 349 实例247 图形时钟 349 实例248 火箭发射 351 实例249 运动的问候语 352 实例250 正方形下落 353 实例251 跳动的小球 354 实例252 旋转的五角星 356 实例253 变化的同心圆 358 实例254 小球碰撞 359 8.5 图形综合实例 361 实例255 圆形精美图案 361 实例256 直线精美图案 362 实例257 心形图案 363 实例258 钻石图案 365 实例259 雪花 366 实例260 直线、正方形综合 368 第9章 系统相关 371 9.1 时间和日期 372 实例261 获取当前日期与时间 372 实例262 获取当地日期与时间 373 实例263 格林尼治平时 373 实例264 设置系统日期 374 9.2 BIOS操作 376 实例265 获取BIOS常规内存容量 376 实例266 读/写BIOS计时器 377 实例267 获取CMOS密码 377 9.3 硬件、软件中断 379 实例268 获取Ctrl+Break键消息 379 实例269 鼠标中断 380 实例270 设置文本显示模式 382 9.4 磁盘相关 385 实例271 获取当前磁盘空间信息 385 实例272 备份/恢复硬盘分区 387 实例273 硬盘逻辑锁 390 9.5 信息获取 392 实例274 显卡类型测试 392 实例275 获取系统配置信息 393 实例276 获取环境变量 395 实例277 获取寄存器信息 396 9.6 其他 397 实例278 恢复内存文本 397 实例279 绘制立体窗口 399 实例280 控制扬声器声音 401 实例281 获取Caps Lock键状态 402 实例282 删除多目录 403 第10章 加解密与安全性 407 10.1 程序保护 408 实例283 自毁程序 408 实例284 明码序列号保护 409 实例285 非明码序列号保护 410 10.2 加密解密 412 实例286 MD5加密 412 实例287 RSA加密 419 实例288 DES加密 420 实例289 RC4加密 424 实例290 SHA1加密 427 实例291 恺撒加密 432 第11章 游戏 435 实例292 猜数字游戏 436 实例293 24点游戏 438 实例294 贪吃蛇游戏 440 实例295 五子棋游戏 444 实例296 弹力球游戏 450 第12章 综合应用 457 实例297 学生管理系统 458 实例298 火车订票系统 465 实例299 通信录管理系统 472 实例300 图书管理系统 476 技术要点对应实例位置 487

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧