ace--3.meau

 是根据此文章总结而成,楼猪花了两天总结并指出一些错误https://www.cnblogs.com/bubugao/p/ACE.html

 

1      基本结构

 

 

2      基本操作

2.1  Navigation.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<c:set value="${pageContext.request.contextPath}" var="path" scope="page"/>
<style>
    .menu-toggler {/* 改变手机端内置菜单样式宽度*/
        width: 5px;
    }
</style>

<a class="menu-toggler" id="menu-toggler" href="#">
    <span class="menu-text"></span>
</a>

<!--导航栏-->
<div class="sidebar" id="sidebar">
    <script type="text/javascript">
        try{ace.settings.check('sidebar' , 'fixed')}catch(e){}
    </script>

    <ul class="nav nav-list" id="menu"></ul>

    <div class="sidebar-collapse" id="sidebar-collapse">
        <i class="icon-double-angle-left" data-icon1="icon-double-angle-left" data-icon2="icon-double-angle-right"></i>
    </div>

    <script type="text/javascript">
        try{ace.settings.check('sidebar' , 'collapsed')}catch(e){}
    </script>
</div>

2.2  sidebar-menu.css

#sidebar{
    overflow-x: hidden;
    overflow-y: auto;
}

2.3  Test.json

可以点开看原文

[
  {
    "id":"1",
    "text":"系统设置",
    "icon":"icon-cog",
    "url":"",
    "menus":[
      {
        "id":"11",
        "text":"编码管理",
        "icon":"icon-glass",
        "url":"txl0"
      }
    ]
  },
  {
    "id":"2",
    "text":"基础数据",
    "icon":"icon-leaf",
    "url":"",
    "menus":[
      {
        "id":"21",
        "text":"基础特征",
        "icon":"icon-glass",
        "url":"txl1.do"
      },
      {
        "id":"22",
        "text":"特征管理",
        "icon":"icon-glass",
        "url":"${path}/txl/txl1.do"
      },
      {
        "id":"23",
        "text":"物料维护",
        "icon":"icon-glass",
        "url":"/Model/Index"
      },
      {
        "id":"24",
        "text":"站点管理",
        "icon":"icon-glass",
        "url":"/Station/Index"
      }
    ]
  },
  {
    "id":"3",
    "text":"权限管理",
    "icon":"icon-user",
    "url":"",
    "menus":[
      {
        "id":"31",
        "text":"用户管理",
        "icon":"icon-user",
        "url":"/SystemSetting/User"
      },
      {
        "id":"32",
        "text":"角色管理",
        "icon":"icon-apple",
        "url":"/SystemSetting/Role"
      },
      {
        "id":"33",
        "text":"菜单管理",
        "icon":"icon-list",
        "url":"/SystemSetting/Menu"
      },
      {
        "id":"34",
        "text":"部门管理",
        "icon":"icon-glass",
        "url":"/SystemSetting/Department"
      }
    ]
  },
  {
    "id":"4",
    "text":"订单管理",
    "icon":"icon-envelope",
    "url":"",
    "menus":[
      {
        "id":"41",
        "text":"订单查询",
        "icon":"icon-glass",
        "url":"/Order/Query"
      },
      {
        "id":"42",
        "text":"订单排产",
        "icon":"icon-glass",
        "url":"/Order/PLANTPRODUCT"
      },
      {
        "id":"43",
        "text":"订单撤排",
        "icon":"icon-glass",
        "url":"/Order/cancelPRODUCT"
      },
      {
        "id":"44",
        "text":"订单HOLD",
        "icon":"icon-glass",
        "url":"/Order/hold"
      },
      {
        "id":"45",
        "text":"订单删除",
        "icon":"icon-glass",
        "url":"/Order/delete"
      },
      {
        "id":"47",
        "text":"订单插单",
        "icon":"icon-glass",
        "url":"/Order/insertorder"
      },
      {
        "id":"48",
        "text":"订单导入",
        "icon":"icon-glass",
        "url":"/Order/Import"
      }
    ]
  }

]

2.4  sidebar-menu.js

