国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C語言的學生成績管理系統(tǒng)的實現(xiàn)

2018-01-02 08:34
關鍵詞:數(shù)組C語言管理系統(tǒng)

彭 莉

(武漢工程職業(yè)技術學院 湖北 武漢:430080)

基于C語言的學生成績管理系統(tǒng)的實現(xiàn)

彭 莉

(武漢工程職業(yè)技術學院 湖北 武漢:430080)

學生成績管理是高校教學管理的重要環(huán)節(jié)。在VC環(huán)境下開發(fā)的基于C語言的學生成績管理系統(tǒng)能夠實現(xiàn)對學生記錄的增、刪、改、查等功能。對系統(tǒng)主要功能模塊的設計思想進行了闡述,并給出了部分關鍵代碼。

C語言;學生成績;系統(tǒng);實現(xiàn);成績管理;教學管理

成績管理是高校教學管理中的重要組成部分。隨著計算機的迅速發(fā)展,傳統(tǒng)的人工管理方式已被計算機管理所替代。在VC++6.0環(huán)境下開發(fā)的基于C語言的學生成績管理系統(tǒng)能夠實現(xiàn)對學生成績的科學化管理,方便教務員快速的添加、修改、查找、刪除以及保存學生的成績信息,從而推動校園信息化。

1 系統(tǒng)功能分析

為了對學生的成績進行管理,根據(jù)實際需要設計一個學生成績管理系統(tǒng),系統(tǒng)實現(xiàn)的主要功能包括:增加學生記錄、修改學生記錄、刪除學生記錄、查詢學生記錄和保存學生記錄等,功能分析如下:

(1)增加學生記錄:增加學生信息,包括學號,姓名,計算機成績,數(shù)學成績。

(2)修改學生記錄:通過學號查找到學生,然后對學生信息進行修改。

(3)刪除學生記錄:刪除指定學生記錄。

(4)查詢學生記錄:根據(jù)學生學號,查找學生的基本信息。

(5)保存學生記錄:將學生信息保存到文件中,從而實現(xiàn)永久保存。

(6)退出系統(tǒng):退出學生成績管理系統(tǒng)。

設計一個主菜單,方便用戶依據(jù)菜單項來進行相應的操作,主菜單界面如圖1所示。

圖1 系統(tǒng)主菜單

2 系統(tǒng)設計與實現(xiàn)

2.1 增加學生記錄

用戶選擇如圖1所示的菜單[2]后,可以添加學生的記錄信息。在每一條學生記錄中,保存的學生信息如表1所示。

表1 學生信息表

在學生信息表中,每一條學生記錄,都包含四個屬性:學號、姓名、計算機成績和數(shù)學成績。可以使用結構體來定義一名學生的記錄,如下:

{

int ID; /*學生編號*/

char Name[9]; /*學生姓名*/

int ComPuter; /*計算機成績*/

int Math; /*數(shù)學成績*/

};

因為學生可能有很多,需要定義一個數(shù)組來保存所有學生的信息,學生的個數(shù)用一個宏來定義,程序如下:

#define STUDENT_NUMBER 1000 /*定義一個符號常量,代表學生的個數(shù)*/

/*定義一個數(shù)組,保存所有的學生信息,數(shù)組中保存的是結構體記錄,代表學生信息*/

struct StudentRecord students[STUDENT_NUMBER];

int num = 0; /*用一個變量記錄當前已有的學生記錄的個數(shù)*/

然后,實現(xiàn)添加學生記錄的功能函數(shù),函數(shù)代碼如下:

/*增加學生記錄*/

void AddStuRecord()

