學生成績管理系統數據結構_第1頁
學生成績管理系統數據結構_第2頁
學生成績管理系統數據結構_第3頁
學生成績管理系統數據結構_第4頁
學生成績管理系統數據結構_第5頁
免費預覽已結束,剩余11頁可下載查看

下載本文檔

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

文檔簡介

1、洛陽理工學院程設計報課程名稱數據結構課程設計學生成績管理系統計算機科學與技術課程設計任務書設計題目:學生成績管理系統(1)(2)(3)(4)其中:(1)(2)(3)(4)設計內容與要求:編寫一個簡單的學生信息管理程序,能實現對學生信息的簡單管理。建立一個4個學生的信息登記表,每個學生的信息包括:學號,姓名,和3門課程的成績(FOX,C,ENGLISH程序運行時顯示一個簡單的菜單,例如:信息輸入(INPUT總分統計(COUNT總分排序(SORT查詢(QUERY 對4個學生的信息進行輸入;對每個學生的3門課程統計總分;對4個學生的總分按降序排序并顯示出來;查詢輸入一個學號后,顯示出該學生的有關信息

2、;課程設計評語成績:指導教師:三.數據結構0四.總體設計11.結構圖12.流程圖1五.詳細設計11.錄入模塊12.瀏覽模塊23.排序模塊24.查找模塊2六.測試與調試. 2七.源程序清單.3.問題描述 .基本要求00.問題描述編寫一個簡單的學生信息管理程序,能實現對學生信息的簡單管理。二. 基本要求建立一個4個學生的信息登記表,每個學生的信息包括:學號,姓名,和 門課程的成績(FOX,C,ENGLIS)信息輸入(INPUT 總分統計(COUNT 總分排序(SORT 查詢(QUERY程序運行時顯示一個簡單的菜單,例如:(1)(2)(3)(4)對4個學生的信息進行輸入;對每個學生的3門課程統計總分

3、;對4個學生的總分按降序排序并顯示出來; 查詢輸入一個學號后,顯示出該學生的有關信息;其中:(1)(2)(3)(4)三. 數據結構struct stude ntchar num10;/* 學號 */char name20;/* 姓名 */int fgrade;/*佛學成績*/int cgrade;/*C語言成績*/int egrade;/*英語成績*/int total;/*總分*/st100;四. 總體設計1.結構圖學生信息管理系統圖 4.1 2.流程圖2.1數錄入函菜單選擇信息錄入信開瀏覽信息排序信息查詢2.2排序函數開始2.3查詢函數按學號查詢按姓名查詢2.4按學號查詢函數輸出排序結果存

4、L輸入查詢方” I 一2.5按姓名查詢函數(同上)輸入要1.錄入模塊Uq返用回菜單號.查循詢J函11調用按姓 名查詢函輸出該學數的信W 用來儲存N個學生的所有信息(學 、C語言成績定義一個結構struct號 sti.num 、姓名 、佛 學成績 sti.fgrade sti.cgrade、英語成績sti.egra結束|)。通過for循環輸入所有學生信息。用古回菜printf語句提示需要輸入的內容,接著用 seanf語句輸入相應內容。輸入完畢后 套用保存函數save(m)將所輸入的信息寫入指定文件。2. 瀏覽模塊聲明整形變量i和count,其中記錄輸出的學生序數,count用來

5、接收調用瀏 覽函數時所傳遞過來的實參,將其值傳遞給導出函數load(m),使得導出的學生人數與瀏覽的學生人數保持一致。通過調用load函數后(即給em數組賦值),用 for循環輸出每一個學生的各種信息。3. 排序模塊聲明整形變量i,j和結構體變量struct student temp,用for循環實現排序功能,利用冒泡法,以 sti.totalvstj.total為條件進行排序。最后用printf輸出排序結果。聲明整型變量k,先用printf語句顯示查詢菜單,用scanf輸入選擇的查詢口4. 查找模塊方式的代號,用switch(k)進入所選擇的具體查詢函數,包括學號查詢,姓名查 詢兩種方式。學

6、號查詢中,用scanf語句輸入需要查詢的學號,并賦值給num用for循環,循環主體判斷emi.num中是否有輸入的學號。如果有,用printf語句輸出 與學號相對應的該學生的所有信息,再跳出循環。按姓名查詢與此方法類似,不 再敘述。六.測試與調試1.運行程序,進入主菜單圖6.1 主菜單2.輸入數字“1”,創建學生信息圖6.2 輸入職工信息3.輸入數字“ 2”,瀏覽學生信息圖6.3瀏覽職工信息4.輸入數字“ 3”,按總分排序 V'>按學號查詢請按丄,按姓名查詢請按2m 噸.VJ心如上站民認畑卩數癖吞構課設0曲旳學生成績宵理票統心貳3請再次選扌筆你需要操作的步驟<1-4>

7、 :3按總分排序學號姓名怫學成績匚語巨成績英語成績01aa78907624402ee95636922703hb76469321504478372202是否繼續運行Cvor n )<5.輸入數字“ 4” ,查詢學生信按總分排序5.1選擇查詢方式“ 1”X," C:Users1l 23Desktop|gStiSDebug生成績脣理系請再次選擇你需要操作的步驟<1-4> =4查詢學生信息5.2選擇查詢方式“ 2” 圖6.5按學號查詢圖6.6 按姓名查詢七.源程序清單#i nclude <stdio.h>請輸入查詢方式;丄請輸入要查找的學號:02學號佛學成績C語

8、芻成績英語成績總分P2ee95227Tressanv keyto enter menu#include <stdlib.h> #include <string.h> struct student 佛學成績 */語言成績 */ 英語成績 */ 總分*/char num10;/* 學號 */ char name20;/* 姓名 */ int fgrade;/* int cgrade;/*C int egrade;/* int total;/* st100; void menu(); void input(); void save(int m); void save(); v

9、oid display(); void search(); void search_num(); void search_name(); void sort_total(); int load();/*定義各函數 */int m; void main() menu(); int n=0,flag; char a; do printf(" 請選擇你需要操作的步驟 (1-4):n"); scanf("%d",&n); if(n>=0&&n<=4) flag=1; break; else flag=0; printf(&qu

10、ot; 您輸入有誤,請重新選擇 !"); while(flag=0);while(flag=1)switch(n)case 1:printf("nn");printf("n");input();break;case 2:printf("nn");printf("n");display();break;case 3:printf("nn");printf("n");sort_total();break;case 4:printf("nn");pri

11、ntf("n");search();break;case 0:exit(0);break;default:break;getchar();printf("n");printf(" 是否繼續運行(scanf("%c",&a);if(a='y')flag=1; system("cls"); /* 輸入學生按總分信息信息排序 查 詢 學 生 信 息y or n ) :n");清屏*/menu(); /* 調用菜單函數 */ printf(" 請再次選擇你需要操作的步驟

12、 (1-4):n"); scanf("%d",&n);printf("n");elseexit(0); void menu() /*printf(" *n");printf(" printf(" printf(" printf(" printf(" printf(" *n");菜單函數 */*.0.歡迎進入 學 生信息管理系統錄入學生信息 n"); 瀏覽學生信息 n"); 按總分排序 n");查詢學生信息

13、 n"); 退出n");*謝謝使用printf("n"); printf("n");輸入學生信息并保存 */void input() /*int i;printf(" 請輸入需要創建信息的學生人數 (1-10):n"); scanf("%d",&m);for(i=0;i<m;i+) printf(" 請輸入學號 :"); scanf("%s",sti.num); printf(" 請輸入姓名 :"); scanf(&quo

14、t;%s",); printf(" 請輸入佛學成績 :"); scanf("%d",&sti.fgrade); printf(" 請輸入 C 語言成績 :"); scanf("%d",&sti.cgrade); printf(" 請輸入英語成績 :"); scanf("%d",&sti.egrade); sti.total=sti.fgrade+sti.cgrade+sti.egrade; /* 信息輸入已經完成 */ sav

15、e(m); return;/* 返回主界面 */void display()/* 瀏覽學生信息 */int i;int count=0; m=load();printf("n學號t姓名t佛學成績tC語言成績t英語成績t總分n");/* 輸出學生信息 */for(i=0;i<m+count;i+)printf("n%st%st%dtt%dtt%dtt%dn",sti.num,,sti.fgrade,sti.cgrade,sti.egrade,sti.total);按總分排序 */void sort_total() /*int i,j;

16、struct student temp; /* 聲明結構體變量 */printf("t 學號t姓名t佛學成績tC語言成績t英語成績t總分 n");for(i=0;i<m;i+)/* 對數據進行排序 */ for(j=i+1;j<m;j+) if(sti.total<stj.total) temp=sti;sti= stj;stj=temp;printf("nt%st%st%dtt%dtt%dtt%dn",sti.num,,sti.fgrade,sti.cgrade,sti.egrade,sti.total); void

17、search() int k; /* m=load();printf("nprintf("n/* 查詢函數 */定義局部變量 */按學號查詢請按 1, t請輸入查詢方式 :");按姓名查詢請按 2n");scanf("%d",&k);switch(k)/* 查詢方式的選擇 */case 1:search_num();break;/* case 2:search_name();break;/* 按學號查詢 */按姓名查詢 */printf("nPress any key to enter menu"getch

18、ar();return; /* 返回主界面 */void search_num()/*(1) 按學號查找 */int i;char temp30;printf("n 請輸入要查找的學號 :");scanf("%s",temp);for( i=0;i<m;i+)if(strcmp(temp,sti.num)=0)printf("n學號t姓名t佛學成績tc語言成績t英語成績t總分n");printf("n%st%st%dtt%dtt%dtt%dn",sti.num,,sti.fgrade,sti.cgrade,sti.egrade,sti.total);void search_name()/*(2) 按姓名查找 */int i;char temp30;printf("n 請輸入要查找的姓名 :");scanf("%s",temp);for( i=0;i<m;i+)if(strcmp(temp,)=0)學號t姓名t佛學成績tC語言成績t英語成績printf("nt 總分 n");printf("n%st%st%dtt

溫馨提示

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

評論

0/150

提交評論