C語言編程學(xué)習(xí)畢業(yè)課設(shè)必出題《學(xué)生管理系統(tǒng)》

C語言是面向過程的,而C++是面向?qū)ο蟮?/p>

C和C++的區(qū)別:

C是一個(gè)結(jié)構(gòu)化語言,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計(jì)首要考慮的是如何通過一個(gè)過程,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)。

C++,首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問題域,這樣就可以通過獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn),是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”。

C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn),是因?yàn)椤?設(shè)計(jì)這個(gè)概念已經(jīng)被融入到C++之中 ”,而就語言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯(cuò)!算法是程序設(shè)計(jì)的基礎(chǔ),好的設(shè)計(jì)如果沒有好的算法,一樣不行。而且,“C加上好的設(shè)計(jì)”也能寫出非常好的東西。

北風(fēng)吹,秋風(fēng)涼,一到期末就發(fā)慌!現(xiàn)在已經(jīng)到期末了,學(xué)生們也是時(shí)候該交上這一學(xué)期的答卷了,那么作為學(xué)習(xí)C語言這一門課程的學(xué)生來說,什么樣的作業(yè)題目是每年都必出的呢?

沒錯(cuò),就是《學(xué)生管理系統(tǒng)》,不論是學(xué)生信息管理系統(tǒng),又或者學(xué)生成績(jī)管理系統(tǒng),都是學(xué)生管理系統(tǒng)的一部分,每年可能其他的作業(yè)題目不會(huì)出,但是這個(gè)題目卻是百分百都會(huì)出的!

題目是發(fā)下來了,可是一般除了學(xué)霸之外,大部分的人就是一臉懵逼的狀態(tài)了,這是什么鬼?要怎么做?我該怎么辦?

然后嘛,懵逼了相當(dāng)一段時(shí)間之后,就得到處找答案了!要不加個(gè)群?jiǎn)栂??可是沒人幫忙做呀!要不找個(gè)人幫我做?貌似別人也不會(huì)免費(fèi)做啊!算了,還是百度吧!

然后就會(huì)出現(xiàn)各種各樣的學(xué)生管理系統(tǒng)!

比如這樣的:

小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 六九九,四七零,五九六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

一看就高大上,但是往下一看,卻看得一臉懵逼?這是用什么做的?不認(rèn)識(shí)啊。。。。。。算了,不管他,接著找吧!

然后又發(fā)現(xiàn)了這樣的:

這個(gè)看起來不錯(cuò),雖然沒有那么華麗,但也有模有樣的嘛!然后看下怎么做的,excuse me?這是什么寫的? MFC? QT? 還是Java? 框架什么的都沒學(xué)過啊。。。。。還是找找其他的吧!

然后就發(fā)現(xiàn)了這樣的:

蒼天啊! 大地?。〗K于讓我找到了熟悉的黑窗口啦?。?! 沒錯(cuò)就是我們熟悉的win32控制臺(tái)應(yīng)用程序,天天寫的黑窗口??! 就這個(gè)了!然后copy一下代碼 去試試!嗯 ,沒毛病,一噸Bug,都不知道怎么改了 (┬_┬) 哪哪都是錯(cuò)!

鑒于這種情況的發(fā)生,我就給大家?guī)砹烁R簦?/p>

簡(jiǎn)潔的界面,不錯(cuò)吧 !

學(xué)生資料查詢,也不錯(cuò)吧!

下面看看代碼吧:

#include

#include

#include

#include

//學(xué)生的結(jié)構(gòu)體

typedef struct stu

{

intnum;//學(xué)號(hào)

charname[20];//姓名

floatchinese;//語文

floatmath;//數(shù)學(xué)

floatenglish;//英語

floatphysics;//物理

struct stu* pnext; //結(jié)構(gòu)體的內(nèi)部指針

}STU;

STU* pStu = NULL;//定義一個(gè)指針

FILE *fp;

void Welcome()

