第一篇:學生成績管理數據庫的建立
學生成績管理數據庫的建立
2、構建一個教學管理關系數據庫如下: 學生(學號,姓名,性別,年齡,籍貫,班級代號)課程(課程號,課程名稱,學分數,教師代號)成績(學號,課程號,成績,考試時間)教師(教師代號,姓名,性別,年齡,職稱)
為方便起見,上述關系用英文字母表示如下:
S(,NAME,SEX,AGE,JG,CLASSNO)
C(CNAME,XF,TNO)
G(GRADE,DATE)
T(NAME,SEX,AGE,ZC)
上述關系模式中,帶下劃線的屬性為各自關系的關鍵字,其中學生表輸入20條記錄;課程表輸入10條記錄;成績表輸入100條記錄;教師表入5條記錄。基于這些關系表,做如下查詢:
(1)找出男性學生的姓名
(2)找出不是“2031”班的學生
(3)查詢“李峰”老師所教課程的課程名稱和學分
(4)檢索出選修了課程代號為“c11”和“c23”課程的學生
(5)查詢至少選修了一門“李峰”老師的課程的學生姓名
(6)求選修了課程名為“數據庫原理”的所有學生的學號和姓名
(7)找出學生代號為“S101”和“S102”兩個學生都選修了的課程
(8)檢索出沒有被任何學生選修的課程
(9)求出每個學生的成績的平均分和總分
(10)求至少三門以上課程成績在90分以上的學生學號
(11)求獲得學分數在200以上的學生
(12)求出少于10個學生選修的課程
(13)求出有四門課程考試不及格的學生的姓名
(14)求出每個老師所教課程的學分總數
(15)求出教了三門課以上的老師
(16)求出只教一門課程的老師
求出每一個班級中每一門課程獲得最高分的學生的學號
第二篇:建立學生成績管理系統
問題的提出:編程建立學生成績管理系統。要求具有以下功能:一個學生的信息包括學號、姓名、英語成績、語文成績、數學成績,要求輸入每位學生的信息并顯示這些信息;同時計算每位學生的總分即英語、語文、數學成績之和,并對輸入的若干學生按總分排名,按總分名次輸出每位學生及其信息;最后計算這些學生的英語平均分、語文平均分和數學平均分,并輸出結果。
第三篇:學生成績管理
為方便編程采用C++實現,同C類似,區別不大:
(1)學號為負數時結束輸入:
#include“stdafx.h”
#define NULL 0
#include
#include
#include
using namespace std;
//聲明結構體類型
typedef struct stnode
{
int id;//學號
char name[16];//姓名
intclass[4];//課程成績數組
float ave;//學生個人所有課程的平均成績struce stnode *next;//指針域
}Students;
// 函數原型聲明
void PrintFailStudent(Student*head);
void PrintSuccessStudent(Student*head);void DeleteLink(Student*head);
Student*input_data();
void main()
{
Student*head=input_data();
Student*input_data();//調用input_data函數,錄入學生信息
PrintFailStudent(head);//調用PrintFailStudent函數,存在不及格的學生
void PrintSuccessStudent(Student*head);//打印平均分90分以上的學生
DeleteLink(head);//調用DeleteLink函數,釋放內存
}
//
{
int id;// 定義一個整數變量,存放學號
string name;//學生姓名
int class;//課程號
int scores;//各科成績
int totl_score;//各科總成績
Student *head=NULL, *temp;// 定義兩個結構體指針
cout<<”開始錄入學生成績:”;
while(1){cout<<“請輸入學生學號:”;cin>>id;// 輸入學號 if(id<0){// 學號為負數時結束錄入break;錄入學生信息 Student*input_data()
}
temp=new Student;// 向內存動態申請一個結構體結點 cout<<“請輸入學生姓名:”;
for(int a=0;a<=sizeof(a[0]);a++){temp->id=id;// 將輸入的學號存入結構體結點的學號成員變量temp->name=name;// 存入學生姓名
cout<<“請輸入學生課程”+a+”的成績:”;
cin>>scores;// 輸入學號
totl_score=totl_score+scores;//總成績
temp->class[a]=scores;// 課程1的成績錄入}
ave=totl_score/sizeof(a[0]);
}
// 打印不及格學生信息
void PrintFailStudent(Student*head)
{
cout<<”存在不及格學生信息:”;
cout<<“學號”< id< } } // 打印90平均分學生 void PrintSuccessStudent(Student*head){ } // 釋放鏈表中的所有到結點 void DeleteLink(Student*head){ } Student*p;while(head!=NULL)// 頭指針非空時循環 {} p=head;// 記住當前頭指針 head=head->next;//當前頭指針移到下一個結點 delete p;// 刪除結點 for(Student*p=head;p!=NULL;p=p->next)cout<<”平均分為90分以上的學生學號:”+p->id;if(p->ave>=90){} 寧波大紅鷹學院 項目名稱:項目組長:項目成員:班級名稱:專業名稱:完成時間:信息工程學院 課 程 設 計 報 告 學生成績管理系統 黃輪 蔡萍萍、邵芬芬、雷驍 09計科1、09計科2 計算機科學與技術 2010.11.3 信息工程學院制 目 錄 1課程設計過程概述 ……………………………………………………………………….1 2課程設計題目描述和基本設計要求……………………………………………………...1 2.1課程設計題目描述……………………………………………………………………..1 2.2基本設計要求…………………………………………………………………………..1.3系統需求分析與設計………………………………………………………………………1 3.1系統需求分析…………………………………………………………………………..1 3.2其他需求分析…………………………………………………………………………..1 3.3系統設計………………………………………………………………………………..1 4各功能模塊設計……………………………………………………………………………1 4.1學生成績管理系統錄入學生成績模塊設計…………………………………………..1 4.2求各門課程的平均分模塊設計………………………………………………………..2.4.3求各門課程的最高分模塊設計………………………………………………………..3 4.4求各門課程的最低分模塊設計………………………………………………………..4 4.5查詢所有學生信息的模塊設計………………………………………………………..5 4.6查詢個別學生成績的模塊設計………………………………………………………..5 4.7退出系統的模塊設計……………………………………………………………….….6 5系統總代碼……………………………………………………………………………..…..7 6課程設計總結……………………………………………………………………………...10.6.1遇到的問題及解決辦法……………………………………………………………….10 6.2心得體會……………………………………………………………………………….10.學生成績管理系統 1課程設計過程概述 在2010年11月,我們進行了JAVA課程的第一個課程設計學生成績管理系統,要求我們在課后完成,并且及時接受答辯。這次課程設計的主要目的是結合Java程序設計課程,培養我們的思維,提高用Java編程的實際動手能力并增強大家對JavaZ這門課程的了解。這次課程設計的主要內容是獨立用Java語言開發一個小的應用程序,學生成績管理系統,從而深刻體會Java的應用性及其作用。 2課程設計題目描述和基本設計要求 2.1課程設計題目描述 我們設計的是學生成績管理系統。主要用到的是做一個學生成績管理的界面,可以在很短的時間內存儲學生信息,并且及時查到某個學生的相關信息。2.2基本設計要求 (1)系統安全、靈活、可靠; (2)功能齊全; (3)操作方便、簡單,界面友好; 3系統需求分析與設計 3.1系統需求分析 功能目標: ? 輸入班級n個同學的學號,姓名,四科成績(應用數學、大學英語、Java程序設計、計算機應用基礎) ? 計算出每個學生四門課的平均成績,并輸出。 ? 輸出全組各科平均分,最高分和最低分。? 輸入姓名查詢成績 3.2其他需求分析 技能要求: ? 通過定義學生類,建立學生對象,學會運用面向對象思想進行程序設計。 ? 通過對學生信息的輸入/輸出,初步掌握Java基本輸入/輸出方法。? 通過菜單處理,掌握字符界面的菜單處理能力。? 了解復雜問題的分析、設計、規劃的一般流程。 3.3系統設計 要求學生成績管理系統用字符界面實現、也可用圖形界面實現,并能實現客戶端的查閱。 4各功能模塊設計 4.1學生成績管理系統錄入學生成績模塊設計 錄入學生的成績,可以方便用戶管理更多的信息 主要的功能代碼: case 1: for(i=0;i System.out.print(“請輸入該生的學號:”);s[i].num=in.skip(“n”).nextLine();System.out.print(“請輸入該生的姓名:”);s[i].name=in.nextLine();System.out.print(“請輸入該生的應用數學成績:”);s[i].Math_1=in.nextDouble();System.out.print(“請輸入該生的英語成績:”);s[i].English=in.nextDouble();System.out.print(“請輸入該生的java成績:”);s[i].Java_1=in.nextDouble();System.out.print(“請輸入該生的計算機成績:”);s[i].Computer=in.nextDouble(); } break;圖1 4.2求各門課程的平均分模塊設計 在這一界面我們要通過已有的數據,得出各門學科的平均分 主要的功能代碼: case 2: double Math_1sum=0,Englishsum=0,Java_1sum=0,Computersum=0;double Math_1pj=0,Englishpj=0,Java_1pj=0,Computerpj=0;for(i=0;i Englishsum=Englishsum+s[i].English;Java_1sum=Java_1sum+s[i].Java_1;Computersum=Computersum+s[i].Computer;} Math_1pj=Math_1sum/i;Englishpj=Englishsum/i;Java_1pj=Java_1sum/i;Computerpj=Computersum/i;System.out.println(i+“位同學應用數學的平均分為:”+Math_1pj);System.out.println(i+“位同學英語的平均分為:”+Englishpj);System.out.println(i+“位同學Java的平均分為:”+Java_1pj);System.out.println(i+“位同學計算機的平均分為:”+Computerpj);break; 圖2 4.3求各門課程的最高分模塊設計 在聊天界面中,用戶可以得出各門課程的最高分 主要的界面代碼為: case 3: double Math_1max=0,Englishmax=0,Java_1max=0,Computermax=0;for(i=0;i if(s[i].Math_1>Math_1max) Math_1max=s[i].Math_1;if(s[i].English>Englishmax) Englishmax=s[i].English;if(s[i].Java_1>Java_1max) Java_1max=s[i].Java_1;if(s[i].Computer>Computermax)Computermax=s[i].Computer; } System.out.println(“應用數學最高分:”+Math_1max);System.out.println(“英語最高分:”+Englishmax);System.out.println(“Java最高分:”+Java_1max);System.out.println(“計算機最高分:”+Computermax);break;圖3 4.4求各門課程的最低分模塊設計 主要是能得出各門課程的最低分 主要的界面代碼為: case 4: double Math_1min=120,Englishmin=120,Java_1min=120,Computermin=120;for(i=0;i Math_1min=s[i].Math_1;if(s[i].English Englishmin=s[i].English; if(s[i].Java_1 Java_1min=s[i].Java_1;if(s[i].Computer } System.out.println(“應用數學最低分:”+Math_1min);System.out.println(“英語最低分:”+Englishmin);System.out.println(“Java最低分:”+Java_1min);System.out.println(“計算機最低分:”+Computermin);break; 圖4 4.5查詢所有學生信息的模塊設計 主要是為了快速的查出所有學生的信息 主要的界面代碼為: case 5: for(i=0;i System.out.print(“姓名:”+s[i].name);System.out.print(“應用數學:”+s[i].Math_1);System.out.print(“英語:”+s[i].English);System.out.print(“Java:”+s[i].Java_1);System.out.println(“計算機:”+s[i].Computer);} break;圖5 4.6查詢個別學生成績的模塊設計 主要是為了快速的查出個別學生的信息 主要的界面代碼為: case 6: System.out.print(“請輸入要查找的姓名:”);int j=0;String name=in.skip(“n”).nextLine();for(i=0;i System.out.println(“學號:”+s[i].num); System.out.println(“姓名:”+s[i].name); System.out.println(“應用數學:”+s[i].Math_1); System.out.println(“英語:”+s[i].English); System.out.println(“Java:”+s[i].Java_1); System.out.println(“計算機:”+s[i].Computer); j=s.length;} } if(j==0) System.out.println(“沒有你要查找的人,請確認后再查找!”); 圖6 break; 查無此人的情況下: 4.7退出系統的模塊設計 當查詢結束的時候可以順利的退出。 主要的界面代碼為: case 7: System.out.println(“byebye!”); System.exit(0);default: System.out.println(“您輸入的數字有誤,應為1~7”);圖7 5系統總代碼 import java.util.*;class Student{ String num; String name;double Math_1,English,Java_1,Computer; } public class StudentMassage{ public static void main(String[] args){ Student[]s=new Student[3];int i;for(i=0;i } while(true){ System.out.println(“**********學生成績管理系統**********”);System.out.println(“1.錄入學生成績”);System.out.println(“2.求各門課程的平均分”); System.out.println(“3.求各門課程的最高分”);System.out.println(“4.求各門課程的最低分”);System.out.println(“5.查詢所有學生信息”);System.out.println(“6.查詢個別學生成績”);System.out.println(“7.退出系統”);System.out.print(“請選擇:”);Scanner in=new Scanner(System.in);int x=in.nextInt(); switch(x){ case 1: for(i=0;i System.out.println(“請輸入第”+(i+1)+“個學生的成績信息”); System.out.print(“請輸入該生的學號:”); s[i].num=in.skip(“n”).nextLine();System.out.print(“請輸入該生的姓名:”);s[i].name=in.nextLine();System.out.print(“請輸入該生的應用數學成績:”);s[i].Math_1=in.nextDouble();System.out.print(“請輸入該生的英語成績:”);s[i].English=in.nextDouble();System.out.print(“請輸入該生的java成績:”);s[i].Java_1=in.nextDouble();System.out.print(“請輸入該生的計算機成績:”);s[i].Computer=in.nextDouble();} break;case 2: double Math_1sum=0,Englishsum=0,Java_1sum=0,Computersum=0;double Math_1pj=0,Englishpj=0,Java_1pj=0,Computerpj=0; for(i=0;i Math_1sum=Math_1sum+s[i].Math_1;Englishsum=Englishsum+s[i].English;Java_1sum=Java_1sum+s[i].Java_1;Computersum=Computersum+s[i].Computer;} Math_1pj=Math_1sum/i;Englishpj=Englishsum/i;Java_1pj=Java_1sum/i;Computerpj=Computersum/i;System.out.println(i+“位同學應用數學的平均分為:”+Math_1pj);System.out.println(i+“位同學英語的平均分為:”+Englishpj);System.out.println(i+“位同學Java的平均分為:”+Java_1pj);System.out.println(i+“位同學計算機的平均分為:”+Computerpj);break;case 3: double Math_1max=0,Englishmax=0,Java_1max=0,Computermax=0;for(i=0;i Math_1max=s[i].Math_1;if(s[i].English>Englishmax) Englishmax=s[i].English;if(s[i].Java_1>Java_1max) Java_1max=s[i].Java_1;if(s[i].Computer>Computermax)Computermax=s[i].Computer; } System.out.println(“應用數學最高分:”+Math_1max);System.out.println(“英語最高分:”+Englishmax);System.out.println(“Java最高分:”+Java_1max);System.out.println(“計算機最高分:”+Computermax);break;case 4: double Math_1min=120,Englishmin=120,Java_1min=120,Computermin=120; for(i=0;i Math_1min=s[i].Math_1; if(s[i].English Englishmin=s[i].English;if(s[i].Java_1 Java_1min=s[i].Java_1;if(s[i].Computer } System.out.println(“應用數學最低分:”+Math_1min);System.out.println(“英語最低分:”+Englishmin);System.out.println(“Java最低分:”+Java_1min);System.out.println(“計算機最低分:”+Computermin); } } } } break;case 5: for(i=0;i System.out.print(“學號:”+s[i].num); System.out.print(“姓名:”+s[i].name); System.out.print(“應用數學:”+s[i].Math_1); System.out.print(“英語:”+s[i].English); System.out.print(“Java:”+s[i].Java_1); System.out.println(“計算機:”+s[i].Computer);} break;case 6: System.out.print(“請輸入要查找的姓名:”);int j=0;String name=in.skip(“n”).nextLine();for(i=0;i if(s[i].name.equals(name)){ System.out.println(“學號:”+s[i].num); System.out.println(“姓名:”+s[i].name); System.out.println(“應用數學:”+s[i].Math_1); System.out.println(“英語:”+s[i].English); System.out.println(“Java:”+s[i].Java_1); System.out.println(“計算機:”+s[i].Computer); j=s.length;} } if(j==0)System.out.println(“沒有你要查找的人,請確認后再查找!”);break;case 7: System.out.println(“byebye!”); System.exit(0);default: System.out.println(“您輸入的數字有誤,應為1~7”);6課程設計總結 6.1遇到的問題及解決辦法 在此次課程設計中,我遇到了一些問題,如:不能很好的將C語言的代碼轉化成Java語言,對于Java語言,只學習到了一些最基本的知識,這導致編寫程序時經常出現一些語法錯誤,而且要在短時間內用Java語言來設計一個具體的系統是一個較大的挑戰;自己感覺難以動手,這表明所學的知識不能靈活運用到實際中。 對于以上的問題,自己有清楚的認識,首先必須要對計算機產生興趣,多閱讀相關的書籍,多跟精通此方面的老師和同學交流、像他們學習。還有就是應該多動手編程。6.2心得體會 由于對java這門課還未深入了解,這是第一次小組合作設計程序,剛開始我們對它真的是很無措的,不知道該從哪里入手;經過指導老師的部分講解和演示,我們茅塞頓開,著手開始編寫代碼,可是寫著寫著就出現問題了,程序實現不了,也改不出錯誤;后來無意中一位組員將字體改變了一下,程序錯誤變少了。檢查一發現我們程序中字體錯竟占絕大部分。再想想,這是因為我們寫的過程中不夠仔細,對細節問題還不夠注重,以致最后的程序出現大批量的錯誤。不過在我們的后續檢查中,這一問題已經完全解決了。當然,寫的過程中遇到的問題肯定不止這樣的,但最后在指導師與我們齊心協力的修改后,這些難題將不是問題了。程序完成后,我們真的很開心,雖然困難重重,但我們最終還是有了一個很好的結束啊。 這個實驗讓我們對java有更進一步的了解,也讓我們對它產生了極大地興趣,希望我們以后兩次的實驗也能順利完成。 //*學生成績管理系統*// #include #define N 3 struct student { int no; char name[20]; float english; float computer; float math; float average; }; void getclass(struct student *class_gishui) { int i; printf(“請輸入%d個學生的學號 姓名 英語 計算機 數學n”,N); for(i=0;i { printf(“第%d個學生”,i+1); scanf(“%d%s%f%f%f”,&class_gishui[i].no,&class_gishui[i].name,&class_gishui[i].english,&class_gishui[i].computer,&class_gishui[i].math); } } void print_class(struct student *class_gishui) { int i; for(i=0;i { class_gishui[i].average=(class_gishui[i].english+class_gishui[i].computer+class_gishui[i].math)/3; } printf(“學生信息表如下:n”); printf(“學號tt姓名tt英語tt計算機tt數學tt平均成績n”); for(i=0;i printf(“%dtt%stt%ft%ft%ft%fn”,class_gishui[i].no,class_gishui[i].name,class_gishui[i].english,class_gishui[i].computer,class_gishui[i].math,class_gishui[i].average); } void paixu(struct student *class_gishui) { int i,j,flag; struct student t[1]; for(i=0;(i { flag=0; for(j=0;j if(class_gishui[j].average>class_gishui[j+1].average) { t[0]=class_gishui[j]; class_gishui[j]=class_gishui[j+1]; class_gishui[j+1]=t[0]; flag=1; } if(flag==0) break; } printf(“排序后學生成績為:n”); printf(“學號t姓名t英語tt計算機tt數學tt平均成績n”); for(i=0;i printf(“%dt%st%ft%ft%ft%fn”,class_gishui[i].no,class_gishui[i].name,class_gishui[i].english,class_gishui[i].computer,class_gishui[i].math,class_gishui[i].average); } void main() { struct student class_gishui[N]; getclass(class_gishui); print_class(class_gishui); paixu(class_gishui); }第四篇:學生成績管理報告
第五篇:學生成績管理系統