C語言程序設計-學生成績管理系統(tǒng)設計_第1頁
C語言程序設計-學生成績管理系統(tǒng)設計_第2頁
C語言程序設計-學生成績管理系統(tǒng)設計_第3頁
C語言程序設計-學生成績管理系統(tǒng)設計_第4頁
C語言程序設計-學生成績管理系統(tǒng)設計_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設計成果報告

題日;學生成績曾理蒜汲計

課程:程序設計基礎一

目錄

1設計目的1

2設計任務內(nèi)容1

3系統(tǒng)總體設計2

4系統(tǒng)詳細設計2

4.1輸入學生信息2

4.2輸出學生信息3

4.3刪除學生信息4

4.4查詢學生信息5

4.4.1根據(jù)姓名查詢5

4.4.2根據(jù)學號查詢6

4.5插入學生信息7

4.6學生信息排序9

4.7主函數(shù)10

5調(diào)試與測試11

6課程設計心得與體會14

7參考文獻15

8附錄15

1設計目的

本課程設計是信息管理與信息系統(tǒng)專業(yè)重要的實踐性環(huán)節(jié)之一,是在學生學

習完《程序設計基磯I》課程后進行的一次全面的綜合練習。本課程設計的目的和任

務:

1、鞏固和加深學生對C語言課程的基本知識的理解和掌握;

2、掌握C語言編程和程序調(diào)試的基本技能;

3、利用C語言進行基本的軟件設計;

4、掌握書寫程序設計說明文檔的能力;

5、提高運用C語言解決實際問題的能力。

2設計任務內(nèi)容

學生成績管理系統(tǒng)設計

學生成績相關信息包括:學號、姓名、班級、數(shù)學成績、英語成績、計算機

成績等(學號唯一),總成績。

系統(tǒng)要求實現(xiàn)如下功能:

D系統(tǒng)功能以菜單方式工作;

2)數(shù)據(jù)的添加:從鍵盤輸入數(shù)據(jù)存放到結(jié)構(gòu)體數(shù)組中;

3)數(shù)據(jù)的插入:從指定位置插入一條記錄;

4)數(shù)據(jù)的輸出:在屏幕上顯示出所添加的數(shù)據(jù);

5)數(shù)據(jù)的刪除:從指定位置刪除一條記錄;

6)數(shù)據(jù)的查找,通常以兩種方式進行查找,如姓名、記錄號(或?qū)W號、職工

號等):

7)數(shù)據(jù)的排序;

8)退出系統(tǒng)。

以上每個內(nèi)容需要通過單獨的函數(shù)來實現(xiàn),數(shù)據(jù)以結(jié)構(gòu)體數(shù)組的形式組織。

3系統(tǒng)總體設計

4系統(tǒng)詳細設計

本系統(tǒng)用來儲存多名學生的信息,并對信息迂行相關的處理,使用結(jié)構(gòu)體實

現(xiàn)相關功能。結(jié)構(gòu)體代碼如下:

typedefstruct〃為結(jié)構(gòu)體起別名stu[N],簡化程序。

charno[20];〃定義no為char型數(shù)據(jù),且長度有20列。

charname[20];

charClass[20];

intmath,englisk,computer,all;〃定義結(jié)構(gòu)體中的所有元素。

}Student;

Studentstu[N];

相關函數(shù):結(jié)構(gòu)體函數(shù)、main(主函數(shù))、Input(輸入函數(shù))、Output(輸

出函數(shù))、Findname(我姓名查詢函數(shù))、Findno(按學號查詢函數(shù))、Delete

(刪除函數(shù))、Insert(插入函數(shù))、Rank(排序函數(shù))、exit(退出函數(shù))

4.1輸入學生信息

輸入學生信息就是對定義的結(jié)構(gòu)體中的成員正行賦值。其中,用戶需要輸入

的是學號、姓名、班級、數(shù)學成績、英語成績、計算機成績,以及是否繼續(xù)的指

令,總成績由求和函數(shù)實現(xiàn)。代碼如下:

voidInput()〃用戶自定義Inpul函數(shù),實現(xiàn)數(shù)據(jù)的輸入功能。

(

chark,x[20];

while(k!=,n*&&k!二'N')〃當輸入的不是N或者n時,執(zhí)行該循環(huán)。

(

printf(〃輸入學生學號:〃);

scanfstu[r].no);

printf(〃輸入學生姓名:〃);

scanfst.u[r].name);

printf(〃輸入學生班級:〃);

scanf(〃%s〃,stu[r].Class);

printf(〃輸入學生的數(shù)學成績:〃);