(function ($) {
    $.fn.sidebarMenu = function(options) {
        options = $.extend({}, $.fn.sidebarMenu.defaults, options || {});
        var target= $(this);
        target.addClass('nav');
        target.addClass('nav-list');
        if (options.data){
            init(target, options.data);
        }
        else {
            if (!options.url)return;
            $.getJSON(options.url,options.param, function (data) {
                init(target, data);
            });
        }
        var url = window.location.pathname;
        //menu = target.find("[href='" + url +"']");
       //menu.parent().addClass('active');
       //menu.parent().parentsUntil('.nav-list','li').addClass('active').addClass('open');
        function init(target, data) {
            $.each(data,function (i, item) {
                var li = $('<li id="li_' + item.id+ '"></li>');
                var a = $('<a></a>');
                var icon = $('<i></i>');
                // icon.addClass('glyphicon');
                icon.addClass(item.icon);
                var text= $('<span></span>');
                text.addClass('menu-text').text(item.text);
                a.append(icon);
                a.append(text);
                if (item.menus&&item.menus.length>0) {
                    a.attr('href', '#');
                    a.addClass('dropdown-toggle');
                    var arrow = $('<b></b>');
                    arrow.addClass('arrow').addClass('icon-angle-down');
                    a.append(arrow);
                    li.append(a);
                    var menus= $('<ul></ul>');
                    menus.addClass('submenu');
                    init(menus, item.menus);//当有子menu目录时,递归调用
                    li.append(menus);
                }
                else {
                    var href = 'javascript:addTabs({id:\'' + item.id + '\',title: \'' + item.text+ '\',close:true,url: \'' + item.url + '\',icon:\''+ item.icon +'\'});';
                    a.attr('href', href);
                    //if (item.istab)
                    //    a.attr('href', href);
                    //else {
                    //    a.attr('href', item.url);
                    //    a.attr('title', item.text);
                    //    a.attr('target', '_blank')
                    //}
                    li.append(a);
                }
                target.append(li);
            });
        }
    }

    $.fn.sidebarMenu.defaults= {
        url: null,
        param: null,
        data: null
    };
})(jQuery);

$(function() {
    $.ajax({
        url: '/yjxt/test.json',
        type: 'post',
        timeout: 20000,
        data:'json',
        success: function (result) {
            $('#menu').sidebarMenu({
                data:result
            });
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert("访问后台发生错误:" + XMLHttpRequest.status)
        }
    });
    $('#sidebar').height($(window).height() - 80);
    // $('#menu').sidebarMenu({ url:"/api/Api/GetMenuByUser/", param: { strUser: 'admin' } });

}); 

 

 http://download.youkuaiyun.com/download/qq_26553781/10226387

 

 

 

 

 

 

