C語言課程設計大作業——學生成績管理系統詳細(含實驗報告內容)

寫在前面:歡迎來到「發奮的小張」的博客。我是小張,一名普通的在校大學生。在學習之餘,用博客來記錄我學習過程中的點點滴滴,也希望我的博客能夠更給同樣熱愛學習熱愛技術的你們帶來收穫!希望大家多多關照,我們一起成長一起進步。也希望大家多多支持我鴨,喜歡我就給我一個關注吧!

一、設計的目的

1在編輯應用程序過程中,逐步加深對高級語言編程的理解,全面掌握《高級語言程序設計》關鍵知識點,掌握高級語言中數組、結構體等方面的知識。
2培養學生查閱文獻、手冊的自學能力,通過獨立思考深入研究有關問題,懂得自己分析,自己解決問題的方法。
3加強實踐能力,動手能力,同時進一步對所學知識進行鞏固。
4加強高級語言的編程能力。

二、需求與功能分析

1)需求分析

學生成績管理系統主要提供成績查詢,方便管理的網上的信息查閱平臺,學生可以通過該系統查閱與自己相關信息,查看留言、提交留言。教師可以通過成績管理系統查閱學生成績信息
根據開發要求,學生成績管理系統主要應用於教育系統,完成對日常的教學、教務、教師以及學生的計算機化的管理。開發學生成績管理系統可使學院教職員工減輕工作壓力,比較系統地對教務、教學上的各項服務和信息進行管理,同時,可以減少勞動力的使用,加快查詢速度、加強管理,以及國家各部門關於信息化的步伐,使各項管理更加規範化。目前,學校工作繁雜、資料重多。目前,管理信息系統已進入高校,但還未普及,而對於學生成績管理來說,目前還沒有一套完整的、統一的系統。因此,開發一套適和大衆的、兼容性好的系統是很有必要的。

2)功能分析

學生成績管理系統包括4個模塊:輸入學生資料,輸出學生資料,查找學生資料,修改學生資料。這4個模塊既相互聯繫又相互獨立。
本系統根據學生成績管理的需要,而建立一個“學生成績管理系統”,以方便對成績的各項管理操作。本系統能對成績進行輸入和輸出;能按姓名對學生進行排序,並顯示學生資料、成績等,不過得以系統輸入學生資料、成績爲前提;能添加學生成績資料;能根據學生的學號來查詢該學生的成績資料,並修改該學生信息;

三、軟件運行環境及設計內容等

主要功能:

1、錄入學生信息
主函數調用添加函數,系統提示輸入學期、學生姓名、班級、四門課程成績、學號。輸入後將出現提示語是否繼續添加學生信息,輸入“N”或“n”取消添加並返回主菜單,輸入其他任意值繼續輸入下一位同學。
2、查詢學生的信息
選擇此功能後。系統中已有學生信息,查找該學生資料.系統會提示你輸入要查詢的學號,輸入完畢後系統就會顯示該學生資料和各科成績等信息。若查詢無此人,則顯示查找不到的提示信息。
2、輸出不及格科目學生信息
選擇此功能後,需要輸入科目的編號,按學生科目輸出班級內不及格學生的成績及名單。
3、採用冒泡排序法進行排序
採用計算學生平均分來作排序因子,用冒泡法由大到小或者由小到大對學生信息進行排序。
4、打印全部學生信息
主菜單函數調用打印函數。主要功能用來對學生的成績進行輸出,此處可以選擇按照成績由大到小輸出或者由小到大輸出。可以顯示所有學生的學號,姓名和各科成績,平均成績。
5、修改學生的信息
在系統已有學生信息的前提下,想要查找該學生資料,可以輸入該學生姓名,系統就會顯示該學生資料和各科成績等信息,這樣就可以修改該學生的資料,成績等信息。
0.退出

四、系統模塊結構圖

在這裏插入圖片描述

一些程序測試數據:

1、輸入學生信息
在這裏插入圖片描述

2、按班級輸出學生的成績
在這裏插入圖片描述

3、輸出不及格學生名單及成績
在這裏插入圖片描述

4、按照成績高低輸出學生的成績

在這裏插入圖片描述

5、通過學號查詢學生的成績

在這裏插入圖片描述

6、通過學號修改一個學生的信息
在這裏插入圖片描述

部分c語言代碼:

#include<stdio.h>
#define N 200//最大人數   
//now記錄當前存儲的學生數量  
int now=0;               
struct student
{
 int num;
 int term;
 int classe;
 char name[10];
 float score[4];
 float sum;
 float aver;
}stu[N];

 void input();//學生信息錄入
 void sort();//按成績排序
 void update();//修改成績
 void search();//按學號查詢成績
 void output();//按班級輸出學生信息
 void lofstudent();//不及格學生名單
 void menu();//顯示系統主菜單函數

//主函數
void main(void)
{
   
	int op;//operation
	menu();
    scanf("%d",&op);     
	while(op!=0)
	{
		switch(op)
		{		  
		  case 1:
				input();
				break;
		  case 2:
				sort();
				output();
				break;
		  case 3:
				update();
				break;
		  case 4:
				search();
				break;
		  case 5:
				lofstudent();
				break;
		  default:printf("沒有此選項,請重新輸入!");
		}
       	menu();
       scanf("%d",&op);
	}
}

//顯示系統主菜單函數
void menu()  
{
     printf("               學生信息管理系統           \n");
	 printf("   *************************************  \n");
	 printf("   *  0:退出       1 :輸入學生信息     *  \n");
	 printf("   *  2:輸出信息   3 :修改信息         *  \n");
	 printf("   *  4:查詢成績   5 :不及格科目及名單 *  \n");
	 printf("   *************************************  \n");
}


//學生信息錄入
void input()                                   
{ 
 char ch;
 int i=0,j=0; 
 do
 { 
   printf("請輸入班級: ");
   scanf("%d",&stu[i].classe);
   printf("請輸入學期: ");
   scanf("%d",&stu[i].term);
   printf("請輸入學號:  ");
   scanf("%d",&stu[i].num);
   printf("請輸入姓名: ");
   scanf("%s",&stu[i].name);
   printf("請輸入4門課程的分數(分別爲語文,數學,英語,計算機):");
   for(j=0;j<4;j++)
   {	
	   scanf("%f",&stu[i].score[j]);
	   //每個學生的總分
	   stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];    
	   //每個學生的平均分
	   stu[i].aver=stu[i].sum/(float)4.0;                         
   }
   //讀取一個鍵盤迴車
   getchar();
   printf("您還要繼續輸入嗎?輸入y/n(確認/取消)\n");
   //讀取當前的鍵盤輸入,判斷是否繼續輸入
   ch=getchar();
   now=++i;
 }while(ch!='n');
}
此程序博主已經上傳到csdn資源了,需要的小夥伴可以通過這個鏈接進去下載。

鏈接: 點我下載.
另外,如果有小夥伴想要實驗報告的話,可以下載後私信我,我免費發你實驗報告!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章