欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng)總結(jié)

 更新時(shí)間:2022年07月22日 11:37:07   作者:chabuduoxs  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)學(xué)生管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

前言

本周完成了學(xué)生管理系統(tǒng),在完成的過(guò)程中遇見(jiàn)了許多問(wèn)題,今天來(lái)總結(jié)上周寫(xiě)管理系統(tǒng)一些比較困難的模塊。

登陸界面

在寫(xiě)學(xué)生管理系統(tǒng)時(shí),我首先寫(xiě)的是登陸界面,學(xué)生管理系統(tǒng)有三個(gè)身份的id,分別是管理員,老師,與學(xué)生。我的想法是輸入賬號(hào),系統(tǒng)可以自動(dòng)識(shí)別賬戶(hù)的身份,所以我的結(jié)構(gòu)體設(shè)計(jì)如下:

struct personid { ? ? ? // 賬戶(hù)數(shù)據(jù)結(jié)構(gòu)
? ? char id[20];
? ? char cypher1[20];
? ? char quanxian[20];
? ? char classnum[20];
? ? struct personid *next;
};

用字符串存儲(chǔ)賬號(hào),密碼,權(quán)限,以及學(xué)號(hào)或者班級(jí)。
在登陸前首先應(yīng)該用鏈表提取文件中的賬號(hào)。代碼如下:

struct personid *Create(char name[]) { ?//從文件中讀取賬戶(hù);
? ? FILE *fp = fopen(name, "r");
? ? if (fp == NULL) {
? ? ? ? ? ? printf("不存在文件%s\n", name);
? ? ? ? ? ? exit(1);
? ? }
? ? struct personid *head = (struct personid*)malloc(sizeof(struct personid));
? ? head->next = NULL;
? ? while (!(feof(fp))) {
? ? ? ? struct personid *p = (struct personid*)malloc(sizeof(struct personid));
? ? ? ? fscanf(fp, "%s %s %s %s\n", p->id, p->cypher1, p->quanxian, p->classnum);
? ? ? ? p->next = head->next;
? ? ? ? head->next = p;
? ? }
? ? fclose(fp);
? ? return ?head;
}

下面是登陸界面的代碼:

void menu() { ? ? //初始界面
? ? printf("--------[歡迎進(jìn)入學(xué)生管理系統(tǒng)]--------\n");
? ? printf("1.登錄賬戶(hù)\n");
? ? printf("2.注冊(cè)賬戶(hù)\n");
? ? printf("3.修改密碼\n");
? ? printf("4.找回密碼\n");
? ? printf("0.退出系統(tǒng)\n");
? ? printf("----------------------------------\n");
? ? setbuf(stdin, NULL);
? ? keydown();
}
void keydown() {
? ? char choice[50];
? ? scanf("%s", choice);
? ? setbuf(stdin, NULL);
? ? if (choice[1] == '\0') {
? ? ? ? switch (choice[0]) {
? ? ? ? ? ? case '0':
? ? ? ? ? ? ? ? exit(0);
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '1':
? ? ? ? ? ? ? ? denglu();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '2':
? ? ? ? ? ? ? ? zhuce();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '3':
? ? ? ? ? ? ? ? xiugai();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '4':
? ? ? ? ? ? ? ? zhaohui();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? printf("無(wú)效輸入\n");
? ? ? ? ? ? ? ? menu();
? ? ? ? ? ? ? ? break;
? ? ? ? }
? ? } else {
? ? ? ? printf("無(wú)效輸入\n");
? ? ? ? menu();
? ? }
? ??
}

在寫(xiě)系統(tǒng)時(shí)一定要注意程序的穩(wěn)定性,我的程序是通過(guò)不斷輸入來(lái)進(jìn)行操作的,一開(kāi)始我在寫(xiě)代碼時(shí),利用的是getchar函數(shù)來(lái)進(jìn)行輸入,造成了輸入多個(gè)字符之后程序就會(huì)崩掉的問(wèn)題,在后來(lái)修改時(shí),將所有的getchar函數(shù)換成的scanf來(lái)輸入,這樣可以保證程序的穩(wěn)定性,在進(jìn)行判斷時(shí)只需判斷輸入的是否是一個(gè)字符且有這個(gè)操作即可。
在macOS系統(tǒng)下可以利用setbuf(stdin, NULL) 來(lái)清除緩沖區(qū)。

