c課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第1頁
c課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第2頁
c課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第3頁
c課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第4頁
c課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C+課程設(shè)計(jì)目 錄一、設(shè)計(jì)題目與設(shè)計(jì)目的意義3二、系統(tǒng)分析3三、系統(tǒng)設(shè)計(jì)4四、調(diào)試、排錯(cuò)、測試、試運(yùn)行過程5五、 源程序主要代碼7六、 總結(jié)及自我評(píng)價(jià)13七、 參考文獻(xiàn)14一、設(shè)計(jì)題目與設(shè)計(jì)目的意義學(xué)生信息管理系統(tǒng)設(shè)計(jì):內(nèi)容:(1)系統(tǒng)功能需求:包括學(xué)生信息的添加、修改、刪除和查詢;(2)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):使用結(jié)構(gòu)體類型存儲(chǔ)學(xué)生信息數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)于文件內(nèi)以方便學(xué)生信息管理。(3)系統(tǒng)算法設(shè)計(jì)并編程實(shí)現(xiàn)學(xué)生信息的添加、修改、刪除和查詢功能。學(xué)生信息管理系統(tǒng)設(shè)計(jì)的目的意義:鞏固和加深對(duì)C+課程的基本知識(shí)的理解和掌握。能夠通過文件對(duì)數(shù)據(jù)進(jìn)行操作,包括對(duì)文件的打開、關(guān)閉、讀取、寫入及重寫等操作。學(xué)會(huì)函

2、數(shù)的調(diào)用,能夠?qū)⒁粋€(gè)大的程序分解為多個(gè)函數(shù),實(shí)現(xiàn)模塊化程序設(shè)計(jì)。學(xué)會(huì)利用C+語言進(jìn)行簡單程序設(shè)計(jì)的基本思路和方法。掌握一個(gè)程序編譯、連接、調(diào)試的基本技能,提高運(yùn)用高級(jí)語言解決實(shí)際問題的能力。二、系統(tǒng)分析選擇Main函數(shù)退出修改查詢刪除插入排序顯示輸入菜單系統(tǒng)功能模塊劃分:三、系統(tǒng)設(shè)計(jì):(1)、主函數(shù):調(diào)用菜單函數(shù)。(2)、菜單函數(shù):通過switch語句來實(shí)現(xiàn)選擇要實(shí)現(xiàn)的功能函數(shù)。(3)、輸入函數(shù): 通過打開文件、輸入學(xué)生信息、關(guān)閉文件、返回菜單來實(shí)現(xiàn)學(xué)生信息的輸入。(4)、顯示函數(shù):以只讀方式打開文件后讀取文件內(nèi)容來顯示到計(jì)算機(jī)屏幕上最后再關(guān)閉文件返回菜單。(5)、排序函數(shù):通過起泡法來對(duì)所輸

3、入的學(xué)生按成績由高到低的順序進(jìn)行排序。(6)、插入函數(shù):通過將學(xué)生信息寫入文件的方式來實(shí)現(xiàn)學(xué)生信息的插入。(7)、刪除函數(shù): 通過兩個(gè)指針變量同時(shí)指向一個(gè)文件來對(duì)文件進(jìn)行再次賦值來實(shí)現(xiàn)刪除功能。(8)、查詢函數(shù):通過學(xué)生的姓名與文件中學(xué)生姓名的比較找到該學(xué)生后在將該學(xué)生的所有信息顯示出來(9)、修改函數(shù):通過兩個(gè)指針變量同時(shí)指向一個(gè)文件先找到要修改學(xué)生,將其信息輸入后在重新寫入文件。(10)、選擇函數(shù):選擇所要進(jìn)行的操作。(11)、退出:退出系統(tǒng)。 四、調(diào)試、排錯(cuò)、測試、試運(yùn)行過程輸入學(xué)生信息如圖:排序如圖:插入學(xué)生信息如圖:查詢學(xué)生信息五、 源程序主要代碼#include <stdio

4、.h>#include <stdlib.h>#include <string.h>int n=5; /*全局變量*/struct student /*定義結(jié)構(gòu)體數(shù)組*/ char num10; char name10; int score;stu3; int menu_select() /*菜單選擇函數(shù)*/ char a; do system("cls"); printf("t*學(xué)生成績管理系統(tǒng)*n"); printf("tt1.輸入學(xué)生成績n"); printf("tt2.顯示學(xué)生成績n&qu

5、ot;); printf("tt3.學(xué)生成績排序n"); printf("tt4.插入學(xué)生記錄n"); printf("tt5.刪除學(xué)生記錄n"); printf("tt6.查詢學(xué)生成績n"); printf("tt7.修改學(xué)生成績n"); printf("tt0.退出n"); printf("t*n"); printf("n"); printf("給出你的選擇(0-7):"); a=getchar(); while

