目錄
成都創(chuàng)新互聯(lián)公司公司2013年成立,先為陵水黎族等服務(wù)建站,陵水黎族等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為陵水黎族企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。前言
簡(jiǎn)介
學(xué)生信息錄入功能
學(xué)生單個(gè)信息查詢
查詢?nèi)繉W(xué)生信息
修改學(xué)生信息
刪除學(xué)生信息?
退出
完整代碼?
簡(jiǎn)介在臨近期末之際,相信好多初學(xué)C語(yǔ)言的同學(xué)都開(kāi)始為寫(xiě)C語(yǔ)言課程設(shè)計(jì)這件事開(kāi)始焦慮了吧?或許會(huì)不知所措,或許會(huì)有所畏懼,亦或是對(duì)那幾百行的代碼望而止步了吧,畢竟這是作為程序員的第一個(gè)小項(xiàng)目——需要自己一個(gè)人著手去敲代碼、測(cè)試等操作,不過(guò)這些事情都不需要去害怕,我們?nèi)鄙俚牟⒉皇侵R(shí)的多少,根本原因是內(nèi)心深處是否有自信的存在,只要我們鼓起勇氣嘗試著做第一步、第二步,逐漸地熟能生巧就好了!今天我給大家?guī)?lái)一篇C語(yǔ)言課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng),希望能夠幫助大家以后在敲代碼的道路上越走越遠(yuǎn)。
學(xué)生信息錄入功能? 現(xiàn)在我們步入正題吧,主要來(lái)介紹一下改學(xué)生成績(jī)管理系統(tǒng)都運(yùn)用了哪些知識(shí)以及實(shí)現(xiàn)了哪些功能:首先是知識(shí)方面,主要是使用了簡(jiǎn)單的循環(huán)語(yǔ)句、函數(shù)、結(jié)構(gòu)體、鏈表存儲(chǔ)數(shù)據(jù);然后是功能方面,主要是學(xué)生信息錄入、學(xué)生單個(gè)信息查詢、查詢?nèi)繉W(xué)生信息、修改學(xué)生信息、刪除學(xué)生信息、退出系統(tǒng)。接下來(lái)就一起來(lái)看代碼吧!
學(xué)生單個(gè)信息查詢void Add(){ system("cls"); int count; printf("請(qǐng)輸入要錄入信息的個(gè)數(shù):"); scanf("%d",&count); struct Student *s1,*s2,*temp; s1=s2=(struct Student*)malloc(LEN); if(head==NULL){ head = s1; }else{ end->next = s1 ; } int i = 1; while(count>0){ printf("請(qǐng)輸入第%d位學(xué)生信息:\n",i++); printf("學(xué)號(hào):\n"); scanf("%s",&s1->number); printf("姓名:\n"); scanf("%s",&s1->name); printf("性別:\n"); scanf("%s",&s1->sex); printf("語(yǔ)文成績(jī):\n"); scanf("%d",&s1->Chinese); printf("數(shù)學(xué)成績(jī):\n"); scanf("%d",&s1->Math); printf("英語(yǔ)成績(jī):\n"); scanf("%d",&s1->English); count--; s2->next=s1; s2=s1; s1=(struct Student*)malloc(LEN); printf("添加成功!\n"); system("pause"); system("cls"); } s2->next= NULL; end = s2; printf("全部添加成功!\n"); system("pause"); }
函數(shù)作用:有目的性地尋找學(xué)生的所有信息。
實(shí)現(xiàn)方法:將鏈表中的數(shù)據(jù)一一遍歷,與所輸入的數(shù)據(jù)進(jìn)行對(duì)比,若匹配成功,則將該指針?biāo)赶蚪Y(jié)構(gòu)體中的數(shù)據(jù)輸出。
查詢?nèi)繉W(xué)生信息void View(){ system("cls"); struct Student *VS; printf("輸入要查詢信息的學(xué)生學(xué)號(hào):\n"); char num[10]; int flag=1; scanf("%s",&num); for(VS=head;VS!=NULL;){ if(strcmp(VS->number,num)==0){ printf("成功找到!\n"); printf("學(xué)號(hào):%s\t姓名:%s\t性別:%s\n",VS->number,VS->name,VS->sex); printf("語(yǔ)文:%d\t數(shù)學(xué):%d\t英語(yǔ):%d",VS->Chinese,VS->Math,VS->English); flag=0; break; } VS=VS->next; } if(flag){ printf("不好意思,未找到!\n"); } system("pause"); }
函數(shù)作用:將學(xué)生信息管理系統(tǒng)中所有數(shù)據(jù)呈現(xiàn)出來(lái)。
實(shí)現(xiàn)方法:定義一個(gè)結(jié)構(gòu)體指針變量(局部變量)VA,將頭指針head賦值給VA,通過(guò)循環(huán)輸出pt指針?biāo)赶虻慕Y(jié)構(gòu)體,并將所指向結(jié)構(gòu)體中的next所指向的地址賦值給VA,從而實(shí)現(xiàn)對(duì)下一個(gè)結(jié)構(gòu)體的訪問(wèn)。
修改學(xué)生信息void ViewAll(){ system("cls"); struct Student *VA; if(head!=NULL){ printf("所有學(xué)生成績(jī)?nèi)缦拢篭n"); for(VA=head;VA!=NULL;){ printf("學(xué)號(hào):%s\t姓名:%s\t性別:%s\n",VA->number,VA->name,VA->sex); printf("語(yǔ)文:%d\t數(shù)學(xué):%d\t英語(yǔ):%d\n",VA->Chinese,VA->Math,VA->English); VA=VA->next; } }else{ printf("該系統(tǒng)中還未錄入信息"); } system("pause"); }
刪除學(xué)生信息?void Repair(){ system("cls"); struct Student *RS; char num[10]; int flag = 1; printf("輸入要修改成績(jī)學(xué)生的學(xué)號(hào):\n"); scanf("%s",num); for(RS=head;RS!=NULL;){ if(strcmp(RS->number,num)==0){ printf("成功找到該學(xué)生"); printf("學(xué)號(hào):%s\t姓名:%s\t性別:%s\n",RS->number,RS->name,RS->sex); printf("語(yǔ)文:%d\t數(shù)學(xué):%d\t英語(yǔ):%d\n",RS->Chinese,RS->Math,RS->English); flag = 0; printf("學(xué)號(hào):\n"); scanf("%s",&RS->number); printf("姓名:\n"); scanf("%s",&RS->name); printf("性別:\n"); scanf("%s",&RS->sex); printf("語(yǔ)文成績(jī):\n"); scanf("%d",&RS->Chinese); printf("數(shù)學(xué)成績(jī):\n"); scanf("%d",&RS->Math); printf("英語(yǔ)成績(jī):\n"); scanf("%d",&RS->English); printf("修改成功"); system("pause"); } RS=RS->next; } if(flag){ printf("輸入信息有誤,未查詢到"); system("pause"); } }
函數(shù)作用:有目的性地刪除一些失效信息
實(shí)現(xiàn)方法:依然是通過(guò)遍歷找到想要?jiǎng)h除的指針,不過(guò)在這之前應(yīng)該定義一個(gè)結(jié)構(gòu)體指針用來(lái)獲取DS的地址。其目的是為了能夠在刪除該指針之前將該指針之前的數(shù)據(jù)與之后的數(shù)據(jù)能夠連接起來(lái)。
退出void Delete(){ system("cls"); int flag =1; while(flag){ printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào):"); char num[10]; scanf("%s",&num); struct Student * DS,*temp; for(DS=head;DS!=NULL;){ if(strcmp(DS->number,num)==0){ if(DS==head){ head = DS->next; flag = 0; printf("刪除成功!\n"); system("pause"); }else{ flag = 0; printf("刪除成功!\n"); temp->next= DS->next; free(DS); system("pause"); } } temp = DS; DS=DS->next; } if(flag){ printf("未找到該學(xué)生學(xué)號(hào)!\n"); system("pause"); } } }
完整代碼?exit(0),簡(jiǎn)單的皮一下!?
本次由于時(shí)間的原因,所以未對(duì)所有代碼作詳解 ,希望大家可以理解。不過(guò)大家如果有不理解的地方或者代碼有誤的地方,都可以私聊我,隨時(shí)為你解答。
#include
#include #include #define LEN sizeof(struct Student) struct Student{ char number[20]; //學(xué)號(hào) char name[10]; //姓名 char sex[4]; //性別 int Chinese; //語(yǔ)文成績(jī) int Math; //數(shù)學(xué)成績(jī) int English; //英語(yǔ)成績(jī) struct Student* next; //指向下一個(gè)數(shù)據(jù)的指針 }; struct Student* head = NULL; struct Student* end = NULL; void Menu(){ void Menu(); void Add(); void View(); void Delete(); void Repair(); void ViewAll(); system("cls"); printf("1、學(xué)生信息錄入\n"); printf("2、學(xué)生單個(gè)成績(jī)查詢\n"); printf("3、查詢?nèi)繉W(xué)生成績(jī)\n"); printf("4、修改學(xué)生信息\n"); printf("5、刪除學(xué)生信息\n"); printf("6、退出系統(tǒng)\n"); int choice; printf("請(qǐng)選擇要使用的功能:\n"); loop: scanf("%d",&choice); switch (choice) { case 1: Add(); Menu(); case 2: View(); Menu(); case 3: ViewAll(); Menu(); case 4: Repair(); Menu(); case 5: Delete(); Menu(); case 6: exit(0); default: printf("輸入有誤,請(qǐng)重新選擇:"); goto loop; } } void Add(){ system("cls"); int count; printf("請(qǐng)輸入要錄入信息的個(gè)數(shù):"); scanf("%d",&count); struct Student *s1,*s2,*temp; s1=s2=(struct Student*)malloc(LEN); if(head==NULL){ head = s1; }else{ end->next = s1 ; } int i = 1; while(count>0){ printf("請(qǐng)輸入第%d位學(xué)生信息:\n",i++); printf("學(xué)號(hào):\n"); scanf("%s",&s1->number); printf("姓名:\n"); scanf("%s",&s1->name); printf("性別:\n"); scanf("%s",&s1->sex); printf("語(yǔ)文成績(jī):\n"); scanf("%d",&s1->Chinese); printf("數(shù)學(xué)成績(jī):\n"); scanf("%d",&s1->Math); printf("英語(yǔ)成績(jī):\n"); scanf("%d",&s1->English); count--; s2->next=s1; s2=s1; s1=(struct Student*)malloc(LEN); printf("添加成功!\n"); system("pause"); system("cls"); } s2->next= NULL; end = s2; printf("全部添加成功!\n"); system("pause"); } void View(){ system("cls"); struct Student *VS; printf("輸入要查詢信息的學(xué)生學(xué)號(hào):\n"); char num[10]; int flag=1; scanf("%s",&num); for(VS=head;VS!=NULL;){ if(strcmp(VS->number,num)==0){ printf("成功找到!\n"); printf("學(xué)號(hào):%s\t姓名:%s\t性別:%s\n",VS->number,VS->name,VS->sex); printf("語(yǔ)文:%d\t數(shù)學(xué):%d\t英語(yǔ):%d",VS->Chinese,VS->Math,VS->English); flag=0; break; } VS=VS->next; } if(flag){ printf("不好意思,未找到!\n"); } system("pause"); } void ViewAll(){ system("cls"); struct Student *VA; if(head!=NULL){ printf("所有學(xué)生成績(jī)?nèi)缦拢篭n"); for(VA=head;VA!=NULL;){ printf("學(xué)號(hào):%s\t姓名:%s\t性別:%s\n",VA->number,VA->name,VA->sex); printf("語(yǔ)文:%d\t數(shù)學(xué):%d\t英語(yǔ):%d\n",VA->Chinese,VA->Math,VA->English); VA=VA->next; } }else{ printf("該系統(tǒng)中還未錄入信息"); } system("pause"); } void Repair(){ system("cls"); struct Student *RS; char num[10]; int flag = 1; printf("輸入要修改成績(jī)學(xué)生的學(xué)號(hào):\n"); scanf("%s",num); for(RS=head;RS!=NULL;){ if(strcmp(RS->number,num)==0){ printf("成功找到該學(xué)生"); printf("學(xué)號(hào):%s\t姓名:%s\t性別:%s\n",RS->number,RS->name,RS->sex); printf("語(yǔ)文:%d\t數(shù)學(xué):%d\t英語(yǔ):%d\n",RS->Chinese,RS->Math,RS->English); flag = 0; printf("學(xué)號(hào):\n"); scanf("%s",&RS->number); printf("姓名:\n"); scanf("%s",&RS->name); printf("性別:\n"); scanf("%s",&RS->sex); printf("語(yǔ)文成績(jī):\n"); scanf("%d",&RS->Chinese); printf("數(shù)學(xué)成績(jī):\n"); scanf("%d",&RS->Math); printf("英語(yǔ)成績(jī):\n"); scanf("%d",&RS->English); printf("修改成功"); system("pause"); } RS=RS->next; } if(flag){ printf("輸入信息有誤,未查詢到"); system("pause"); } } void Delete(){ system("cls"); int flag =1; while(flag){ printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào):"); char num[10]; scanf("%s",&num); struct Student * DS,*temp; for(DS=head;DS!=NULL;){ if(strcmp(DS->number,num)==0){ if(DS==head){ head = DS->next; flag = 0; printf("刪除成功!\n"); system("pause"); }else{ flag = 0; printf("刪除成功!\n"); temp->next= DS->next; free(DS); system("pause"); } } temp = DS; DS=DS->next; } if(flag){ printf("未找到該學(xué)生學(xué)號(hào)!\n"); system("pause"); } } } int main(){ void Menu(); void Add(); void View(); void Delete(); void Repair(); void ViewAll(); Menu(); }
創(chuàng)作不易,給個(gè)三連吧?
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