scanf(〃%d”,&stu[n].math);

printf(〃輸入學生的英語成績:〃);

scanf&stu[n].english);

printf("輸入學生的計算機成績:〃);

scanf&stu[n].computer);

stu[n].all=stu[r].math+stu[n].english+sru[n].computer;〃輸入學生

的各項信息,并賦值到結(jié)構(gòu)體中。

gets(x);//清除多余的輸入內(nèi)容。

printf("輸入下一個?(Y/N)\n〃);

scanf&k);

n++;〃執(zhí)行完一次循環(huán)后,將全局變量n(成員數(shù))自增1。

)

}

4.2輸出學生信息

輸出學生信息就是將結(jié)構(gòu)體中所有成員的各個元素的值顯示在屏幕上,使用

%T0d或者%TOs格式(左對齊,每個數(shù)據(jù)占10歹1)可將數(shù)據(jù)用表列形式輸出,使

用循環(huán)語句將i個成員信息全部輸出。代碼如下:

voidOutput()〃用戶自定義Output函數(shù),實現(xiàn)數(shù)據(jù)的輸出功能。

inti;

printf(〃-----------------------------------------------------------

--------\n〃);

printf(〃學號姓名班級數(shù)學英語計算機總成績\n〃);

printf("-----------------------------------------------------------

--------\4):

for(i=0;i<n;i++)

(

printfC%-10s%-10s%-10s%-10d%-10d%-10d%-

10d\n〃,stu[i].no,stu[i].name,stu[i].Class,stu[i].math,stu[i].cnglish,stu

[i].computer,stu[i].all);

printf("-----------------------------------------------------------

--------\n〃);

}〃使用for循環(huán)語句,輸出結(jié)構(gòu)體中所有成員信息。

)

4.3刪除學生信息

刪除學生信息就是將第i+1個成員的每個元素賦值到要刪除的第i個成員的

相應元素的位置上,再瑜出結(jié)構(gòu)體中的前i個成員信息,使用循環(huán)結(jié)構(gòu)依次執(zhí)行到

第n個成員,實現(xiàn)對第i個成員的刪除。代碼如下:

voidDeleteO〃用戶自定義Oulpul函數(shù).實現(xiàn)數(shù)據(jù)的輸入功能。

charx[20];//輸入要刪除的學生姓名,char型數(shù)據(jù)占20歹人

intj,i=0;

printf(〃輸入要刪除的學生姓名:〃);

scanfx);

whilc(strcmp(stL[i].name,x)!=0&&i<n)

i++;〃比較輸入的x數(shù)據(jù)與結(jié)構(gòu)體中name元素,若不相同,i自增1。

if(i==n)

(

printf(〃未找到相關學生信息!\n〃);

)〃若i與n值相同,說明無此數(shù)據(jù),輸出“未找到學生信息!”。

for(j=i;j<n-l;J++)

(

strcpy(stu[j].no,stu[j+l].no);

strcpy(stu[j].name,stu[j+l].name);

strcpy(stu[j].Class,stu[j+l].Class);〃將stu[j+1]中的內(nèi)容復制到

stu[j]中。

stu[j].math=stu[j+1].math;

stu[j].english=stu[j+l].english;

stu[j].computer=stu[j+1].computer;

stu[j].all=stu[j+1].all;

)〃將結(jié)構(gòu)體中的元素賦值給前一元素。

n-;〃數(shù)據(jù)刪除后,全局變量n值(成員數(shù))自減1。

printf(〃該學生信息已刪除!\n〃);

}

4.4查詢學生信息

4.4.1根據(jù)姓名查詢

按照學生姓名查找學生信息,要求用戶輸入學生的姓名,再與結(jié)構(gòu)體中的數(shù)

據(jù)進行一一比對.,輸出結(jié)構(gòu)體中與該數(shù)據(jù)相同的成員的所有信息,從而實現(xiàn)查找功

能。代碼如下:

voidFindname()〃用戶自定義函數(shù),實現(xiàn)對指定數(shù)據(jù)的查找功能。

chars[20];//定義用戶輸入的學生姓名數(shù)據(jù)為char型,占20列。

inti=0;

printf(〃請輸入要查詢的學生姓名:〃);

scanf("%s〃,s);

while(strcmp(stu[i].name,s)!=0&&i<n)

i++;〃當輸入的姓名與當前姓名不相同時,i自增1,比較下一個成員。

if(i==n)

(

printf(〃未找到相關學生信息!\n〃);

)

printfC-

---------\n〃);

printf(〃學號姓名班級數(shù)學英語計算機總成

溫馨提示

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

評論

0/150

提交評論