c語言運用 學生成績管理系統

2021-09-02 22:59:38 字數 2901 閱讀 8463

這個學生管理系統是我學習c語言兩個禮拜後與隊友一同寫的第乙個專案,乙個相對比較完整的專案,雖然有很多的不足,有很多的bug,但是相對的功能實現基本可以完成實現。

上面我只列舉了超級管理員的操作流程,還有管理員,老師,學生的資訊系統流程由於功能很多,沒有一一列在上面。

此專案用c語言編寫,運用結構體,函式,標頭檔案將各個功能來連線起來,使用檔案來將資訊儲存起來,然後再各自的函式裡分別寫各自的功能,完成布置功能的實現,並能夠儲存管理員,老師,學生的資訊。

在此我也稍微列舉一下我所學到的覺得重要的知識點,僅對於我乙個小白來說。

標頭檔案衛士:功能是防止標頭檔案被重複匯入,從面增加檔案的大小,浪費編譯時間。在此專案中,因為需要用到很多的函式,於是我們在標頭檔案中加入了很多函式宣告,這樣的話我們可以在.c檔案中標註#include" "來使用將函式連線起來。

ifndef filename_h

#define filename_h

#endif//filename_h

system(「clear」):清屏

gets和puts:gets可以接受空格而scanf不行,puts和gets的優點在於編譯後**少, 相對占用記憶體也小, 從而提高了速度,。

typedef struct 結構名結構名;

檔案的開啟:

file *fopen(const char *path, const char *mode);

功能:開啟或建立乙個檔案

path:檔案的路徑

mode:開啟檔案的方式

「w」 以只寫方式開啟檔案,檔案存在則清空,不存在則建立。

「w+」 在w的基礎上新增讀的許可權。

「r」 以唯讀方式開啟檔案,檔案存在則開啟,檔案不存在則返回空。

「r+」 在r的基礎上新增寫的許可權。

「a」 以只寫方式開啟檔案,檔案存在開啟檔案,新寫入的資料在檔案的末尾,不存在則建立。

「a+」 在a的基礎上新增讀的許可權。

檔案位置指標:

int fseek(file *stream, long offset, int whence);

功能:調整檔案的位置指標

offset:偏移值,要與whence配合使用。

功能:向檔案中以字元形式寫入資料,把資料按照點位符的格式轉換成字串,寫入到檔案中。

int fscanf(file *stream, const char *format, …);

功能:從檔案中以字元形式讀取資料,從檔案中讀取字串,再按照點位符的格式轉換化資料。

二進位制檔案的讀寫:

size_t fread(void *ptr, size_t size, size_t nmemb, file *stream);

功能:從stream檔案中讀取size個位元組,讀取nmemb次,儲存在ptr中。

返回值:成功讀取到的次數。

size_t fwrite(const void *ptr, size_t size, size_t nmemb,file stream);

隱藏密碼。

#include#include#include "struct.h"

#include"tool.h"

#include"supermanager.h"

//增加管理員

void

add_manager

(void

)strcpy

(ma[ma_count]

.password,

"000000");

puts

("請輸入姓名");

gets

(ma[ma_count]

.name)

;puts

("新增管理員資訊成功");

ma_count++

;anykey_continue()

;}//刪除管理員

void

del_manager

(void);

system

("clear");

printf

("請輸入要刪除的管理員的姓名\n");

gets

(str)

;for

(int j=

0;jprintf

("沒有此人\n");

anykey_continue()

;}//重置管理員密碼

void

reset_manager

(void);

gets

(str)

;for

(int i=

0;ianykey_continue()

;}//解鎖管理員賬號

void

unlock_manager

(void);

gets

(str)

;for

(int i=

0;ianykey_continue()

;

不足的地方有很多,比如超級管理員如果忘記密碼之後的功能改如何實現,剛開始寫的時候非常的簡單,寫的也很快,最開始的版本我還使用了goto,因為我考慮到如果需要刪除的人數不只有乙個,所以我使用if然後進行判斷是否要繼續,在通過goto回到原來的函式遍歷中,後來在隊友的幫助提醒下看到其實可以這樣寫,**簡單而且效率高,對於小白的我來說,簡簡單單的一段**對於我來說最後完成還需要很多的修改,特別是忘記;{}等等問題的存在,所以小組分工完成我覺得是我們在未來接觸社會前的練習,我們可以去讀懂別人的**並汲取他人的長處,他人在寫其他**的優點,也鍛鍊了我們的團隊配合問題,對於我來說,可能在專案中做出的貢獻會是最少的,但是我的收穫一定是最大的,因為我需要去學習的地方很多,漸漸的從小白開始啟航。

這是我寫超級管理員的一段**,我覺得c語言,c++,嵌入式一步一步的深入,對我來說任重而道遠,前路漫漫,革命尚未成功,同志仍須努力。hahahahhah。。。。。。。。

c語言運用 學生成績管理系統

學生成績管理系統 這個學生管理系統是我學習c語言兩個禮拜後與隊友一同寫的第乙個專案,乙個相對比較完整的專案,雖然有很多的不足,有很多的bug,但是相對的功能實現基本可以完成實現。基本設計 上面我只列舉了超級管理員的操作流程,還有管理員,老師,學生的資訊系統流程由於功能很多,沒有一一列在上面。此專案用...

學生成績管理系統C語言

include include include 主程式 void main writein void exit 定義結構體 struct student 宣告學生陣列及學生數量 struct student students 1000 int num 0 剛開始的學生數目為0 求總成績 float ...

C語言學生成績管理系統

這次實驗遇到非常多的問題,首先,由於不清楚標頭檔案的性質和原理,出現了許多重定義的問題,在除錯程式的時候總在輸入出錯處理上耽擱了很多時間,例如回車傳到某個字元型變數,引起了很多次死迴圈,還有浮點型資料似乎不能直接傳給乙個結構體裡的變數,需要用乙個中間變數來傳遞。每乙個的輸入都得非常小心。這樣的程式是...