注冊(cè)操作

如果新用戶(hù)進(jìn)入程序,那么首先進(jìn)行的操作就是注冊(cè)操作,我在最開(kāi)始寫(xiě)注冊(cè)操作時(shí),是讓 用戶(hù)自己輸入自己的身份 ,這樣的寫(xiě)法是很失敗的,如果學(xué)生進(jìn)行操作,也可以注冊(cè)管理員,是很不嚴(yán)謹(jǐn)?shù)模?br />后來(lái)在修改時(shí),利用了不同的邀請(qǐng)碼注冊(cè)不同的身份,用戶(hù)無(wú)需輸入身份,學(xué)生只需輸入自己的學(xué)號(hào),老師則需要選擇自己對(duì)應(yīng)的班級(jí)。

代碼如下:

void zhuce() {
? ? printf("請(qǐng)輸入邀請(qǐng)碼:\n");
? ? int yaoqingma1 = 111;
? ? int yaoqingma2 = 222;
? ? int yaoqingma3 = 333;
? ? int x;
? ? scanf("%d", &x);
? ? if (x != yaoqingma1 && x != yaoqingma2 && x != yaoqingma3) {
? ? ? ? printf("無(wú)效邀請(qǐng)碼,請(qǐng)聯(lián)系導(dǎo)員:\n");
? ? ? ? setbuf(stdin, NULL);
? ? ? ? menu();
? ? }
? ? if (x == 111 || x ==222 || x == 333) {
? ? ? ? printf("please input the id with number:");
? ? ? ? char id[20];
? ? ? ? char id1[20];
? ? ? ? char id2[20];
? ? ? ? char id3[20] = "\n";
? ? ? ? char id4[20] = "0";
? ? ? ? char id6[20];
? ? ? ? scanf("%s", id);
? ? ? ? printf("please input the password:");
? ? ? ? scanf("%s", id1); next1:
? ? ? ? if (x == 111) {
? ? ? ? ? ? strcpy(id2, qx1);
? ? ? ? ? ? printf("請(qǐng)輸入學(xué)號(hào)\n");
? ? ? ? ? ? scanf("%s", id4);
? ? ? ? ? ? struct personid *p = Create(zhroad);
? ? ? ? ? ? while (p) {
? ? ? ? ? ? ? ? if (!strcmp(id4, p->classnum)) {
? ? ? ? ? ? ? ? ? ? printf("該學(xué)號(hào)已被注冊(cè),按0返回上一層,任意鍵重新輸入\n");
? ? ? ? ? ? ? ? ? ? setbuf(stdin, NULL);
? ? ? ? ? ? ? ? ? ? char a;
? ? ? ? ? ? ? ? ? ? a = getchar();
? ? ? ? ? ? ? ? ? ? if (a == '0') {
? ? ? ? ? ? ? ? ? ? ? ? menu();
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? setbuf(stdin, NULL);
? ? ? ? ? ? ? ? ? ? goto next1;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? p = p->next;
? ? ? ? ? ? }
? ? ? ? } else if (x == 222) {
? ? ? ? ? ? printf("請(qǐng)選擇您的班級(jí)\n");
? ? ? ? ? ? printf("1.網(wǎng)絡(luò)1班\n");
? ? ? ? ? ? printf("2.網(wǎng)絡(luò)2班\n");
? ? ? ? ? ? printf("3.網(wǎng)絡(luò)3班\n");
? ? ? ? ? ? printf("4.網(wǎng)絡(luò)4班\n");
? ? ? ? ? ? printf("5.網(wǎng)絡(luò)5班\n");
? ? ? ? ? ? scanf("%s", id6);
? ? ? ? ? ? if (id6[1] == '\0') {
? ? ? ? ? ? ? ? if (id6[0] == '1' || id6[0] == '2' || id6[0] == '3' || id6[0] == '4' || id6[0] == '5') {
? ? ? ? ? ? ? ? ? ? setbuf(stdin, NULL);
? ? ? ? ? ? ? ? ? ? strcpy(id4, id6);
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? setbuf(stdin, NULL);
? ? ? ? ? ? ? ? ? ? printf("該班級(jí)不存在.\n");
? ? ? ? ? ? ? ? ? ? menu();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? printf("該班級(jí)不存在\n");
? ? ? ? ? ? ? ? setbuf(stdin, NULL);
? ? ? ? ? ? ? ? menu();
? ? ? ? ? ? }
? ? ? ? ? ? strcpy(id2, qx2);
? ? ? ? } else if (x == 333) {
? ? ? ? ? ? strcpy(id2, qx3);
? ? ? ? }
? ? ? ? AppendDataToFile(zhroad, id);
? ? ? ? AppendDataToFile(zhroad, kong);
? ? ? ? AppendDataToFile(zhroad, id1);
? ? ? ? AppendDataToFile(zhroad, kong);
? ? ? ? AppendDataToFile(zhroad, id2);
? ? ? ? AppendDataToFile(zhroad, kong);
? ? ? ? AppendDataToFile(zhroad, id4);
? ? ? ? AppendDataToFile(zhroad, id3);
? ? ? ? printf("注冊(cè)成功請(qǐng)重新登陸!\n");
? ? ? ? setbuf(stdin, NULL);
? ? ? ? menu();
? ? }
}

在進(jìn)行學(xué)生注冊(cè)時(shí),應(yīng)該對(duì)學(xué)生輸入的學(xué)號(hào)進(jìn)行一個(gè)判斷,判斷該學(xué)號(hào)是否被注冊(cè),若被注冊(cè)應(yīng)該重新輸入。
在進(jìn)行老師注冊(cè)時(shí),應(yīng)該讓老師選擇已有的班級(jí),如果沒(méi)有則重新輸入。
在注冊(cè)成功后利用文件將已經(jīng)注冊(cè)的賬號(hào)存儲(chǔ)起來(lái)

學(xué)生界面的一些操作

學(xué)生主要可以進(jìn)行下面幾種操作:

void studentmenu() { ? ? ? ?//學(xué)生操作界面
? ? printf("-----[good afternoon student ]-----\n");
? ? printf("1.查詢(xún)成績(jī)\n");
? ? printf("2.查詢(xún)本班成績(jī)\n");
? ? printf("3.成績(jī)分析\n");
? ? printf("4.成績(jī)申訴\n");
? ? printf("5.返回上一層:\n");
? ? printf("0.退出系統(tǒng)\n");
? ? printf("----------------------------------\n");
? ? studentkeydown();
? ? }

在最初寫(xiě)代碼時(shí),我是讓學(xué)生輸入自己的學(xué)號(hào)來(lái)進(jìn)行成績(jī)查詢(xún),如果是考輸入學(xué)號(hào)來(lái)查詢(xún)的話(huà),那么也可以輸入別人的成績(jī),查詢(xún)別人班的成績(jī),如果這樣寫(xiě),那學(xué)生的操作就和老師甚至管理員無(wú)異。
在最后修改代碼時(shí),我將學(xué)生的學(xué)號(hào)和賬號(hào)綁定,在進(jìn)行成績(jī)查詢(xún)等操作時(shí),無(wú)需輸入自己的學(xué)號(hào),

教師界面的一些操作

教師界面的主要功能如下

void teachermenu() { ? ? ? ? ? //老師操作界面
? ? printf("-----[good afternoon teacher]-----\n");
? ? printf("1.增加新的學(xué)生信息\n");
? ? printf("2.刪除學(xué)生信息\n");
? ? printf("3.修改學(xué)生信息\n");
? ? printf("4.查詢(xún)學(xué)生信息\n");
? ? printf("5.輸出本班成績(jī)\n");
? ? printf("6.成績(jī)分析\n");
? ? printf("7.提醒管理員更新成績(jī)\n");
? ? printf("8.返回上一層:\n");
? ? printf("0.退出系統(tǒng)\n");
? ? printf("----------------------------------\n");
? ? setbuf(stdin, NULL);
? ? teacherkeydown();
}

在一開(kāi)始寫(xiě)代碼時(shí),和上面的學(xué)生操作類(lèi)似,我是讓老師輸入班級(jí)或者老師輸入學(xué)號(hào)來(lái)進(jìn)行相關(guān)操作的,這樣書(shū)寫(xiě)的話(huà)老師就成為了一個(gè)萬(wàn)能老師,可以查詢(xún)文件中所存儲(chǔ)的所有學(xué)生信息,現(xiàn)實(shí)中不存在教整個(gè)學(xué)校的老師,并且這樣與管理員的功能沖突。
在后來(lái)修改代碼時(shí),我在老師注冊(cè)時(shí)讓老師選擇了班級(jí),我們將這個(gè)班級(jí)與老師的賬號(hào)綁定,并且規(guī)定老師只能查詢(xún)自己班學(xué)生的成績(jī),若輸入其他班的成績(jī),則會(huì)進(jìn)行相應(yīng)的錯(cuò)誤提醒。
老師操作界面代碼如下:

void teacherkeydown() { //教師輸入選擇界面
? ? char *x;
? ? char *a;
? ? x = allclassnum;
? ? struct student *temp1 = NULL;
? ? char str2[200];
? ? char str1[100];
? ? setbuf(stdin, NULL);
? ? scanf("%s", str1);
? ? if (str1[1] == '\0') {
? ? ? ? switch (str1[0]) {
? ? ? ? ? ? case '0':
? ? ? ? ? ? ? ? exit(0);
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '1':
? ? ? ? ? ? ? ? a = classnum(x);
? ? ? ? ? ? ? ? temp1 = mescreate(a);
? ? ? ? ? ? ? ? temp1 = addnode(temp1);
? ? ? ? ? ? ? ? writetoclassfile(temp1, a);
? ? ? ? ? ? ? ? teachermenu();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '2':
? ? ? ? ? ? ? ? a = classnum(x);
? ? ? ? ? ? ? ? temp1 = mescreate(a);
? ? ? ? ? ? ? ? temp1 = delnode(temp1);
? ? ? ? ? ? ? ? writetoclassfile(temp1, a);
? ? ? ? ? ? ? ? teachermenu();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '3':
? ? ? ? ? ? ? ? a = classnum(x);
? ? ? ? ? ? ? ? temp1 = mescreate(a);
? ? ? ? ? ? ? ? temp1 = changenode(temp1);
? ? ? ? ? ? ? ? writetoclassfile(temp1, a);
? ? ? ? ? ? ? ? teachermenu();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '4':
? ? ? ? ? ? ? ? printf("please input student studyid:\n");
? ? ? ? ? ? ? ? char studyid[20];
? ? ? ? ? ? ? ? scanf("%s", studyid);
? ? ? ? ? ? ? ? if (studyid[1] == allclassnum[0] && studyid[0] == '0' && strlen(studyid) < 6) {
? ? ? ? ? ? ? ? ? ? printpersonnalsocre(studyid);
? ? ? ? ? ? ? ? ? ? teachermenu();
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? printf("不是您的學(xué)生或者學(xué)號(hào)不存在\n");
? ? ? ? ? ? ? ? ? ? teachermenu();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '5':
? ? ? ? ? ? ? ? a = classnum(x);
? ? ? ? ? ? ? ? temp1 = mescreate(a);
? ? ? ? ? ? ? ? temp1 = sort4(temp1);
? ? ? ? ? ? ? ? Printall(temp1);
? ? ? ? ? ? ? ? setbuf(stdin, NULL);
? ? ? ? ? ? ? ? teachermenu();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '6':
? ? ? ? ? ? ? ? a = classnum(x);
? ? ? ? ? ? ? ? temp1 = mescreate(a);
? ? ? ? ? ? ? ? chengjifenxi(temp1);
? ? ? ? ? ? ? ? teachermenu();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '7':
? ? ? ? ? ? ? ? FILE *fp1;
? ? ? ? ? ? ? ? fp1 = fopen(shensu, "w");
? ? ? ? ? ? ? ? printf("please input the wrong\n");
? ? ? ? ? ? ? ? scanf("%s", str2);
? ? ? ? ? ? ? ? fprintf(fp1, "%s\n", str2);
? ? ? ? ? ? ? ? printf("您的提醒已經(jīng)發(fā)送!");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case '8':
? ? ? ? ? ? ? ? menu();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? printf("輸入有誤請(qǐng)重新輸入\n");
? ? ? ? ? ? ? ? teachermenu();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? } else {
? ? ? ? printf("輸入有誤請(qǐng)重新輸入\n");
? ? ? ? teachermenu();
? ? }
}

管理員的一些操作

管理員的主要功能如下:

void guanlidaiban() {
? ? printf("-----[good afternoon manager ]----\n");
? ? printf("1.密碼注冊(cè)\n");
? ? printf("2.密碼修改\n");
? ? printf("3.密碼找回\n");
? ? printf("4.成績(jī)申訴\n");
? ? printf("5.更新成績(jī)庫(kù)\n");
? ? printf("0.退出系統(tǒng)\n");
? ? printf("----------------------------------\n");
? ? keydowmdaiban();
}
void guanlimenu() {
? ? printf("-----[good afternoon manager ]----\n");
? ? printf("1.代辦選項(xiàng)\n");
? ? printf("2.增加賬號(hào)和密碼\n");
? ? printf("3.刪除賬號(hào)和密碼\n");
? ? printf("4.修改賬號(hào)和密碼\n");
? ? printf("5.輸出所有賬號(hào)和密碼\n");
? ? printf("6.錄入所有的賬號(hào)和密碼\n");
? ? printf("7.進(jìn)入教師用戶(hù)端\n");
? ? printf("a.返回上一層\n");
? ? printf("0.退出系統(tǒng)\n");
? ? printf("----------------------------------\n");
? ? guanlikeydown();
}

管理員相比較于教師,可以對(duì)賬號(hào)進(jìn)行操作,并且可以查詢(xún)所有班的成績(jī),在最開(kāi)始設(shè)計(jì)時(shí),我將管理員的操作寫(xiě)的跟學(xué)生教師沖突,尤其是進(jìn)入教師用戶(hù)端,進(jìn)入教師用戶(hù)端的代碼如下。

printf("請(qǐng)選擇您想進(jìn)行操作的班級(jí)\n");
? ? ? ? ? ? ? ? printf("1.網(wǎng)絡(luò)1班\n");
? ? ? ? ? ? ? ? printf("2.網(wǎng)絡(luò)2班\n");
? ? ? ? ? ? ? ? printf("3.網(wǎng)絡(luò)3班\n");
? ? ? ? ? ? ? ? printf("4.網(wǎng)絡(luò)4班\n");
? ? ? ? ? ? ? ? printf("5.網(wǎng)絡(luò)5班\n");
? ? ? ? ? ? ? ? scanf("%s", choice1);
? ? ? ? ? ? ? ? if (choice1[1] != '\0') {
? ? ? ? ? ? ? ? ? ? printf("班級(jí)不存在請(qǐng)重新輸入\n");
? ? ? ? ? ? ? ? ? ? goto ?next1;
? ? ? ? ? ? ? ? } else if (choice1[0] == '1' || choice1[0] == '2' || choice1[0] == '3' || choice1[0] == '4' || choice1[0] == '5') {
? ? ? ? ? ? ? ? ? ? allclassnum[0] = choice1[0];
? ? ? ? ? ? ? ? ? ? teachermenu();
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? printf("班級(jí)不存在請(qǐng)重新輸入\n");
? ? ? ? ? ? ? ? ? ? goto ?next1;
? ? ? ? ? ? ? ? }

管理員可以選擇班級(jí)進(jìn)行查看,當(dāng)管理員選擇后我將全局變量allclassnum(記錄教師班級(jí))改成了相對(duì)應(yīng)操作的班級(jí)然后進(jìn)入教師端。

總結(jié)

最開(kāi)始寫(xiě)管理系統(tǒng)時(shí)沒(méi)有注意很多細(xì)節(jié),并且邏輯不合理,導(dǎo)致剛剛寫(xiě)完時(shí)非常的拉垮,在以后寫(xiě)程序時(shí)一定會(huì)多多留心。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語(yǔ)言中宏定義的教學(xué)詳解

    C語(yǔ)言中宏定義的教學(xué)詳解

    在C語(yǔ)言中,宏定義是預(yù)處理器的指令,主要用于為各種數(shù)據(jù)創(chuàng)建別名,這篇文章主要來(lái)和大家分享一下宏定義的相關(guān)基礎(chǔ)知識(shí),需要的小伙伴可以了解一下
    2023-07-07
  • C語(yǔ)言基于圖形庫(kù)實(shí)現(xiàn)雙人貪吃蛇

    C語(yǔ)言基于圖形庫(kù)實(shí)現(xiàn)雙人貪吃蛇

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言基于圖形庫(kù)實(shí)現(xiàn)雙人貪吃蛇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Eclipse中C++連接mysql數(shù)據(jù)庫(kù)

    Eclipse中C++連接mysql數(shù)據(jù)庫(kù)

    這篇文章主要為大家詳細(xì)介紹了Eclipse中C++連接mysql數(shù)據(jù)庫(kù) ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C++編譯器無(wú)法捕捉到的8種錯(cuò)誤實(shí)例分析

    C++編譯器無(wú)法捕捉到的8種錯(cuò)誤實(shí)例分析

    這篇文章主要介紹了C++編譯器無(wú)法捕捉到的8種錯(cuò)誤,是深入學(xué)習(xí)C++所必須加以掌握的排錯(cuò)技能,需要的朋友可以參考下
    2014-09-09
  • 深入理解C++中的new和delete并實(shí)現(xiàn)對(duì)象池

    深入理解C++中的new和delete并實(shí)現(xiàn)對(duì)象池

    這篇文章主要介紹了C++中的new和delete并實(shí)現(xiàn)對(duì)象池,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • C++字符串拼接效率對(duì)比(+=、append、stringstream、sprintf)

    C++字符串拼接效率對(duì)比(+=、append、stringstream、sprintf)

    這篇文章主要介紹了C++字符串拼接效率對(duì)比(+=、append、stringstream、sprintf),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語(yǔ)言實(shí)現(xiàn)加密解密功能

    C語(yǔ)言實(shí)現(xiàn)加密解密功能

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)加密解密功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C++17 使用 std::string_view避免字符串拷貝優(yōu)化程序性能

    C++17 使用 std::string_view避免字符串拷貝優(yōu)化程序性能

    這篇文章主要介紹了C++17 使用 std::string_view避免字符串拷貝優(yōu)化程序性能,幫助大家提高程序運(yùn)行速度,感興趣的朋友可以了解下
    2020-10-10
  • C語(yǔ)言實(shí)現(xiàn)手機(jī)電話(huà)簿管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)手機(jī)電話(huà)簿管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)手機(jī)電話(huà)簿管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C++ ReSharper2021激活碼永久有效

    C++ ReSharper2021激活碼永久有效

    ReSharperC++是為c/c++開(kāi)發(fā)者打造的一款實(shí)用Visual Studio擴(kuò)展插件,這款插件旨在提升開(kāi)發(fā)者的效率,今天給大家分享這款軟件的激活方法,需要C++ ReSharper2021激活碼的朋友參考下本文
    2021-06-06

最新評(píng)論