| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 728 人关注过本帖, 1 人收藏
标题:有好的方法 调用这些函数吗?
只看楼主 加入收藏
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:3 
还是用C++简单,map<string,command>....
2012-11-14 14:06
wengege
Rank: 2
等 级:论坛游民
帖 子:148
专家分:93
注 册:2012-7-23
收藏
得分:0 
呵呵, 高手都聚齐了啊。。

打好基础,学会站在巨人的肩膀上!
2012-11-14 20:20
wengege
Rank: 2
等 级:论坛游民
帖 子:148
专家分:93
注 册:2012-7-23
收藏
得分:0 
回复 10楼 TonyDeng
版主说的感觉有点模糊, 能有个大体架子就好了。。。

打好基础,学会站在巨人的肩膀上!
2012-11-14 20:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>

struct menu_item
{
    char title[50];
    char key;
    void (*pf) (void);
};

int ShowMenu(const menu_item* menu);
void Fun1(void);
void Fun2(void);
void Fun3(void);
void Pause(void);

void main(void)
{
    const menu_item menu[] = {
        { "0.Exit", '0', 0 },
        { "1.Call Function1", '1', Fun1 },
        { "2.Call Function2", '2', Fun2 },
        { "3.Call Function3", '3', Fun3 },
        { "" }
    };

    int choice;
    do
    {
        choice = ShowMenu(menu);
        if (choice != 0)
        {
            menu[choice].pf ();
        }
    } while (choice != 0);
}

int ShowMenu(const menu_item menu[])
{
    system("CLS");
    for (int index = 0; strlen(menu[index].title) != 0; ++index)
    {
        printf_s("%s\n", menu[index].title);
    }
    printf_s("\nSelect: ");
    int choice = -1;
    do
    {
        int keypress = _getch();
        for (int index = 0; strlen(menu[index].title) != 0; ++index)
        {
            if (keypress == menu[index].key)
            {
                printf_s("%c\n\n", keypress);
                choice = index;
                break;
            }
        }
    } while (choice == -1);
    return choice;
}

void Fun1(void)
{
    printf_s("Now in Function1\n\n");
    Pause();
}

void Fun2(void)
{
    printf_s("Now in Function2\n\n");
    Pause();
}

void Fun3(void)
{
    printf_s("Now in Function3\n\n");
    Pause();
}

void Pause(void)
{
    printf_s("keypress any key to continue...");
    _getch();
}

授人以渔,不授人以鱼。
2012-11-15 02:44
快速回复:有好的方法 调用这些函数吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018708 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved