C語言實(shí)現(xiàn)魔方比賽管理系統(tǒng)
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)魔方比賽管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
#include <stdio.h> #include <stdlib.h> #include <string.h> #define AVAILABLE 0 #define UNAVAILABLE 1 #define MAXNAME 30 #define CLEAR "cls" ? typedef struct match{ ? ? char *name; ? ? int id; ? ? int count; ? ? int status; ? ? struct match *next; }Match; ? void welcome(); void error(char *); ? ? ? ? char land(); ? ? ? ? ? ? ?? int player(); ? ? ? ? ?? int usrmanager(); ? ? ? ? ? ? int viewmatch(); ? ? ? ? ?? int addmatch(); ? ? ? ? ? ? ?? int modmatch(); ? ? ? ? ? ? ? int delmatch(); ? ? ? ? ? ? ? ? void printmatch(Match *); ? ? ? Match *lookup(char *, int); ? ? int joinmatch(); ? ? ? ? ? ?? int finishmatch(); ? ? ? ? ? ? ? Match *head = NULL; int nmatch = 0; ? //主函數(shù) ? int main(){ ? ?? ? ? welcome(); ? ? return 0; } ? void welcome(){ ? ? printf("*************************歡迎使用魔方比賽管理系統(tǒng)*************************\n"); ? ? while(1){ ? ? ? ? printf("-------------------------------------\n"); ? ? ? ? printf("請(qǐng)輸入項(xiàng)目前編號(hào)執(zhí)行相關(guān)操作:\n"); ? ? ? ? printf("\n[1] 管理員入口\n\n[2] 選手入口\n\n[0] 退出\n\n"); ? ? ? ? switch(land()){ ? ? ? ? ? ? case '1': ? ? ? ? ? ? ? ? while(1){ ? ? ? ? ? ? ? ? ? ? if(usrmanager()){ ? ? ? ? ? ? ? ? ? ? ? ? continue; ? ? ? ? ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ?} ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? case '2': ? ? ? ? ? ? ? ? while(1){ ? ? ? ? ? ? ? ? ? ? if(player()){ ? ? ? ? ? ? ? ? ? ? ? ? continue; ? ? ? ? ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? case '0': ? ? ? ? ? ? ? ? exit(0); ? ? ? ? ? ? default: ? ? ? ? ? ? ? ? error("采集項(xiàng)目參數(shù)失敗"); ? ? ? ? } ? ? } } char land(){ ? ? char c, flag; ? ? int i; ? ? while(1){ ? ? ? ? for(i = 0; (c = getchar()) != '\n'; flag = c, ++i) ? ? ? ? ? ? ; ? ? ? ? if(i == 1){ ? ? ? ? ? ? if(flag == '1' || flag == '2' || flag == '0'){ ? ? ? ? ? ? ? ? return flag; ? ? ? ? ? ? } ? ? ? ? }else if(i == 0){ ? ? ? ? ? ? continue; ? ? ? ? } ? ? ? ? error("[請(qǐng)輸入命令: 1 / 2 / 0 選擇項(xiàng)目]"); ? ? } ? ? return '\0'; } void error(char *s){ ? ? fprintf(stderr, "%s\n", s); } char dostudent(){ ? ? char c, flag; ? ? int i; ? ? while(1){ ? ? ? ? for(i = 0; (c = getchar()) != '\n'; flag = c, ++i ) ? ? ? ? ? ? ; ? ? ? ? if(i == 1){ ? ? ? ? ? ? if(flag == '1' || flag == '2' || flag == '3' || flag == '0'){ ? ? ? ? ? ? ? ? return flag; ? ? ? ? ? ? } ? ? ? ? }else if(i == 0){ ? ? ? ? ? ? continue; ? ? ? ? } ? ? ? ? error("[請(qǐng)輸入命令: 1 / 2 / 3/ 0 選擇項(xiàng)目]"); ? ? } } int player(){ ? ? printf("-------------------------------------\n"); ? ? printf("請(qǐng)輸入項(xiàng)目前編號(hào)執(zhí)行相關(guān)操作:\n\n"); ? ? printf("[1] 報(bào)名比賽\n[2] 完成比賽\n[3] 查看比賽\n"); ? ? printf("[0] 返回主頁\n"); ? ? switch(dostudent()){ ? ? ? ? case '1': ? ? ? ? ? ? joinmatch(); ? ? ? ? ? ? break; ? ? ? ? case '2': ? ? ? ? ? ? finishmatch(); ? ? ? ? ? ? break; ? ? ? ? case '3': ? ? ? ? ? ? viewmatch(); ? ? ? ? ? ? break; ? ? ? ? case '0': ? ? ? ? ? ? return 0; ? ? ? ? default: ? ? ? ? ? ? error("采集項(xiàng)目參數(shù)失敗"); ? ? ? ? ? ? break; ? ? } ? ? return 1; } int joinmatch(){ ? ? system(CLEAR); ? ? char sname[MAXNAME]; ? ? printf("搜索比賽:\n"); ? ? ? ? scanf("%s", sname); ? ? ? ? getchar(); ? ? ? ? Match *bp; ? ? ? ? char *namep = NULL; ? ? ? ? if((bp = lookup(namep = strdup(sname), 0)) == NULL){ ? ? ? ? ? ? printf("比賽 %s 不存在\n", namep); ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? return -1; ? ? ? ? }else{ ? ? ? ? ? ? printmatch(bp); ? ? ? ? ? ? if(! bp->status){ ? ? ? ? ? ? ? ? printf("參加比賽: Y N\n"); ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? printf("比賽進(jìn)行中\(zhòng)n"); ? ? ? ? ? ? ? ? return 0; ? ? ? ? ? ? } ? ? ? ? ? ? while(1){ ? ? ? ? ? ? ? ? char c = '\0'; ? ? ? ? ? ? ? ? scanf("%c", &c); ? ? ? ? ? ? ? ? getchar(); ? ? ? ? ? ? ? ? if(!(c == 'Y' || c == 'y' || c == 'N' || c == 'n')){ ? ? ? ? ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? ? ? ? ? error("指令無效"); ? ? ? ? ? ? ? ? ? ? continue; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? if(c == 'Y' || c == 'y'){ ? ? ? ? ? ? ? ? ? ? --bp->count > -1 ? printf("成功\n") : printf("失敗\n"); ? ? ? ? ? ? ? ? ? ? if(! bp->count){ ? ? ? ? ? ? ? ? ? ? ? ? bp->status = UNAVAILABLE; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? return bp->id; ? ? ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? ? ? return 0; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? } ? ? ? return -1; } int finishmatch(){ ? ? system(CLEAR); ? ? char sname[MAXNAME]; ? ? printf("完成比賽:\n"); ? ? scanf("%s", sname); ? ? getchar(); ? ? Match *bp; ? ? char *namep; ? ? if((bp = lookup(namep = strdup(sname), 0)) == NULL){ ? ? ? ? fflush(stdin); ? ? ? ? printf("此賽事沒有注冊(cè)\n"); ? ? ? ? return -1; ? ? }else{ ? ? ? ? printmatch(bp); ? ? ? ? printf("完成比賽: Y N\n"); ? ? ? ? while(1){ ? ? ? ? ? ? char c = '\0'; ? ? ? ? ? ? scanf("%c", &c); ? ? ? ? ? ? getchar(); ? ? ? ? ? ? if(!(c == 'Y' || c == 'y' || c == 'N' || c == 'n')){ ? ? ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? ? ? error("指令無效"); ? ? ? ? ? ? }else if(c == 'Y' || c == 'y'){ ? ? ? ? ? ? ? ? bp->count++ ? 0: (bp->status = AVAILABLE); ? ? ? ? ? ? ? ? printf("成功\n"); ? ? ? ? ? ? ? ? return bp->id; ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? return 0; ? ? ? ? ? ? } ? ? ? ? } ? ? } ? ? ? return -1; } char domanager(){ ? ? ? char c, flag; ? ? int i; ? ?? ? ? while(1){ ? ? ? ? for(i = 0; (c = getchar()) != '\n'; flag = c, ++i) ? ? ? ? ? ? ; ? ? ? ? if(i == 1){ ? ? ? ? ? ? if(flag == '1' || flag == '2' || flag == '3' || flag == '4' || flag == '0'){ ? ? ? ? ? ? ? ? return flag; ? ? ? ? ? ? } ? ? ? ? }else if(i == 0){ ? ? ? ? ? ? continue; ? ? ? ? } ? ? ? ? error("[請(qǐng)輸入命令: 1 / 2 / 3/ 4 / 0 選擇項(xiàng)目]"); ? ? ? ? ? ?? ? ? } ? ?? ? ? return '\0'; } int usrmanager(){ ? ? printf("-------------------------------------\n"); ? ? printf("請(qǐng)輸入項(xiàng)目前編號(hào)執(zhí)行相關(guān)操作:\n\n"); ? ? printf("[1] 查看比賽項(xiàng)目\n[2] 添加新項(xiàng)目\n[3] 修改已有項(xiàng)目\n[4] 刪除比賽項(xiàng)目\n"); ? ? printf("[0] 返回主頁\n"); ? ? switch(domanager()){ ? ? ? ? case '1': ? ? ? ? ? ? viewmatch(); ? ? ? ? ? ? break; ? ? ? ? case '2': ? ? ? ? ? ? addmatch(); ? ? ? ? ? ? break; ? ? ? ? case '3': ? ? ? ? ? ? modmatch(); ? ? ? ? ? ? break; ? ? ? ? case '4': ? ? ? ? ? ? delmatch(); ? ? ? ? ? ? break; ? ? ? ? case '0': ? ? ? ? ? ? return 0; ? ? ? ? default: ? ? ? ? ? ? error("采集項(xiàng)目參數(shù)失敗"); ? ? ? ? ? ? break; ? ? } ? ? return 1; ? } int viewmatch(){ ? ? system(CLEAR); ? ? ? ? ? Match *bp; ? ? for(bp =head; bp != NULL; bp = bp->next){ ? ? ? ? printmatch(bp); ? ? } ? ? if(nmatch){ ? ? ? ? return nmatch; ? ? }else{ ? ? ? ? printf("比賽沒有這個(gè)項(xiàng)目\n"); ? ? ? ? return 0; ? ? } ? ? return -1; } void printmatch(Match *bp){ ? ? printf("項(xiàng)目編號(hào):%d\n", bp->id); ? ? printf("項(xiàng)目名:%s\n", bp->name); ? ? printf("項(xiàng)目狀態(tài):%s\n", bp->status ? "未開始" : "開始"); } int addmatch(){ ? ? system(CLEAR); ? ?? ? ? char sname[MAXNAME]; ? ? int id, count; ? ? char *namep; ? ? ? while(1){ ? ? ? ? id = 0; ? ? ? ? count = 0; ? ? ? ? namep = NULL; ? ? ? ? printf("請(qǐng)輸入比賽名:\n"); ? ? ? ? scanf("%s", sname); ? ? ? ? getchar(); ? ? ? ? printf("請(qǐng)輸入小于1000的比賽編號(hào):\n"); ? ? ? ? scanf("%d", &id); ? ? ? ? getchar(); ? ? ? ? if(!(id > 0 && id < 1000)){ ? ? ? ? ? ? error("輸入編號(hào)不符合要求"); ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? continue; ? ? ? ? } ? ? ? ? printf("請(qǐng)輸入小于50的比賽選手?jǐn)?shù)量:\n"); ? ? ? ? scanf("%d", &count); ? ? ? ? getchar(); ? ? ? ? if(!(count > 0 && count < 50)){ ? ? ? ? ? ? error("輸入數(shù)目不符合要求"); ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? continue; ? ? ? ? } ? ? ? ? Match *bp; ? ? ? ? ? ? ? ? if((bp = lookup(namep = strdup(sname), id)) == NULL){ ? ? ? ? ? ? bp = (Match *)malloc(sizeof (Match)); ? ? ? ? ? ? if(bp == NULL || (bp->name = namep) == NULL){ ? ? ? ? ? ? ? ? error("添加比賽失敗"); ? ? ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? ? ? continue; ? ? ? ? ? ? } ? ? ? ? ? ? bp->id = id; ? ? ? ? ? ? bp->count = count; ? ? ? ? ? ? bp->status = AVAILABLE; ? ? ? ? ? ? ++nmatch; ? ? ? ? ? ?? ? ? ? ? ? ? bp->next = head; ? ? ? ? ? ? head = bp; ? ? ? ? ? ? printf("比賽 %s 注冊(cè)成功\n", sname); ? ? ? ? ? ? return id; ? ? ? ? }else{ ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? error("項(xiàng)目名或編號(hào)已經(jīng)被占用"); ? ? ? ? } ? ? } ? ? ? return -1; } Match *lookup(char *s, int id){ ? ? Match *bp; ? ? for(bp = head; bp != NULL; bp = bp->next){ ? ? ? ? if(id == bp->id || strcmp(s, bp->name) == 0){ ? ? ? ? ? ? return bp; ? ? ? ? } ? ? } ? ? return NULL; } int modmatch(){ ? ? ? system(CLEAR); ? ? ? ? Match *bp = NULL; ? ? while(1){ ? ? ? ? int id = 0; ? ? ? ? printf("請(qǐng)輸入要修改信息的項(xiàng)目編號(hào):\n"); ? ? ? ? scanf("%d", &id); ? ? ? ? getchar(); ? ? ? ? if(!(id > 0 && id < 1000)){ ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? error("項(xiàng)目編號(hào)不符合要求"); ? ? ? ? ? ? continue; ? ? ? ? } ? ? ? ? if((bp = lookup("", id)) != NULL){ ? ? ? ? ? ? printf("以下為要修改的項(xiàng)目的現(xiàn)有信息:\n"); ? ? ? ? ? ? printmatch(bp); ? ? ? ? ? ? printf("[1] 修改項(xiàng)目名\n[2] 修改比賽選手?jǐn)?shù)量\n[3] 修改項(xiàng)目狀態(tài)\n[0] 放棄修改\n"); ? ? ? ? ? ? while(1){ ? ? ? ? ? ? ? ? int i; ? ? ? ? ? ? ? ? scanf("%d", &i); ? ? ? ? ? ? ? ? getchar(); ? ? ? ? ? ? ? ? if(!(i == 1 || i == 2 || i == 3 || i == 0)){ ? ? ? ? ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? ? ? ? ? error("輸入項(xiàng)目前編號(hào)選擇相關(guān)項(xiàng)目"); ? ? ? ? ? ? ? ? ? ? continue; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? switch(i){ ? ? ? ? ? ? ? ? ? ? case 1: ? ? ? ? ? ? ? ? ? ? ? ? while(1){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? char newname[MAXNAME], *namep; ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("項(xiàng)目名:\n"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? scanf("%s", newname); ? ? ? ? ? ? ? ? ? ? ? ? ? ? getchar(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? if((lookup(namep = strdup(newname), 0)) != NULL){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? error("項(xiàng)目名已存在"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? continue; ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? if((bp->name = namep) != NULL){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("修改成功\n"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return id; ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case 2: ? ? ? ? ? ? ? ? ? ? ? ? while(1){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? int bnum; ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("輸入比賽數(shù)量:\n"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? scanf("%d", &bnum); ? ? ? ? ? ? ? ? ? ? ? ? ? ? getchar(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(!(bnum > 0 || bnum < 1000)){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? error("數(shù)目不符合要求"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? continue; ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? bp->count = bnum; ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("修改成功\n"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? return id; ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case 3: ? ? ? ? ? ? ? ? ? ? ? ? while(1){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? char c; ? ? ? ? ? ? ? ? ? ? ? ? ? ? int status; ? ? ? ? ? ? ? ? ? ? ? ? ? ? status = bp->status; ? ? ? ? ? ? ? ? ? ? ? ? ? ? status == AVAILABLE ? printf("修改狀態(tài)為[未開始]: Y N\n") : printf("修改狀態(tài)為[開始]: Y N\n"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? scanf("%c", &c); ? ? ? ? ? ? ? ? ? ? ? ? ? ? getchar(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(!( c == 'Y' || c == 'y' || c == 'N' || c == 'n')){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? error("指令無效"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? continue; ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(c == 'Y' || c == 'y'){ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?status == AVAILABLE ? bp->status = UNAVAILABLE : (bp->status = AVAILABLE); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?printf("修改成功\n"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?return id; ? ? ? ? ? ? ? ? ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("放棄修改\n"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return 0; ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? ? ? case 0: ? ? ? ? ? ? ? ? ? ? ? ? return 0; ? ? ? ? ? ? ? ? ? ? default: ? ? ? ? ? ? ? ? ? ? ? ? error("獲取參數(shù)失敗"); ? ? ? ? ? ? ? ? ? ? ? ? break; ?? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? }else{ ? ? ? ? ? ? printf("沒有此比賽\n"); ? ? ? ? ? ? return 0; ? ? ? ? } ? ? } ? ? return -1; } int delmatch(){ ? ? system(CLEAR); ? ? ? ? Match *bp, *fbp; ? ?? ? ? int id = 0; ? ? printf("請(qǐng)輸入要注銷的項(xiàng)目編號(hào):\n"); ? ? scanf("%d", &id); ? ? getchar(); ? ? if(!(id > 0 && id < 1000)){ ? ? ? ? fflush(stdin); ? ? ? ? error("項(xiàng)目編號(hào)不符合要求"); ? ? ? ? return -1; ? ? } ? ? for(fbp = bp = head; bp != NULL; fbp = bp, bp = bp->next){ ? ? ? ? if(bp->id == id){ ? ? ? ? ? ? printmatch(bp); ? ? ? ? ? ? break; ? ? ? ? } ? ? } ? ? if(bp != NULL){ ? ? ? ? while(1){ ? ? ? ? ? ? printf("確定要注銷此項(xiàng)目:Y ?N\n"); ? ? ? ? ? ? char YN; ? ? ? ? ? ? scanf("%c", &YN); ? ? ? ? ? ? getchar(); ? ? ? ? ? ? if(!((YN == 'Y' || YN == 'y') || (YN == 'N' || YN == 'n'))){ ? ? ? ? ? ? ? ? fflush(stdin); ? ? ? ? ? ? ? ? error("指令無效\n"); ? ? ? ? ? ? ? ? continue; ? ? ? ? ? ? } ? ? ? ? ? ? if(YN == 'Y' || YN == 'y'){ ? ? ? ? ? ? ? ? bp == head ? head = bp->next : (fbp->next = bp->next); ? ? ? ? ? ? ? ? free(bp->name); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? free(bp); ? ? ? ? ? ? ? ? bp = NULL; ? ? ? ? ? ? ? ? printf("項(xiàng)目注銷成功\n"); ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? printf("放棄注銷\n"); ? ? ? ? ? ? ? ? return 0; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? ? return id; ? ? }else{ ? ? ? ? printf("要注銷的項(xiàng)目編號(hào)不存在\n"); ? ? ? ? return -1; ? ? } ? ? return -1; }
主界面包含管理員入口、選手入口、和退出功能。
管理員入口進(jìn)入有如下功能
選手入口進(jìn)入有如下功能
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++中const、volatile、mutable使用方法小結(jié)
這篇文章主要介紹了C++中const、volatile、mutable使用方法小結(jié),需要的朋友可以參考下2020-01-01在std::thread中創(chuàng)建并管理QEventLoop的全面解析
QEventLoop的工作原理可以簡單地理解為一個(gè)無限循環(huán),它會(huì)不斷地檢查是否有新的事件需要處理,如果有,就將事件從事件隊(duì)列中取出,然后找到相應(yīng)的事件處理器進(jìn)行處理,這篇文章主要介紹了在std::thread中創(chuàng)建并管理QEventLoop的全面指南,需要的朋友可以參考下2023-06-06C++基于隨機(jī)數(shù)實(shí)現(xiàn)福彩雙色球的方法示例
這篇文章主要介紹了C++基于隨機(jī)數(shù)實(shí)現(xiàn)福彩雙色球的方法,結(jié)合完整實(shí)例形式分析了C++隨機(jī)數(shù)算法的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2017-06-06C語言編程C++動(dòng)態(tài)內(nèi)存分配示例講解
這篇文章主要介紹了C語言編程C++動(dòng)態(tài)內(nèi)存分配示例講解,為什么存在動(dòng)態(tài)內(nèi)存分配?本文通過動(dòng)態(tài)內(nèi)存介紹及常見內(nèi)存錯(cuò)誤等示例來為大家講解2021-09-09C語言進(jìn)階教程之字符串&內(nèi)存函數(shù)
對(duì)于字符,在計(jì)算機(jī)內(nèi)部都是用數(shù)字(字符編碼)來表示的,而字符串是“字符連續(xù)排列”的一種表現(xiàn),這篇文章主要給大家介紹了關(guān)于C語言進(jìn)階教程之字符串&內(nèi)存函數(shù)的相關(guān)資料,需要的朋友可以參考下2021-09-09用C語言實(shí)現(xiàn)從文本文件中讀取數(shù)據(jù)后進(jìn)行排序的功能
這是一個(gè)十分可靠的程序,這個(gè)程序的查錯(cuò)能力非常強(qiáng)悍。程序包含了文件操作,歸并排序和字符串輸入等多種技術(shù)。對(duì)大家學(xué)習(xí)C語言很有幫助,有需要的一起來看看。2016-08-08歸并排序的遞歸實(shí)現(xiàn)與非遞歸實(shí)現(xiàn)代碼
以下是對(duì)歸并排序的遞歸實(shí)現(xiàn)與非遞歸實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下2013-08-08C++實(shí)現(xiàn)順序表的常用操作(插入刪出查找輸出)
實(shí)現(xiàn)順序表的插入,刪除,查找,輸出操作在C語言中經(jīng)常用到。下面小編給大家整理實(shí)現(xiàn)代碼,一起看下吧2016-08-08