{

while(1)

{

printf("請輸入編號[4位數(shù)字]:");

scanf("%d",&students[num].ID);

getchar();

printf("請輸入姓名:");

scanf("%s",&students[num].Name);

getchar();

printf("請輸入計算機成績:");

scanf("%d",&students[num].ComPuter);

getchar();

printf("請輸入數(shù)學成績:");

scanf("%d",&students[num].Math);

getchar();

/*增加一個學生后,學生記錄的個數(shù)加1*/

num++;

/*是否繼續(xù)增加學生記錄,如果輸入'n',表示不繼續(xù),退出循環(huán)*/

printf("是否繼續(xù)增加記錄?(y/n) ");

if (getchar()=='n')

{

break;

}

}

運行的結果如圖2所示。

圖2 添加學生記錄

2.2 查詢學生記錄

查找學生記錄可以依據(jù)該學生的學號,在所有的學生記錄中,查詢指定學號的學生記錄。然后返回這個記錄在學生記錄數(shù)組中的下標值。查找指定學號學生記錄的程序如下:

*查找學生記錄,返回該記錄的下標*/

int FindStuRecord(int id)

{

int i;

/*遍歷所有的學生記錄,查找出指定編號的記錄*/

for (i=0;i

{

if (students[i].ID == id)

{

return i;

}

}

return -1;

}

/*顯示指定下標的記錄內(nèi)容*/

void DisplayStuRecord(int index)

{

printf("------------------------------------------------------------- ");

printf("編號:%d ",students[index].ID);

printf("姓名:%s ",students[index].Name);

printf("計算機成績:%d ",students[index].ComPuter);

printf("數(shù)學成績:%d ",students[index].Math);

printf("------------------------------------------------------------- ");

}

2.3 修改學生記錄

修改學生記錄時,首先需找到該學生的記錄。修改之前,輸入需要修改的學生的學號,然后根據(jù)學號,查找到這個學生記錄在數(shù)組中的下標。通過此下標,即可獲取需要修改的學生信息。最后修改這些信息使其成為新的信息。具體實現(xiàn)代碼如下:

/*修改學生記錄*/

void ModifyStuRecord()

{

int id;

int index;

while(1)

{

printf("請輸入要修改的記錄編號[4位數(shù)字]:");

scanf("%d",&id);

/*查找指定編號的學生記錄的下標*/

index=FindStuRecord(id);

if (index == -1)

{

printf("學生記錄不存在! ");

}

else

{

printf("學生記錄信息如下: ");

DisplayStuRecord(index);

printf("請輸入新編號[4位數(shù)字]:");

scanf("%d",&students[index].ID);

getchar();

printf("請輸入新姓名:");

scanf("%s",&students[index].Name);

getchar();

printf("請輸入新計算機成績:");

scanf("%d",&students[index].ComPuter);

getchar();

printf("請輸入新數(shù)學成績:");

scanf("%d",&students[index].Math);

getchar();

}

printf("是否繼續(xù)修改其它記錄?(y/n)");

if (getchar()=='n')

{

break;

}

}

}

運行的結果如圖3所示。

圖3 修改學生記錄

2.4 刪除學生記錄

想要刪除學生的記錄,首先要找到該記錄,可以按照修改學生記錄同樣的方法,通過調(diào)用查找學生記錄的函數(shù)找到需要刪除的學生記錄在數(shù)組中的下標,然后在數(shù)組中刪除相應的記錄。刪除學生記錄的方法很簡單,只需將要刪除的記錄之后的記錄向前移動一個位置,后面的記錄就可以覆蓋前面的記錄,從而實現(xiàn)刪除功能。

2.5 打開與保存學生記錄

不論是增加或刪除學生的記錄,都會將這些信息保存到一個數(shù)組中。關閉程序后,這些數(shù)據(jù)就消失了,下次打開程序又要重新輸入學生的信息。為了讓這些信息能永久性保存,可以將學生的信息保存到文件中。這樣,下次打開文件,就可以讀取文件中已經(jīng)保存的學生信息。

保存信息到文件,分為兩個步驟:先保存學生記錄的個數(shù);然后將數(shù)組中的每條學生記錄都保存到文件中。具體保存到文件的代碼如下:

/*將學生記錄保存到文件*/

void SaveStuInfo()

{

FILE *fp;

int i;

if ((fp=fopen("StuInfo.data","wb"))==NULL)

{

printf("打開文件失敗! ");

return;

}

if (fwrite(&num,sizeof(int),1,fp)!=1)

{

printf("寫入文件時發(fā)生錯誤! ");

fclose(fp);

return;

}

for (i=0;i

{

/*寫入每一個學生記錄信息*/

if (fwrite(&students[i],sizeof(struct StudentRecord),1,fp)!=1)

{

printf("寫入文件時發(fā)生錯誤! ");

fclose(fp);

return;

}

}

printf("保存記錄成功 ");

fclose(fp);

}

3 結語

使用C語言開發(fā)的學生成績管理系統(tǒng)實現(xiàn)了教學的信息化管理,節(jié)約了時間,提高了管理人員的工作效率。該系統(tǒng)功能完整,能夠滿足成績管理的基本要求。但是仍然存在不足,例如可增加系統(tǒng)管理員,使其功能進一步細分和完善。如何推進校園的整體信息化,是將來努力的方向。

[1] 楊立君.C語言程序學生成績管理系統(tǒng)設計與實現(xiàn)[J].電腦編程技巧與維護,2017,(8):60-22

[2] 楊蘭.基于C語言開發(fā)的自動翻譯軟件系統(tǒng)設計與實現(xiàn)[J].電子設計工程,2016,24(22):74-76.

[3] 韓凱譯.基于C語言的圖書管理系統(tǒng)[J].電子技術與軟件工程,2016,(15):256-256.

[4] 陳晶晶,陳華,范宜標.C語言智能評分系統(tǒng)的開發(fā)[J].龍巖學院學報,2016,34(2):75-80.

[5] 楊海濤.《C語言程序設計》網(wǎng)上考試系統(tǒng)的設計與實現(xiàn)[J].信息與電腦,2015,(12):114-115.

ImplementationofStudentAchievementManagementSystemBasedonCLanguage

Peng Li

(Wuhan Engineering Institute,Wuhan 430080, Hubei)

The student achievement management is an important process for college teaching management. Under the background of VC and based on C language, developing student achievement management system could achieve functions of addition, deletion, amendment, search etc. of student information Stating from the need of users, this article clarified the design thoughts on its main functional modules and provided some key codes.

C Language; student achievement; system; realization; student achievement managment; teaching managment

李文英)

2017-09-05

2017-11-15

本文為2017年武漢工程職業(yè)技術學院教學研究項目“公共專業(yè)課《C語言程序設計》教學改革與探索”(項目編號201703)的研究成果

彭 莉(1981~),女,碩士,副教授.E-mail:pl@wgxy.net.

TP311.52

A

1671-3524(2017)04-0036-04

猜你喜歡
數(shù)組C語言管理系統(tǒng)
基于James的院內(nèi)郵件管理系統(tǒng)的實現(xiàn)
JAVA稀疏矩陣算法
基于Visual Studio Code的C語言程序設計實踐教學探索
JAVA玩轉數(shù)學之二維數(shù)組排序
51單片機C語言入門方法
基于LED聯(lián)動顯示的違停管理系統(tǒng)
基于C語言的計算機軟件編程
海盾壓載水管理系統(tǒng)
Excel數(shù)組公式在林業(yè)多條件求和中的應用
高職高專院校C語言程序設計教學改革探索
定襄县| 虞城县| 五原县| 永安市| 高唐县| 伊金霍洛旗| 中方县| 永康市| 鄯善县| 禹州市| 铁岭县| 凌云县| 葵青区| 顺义区| 赤峰市| 高邮市| 通江县| 邳州市| 灌云县| 饶平县| 沙雅县| 镇沅| 西和县| 聂拉木县| 武宣县| 罗田县| 阜平县| 东丽区| 朝阳区| 延川县| 灌阳县| 宿州市| 彭泽县| 乌海市| 万宁市| 乌兰察布市| 伊金霍洛旗| 兴仁县| 武安市| 武强县| 金华市|