游戏充值系统代码

该代码实现了一个游戏充值系统的基本数据管理功能,包括添加玩家信息、按条件搜索、分页显示、删除和更新玩家数据。核心数据结构为链表,支持多种操作交互。程序适用于Windows平台。
摘要由CSDN通过智能技术生成

#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#include<string.h>


typedef struct Node {
    int nId;
    char* name;
    char* tel;
    struct Node* pNext;
} List;
typedef struct PAGE {
    int TotalInfo;
    int TotalPage;
    int CurrentPage;
    int onePageInfo;
}page;
int g = 0;
char key;
void nwun(page* ppage);
void show(List* pHead, page* ppage);
page* Getpage(List* head, int n);
void AddNode(List** ppHead, List** ppEnd, List* pNode);
List* GetNode();
int Getid();
char* Getname();
char* tel();
void  intmain(List** pHead, List** pEnd, int n);
void TurnPage(List* pHead, page* pPage);
void bro(List* pHead);
char* aa();
List* in();
void string(List* pHead);
void shan(List** ppHead, List** ppEnd, int id);
void dide(List** ppHead, List** ppEnd);
void up(List* pHead);
int main() {
    List* pHead = NULL;
    List* pEnd = NULL;
    intmain(&pHead, &pEnd, 105);

    while (1)
    {
        printf("*********************************\n");
        printf("*\tѧ      ϵͳ\t*\n");
        printf("*********************************\n");
        printf("*\t  ѡ     б \t\t*\n");
        printf("*********************************\n");
        printf("*\t1.   ѧ    Ϣ\t\t*\n");
        printf("*\t2.   ѧ    Ϣ\t\t*\n");
        printf("*\t3.  ѯѧ      \t\t*\n");
        printf("*\t4.ɾ  ѧ    Ϣ\t\t*\n");
        printf("*\t5. ޸ ѧ    Ϣ\t\t*\n");
        printf("*\tq. ˳ ϵͳ\t\t*\n");
        printf("*********************************\n");
        char c;
        scanf_s(" %c", &c);
        switch (c)
        {
        case'1':
            g = 1;
            bro(pHead);
            break;
        case'2':
            AddNode(&pHead, &pEnd, in());
            break;
        case'3':
            g = 3;
            string(pHead);
            break;
        case'4':
            g = 4;
            dide(&pHead, &pEnd);
            break;
        case'5':
            g = 5;
            up(pHead);
            break;
        case'q':
            return 0;
            break;

        }
    }

    return 0;
}

void AddNode(List** ppHead, List** ppEnd, List* pNode) {
    if (NULL == *ppHead) {
        *ppHead = pNode;
    }
    else {
        (*ppEnd)->pNext = pNode;
    }
    *ppEnd = pNode;
}

List* GetNode() {
    List* pTemp = malloc(sizeof(List));
    pTemp->nId = Getid();
    pTemp->name = Getname();
    pTemp->tel = tel();
    pTemp->pNext = NULL;
    return pTemp;
}
int Getid()
{
    static int id = 0;
    id++;
    return id;
}
char* Getname()
{
    char* str = malloc(6);
    for (int i = 0;i < 5;i++)
    {
        str[i] = rand() % 26 + 'a';
    }
    str[5] = '\0';
    return str;
}
char* tel()
{
    char* tel = malloc(12);
    switch (rand() % 4) {
    case 0:
        strcpy_s(tel, 12, "123");
        break;
    case 1:
        strcpy_s(tel, 12, "133");
        break;
    case 2:
        strcpy_s(tel, 12, "155");
        break;
    default:
        strcpy_s(tel, 12, "166");
        break;
    }
    for (int i = 3; i < 11; i++) {
        tel[i] = '0' + rand() % 10;
    }

    tel[11] = '\0';
    return tel;

}

page* Getpage(List* pHead, int n)
{
    page* ppage = malloc(sizeof(page));
    ppage->onePageInfo = n;
    ppage->CurrentPage = 0;
    ppage->TotalInfo = 0;


    List* temp = pHead;
    while (temp != NULL)
    {
        ppage->TotalInfo++;
        temp = temp->pNext;
    }


    ppage->TotalPage = (ppage->TotalInfo + ppage->onePageInfo - 1) / ppage->onePageInfo;

    return ppage;
}
void intmain(List** pHead, List** pEnd, int n)
{
    srand(time(NULL));
    for (int i = 0; i < n; i++) {
        AddNode(pHead, pEnd, GetNode());
    }
}

void show(List* pHead, page* ppage) {
    int begin = (ppage->CurrentPage - 1) * ppage->onePageInfo;
    int end = ppage->CurrentPage * ppage->onePageInfo - 1;
    int nCount = 0;
    while (pHead != NULL) {
        if (nCount >= begin && nCount <= end) {
            printf("%d %s %s\n", pHead->nId, pHead->name, pHead->tel);
        }
   

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值