{

printf(" ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ");

printf(" ┃ 學(xué)生管理系統(tǒng)┃ ");

printf(" ┣━━━━━━━━━━━━━━━━━━━━━━━┫ ");

printf(" ┃ ①添加學(xué)生信息┃ ");

printf(" ┃ ②查找學(xué)生信息┃ ");

printf(" ┃ ③刪除學(xué)生信息┃ ");

printf(" ┃ ④修改學(xué)生信息┃ ");

printf(" ┃ ⑤退出學(xué)生系統(tǒng)┃ ");

printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━┛ ");

printf(" 請(qǐng)選擇:");

}

//添加信息 //函數(shù)里面沒有任何的返回值 操作了一個(gè)全局變量

void AddInformation()

{

system("cls");

int number;

STU* pNew;

STU* pTemp = pStu;

while (pTemp->pnext != NULL)

{

pTemp = pTemp->pnext;

}

printf(" ");

printf(" ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ");

printf(" ┃ 添 加 信 息┃ ");

printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━┛ ");

printf(" 您需要添加幾位學(xué)員:");

scanf("%d", &number); // for已知循環(huán)次數(shù) while未知循環(huán)次數(shù)

for (int i = 1; i <= number; i++)

{

system("cls");

printf(" ");

printf(" ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ");

printf(" ┃ 添 加 信 息┃ ");

printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━┛ ");

pNew = (STU*)malloc(sizeof(STU));

pNew->pnext = NULL;

printf(" 請(qǐng)輸入第%d個(gè)學(xué)員信息: ", i);

printf(" 學(xué)號(hào):");

scanf("%d", &pNew->num);

printf(" 姓名:");

scanf("%s", pNew->name);

printf(" 語文:");

scanf("%f", &pNew->chinese);

printf(" 數(shù)學(xué):");

scanf("%f", &pNew->math);

printf(" 英語:");

scanf("%f", &pNew->english);

printf(" 物理:");

scanf("%f", &pNew->physics);

pTemp->pnext = pNew;

pTemp = pTemp->pnext;

}

printf(" 保存成功!按任意鍵繼續(xù)...");

_getch();

}

//全部瀏覽

void SearchAll()

{

STU* pTemp = pStu->pnext;

printf(" 學(xué)號(hào) 姓名 語文 數(shù)學(xué) 英語 物理 ");

// for while 循環(huán)次數(shù)

while (pTemp != NULL) //什么時(shí)候退出循環(huán)

{

printf(" %d %s %.1f %.1f %.1f %.1f ",

pTemp->num, pTemp->name, pTemp->chinese,

pTemp->math, pTemp->english, pTemp->physics);

pTemp = pTemp->pnext;

}

_getch();

}

//按照學(xué)號(hào)查找

void SearchNum()

{

int keynum;

STU* pTemp = pStu->pnext;

printf(" 請(qǐng)輸入要查找的學(xué)號(hào):");

scanf("%d", &keynum);

while (pTemp != NULL)

{

if (keynum == pTemp->num)

{

printf(" 查找到的信息: ");

printf(" 學(xué)號(hào) 姓名 語文 數(shù)學(xué) 英語 物理 ");

printf(" %d %s %.1f %.1f %.1f %.1f ",

pTemp->num, pTemp->name, pTemp->chinese,

pTemp->math, pTemp->english, pTemp->physics);

_getch();

return;

}

pTemp = pTemp->pnext;

}

printf(" 沒有找到你需要的內(nèi)容! ");

_getch();

}

//按照姓名查找

void SearchName()

{

char keyname[20];

STU* pTemp = pStu->pnext;

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

scanf("%s", &keyname);

while (pTemp != NULL)

{

if (!strcmp(keyname, pTemp->name))

{

printf(" 查找到的信息: ");

printf(" 學(xué)號(hào) 姓名 語文 數(shù)學(xué) 英語 物理 ");

printf(" %d %s %.1f %.1f %.1f %.1f ",

pTemp->num, pTemp->name, pTemp->chinese,

pTemp->math, pTemp->english, pTemp->physics);

_getch();

return;

}

pTemp = pTemp->pnext;

}

printf(" 沒有找到你需要的內(nèi)容! ");

_getch();

}

