| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 510 人关注过本帖
标题:解一个复杂编程题问题
只看楼主 加入收藏
宇智波曌
Rank: 2
等 级:论坛游民
帖 子:98
专家分:15
注 册:2011-4-17
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:8 
解一个复杂编程题问题
这个怎么編啊!我用结构体编过,但是有错误啊!

[ 本帖最后由 宇智波曌 于 2011-5-31 08:35 编辑 ]
搜索更多相关主题的帖子: 结构体 编程 
2011-05-27 12:01
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:3 
程序代码:
//定义结构
CREATE TABLE Staffs
(
ID VARCHAR(10) PRIMARYKEY,
Name VARCHAR(10) NOT NULL
);

//插入函数
INSERT INTO Staffs VALUES (*, *);

//排序
SELECT * FROM Staffs ORDER BY ID DESC;

//查找
SELECT Name FROM Staffs WHERE ID=id;
2011-05-27 13:15
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 
程序代码:
#include <windows.h>
#include <iostream>
using namespace std;

class Staff
{
    friend class Staffs;
public:
    Staff(LPSTR id, LPSTR name, Staff *next=NULL);
    ~Staff();
private:
    LPSTR ID;
    LPSTR Name;
    Staff *Next;   
};

Staff::Staff(LPSTR id, LPSTR name, Staff *next)
{
    HANDLE heapHandle;
    //获取进程堆句柄
    heapHandle = GetProcessHeap();
    if (NULL == heapHandle)
    {
        cout << "GetProcessHeap failed!" << endl;
        ExitProcess(0);
    }
    //初始化ID
    ID = (LPSTR) HeapAlloc (heapHandle, HEAP_ZERO_MEMORY, lstrlen(id)+1);
    CopyMemory(ID, id, lstrlen(id));
    //初始化Name
    Name = (LPSTR) HeapAlloc (heapHandle, HEAP_ZERO_MEMORY, lstrlen(name)+1);
    CopyMemory(Name, name, lstrlen(name));
    //初始化Next
    Next = next;
}
Staff::~Staff()
{
    HANDLE heapHandle;
    //获取进程堆句柄
    heapHandle = GetProcessHeap();
    if (NULL == heapHandle)
    {
        cout << "GetProcessHeap failed!" << endl;
        ExitProcess(0);
    }
    if (!HeapFree(heapHandle, HEAP_NO_SERIALIZE, ID))
    {
        cout << "HeapFree failed" << endl;
        ExitProcess(0);
    }
    if (!HeapFree(heapHandle, HEAP_NO_SERIALIZE, Name))
    {
        cout << "HeapFree failed" << endl;
        ExitProcess(0);
    }
}

class Staffs
{
public:
    Staffs();
    ~Staffs();
    VOID Insert(Staff *node);
    VOID Sort(VOID);
    LPSTR Query(LPSTR id);
    VOID Print(VOID);
private:
    Staff *Head;
};

Staffs::Staffs()
{
    Head = NULL;
}
Staffs::~Staffs()
{
    Staff *temp = Head;

    while (NULL != Head)
    {
        temp = Head;
        Head = Head->Next;
        delete temp;       
    }
    Head = NULL;
}
VOID Staffs::Insert(Staff *node)
{//插入到头部
    node->Next = Head;
    Head = node;
}
VOID Staffs::Sort()
{//
    Staff *temp = NULL, *p = NULL;
    Staff *list = NULL;
    BOOL flag = FALSE;

    while (NULL != Head)
    {
        temp = Head;
        if (temp == NULL || temp->Next == NULL)
        {
            temp->Next = list;
            list = temp;
            break;
        }
        else
        {
           
        }
    }
}
VOID Staffs::Print()
{
    Staff *temp = Head;

    while (temp != NULL)
    {
        cout << "\tID:" << temp->ID << ' '
             << "\tName:" << temp->Name << endl;
        temp = temp->Next;
    }
}
LPSTR Staffs::Query(LPSTR id)
{
    Staff *temp = Head;

    while (temp != NULL)
    {
        if (lstrcmp(id, temp->ID)==0)
        {
            return temp->Name;
        }
        temp = temp->Next;
    }

    return NULL;
}

INT main(VOID)
{
    Staffs staffs;
    Staff *node;
    CHAR NameBuffer[20] = {0};
    CHAR IdBuffer[20] = {0};

    for (SIZE_T sum=0; sum<2; ++sum)
    {
        cout << "ID: " ; cin >> IdBuffer;
        cout << "Name: "; cin >> NameBuffer;
        node = new Staff(IdBuffer, NameBuffer);
        staffs.Insert(node);
    }

    cout << "\t查询ID:1234 " << ' ' << "查询结果: "
         << staffs.Query("1234") << endl;

    staffs.Print();
   
    return 0;
}
//排序没
2011-05-27 17:34
宇智波曌
Rank: 2
等 级:论坛游民
帖 子:98
专家分:15
注 册:2011-4-17
收藏
得分:0 
回复 3楼 诸葛修勤
iostream
这个我不熟悉,能用stdio吗
2011-05-27 18:15
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:0 
回复 4楼 宇智波曌
这是C++的   改成c就要重新写过啦
2011-05-27 18:26
宇智波曌
Rank: 2
等 级:论坛游民
帖 子:98
专家分:15
注 册:2011-4-17
收藏
得分:0 
回复 5楼 诸葛修勤
但是这个程序我用不了啊,不过还是谢谢你
2011-05-27 22:25
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:3 
C++好用,见楼上代码。

Einmal ist keinmal
2011-05-27 22:46
宇智波曌
Rank: 2
等 级:论坛游民
帖 子:98
专家分:15
注 册:2011-4-17
收藏
得分:0 
回复 7楼 linw1225
你能帮我用stdio.h编一个吗
2011-05-29 21:25
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 8楼 宇智波曌
你可以给出你的代码,我会的话给你改

Einmal ist keinmal
2011-05-30 14:15
快速回复:解一个复杂编程题问题
数据加载中...
 
   



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

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