6、(a<'0'|a>'7'); return(a);void input() /*定義輸入函數(shù)*/ int i; char c; void menu(); FILE *fp; if(fp=fopen("student message","w")=NULL) printf("cannot open the filen"); exit(0); printf("學(xué)號(hào) 姓名 分?jǐn)?shù) (需要終止輸入時(shí)請?jiān)谠撔薪Y(jié)尾輸入n)n"); for(i=0;i+) scanf("%s %

7、s %d",stui.num,,&stui.score); fwrite(&stui,sizeof(struct student),1,fp); c=getchar(); if(c='n') break; n=i+1; fclose(fp); system("pause"); menu();void display() /*定義顯示函數(shù)*/ int i; void menu(); FILE *fp; if(fp=fopen("student message","r")=NUL

8、L) printf("cannot open the filen"); exit(0); printf("t學(xué)號(hào)t姓名t分?jǐn)?shù)n"); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); printf("t%st%st%dn",stui.num,,stui.score); fclose(fp); system("pause"); menu();void sort() /*定義排序函數(shù)*/ int i,j; struct s

9、tudent temp; void menu();FILE *fp;if(fp=fopen("student message","r")=NULL) printf("cannot open the file:n"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); for(j=0;j<n-1;j+) for(i=0;i<n-1-j;i+) if(stui.score<stui+1.score)temp=stui; st

10、ui=stui+1; stui+1=temp;for(i=0;i<n;i+)printf("t%st%st%dn",stui.num,,stui.score);fclose(fp); system("pause"); menu();void insert() /*定義插入函數(shù)*/ int i; struct student st; void menu(); FILE *fp; if(fp=fopen("student message","a")=NULL) printf("cann

11、ot open the file:n"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); printf("輸入要插入學(xué)生的信息:n"); printf("學(xué)號(hào):"); scanf("%s",st.num); printf("姓名:"); scanf("%s",); printf("分?jǐn)?shù):"); scanf("%d",&st.

12、score); n+; fwrite(&st,sizeof(struct student),1,fp); fclose(fp); system("pause"); menu();void delet() /*定義刪除函數(shù)*/ int i,t; char name10; void menu(); FILE *fp,*fp1; if (fp=fopen("student message","r")=NULL) printf("can not open file!n"); exit(0); for(i=0;i&l

13、t;n;i+) fread(&stui,sizeof(struct student),1,fp); if (fp1=fopen("student message","w")=NULL) printf("can not open file!n"); exit(0); printf("請輸入要?jiǎng)h除學(xué)生的姓名:"); scanf("%s",name); for(i=0;i<n;i+) if(strcmp(,name)=0) t=i; for(i=0;i<t;i+)

14、 fwrite(&stui,sizeof(struct student),1,fp1); for(i=t+1;i<n;i+) fwrite(&stui,sizeof(struct student),1,fp1); printf("該學(xué)生信息已刪除!nn"); fclose(fp); fclose(fp1); system("pause"); menu();void query() /*定義查詢函數(shù)*/ int i; char a10; void menu(); FILE *fp; if(fp=fopen("student

15、message","r")=NULL) printf("cannot open filen"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student),1,fp); printf("輸入要查詢學(xué)生的姓名:"); scanf("%s",a); for(i=0;i<n;i+) if(strcmp(,a)=0) printf("t%st%st%dn",stui.num,,

16、stui.score); fclose(fp); system("pause"); menu();void revise() /*定義修改函數(shù)*/ int i,t; char name10; void menu(); FILE *fp,*fp1; if(fp=fopen("student message","r")=NULL) printf("cannot open filen"); exit(0); for(i=0;i<n;i+) fread(&stui,sizeof(struct student)

17、,1,fp); if (fp1=fopen("student message","w")=NULL) printf("can not open file!n"); exit(0); printf("請輸入要修改學(xué)生的姓名:"); scanf("%s",name); for(i=0;i<n;i+) if(strcmp(,name)=0) t=i; printf("依次輸入要修改學(xué)生的學(xué)號(hào)、姓名、分?jǐn)?shù):"); scanf("%s %s %d&qu

18、ot;,stut.num,,&stut.score); for(i=0;i<n;i+) fwrite(&stui,sizeof(struct student),1,fp1); printf("該學(xué)生信息已修改成功!"); fclose(fp); fclose(fp1); system("pause"); menu();void quite() /*退出*/ printf("再見!nn");void menu() /*定義菜單函數(shù)*/ switch(menu_select() case '1': input();break;case '2': display();break;case '3': sort();break;case '4': insert();break; case '5': delet();break; case '6': query();break;

溫馨提示

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

評(píng)論

0/150

提交評(píng)論