小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 六九九,四七零,五九六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

//查找信息

void Search()

{

int choice;

do

{

system("cls");

printf(" ");

printf(" ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ");

printf(" ┃ 查 找 信 息┃ ");

printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━┛ ");

printf(" 1.全部瀏覽 ");

printf(" 2.按學(xué)號(hào)查找 ");

printf(" 3.按姓名查找 ");

printf(" 4.返回主菜單 ");

scanf("%d", &choice);

switch (choice)

{

case 1:SearchAll(); break;

case 2:SearchNum(); break;

case 3:SearchName(); break;

default:break;

}

} while (choice != 4);

}

//刪除信息

void Delete()

{

int keynum; //按照學(xué)號(hào)來刪除

STU* pPre = pStu;

STU* pDel = pStu->pnext;

system("cls");

printf(" ");

printf(" ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ");

printf(" ┃ 刪 除 信 息┃ ");

printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━┛ ");

printf(" 請(qǐng)輸入學(xué)號(hào):");

scanf("%d", &keynum);

while (pDel != NULL)

{

if (keynum == pDel->num)

{

printf("已查找到%d號(hào)學(xué)員: ", keynum);

printf(" 學(xué)號(hào) 姓名 語文 數(shù)學(xué) 英語 物理 ");

printf(" %d %s %.1f %.1f %.1f %.1f ",

pDel->num, pDel->name, pDel->chinese,

pDel->math, pDel->english, pDel->physics);

printf(" 是否刪除該信息?(Y/N)");

char ch;

fflush(stdin);

ch = getchar();

if (ch == 'Y' || ch == 'y')

{

pPre->pnext = pDel->pnext;

free(pDel);

return;

}

else

{

return;

}

}

pDel = pDel->pnext;

pPre = pPre->pnext;

}

printf(" 未找到該學(xué)員信息!");

_getch();

}

//修改信息

void Modify()

{

}

void ScanfTxt()

{

}

void PrintToTxt()

{

STU* pTemp = pStu->pnext;

if ((fp = fopen("學(xué)生信息.txt", "w")) == NULL)

{

printf(" 打開文件失敗! ");

_getch();

return;

}

while (pTemp != NULL)

{

fprintf(fp, "%d %s %.1f %.1f %.1f %.1f ",

pTemp->num, pTemp->name, pTemp->chinese,

pTemp->math, pTemp->english, pTemp->physics);

pTemp = pTemp->pnext;

}

fclose(fp);

printf(" 保存成功!");

_getch();

exit(0);

}

//主函數(shù)

int main()

{

int choice;

if ((fp = fopen("學(xué)生信息.txt", "r")) == NULL)

{

printf(" 打開文件失敗!");

_getch();

return -1;

}

pStu = (STU*)malloc(sizeof(STU)); //分配一個(gè)學(xué)員的內(nèi)存大小

pStu->pnext = NULL;

while (1)

{

system("cls");

Welcome();

scanf("%d", &choice);

switch (choice)

{

case 1:

//添加學(xué)生信息

AddInformation();

break;

case 2:

//查找學(xué)生信息

//學(xué)號(hào) 姓名

Search();

break;

case 3:

//刪除信息

Delete();

break;

case 4:

//修改信息

Modify();

break;

case 5:

小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 六九九,四七零,五九六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!

//讓所有信息保存到文件中

PrintToTxt();

break;

default:

break;

}

}

return 0;

}

這些是C/C++能做的

服務(wù)器開發(fā)工程師、人工智能、云計(jì)算工程師、信息安全(黑客反黑客)、大數(shù)據(jù) 、數(shù)據(jù)平臺(tái)、嵌入式工程師、流媒體服務(wù)器、數(shù)據(jù)控解、圖像處理、音頻視頻開發(fā)工程師、游戲服務(wù)器、分布式系統(tǒ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ù)。

相關(guān)閱讀更多精彩內(nèi)容

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