void menu(); void ad1(); void ct(); void ad12(); void de(); void output(); void order1(); void read(); void search(); void save(); int ex(); void checkout(); void chake(); void denlu(); int main() { menu(); return 0; } struct meau { int num;//菜品编码 char name[1000]; int price; struct meau *next; }*head = NULL; struct desk { int people; int grcd[50];//个人菜单的里的编码 int sl;//点菜的数量 int sum; } desk1[200]; void menu() { system("cls"); int n; printf("\t\t----------------------------------\n"); printf("\t\t| 欢迎来到米奇零10星餐厅 |\n"); printf("\t\t----------------------------------\n"); printf("\t\t| 1.顾客点餐系统 |\n"); printf("\t\t| 2.管理员系统 |\n"); printf("\t\t| 3.退出系统 |\n"); printf("\t\t----------------------------------\n"); printf("请输入你的选择:"); scanf("%d", &n); switch (n) { case 1: ct(); break; case 2: denlu(); break; case 3: save(); printf("感谢使用,再见!\n"); exit(0); break; default: printf("\n"); printf("\t\t----------------------------------\n"); printf("\t\t| 选择错误请重新选择 |\n"); printf("\t\t----------------------------------\n"); printf("\n"); system("pause"); menu(); } } void ct() { system("cls"); int n; printf("\t\t----------------------------------\n"); printf("\t\t| 欢迎来到米奇零10星餐厅 |\n"); printf("\t\t----------------------------------\n"); printf("\t\t| 1.点餐系统 |\n"); printf("\t\t| 2.查询 |\n"); printf("\t\t| 3.返回 |\n"); printf("\t\t----------------------------------\n"); printf("今日菜品有如下:\n"); read(); output(); //餐桌信息 printf("----------------------------------------\n"); printf("| 1.点餐 |\n"); printf("| 2.查询 |\n"); printf("| 3.返回 |\n"); printf("----------------------------------------\n"); printf("请输入你的选择【1 - 3】:"); scanf("%d", &n); switch (n) { case 1: order1(); break; case 2: search(); system("pause"); ct(); break; case 3: menu(); break; default: printf("\n"); printf("----------------------------------------\n"); printf("| 选择错误请重新选择 | \n"); printf("----------------------------------------\n"); printf("\n"); system("pause"); ct(); } } void denlu() { FILE *fp; int ctwd; int stwd; fp = fopen("passwd.txt", "r"); if (fp == NULL) { fp = fopen("passwd.txt", "w"); if (fp == NULL) { printf("无法创建密码文件!\n"); return; } fprintf(fp, "123456"); fclose(fp); printf("已创建密码文件,默认密码为:123456\n"); system("pause"); ad12(); return; } if (fscanf(fp, "%d", &stwd) != 1) { printf("密码文件格式错误!\n"); fclose(fp); return; } fclose(fp); printf("请输入管理员密码:"); scanf("%d", &ctwd); if (ctwd == stwd) { printf("密码验证成功,进入管理员系统!\n"); system("pause"); ad12(); } else { printf("密码错误,请重新输入!\n"); system("pause"); denlu(); } } void changePassword() { FILE *fp; int old, new, con; fp = fopen("passwd.txt", "r"); if (fp == NULL) { printf("密码文件不存在,无法修改密码!\n"); system("pause"); return; } fscanf(fp, "%d", &old); fclose(fp); printf("请输入当前密码:"); scanf("%d", &old); if (old != old) { printf("旧密码输入错误,无法修改密码!\n"); system("pause"); return; } printf("请输入新密码:"); scanf("%d", &new); printf("请再次输入新密码:"); scanf("%d", &con); if (new != con) { printf("两次输入的密码不一致,修改失败!\n"); system("pause"); return; } fp = fopen("passwd.txt", "w"); if (fp == NULL) { printf("无法打开密码文件,修改失败!\n"); system("pause"); return; } fprintf(fp, "%d", new); fclose(fp); printf("密码修改成功!\n"); system("pause"); ad12(); } void ad12() { system("cls"); int n; struct meau *p, *q; system("cls"); printf("\t\t----------------------------------\n"); printf("\t\t| 欢迎来到管理者系统界面 |\n"); printf("\t\t----------------------------------\n"); printf("\t\t| 1.添加菜品 |\n"); printf("\t\t| 2.删除菜品 |\n"); printf("\t\t| 3.结账删除 |\n"); printf("\t\t| 4.查看订单 |\n"); printf("\t\t| 5.返回主菜单 |\n"); printf("\t\t| 6.更改管理员密码 |\n"); printf("\t\t----------------------------------\n"); scanf("%d", &n); switch (n) { case 1: q = (struct meau *)malloc(sizeof (struct meau)); //申请空间 printf("请输入要添加的菜品:\n"); printf("编号:"); scanf("%d", &q->num); getchar(); printf("名称:"); gets(q->name); printf("价格;"); scanf("%d", &q->price); q->next = NULL; p = q; head = q; while (1) { printf("是否继续添加菜品?\n"); printf(" 1.是 2.否\n"); int n; scanf("%d", &n); if (n == 1) { q = (struct meau *)malloc(sizeof (struct meau)); //申请空间 printf("请输入要添加的菜品:\n"); printf("编号:"); scanf("%d", &q->num); getchar(); printf("名称:"); gets(q->name); printf("价格;"); scanf("%d", &q->price); q->next = NULL;//尾部 p->next = q; p = p->next; } else if (n == 2) { printf("添加结束!\n"); system("pause"); save(); ad12(); break; } else { printf("\n"); printf("----------------------------------------\n"); printf("| 选择错误请重新选择 | \n"); printf("----------------------------------------\n"); printf("\n"); system("pause"); ad12(); break; } } break; case 2: read(); de(); break; case 3: checkout(); break; case 4: chake(); break; case 5: menu(); break; case 6: changePassword(); break; default: printf("\n"); printf("----------------------------------------\n"); printf("| 选择错误请重新选择 | \n"); printf("----------------------------------------\n"); printf("\n"); system("pause"); ad12(); } } void de() { printf("\t\t**********************************\n"); printf("\t\t* 欢迎进入删除系统 *\n"); printf("\t\t* 1.确认删除 *\n"); printf("\t\t* 2.放弃删除 *\n"); printf("\t\t* 3.返回主界面 *\n"); printf("\t\t**********************************\n"); int n, dem; scanf("%d", &n); struct meau *p, *q; // p遍历,q记录前一个节点 switch (n) { case 1: output(); printf("输入你要删除菜品的编号:\n"); scanf("%d", &dem); p = head; q = NULL; while (p != NULL) { if (p->num == dem) { printf("编号"); printf("\t\t\t菜名"); printf("\t\t\t\t价格\n"); printf("%d", p->num); printf("\t\t\t%s", p->name); printf("\t\t\t\t%d元\n", p->price); if (q == NULL) { head = p->next; } else { q->next = p->next; } free(p); printf("\n"); printf("*************************************\n"); printf("** 删除成功 **\n"); printf("*************************************\n"); printf("\n"); system("pause"); save(); de(); } q = p; p = p->next; } printf("\n"); printf("*************************************\n"); printf("** 未找到该菜品,删除失败 **\n"); printf("*************************************\n"); printf("\n"); system("pause"); save(); de(); break; case 2: ad12(); break; case 3: ad12(); break; default: printf("\n"); printf("----------------------------------------\n"); printf("| 选择错误请重新选择 | \n"); printf("----------------------------------------\n"); printf("\n"); system("pause"); de(); break; } } void output() { struct meau *p; printf("编号"); printf("\t\t\t菜名"); printf("\t\t\t\t价格\n"); for (p = head; p != NULL; p = p->next) { printf("%d", p->num); printf("\t\t\t%s", p->name); printf("\t\t\t\t%d元\n", p->price); } } void save() { int n; struct meau *p; p = head; FILE *fp; fp = fopen("meau.txt", "w+"); do { fprintf(fp, ("%d\t\t%s\t\t%d\n"), p->num, p->name, p->price); p = p->next; } while (p != NULL); system("pause"); printf("数据已经保存!!!!"); fclose(fp); } void read() { struct meau *p, *t = NULL; FILE *fp; fp = fopen("meau.txt", "r"); if (fp == NULL) { printf("无法打开文件!\n"); return; } while (head != NULL) { p = head; head = head->next; free(p); } head = NULL; while (1) { p = (struct meau *)malloc(sizeof(struct meau)); if (p == NULL) { printf("内存分配失败!\n"); fclose(fp); return; } if (fscanf(fp, "%d\t%s\t%d", &p->num, p->name, &p->price) != 3) { free(p); break; } p->next = NULL; if (head == NULL) { head = p; t = p; } else { t->next = p; t = t->next; } } fclose(fp); if (head == NULL) { printf("今日没有提供餐食哦!!\n"); } } int ex(int dishNum) { struct meau *p; for (p = head; p != NULL; p = p->next) { if (p->num == dishNum) { return 1; // 菜品存在 } } return 0; // 菜品不存在 } void order1() { int n, i; int dishNum; struct meau *p; read(); while (1) { printf("请你输入你当前所坐桌的桌号【1~199】:"); scanf("%d", &n); // 检查餐桌号是否有效 if (n < 1 || n >= 200) { printf("*************************************\n"); printf("** 餐桌号无效,请重新输入 **\n"); printf("*************************************\n"); continue; } // 检查餐桌是否已被占用 if (desk1[n].people != 0) { printf("*************************************\n"); printf("** 该餐桌已被占用,请选择其他餐桌 **\n"); printf("*************************************\n"); continue; } break; } printf("请你输入用餐人数:"); scanf("%d", &desk1[n].people); printf("请你输入点菜的个数:"); scanf("%d", &desk1[n].sl); desk1[n].sum = 0; for (i = 0; i < desk1[n].sl; i++) { while (1) { printf("----------------------------------------\n"); printf("第%d个菜品的编码:", i + 1); scanf("%d", &dishNum); if (ex(dishNum)) { desk1[n].grcd[i] = dishNum; for (p = head; p != NULL; p = p->next) { if (p->num == dishNum) { desk1[n].sum += p->price; break; } } break; } else { printf("*************************************\n"); printf("** 菜品编号无效,请重新输入 **\n"); printf("*************************************\n"); } } } printf("\n"); printf("*************************************\n"); printf("** 点餐成功!总金额:%d元 **\n", desk1[n].sum); printf("*************************************\n"); system("pause"); ct(); } void search() { struct meau *p; int n, i; printf("输入当前的所在桌位:"); scanf("%d", &n); if (n < 1 || n >= 200) { printf("*************************************\n"); printf("** 餐桌号无效,请重新输入 **\n"); printf("*************************************\n"); system("pause"); ct(); return; } if (desk1[n].people == 0 || desk1[n].sl == 0) { printf("*************************************\n"); printf("** 该餐桌暂无点餐记录 **\n"); printf("*************************************\n"); system("pause"); ct(); return; } printf("\n"); printf("----------------------------------------\n"); printf("| 餐桌号码 | 用餐人数 | 点菜道数 | 需付金额 |\n"); printf("----------------------------------------\n"); printf("| %4d | %4d | %4d | %6d元 |\n", n, desk1[n].people, desk1[n].sl, desk1[n].sum); printf("----------------------------------------\n"); printf("\n所点菜品:\n"); for (i = 0; i < desk1[n].sl; i++) { int found = 0; for (p = head; p != NULL; p = p->next) { if (desk1[n].grcd[i] == p->num) { printf(" - %s (%d元)\n", p->name, p->price); found = 1; break; } } if (!found) { printf(" - 未知菜品 (编号: %d)\n", desk1[n].grcd[i]); } } printf("\n"); system("pause"); ct(); } void checkout() { int n, i; struct meau *p; printf("请输入需要结账的餐桌号【1~199】:"); scanf("%d", &n); if (n < 1 || n >= 200) { printf("*************************************\n"); printf("** 餐桌号无效,请重新输入 **\n"); printf("*************************************\n"); system("pause"); ad12(); return; } if (desk1[n].people == 0 || desk1[n].sl == 0) { printf("*************************************\n"); printf("** 该餐桌暂无点餐记录 **\n"); printf("*************************************\n"); system("pause"); ad12(); return; } printf("\n"); printf("----------------------------------------\n"); printf("| 餐桌号码 | 用餐人数 | 点菜道数 | 需付金额 |\n"); printf("----------------------------------------\n"); printf("| %4d | %4d | %4d | %6d元 |\n", n, desk1[n].people, desk1[n].sl, desk1[n].sum); printf("----------------------------------------\n"); printf("\n所点菜品:\n"); for (i = 0; i < desk1[n].sl; i++) { for (p = head; p != NULL; p = p->next) { if (desk1[n].grcd[i] == p->num) { printf(" - %s (%d元)\n", p->name, p->price); break; } } } printf("\n是否确认结账?\n"); printf("1. 确认结账\n"); printf("2. 取消\n"); printf("请输入你的选择:"); int choice; scanf("%d", &choice); if (choice == 1) { desk1[n].people = 0; desk1[n].sl = 0; desk1[n].sum = 0; for (i = 0; i < 50; i++) { desk1[n].grcd[i] = 0; } printf("\n"); printf("*************************************\n"); printf("** 结账成功!餐桌 %d 已清空 **\n", n); printf("*************************************\n"); } else { printf("\n"); printf("*************************************\n"); printf("** 结账已取消 **\n"); printf("*************************************\n"); } system("pause"); ad12(); } void chake() { int i; struct meau *p; printf("\n"); printf("========================================\n"); printf("| 所有餐桌订单信息 |\n"); printf("========================================\n"); int Order = 0; for (i = 1; i < 200; i++) { if (desk1[i].people != 0 && desk1[i].sl != 0) { Order = 1; printf("\n"); printf("----------------------------------------\n"); printf("| 餐桌号码 | 用餐人数 | 点菜道数 | 需付金额 |\n"); printf("----------------------------------------\n"); printf("| %4d | %4d | %4d | %6d元 |\n", i, desk1[i].people, desk1[i].sl, desk1[i].sum); printf("----------------------------------------\n"); printf("所点菜品:\n"); for (int j = 0; j < desk1[i].sl; j++) { for (p = head; p != NULL; p = p->next) { if (desk1[i].grcd[j] == p->num) { printf(" - %s (%d元)\n", p->name, p->price); break; } } } } } if (Order == 0) { printf("\n"); printf("*************************************\n"); printf("** 当前没有订单记录 **\n"); printf("*************************************\n"); } printf("\n"); system("pause"); ad12(); }帮我生成思维导图
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值