C語言課程設計 學生管理系統

2021-10-04 07:34:02 字數 4142 閱讀 7604

學生資訊管理

(1)問題描述

學生資訊包括:學號,姓名,年齡,性別,出生年月,位址,**,e-mail等。試設計一學生資訊管理系統,使之能提供以下功能:

 系統以選單方式工作

 學生資訊錄入功能(學生資訊用檔案儲存)—輸入

 學生資訊瀏覽功能——輸出

 查詢、排序功能——演算法

1、按學號查詢

2、按姓名查詢

 學生資訊的刪除與修改(可選項)

(2)功能要求

 介面簡單明瞭;

 有一定的容錯能力,比如輸入的成績不在0~100之間,就提示不合法,要求重新輸入;

 最好用鍊錶的方式實現。

(3)演算法分析

首先,乙個學生包括這麼多的屬性,應該考慮定義乙個結構,其次,我們應該考慮資料的儲存形式:是定義乙個陣列來儲存,還是定義乙個鍊錶呢?在這裡假如我們以陣列的方式來儲存,當然可以,但是我們知道,假如我們定義乙個陣列的話,我們首先必須知道學生人數大概是多少,以便我們確定陣列的大小,但是題目中沒有給出,而且題目要求中有大量的刪除、插入操作,所以用鍊錶的方式比較方便。

對於選單的實現,其實也比較簡單,首先我們用printf語句把程式的功能列出來,然後等待使用者輸入而執行不同的函式,執行完了乙個功能後又回到選單。檔案的讀寫操作大家參照書中的有關檔案的章節。

#include

#include

#include

#include

#include

#define m 80

char f;

file *fp;

//定義指向檔案的指標

struct student

;//定義結構體變數

intjiami()

;void

input

(struct student stu[m]);

void

output

(struct student stu[m]);

void

lookfor

(struct student stu[m]);

void

order

(struct student stu[m]);

void

delete_s

(struct student stu[m]);

void

modify

(struct student stu[m]);

void

xuehao

(struct student stu[m]);

void

xingming

(struct student stu[m]);

void

fileread

(struct student stu[m]);

void

filewrite

(struct student stu[m]);

int count;

//判斷學生的數目

struct student t;

intjiami()

else i=1;

}else i=1;

}else i=1;

return i;

}int

main()

}switch

(choice)

}while

(choice!=9)

;printf

("the program is over!\n");

return0;

}void

input

(struct student stu[m]

)//自定義輸入函式

void

output

(struct student stu[m]

)//自定義輸出函式

else}}

void

lookfor

(struct student stu[m]

)//自定義查詢函式

else}}

void

xuehao

(struct student stu[m]

)//自定義學號查詢函式}if

(k==0)

//沒有找到該學號

}void

xingming

(struct student stu[m]

)//自定義姓名查詢函式}if

(n==0)

}void

order

(struct student stu[m]

)//自定義排序函式};

break

;//按數學成績排序

case2:

for(j=

0;j;break

;//按英語成績排序

case3:

for(j=

0;j;break

;//按物理成績排序

case4:

for(j=

0;j;break

;//按c語言成績排序

case5:

for(j=

0;j;break

;//按體育成績排序

default

:printf

("無效的選擇!請重新輸入!\n");

break;}

if(choice>=

1&&choice<=5)

printf

("排序成功!!!");

}void

delete_s

(struct student stu[m]

)//自定義刪除函式(按學號刪除)

else

index++;}

if(j==count)

//判斷是否有該學生的資訊

printf

("抱歉!!!沒有你所需要刪除的學生資訊!*_*!\n");

}}void

modify

(struct student stu[m]

)//自定義修改函式

else

printf

("選擇資訊: 1、學號 2、姓名 3、年齡 4、性別 5、出生年月 6、位址 7、** 8、e-mail 9、跳過\n");

scanf

("%d"

,&course)

;//選擇要修改的一部分學生資訊

switch

(course)}}

}if(i==0)

printf

("無該學生資訊!!\n");

return;}

void

filewrite

(struct student stu[m]

)//自定義寫入檔案函式

if(f==

'y')

for(j=

0;j)fclose

(fp);if

(count==0)

//判斷學生數目是否為0

printf

("沒有檔案,無法儲存\n");

else

printf

("資料儲存完畢\n");

system

("pause");

}else

return;}

void

fileread

(struct student stu[m]

)//自定義讀取檔案資訊函式

fread

(&stu[j]

,sizeof

(struct student),1

,fp)

;//從檔案中讀取學生資訊

count=0;

count++

; j++

;while

(fread

(&stu[j]

,sizeof

(struct student),1

,fp)

)fclose

(fp)

;printf

("資料讀取完畢!\n");

system

("pause");

}else

return

;}

記錄我的學習記錄,有問題歡迎指出學習交流

C語言課程設計 學生學籍管理系統

無錯 一 課題設計內容與主要功能 1.1問題描述 通過該系統實現對學生學籍資訊進行錄入 顯示 修改 插入 刪除 排序 儲存等操作的管理。2.1功能要求 1 本系統採用乙個包含n個資料的結構體陣列,每個資料的結構應當包括 學號 姓名 性別 出生日期 入學時間 專業 班級 備註。2 本系統顯示這樣的選單...

C 課程設計 學生成績管理系統

要求 設立程式管理學生如下資訊 學生學號 姓名 班級,語文 數學 英語成績。至少要有10名以上學生。能夠實現根據以下關鍵字查詢 學生姓名 學號 班級 課程名稱。能夠實現按照單科成績 總成績 平均成績 學號排序。能夠實現學生資訊的插入 刪除和修改。能夠查詢每個課程的最高分 最低分及相應學生姓名 班級和...

C語言課程設計「倉庫管理系統」

include include include include include void input void show void search void change void delete void output void menu struct info info void main void...