C語言之學(xué)生管理系統(tǒng)(20210314202453)_第1頁
C語言之學(xué)生管理系統(tǒng)(20210314202453)_第2頁
C語言之學(xué)生管理系統(tǒng)(20210314202453)_第3頁
C語言之學(xué)生管理系統(tǒng)(20210314202453)_第4頁
C語言之學(xué)生管理系統(tǒng)(20210314202453)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、流程圖: *C:Uwn和、UiftD 刖 l(tcpDrwNDdMgEbu9Ew通信工桎&業(yè)學(xué)牛信您住陀系絨I或入夕生仿11 沏?a學(xué)仝仏1 住呦字牛信 一一刨險牛主佇 悔諛仔生們gft牛9 “紅請按1腐喘V嚴(yán)2 CUwnb1n名京號nw AM蟲*“張三!12 irotfrs56.000000 * *CUunVJMJlftXD聖ktopDruAbugztw we*宙入蛍的適抒3Tml 學(xué)學(xué)牛牛今 人?aifil総改厚出 就測ffVJHHiu年齡 ttw 地址56. OQOOOO * C UwnVHllftDe$lctpDHnDcbu9Dcwcnce, X 入 0C#4 ; . 小1 .幾丨Vi

2、ta 2H価謚檢0 1諸輸入爲(wèi)的曲入的1號14i學(xué)號性81Ait說1媒三11295律見報忡臭56.000000血學(xué)W!ft 1請後入您的AH2詁娥入學(xué)的外名歩河乍號年齡ttW地址成Mtw5664、會撲扮畔晌少0愉80 000000按牛耳肖wwTi按Ift名f“(諂按2耽力t 0 13請奪人SfcG材il的挙 謂送卄您羈惱曲lb誹M. Z誦橫IIth汕村5,:.出為C4t.fi詁民:-5:汁 詁堅入刃伴弭 譏1丄胖.:,??;負(fù)門的戈;鬧拓 ; Q 劃陽丁左仁# nrt7i.ni! 址出* n程序源碼:#in elude #in elude #in elude #in elude #in elud

3、e#define LENsizeof(structstudent)求字節(jié)數(shù)運(yùn)算符struet stude ntehar name20;long int num;ehar sex4;int age;ehar address30;float seore;struetstudent *next;/鏈表;/定義一個結(jié)構(gòu)題int TOTAL_NUM 0;/ 學(xué)生總數(shù)struet student *head = NULL;void mainmenu ();/ 主界面void reeord (); / 記錄數(shù)據(jù)void insert(struet student *stu); / 插入數(shù)據(jù)void disp

4、lay(struet student *stu); / 顯示一個學(xué)生的信息void displayAll (); /顯示所有學(xué)生的信息void query(); /查詢學(xué)生信息void query_by_num(); /按學(xué)號查詢學(xué)生信息void query_by_name();void readData (); /讀取文件里學(xué)生的信息void writeData (); / 向文件寫入學(xué)生信息void freeAll (); / 清空鏈表內(nèi)容void del (); / 刪除學(xué)生信息void change (); / 更改學(xué)生信息void sort();/ 排序void devise (st

5、ruct student *p); / 選擇更改內(nèi)容int main (void) mainmenu(); return 0;/ 系統(tǒng)主菜單void mainmenu ()int choice;choice = -1;readData ();printf (tttn);|n);才可正常運(yùn)行 n);printf (ttt| 歡迎使用通信工程專業(yè)學(xué)生信息管理系統(tǒng)printf (tttn);printf (ttt本程序需要在當(dāng)前目錄下建立 student.txtdoprintf(nnn);printf(tttn);printf(ttt通信工程專業(yè)學(xué)生信息管理系統(tǒng)printf(tttn);printf

6、(ttt1- 錄入學(xué)生信息|n);printf(ttt2- 瀏覽學(xué)生信息|n);printf(ttt3- 查詢學(xué)生信息|n);printf(ttt4- 刪除學(xué)生信息|n);printf(ttt5- 修改學(xué)生信息|n);printf(ttt6- 排序 |n);printf(ttt0- 退出系統(tǒng) |n);printf(tttn);printf( 請輸入您的選擇 );|n);scanf (%d, &choice);switch (choice)case 0:writeData ();freeAll (); exit (0);case 1:record ();break;case 2:displayA

7、ll ();break;case 3:query ();break;case 4:del ();break;case 5:change ();break;case 6:sort ();break;default:printf (n 無效選項 !);break;while (choice != 0);/ 錄入學(xué)生信息void record ()struct student *p0;p0 = (struct student *)malloc(LEN);printf(ttt請輸入學(xué)生的姓名 :);scanf (%s,p0-name);printf(ttt請輸入學(xué)生的學(xué)號 :);scanf (%ld,

8、&p0-num);printf(ttt請輸入學(xué)生的性別 :);scanf (%s,p0-sex);printf(ttt請輸入學(xué)生的年齡 :);scanf (%d,&p0-age);printf(ttt請輸入學(xué)生的地址 :);scanf (%s,p0-address);printf(ttt請輸入學(xué)生的成績 :);scanf (%f,&p0-score);insert (p0);printf (ttt 該學(xué)生的信息為 :n);printf (ttt成績 n);n);printf (ttt 姓名t學(xué)號tt 年齡t性別t地址tt display (p0);void insert (struct stu

9、dent *stu)struct student *p0, *p1, *p2;p1 = head;p0 = stu;if (head = NULL)head = p0;p0-next = NULL;elsewhile (p0-num p1-num)&(p1-next != NULL)p2 = p1;p1 = p1-next;if (p0-num num)if (head = p1)head = p0;elsep2-next = p0; p0-next = p1;elsep1-next = p0;p0-next = NULL;TOTAL_NUM+;void display (struct stu

10、dent *p)p-sex,p-addprintf (ttt%st%ldtt%dt%st%stt%fn, p-name, p-num, p-age, ress, p-score);/ 瀏覽學(xué)生信息void displayAll()struct student *p;printf(ttt 學(xué)生總數(shù) :%dn, TOTAL_NUM);p = head;if (head != NULL)printf(ttt姓名t學(xué)號tt 年齡t性別t地址tt 成績n);printf(tttn);dodisplay(p); p = p-next;while(p != NULL);printf (n);void que

11、ry()int choice;choice = -1;doprin tf(n);printf(”n);prin tf(|按學(xué)號查詢請按1|n);printf(|按姓名查詢請按2|n);printf(|取消請按0|n);printf(+n);printf(請輸入您的選擇);scan f(%d,& choice);switch(choice)case 0:return;case 1:query_by_ nu m();break;case 2:query_by_name();break;default:printf(n無效選項!);break;while(choice != 0);/按姓名查詢學(xué)生信

12、息void query_by_name()char name20;struct student *p1;prin tf(請輸入學(xué)生的姓名);sca nf(%s,n ame);if(head=NULL)pri ntf( 無學(xué)生記錄 n);return;p仁head;while(strcmp(name,p1-name) &p1-next!=NULL)p1=p1- n ext;if(!strcmp (n ame,p1- n ame)成績n);printf(ttt姓名t學(xué)號tt 年齡t性別t地址ttprintf(tttn);display(pl);elseprintf(沒有該學(xué)生記錄請核對 :/按學(xué)號

13、查詢學(xué)生信息void query_by_num ()int num;struct student *p1;printf(請輸入學(xué)生的學(xué)號);scan f(%ld,&n um);if(head=NULL)printf( 無學(xué)生記錄n);return;p1 = head;while (num!=p1-num &p1-next!=NULL)p1 = p1- n ext;if (num =p1-num)成績n);printf (ttt 姓名t學(xué)號tt 年齡t性別t地址ttprintf(tttn);display (p1);elseprintf (ttt沒有該學(xué)生記錄請核對);/寫入文件void wri

14、teData ()FILE* fp;/文件指針struct student *p;fp = fope n(1.txt,w);if (!fp)printf(文件打開錯誤:return;fprin tf(fp,%dn,TOTAL_NUM);for(p = head; p!= NULL; p= p-next)fprintf(fp,%st%ldt%st%dt%st%fn, p-name, p-num, p-sex, p-age, p-address , p-score);fclose (fp);void freeAll ()struct student *p1, *p2;p1 = p2=head;wh

15、ile(p1)p2=p1-next;free (p1);p1 = p2;/ 讀取文件void readData ()FILE* fp;/ 文件指針struct student *p1, *p2;fp = fopen(student.txt, r);if (!fp)printf( 文件打開錯誤 );return;fscanf(fp,%dn, &TOTAL_NUM);head = p1 = p2 = (struct student *)malloc(LEN);fscanf(fp,%st%ldt%st%dt%st%fn, p1-name, &p1-num, p1-sex,&p1-age, p1add

16、ress, &p1-score);while(!feof(fp)p1 = (struct student *)malloc(LEN);fscanf(fp,%st%ldt%st%dt%st%fn, p1-name, &p1-num, p1-sex, &p1-age, p1address, &p1-score);p2-next = p1;p2 = p1;p2-next = NULL;fclose(fp);/ 刪除學(xué)生信息void del ()struct student *p1, *p2;long int num;if (head = NULL)printf(”無學(xué)生記錄n);return;pri

17、n tf(請輸入您要刪除的學(xué)生的學(xué)號);sca nf(%ld,&n um);p1 = head;while (num != p1-num &p1-next != NULL)p2 = p1;p1 = p1- n ext;if(num =p1- num)if(p1 = head)head = p1- n ext;elsep2-next = p1- n ext;free(p1);TOTAL_NUM-;elseprintf(”沒有該學(xué)生記錄請核對n);void sort() /排序模塊。將學(xué)生記錄按學(xué)號從小到大排列。用起泡排序算法實(shí)現(xiàn)int i;struct student *ptr,*s=head,

18、*p;int count=0,count1;while(s)/統(tǒng)計鏈表結(jié)點(diǎn)個數(shù)coun t+;s=s-n ext;for( i=1;inext&(count1-)if(ptr-scoreptr-next-score)s=ptr-next; ptr-next=s-next;if(p=NULL) /ptr 處于隊頭時 head=s;elsep-next=s; s-next=ptr; p=s;elseptr=ptr-next;if(p=NULL) /ptr 處于隊頭時 p=head;else p=p-next;displayAll (); return;void change ()struct student *p1, *p2;long int num;if (head = NULL)printf ( 無學(xué)生記錄 n);return;printf ( 請輸入您要修改的學(xué)生的學(xué)號 ); scanf (%ld, &num);p1 = head;while (num != p1-num & p1-next != NULL) p2 = p1;p1 = p1-next;if(num = p1-num)devise (p1);elseprintf( 沒有該學(xué)生記錄請核對 n); void devise (struct stude

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論