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

下載本文檔

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

文檔簡介

1、流程圖: *C:Uwn和、UiftD 刖 l(tcpDrwNDdMgEbu9Ew 通信工桎 . 小1 .幾丨 Vita 2 H価謚檢0 1 諸輸入爲(wèi)的 曲入的1號1 4i 學(xué)號 性81 Ait 說1 媒三 1 12 95 律見報忡臭 56.000000 血學(xué)W!ft 1 請後入您的AH2 詁娥入學(xué)的外名歩河 乍號 年齡 ttW 地址 成M tw 56 6 4、會撲扮畔晌少0愉80 000000 按牛耳肖wwTi 按Ift名f“(諂按2 耽力t 0 1 3 請奪人SfcG材il的挙 謂送卄您羈惱曲lb誹 M. Z誦橫I Ith汕村5 ,:.出為C 4t.fi詁民 :-5:汁 詁堅入刃伴弭 譏1丄

2、胖.:,!;負(fù)門的戈; 鬧拓 ; Q 劃陽丁左仁# nrt7i.ni! 址出* n 程序源碼: #in elude #in elude #in elude #in elude #in elude #define LENsizeof(structstudent)求字節(jié)數(shù)運算符 struet stude nt ehar name20; long int num; ehar sex4; int age; ehar address30; float seore; struetstudent *next;/鏈表 ;/定義一個結(jié)構(gòu)題 int TOTAL_NUM 0;/ 學(xué)生總數(shù) struet studen

3、t *head = NULL; void mainmenu ();/ 主界面 void reeord (); / 記錄數(shù)據(jù) void insert(struet student *stu); / 插入數(shù)據(jù) void display(struet student *stu); / 顯示一個學(xué)生的信息 void displayAll (); /顯示所有學(xué)生的信息 void query(); /查詢學(xué)生信息 void query_by_num(); /按學(xué)號查詢學(xué)生信息 void query_by_name(); void readData (); /讀取文件里學(xué)生的信息 void writeDat

4、a (); / 向文件寫入學(xué)生信息 void freeAll (); / 清空鏈表內(nèi)容 void del (); / 刪除學(xué)生信息 void change (); / 更改學(xué)生信息 void sort();/ 排序 void devise (struct student *p); / 選擇更改內(nèi)容 int main (void) mainmenu(); return 0; / 系統(tǒng)主菜單 void mainmenu () int choice; choice = -1; readData (); printf (tttn); |n); 才可正常運行 n); printf (ttt| 歡迎使用通

5、信工程專業(yè)學(xué)生信息管理系統(tǒng) printf (tttn); printf (ttt本程序需要在當(dāng)前目錄下建立 student.txt do printf (nnn); printf (ttt n); printf (ttt 通信工程專業(yè)學(xué)生信息管理系統(tǒng) printf (ttt n); printf (ttt1- - 錄入學(xué)生信息 |n); printf (ttt2- - 瀏覽學(xué)生信息 |n); printf (ttt3- - 查詢學(xué)生信息 |n); printf (ttt4- - 刪除學(xué)生信息 |n); printf (ttt5- - 修改學(xué)生信息 |n); printf (ttt6- - 排序

6、 |n); printf (ttt0- - 退出系統(tǒng) |n); printf (ttt n); printf ( 請輸入您的選擇 ); |n); scanf (%d, switch (choice) case 0:writeData ();freeAll (); exit (0); case 1:record ();break; case 2:displayAll ();break; case 3:query ();break; case 4:del ();break; case 5:change ();break; case 6:sort ();break; default:printf (

7、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, printf(ttt請輸入學(xué)生的性別 :); scanf (%s,p0-sex); printf(ttt請輸入學(xué)生的年齡 :); scanf (%d, printf(ttt請輸入學(xué)生的地址 :); scanf

8、 (%s,p0-address); printf(ttt請輸入學(xué)生的成績 :); scanf (%f, insert (p0); printf (ttt 該學(xué)生的信息為 :n); printf (ttt 成績 n); n); printf (ttt 姓名t學(xué)號tt 年齡t性別t地址tt display (p0); void insert (struct student *stu) struct student *p0, *p1, *p2; p1 = head; p0 = stu; if (head = NULL) head = p0; p0-next = NULL; else while (p

9、0-num p1-num)p1 = p1-next; if (p0-num num) if (head = p1) head = p0; else p2-next = p0; p0-next = p1; else p1-next = p0; p0-next = NULL; TOTAL_NUM+; void display (struct student *p) p-sex,p-add printf (ttt%st%ldtt%dt%st%stt%fn, p-name, p-num, p-age, ress, p-score); / 瀏覽學(xué)生信息 void displayAll() struct

10、student *p; printf(ttt 學(xué)生總數(shù) :%dn, TOTAL_NUM); p = head; if (head != NULL) printf(ttt姓名t學(xué)號tt 年齡t性別t地址tt 成績n); printf(ttt n); do display(p); p = p-next; while(p != NULL); printf (n); void query() int choice; choice = -1; do prin tf(n); printf(”n); prin tf(|按學(xué)號查詢請按1|n); printf(|按姓名查詢請按2|n); printf(|取消請

11、按0|n); printf(+n); printf(請輸入您的選擇); scan f(%d, 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é)生信息 void query_by_name() char name20; struct student *p1; prin tf(請輸入學(xué)生的姓名); sca nf(%s,n ame); if(head=NU

12、LL) pri ntf( 無學(xué)生記錄 n); return; p仁head; while(strcmp(name,p1-name) if(!strcmp (n ame,p1- n ame) 成績n); printf(ttt姓名t學(xué)號tt 年齡t性別t地址tt printf(ttt n); display(pl); else printf(沒有該學(xué)生記錄請核對 : /按學(xué)號查詢學(xué)生信息 void query_by_num () int num; struct student *p1; printf(請輸入學(xué)生的學(xué)號); scan f(%ld, if(head=NULL) printf( 無學(xué)生記

13、錄n); return; p1 = head; while (num!=p1-num if (num =p1-num) 成績n); printf (ttt 姓名t學(xué)號tt 年齡t性別t地址tt printf(ttt n); display (p1); else printf (ttt沒有該學(xué)生記錄請核對); /寫入文件 void writeData () FILE* fp;/文件指針 struct student *p; fp = fope n(1.txt,w); if (!fp) printf(文件打開錯誤: return; fprin tf(fp,%dn,TOTAL_NUM); for(p

14、 = 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; while(p1) p2=p1-next; free (p1); p1 = p2; / 讀取文件 void readData () FILE* fp;/ 文件指針 struct student *p1, *p2; fp = fopen(

15、student.txt, r); if (!fp) printf( 文件打開錯誤 ); return; fscanf(fp,%dn, head = p1 = p2 = (struct student *)malloc(LEN); fscanf(fp,%st%ldt%st%dt%st%fn, p1-name, while(!feof(fp) p1 = (struct student *)malloc(LEN); fscanf(fp,%st%ldt%st%dt%st%fn, p1-name, p2-next = p1; p2 = p1; p2-next = NULL; fclose(fp); /

16、刪除學(xué)生信息 void del () struct student *p1, *p2; long int num; if (head = NULL) printf(”無學(xué)生記錄n); return; prin tf(請輸入您要刪除的學(xué)生的學(xué)號); sca nf(%ld, p1 = head; while (num != p1-num p1 = p1- n ext; if(num =p1- num) if(p1 = head) head = p1- n ext; else p2-next = p1- n ext; free(p1); TOTAL_NUM-; else printf(”沒有該學(xué)生記

17、錄請核對n); void sort() /排序模塊。將學(xué)生記錄按學(xué)號從小到大排列。用起泡排序算法實現(xiàn) int i; struct student *ptr,*s=head,*p; int count=0,count1; while(s)/統(tǒng)計鏈表結(jié)點個數(shù) coun t+; s=s-n ext; for( i=1;inext ptr-next=s-next; if(p=NULL) /ptr 處于隊頭時 head=s; else p-next=s; s-next=ptr; p=s; else ptr=ptr-next; if(p=NULL) /ptr 處于隊頭時 p=head; else p=p-

18、next; displayAll (); return; void change () struct student *p1, *p2; long int num; if (head = NULL) printf ( 無學(xué)生記錄 n); return; printf ( 請輸入您要修改的學(xué)生的學(xué)號 ); scanf (%ld, p1 = head; while (num != p1-num p1 = p1-next; if(num = p1-num) devise (p1); else printf( 沒有該學(xué)生記錄請核對 n); void devise (struct student *p) int choice; choic

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論