【學(xué)生成績管理系統(tǒng)】源碼分享!你想要的我都有,趕緊收藏吧!

最近很多小伙伴私信喊我,有沒有【學(xué)生成績管理系統(tǒng)】的源碼呀?

of course!作為編程百寶箱,區(qū)區(qū)源碼只是我的冰山一角~

直接呈上代碼:

#define _CRT_SECURE_NO_DEPRECATE

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<conio.h>

#include<windows.h>

struct stu{

int id[10]; //學(xué)號(hào)

char name[20]; //姓名

int score; //分?jǐn)?shù)

};

struct STU

{

//int data;

struct stu data;

struct STU*? next;

};

//創(chuàng)建結(jié)構(gòu)體表頭

struct STU* creatlist()//創(chuàng)建鏈表

{

struct STU* head = (struct STU*)malloc(sizeof(struct STU));

head->next = NULL;

return head;

}

//創(chuàng)建結(jié)點(diǎn)

struct STU* createNode(struct stu data)

{

struct STU* newNode = (struct STU*)malloc(sizeof(struct STU));

newNode->data = data;

newNode->next = NULL;

return newNode;

}

//插入結(jié)點(diǎn)

void insertNodeByhead(struct STU* head, struct stu data)

{

struct STU* newNode = createNode(data);

newNode->data = data;

head->next = newNode;

}

//指定位置刪除

void deleteNode(struct STU* head, char* name)

{

struct STU* posNode = head->next;

struct STU* posFrontNode = head;

if (posNode == NULL)

{

printf("數(shù)據(jù)為空,無法刪除!\n");

return;

}

while (strcmp(posNode->data.name, name))

{

posFrontNode = posNode;

posNode = posFrontNode->next;

if (posNode == NULL)

{

printf("未找到指定位置,無法刪除!\n");

return;

}

}

posFrontNode->next = posNode->next;

free(posNode);

}

//查找

struct STU* searchData(struct STU* head, char *name)

{

struct STU* p = head->next;

if (p == NULL)

return NULL;

while (strcmp(p->data.name, name))

{

p = p->next;

}

return p;

}

//文件讀操作

void readFile(struct STU* head, char *fileName)

{

FILE *fp;

struct stu data;

fp = fopen(fileName, "r");

if (fp == NULL)

{

fp = fopen(fileName, "w+");

}

while (fscanf(fp, "%d\t%s\t%d\n", &data.id, data.name, &data.score) != EOF)

{

insertNodeByhead(head, data);

}

fclose(fp);

}

//文件寫操作

void writeFile(struct STU* head, char *FileName)

{

FILE? *fp;

fp = fopen(FileName, "w");

struct STU* p = head->next;

while (p)

{

fprintf(fp, "%d\t%s\t%d\n", p->data.id, p->data.name, p->data.score);

p = p->next;

}

fclose(fp);

}

//打印鏈表

void printlist(struct STU* head)

{

struct STU* p = head->next;

printf("學(xué)號(hào)\t姓名\t分?jǐn)?shù)\n");

while (p)

{

printf("%d\t%s\t%d\n", p->data.id, p->data.name, p->data.score);

p = p->next;

}

printf("\n");

}

void menu()

{

system("cls");//清屏

system("color b");//修改字體顏色

printf("\n\n\n\n");

printf("\t************************************\n");

printf("\t|? ? 歡迎來到學(xué)生信息管理系統(tǒng)? ? |\n");

printf("\t|**********************************|\n");

printf("\t|**? ? ? ? 1:錄入學(xué)生信息? ? ? ? **|\n");

printf("\t|**? ? ? ? 2:顯示學(xué)生信息? ? ? ? **|\n");

printf("\t|**? ? ? ? 3:增加學(xué)生信息? ? ? ? **|\n");

printf("\t|**? ? ? ? 4:刪除學(xué)生信息? ? ? ? **|\n");

printf("\t|**? ? ? ? 5:查詢學(xué)生信息? ? ? ? **|\n");

printf("\t|**? ? ? ? 6:修改學(xué)生信息? ? ? ? **|\n");

printf("\t|**? ? ? ? 7:退出學(xué)生系統(tǒng)? ? ? ? **|\n");

printf("\t************************************\n");

printf("\n? \t請(qǐng)輸入您要進(jìn)行的操作(1~~7):");

}

struct STU* List = creatlist();

void? keydown()

{

int n = 0;

struct stu data;

struct STU*p = NULL;

scanf("%d", &n);

switch (n)

{

//增加一個(gè)學(xué)生信息

case 1:

printf("******錄入學(xué)生信息******\n");

printf("請(qǐng)輸入你要添加的學(xué)生學(xué)號(hào),姓名,分?jǐn)?shù):");

fflush(stdin);//清空緩沖區(qū)

scanf("%d\t%s\t%d\n", &data.id, data.name, &data.score);

insertNodeByhead(List, data);

break;

case 2:

printf("******顯示學(xué)生信息******\n");

printlist(List);

break;

case 3:

printf("******增加學(xué)生信息******\n");

printf("請(qǐng)輸入你要添加的學(xué)生學(xué)號(hào),姓名,分?jǐn)?shù):");

fflush(stdin);//清空緩沖區(qū)

scanf("%d\t%s\t%d\n", &data.id, data.name, &data.score);

insertNodeByhead(List, data);

break;

case 4:

printf("******刪除學(xué)生信息******\n");

printf("請(qǐng)輸刪除的學(xué)生姓名:");

scanf("%s", data.name);

deleteNode(List, data.name);

break;

case 5:

printf("******查詢學(xué)生信息******\n");

printf("請(qǐng)輸入要查找的學(xué)生姓名:");

scanf("%s", data.name);

p = searchData(List, data.name);

if (p == NULL)

{

printf("未找到相關(guān)信息,無法刪除!\n");

system("pause");

}

else

{

printf("學(xué)號(hào)\t姓名\t分?jǐn)?shù)\n");

printf("%d\t%s\t%d\n", p->data.id, p->data.name, p->data.score);

}

break;

case 6:

printf("******修改學(xué)生信息******\n");

printf("請(qǐng)輸入要修改的學(xué)生姓名:");

scanf("%s", data.name);

break;

case 7:

printf("已經(jīng)安安全退出!");

system("pause");//防止閃屏

exit(7);

break;

default:

printf("輸入有誤,請(qǐng)重新入!");

system("pause");//防止閃屏

break;

}

writeFile(List, "1.txt");

}

int main()

{

readFile(List, "1.txt");

while (1)

{

menu();

keydown();

}

return 0;

}


文章福利:

還有其他源碼哦!

如果你想要更多資料!

可以來我專欄的C語言/C++編程學(xué)習(xí)交流俱樂部!

有(源碼,零基礎(chǔ)教程,項(xiàng)目實(shí)戰(zhàn)教學(xué)視頻)【點(diǎn)擊領(lǐng)取】

你想要的我都有,不想要的我也有!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容