當前位置:首頁 » 考試成績 » 學生管理系統平均成績

學生管理系統平均成績

發布時間: 2021-01-06 08:14:32

⑴ 教務管理系統的成績排名和平均績點有變化嗎

優秀學生自主選擇轉專業(大學一年級第二學期進行)
(一)政策規定
「優秀學生自主選擇專業在第二學期進行。經過一個學期在校學習的在籍學生,符合以下條件的,可在全校范圍內申請轉專業:
(1)思想品德優良;
(2)所有修讀課程中無不及格課程;
(3)第一學期已修課程平均學分績點(不含公共體育課程)在3.0以上,且名列本專業前10%。
學校根據校內師資、教學管理與學生管理等具體情況,核定各專業每年允許專業調整的學生名額,公開發布當年轉專業的具體指標。
符合轉專業申請條件的學生在個人信息系統填寫轉專業志願的同時,向所在學院提交書面申請,所在學院在審核、院內公示後,在學校分配指標內依學分績點排名先後報教務處,教務處在審核後將符合轉專業條件的申請轉發學生申請轉入專業的所屬學院(接收學院),由接收學院按照成績優先原則擇優錄取。接收學院可以根據具體情況,會同教務處組織相應的轉專業考試或者面試。
對於符合轉專業條件的學生,由教務處在公示後,報請校長批准,予以專業調整。」(《南京審計學院本科學生轉專業實施細則(試行)》第六條)
(二)申請轉專業學生的基本資格與條件
普通本科在籍學生滿足以下條件者,均可自願提出轉專業申請:
(1)思想品德優良;
(2)所有修讀課程中無不及格課程;
(3)達到轉出專業最低學分績點要求(見教務處相關通知)。學分績點以學生個人信息系統中的為准,四捨五入並保留一位小數。
在入學時已被選拔到以下5個專業(方向)的學生不可再提出轉專業申請:審計學(ACCA方向)、會計學(CGA方向)、會計學(CPA方向)、會計學(中澳合作項目)、國際經濟與貿易(2+2)。
(三)全校各專業轉入計劃數及要求
學校根據校內師資、教學管理與學生管理等具體情況,確定各專業接收轉入計劃,各專業轉入計劃分配及要求見教務處相關通知。
(四)申請程序與時間進程安排
1、轉出
(1)學生在教務處通知規定日期前在個人信息系統中填寫轉專業申請表,提交確認後,列印申請表,簽名後交學生所在學院。逾期不再接受補報申請。
每個符合申請轉專業條件的學生,可選擇填報兩個專業志願。
(2)學生所在學院在規定日前按照《南京審計學院本科學生轉專業實施細則(試行)》的規定對學生申請進行審核,學院做出審核意見後直接通知學生,並對確定轉出人選進行公示,申請表經學生所在學院院長簽署審定意見後,報學籍管理科。
各二級學院不得再另行制定其它選拔標准與條件。
2、轉入
(1)各二級學院需要對申請轉入學生進行面試的,應於規定日期前將明確的面試方案書面稿報教務處備案,逾期未報的,視為不再單獨設置面試規則。
(2)學籍管理科匯總各學院同意轉出學生名單,審核屬實後轉給學生第一志願擬轉入專業所在學院。
(3)各二級學院在規定日期前,按照專業培養要求對申請轉入本專業的學生進行必要的審查(包括要求面試的進行面試),按學分績點高者優先的原則進行審核,不同意接受的需註明理由。申請表經學院院長簽署意見後,報學籍管理科。
(4)教務處按照學校關於轉專業工作規定的要求,對各二級學院上報的材料進行審核並報學校領導批准,轉專業名單經學校領導批准後在教務在線公示。
(5)教務處在公示期屆滿後,正式公布轉專業審批結果。本學期結束前按相關要求辦理轉專業手續。
本次經批准轉入會計學院、金融學院、經濟學院、管理學院、數學與統計學院、政治與行政學院等6個學院各專業的學生,不可參加按大類招生的學院內轉專業。
(五)轉專業工作的具體要求
1.各轉入專業如第一志願人數不滿,可調劑第二志願的學生。
2.經批准轉入新專業的學生於下學期正式參加轉入專業的學習,本學期必須在原專業完成學習任務並參加考試。
3.轉入新專業的學生執行新專業的培養計劃,教學要求相同的課程的學分可相互抵認,轉入專業中未取得學分的課程必須補修;原所在專業已學的課程在轉入專業中不作要求的,其學分可計入跨學科選修課。
4.學生轉專業申請被批准並辦理完轉入手續後,不可申請退轉。

⑵ 2.學生成績管理系統 (c語言做)

給你找一份類似的。不完全一致。做課程設計還是可行的。自己稍加修改即可!

總體設計
一、 仔細閱讀系統要求,首先將此系統化分為如下模塊(即如下函數)

1、輸入初始的學生信息:其中包括學生的姓名、學號和性別以及學生的語文、數學、英語和計算機等相關信息;可用函數cin(stu *p1)來實現此操作。

2、查詢模塊:可用stu *lookdata(stu *p1) 來實現。找到就輸出此學生全部信息包括學生的語文、數學、英語和計算機等的成績。

3、插入模塊:可用insert( )函數來實現。其中通過學號的大小來比較的,並且以此來排序。

4、輸出學生的信息以及成績:通過學生的姓名來查看學生的語文、數學、英語和計算機等相關成績,同時也可以分別通過caverage() 、maverage() 、eaverage() 和comaverage() 來輸出語文、數學、英語和計算機等成績的平均分數、最高和最低分數。

5、退出系統:可用一個函數exit()來實現,首先將信息保存到文件中,釋放動態創建的內存空間,再退出此程序。

二、系統主模塊結構圖:

詳細設計
一、 界面設計
此系統界面採用圖形和數字化菜單設計。
主界面設計如下:

學生成績管理系統

請選擇相應的數字執行相應的功能:
1:是否輸入其他數據
2:查看數據
3:插入數據
4:查找數據
5:更新數據
6:保留數據
7:顯示或列印數據
8:語文成績狀況
9:數學成績狀況
10:英語成績狀況
11:計算機成績狀況
12:?
13:退出系統
二、 數據結構設計:
程序設計中用到的結構體類型:
學生信息結構體類型:
typedef struct student{
char name[MAX];
int num[MAX];
char sex[MAX];
int chinese;
int mathematic;
int english;
int computer;
struct student *next;
}

程序代碼:
//原始密碼是123456
#include"stdio.h"
#include"stddef.h"
#include"stddef.h"
#include"string.h"
#define MAX 10
typedef struct student{ /*定義結構體*/
char name[MAX]; /*姓名*/
int num[MAX]; /* 學號*/
char sex[MAX]; /*性別*/
int chinese; /*語文*/
int mathematic; /* 數學*/
int english; /*英語*/
int computer; /*計算機*/
struct student *next; /*結構體指針*/
}stu;
stu *head; /*頭指針*/
void print() /*顯示或列印函數*/
{
system("cls");
printf("\t\t\tScore Manage System\n"); /*成績管理系統*/
printf("<1>Enter Record\t"); /*輸入數據*/
printf("<2>Display\t"); /*顯示*/
printf("<3>Insert\t"); /*插入數據*/
printf("<4>Quest\t"); /*訪問數據*/
printf("<5>Update\t"); /*以前數據*/
printf("<6>Save\t"); /*保留數據*/
printf("<7>Fresh\t"); /*更新數據*/
printf("<8>Chinese Average\t"); /*語文平均成績*/
printf("<9>Math Average\t"); /*數學平均成績*/
printf("<10>English Average\t"); /*英語平均成績*/
printf("<11>Computer Average\t"); /*計算機平均成績*/
printf("<12>Quit\t\n"); /*退出*/
}

void cin(stu *p1) /*輸入相關數據的函數*/
{ printf("Enter name:\n");
scanf("%s",&p1->name);
printf("Enter num:\n");
scanf("%d",&p1->num);
printf("Enter sex:\n");
scanf("%s",&p1->sex);
printf("Enter score:\n");
printf("Enter chinese:\n");
scanf("%d",&p1->chinese);
printf("Enter math:\n");
scanf("%d",&p1->mathematic);
printf("Enter English:\n");
scanf("%d",&p1->english);
printf("Enter Computer:\n");
scanf("%d",&p1->computer);
}
stu *cindata() /*其他數據是否繼續輸入的函數*/
{ stu *p1,*p2;
int i=1;
char ch;
p1=(stu *)malloc(sizeof(stu));
head=p1;
while(i)
{
cin(p1);
printf("Do you Want to Continue?yes or no"); /*是否繼續輸入數據*/
ch=getchar();
ch=getchar();
if(ch=='n'||ch=='N')
{ i=0;
p1->next=NULL;
}
else
{ p2=p1;
p1=(stu *)malloc(sizeof(stu));
p2->next=p1;
}
}
return(p1->next);
}

stu *lookdata(stu *p1) /*查看數據的函數*/
{
while(p1!=NULL)
{ printf("Num:%d\t",p1->num);
printf("Name:%s\t",p1->name);
printf("Sex:%s\t",p1->sex);
printf("\n");
printf("Chinese:%d\t",p1->chinese);
printf("Math:%d\t",p1->mathematic);
printf("English:%d\t",p1->english);
printf("Computer:%d\t",p1->computer);
printf("\n");
p1=p1->next;
}
return p1;
}

void insert() /*通過比較學號來插入數據的函數*/
{ stu *p1,*p3,*p2;
char ch;
p1=head;
p3=(stu *)malloc(sizeof(stu));

p3->next=NULL;
if(head==NULL){ head=p3; return;}
cin(p3);
while(p1!=NULL&&(p1->num<p3->num)) /*通過學號的比較來插入*/
{ p2=p1;p1=p1->next;}
if(p2==head) {p3->next=head; head=p3; return;}
p3->next=p1;
p2->next=p3;

}

find(stu *p2) /*通過姓名查找查看數據的函數*/
{ char name[20];
int b=0;
printf("Enter the name of the student you want to find:"); /*通過姓名查看*/
scanf("%s",name);
while(p2!=NULL)
{if(strcmp(name,p2->name)==0)
{
printf("The data you want has be found\n");
printf(" Name:%s\t",p2->name);
printf("Num:%d\t",p2->num);
printf("sex%s\t",p2->sex);
printf("\n");
printf("Chinese:%d\t",p2->chinese);
printf("Math:%d\t",p2->mathematic);
printf("English:%d\t",p2->english);
printf("Computer:%d\t",p2->computer);
printf("\n");

b=1;
}
else if(b==0)
printf("sorry not find data!");
p2=p2->next;
}

if(b==1)
{
print();
printf("Find one\n");}
else
{print();
printf("Not find\n");

}
}

void caverage() /*求各學生語文平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->chinese;
aver=sum/i;

p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->chinese)
max=p1->chinese;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->chinese)
min=p1->chinese;
}
printf("Chinese Average:%f",aver);
printf("Chinese Max:%f",max);
printf("Chinese Min:%f",min);
}

void maverage() /*求各學生數學平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->mathematic;
aver=sum/i;

p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->mathematic)
max=p1->mathematic;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->mathematic)
min=p1->mathematic;
}
printf("Mathe Average:%f",aver);
printf("Mathe Max:%f",max);
printf("Mathe Min:%f",min);
}

void eaverage() /*求各學生英語平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->english;
aver=sum/i;

p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->english)
max=p1->english;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->english)
min=p1->english;
}
printf("English Average:%f",aver);
printf("English Max:%f",max);
printf("English Min:%f",min);
}

void comaverage() /*求各學生計算機平均分、最高和最低分成績的函數*/
{ stu *p1;
int i;
float max=0.0,min=200.0;
float sum=0.0,aver=0;
p1=head;
if(p1==NULL)
printf("not data!");
else
{for(i=0;p1!=NULL;i++,p1=p1->next)
sum+=p1->computer;
aver=sum/i;

p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
{if(max<p1->computer)
max=p1->computer;
}
p1=head;
for(i=0;p1!=NULL;i++,p1=p1->next)
if(min>p1->computer)
min=p1->computer;
}
printf("Computer Average:%f",aver);
printf("Computer Max:%f",max);
printf("Computer Min:%f",min);
}

update(stu *p2) /*通過姓名查找來更新數據*/
{
char name[10]; /*p2為指向結構體struct student的指針*/
int b=0;
printf("Enter The Name"); /*輸入姓名*/
scanf("%s",name);

while(p2!=NULL)
{if(strcmp(name,p2->name)==0)
{
printf("Find you data\n");
scanf("Name:%s",p2->name);
scanf("Num:%s",p2->num);
scanf("Sex:%s",p2->sex);
scanf("Chinese:%d",p2->chinese);
scanf("Math:%d",p2->mathematic);
scanf("english:%d",p2->english);
scanf("Computer:%d",p2->computer);
printf("Success!");

b=1;}
else if(b==0)
printf("Sorry not Find data!");
p2=p2->next;}
if(b==0)
{print();
printf("Sorry not Find data!");
}
else
{
print();
printf("Finish!");
}
}

save(stu *p2) /*保留數據函數*/
{
FILE *fp;
char file[10];
printf("Enter file name"); /*輸入文件名*/
scanf("%s",file);
fp=fopen(file,"w");
while(p2!=NULL)
{
fprintf(fp,"%s",p2->name);
fprintf(fp,"%s",p2->num);
fprintf(fp,"%s",p2->sex);
fprintf(fp,"%d",p2->chinese);
fprintf(fp,"%d",p2->mathematic);
fprintf(fp,"%d",p2->english);
fprintf(fp,"%d",p2->computer);
p2=p2->next;
}
fclose(fp);
}

char password[7]="123456"; /*定義初始密碼*/

void main() /*主函數*/
{ int choice;
stu *p2;
char s[8];
int flag=0,i; /*標志項*/
int n=3;
do{ printf("Enter password:\n");
scanf("%s",s);
if(!strcmp(s,password)) /*進行密碼匹配驗證*/
{ printf("PASS\n\n\n");
flag=1;
break;
}
else{
printf("Error Enter again:\n");
n--;
}
}
while(n>0);
if(!flag)
{printf("you have Enter 3 times!"); /*輸入密碼超過了3次!!*/
exit(0); /*自動退出*/
}
/*密碼驗證成功後進入的界面*/

printf("~~~~~~~~~~\t\t\t~~~~~~~~~~~~\n"); /*操作界面*/
printf("\t\tWelcom to the Mis\n");
printf("Author:-----\tClass:------\tNum:------\n"); /*作者,班級和號碼*/
printf("Adress:HG\n"); /*地址*/
printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\n");
printf("\t\tEnter OP:\n");
printf("\n\n\n\n");
printf("==============\t\t==============\n");
printf("==============\t\t==============\n");
printf("\t\tEnter the MIS yes or no\n"); /*問進入系統與否*/

scanf("%d",&choice);
if(choice=='n'||choice=='N')
exit(1);

print();
while(1)
{
printf("Enter choice:");
scanf("%d",&i);
if(i<1||i>13)
{
printf("Enter num from 1 to 13:\n"); /*再從1-13中進行選擇*/
exit(1);
}

switch(i)
{ case 1:
p2=cindata(); /*其他數據是否繼續輸入的函數*/
break;
case 2:
p2=lookdata(head); /*查看數據的函數*/
break;
case 3:
insert(); /*通過比較學號來插入數據的函數*/
break;
case 4:
find(head); /*通過姓名查找查看數據的函數*/
break;
case 5:
update(head); /*通過姓名查找來更新數據*/
break;
case 6:
save(head); /*保留數據函數*/
break;
case 7:
print(); /*顯示或列印函數*/
break;
case 8:
caverage(); /*求各學生語文平均分、最高和最低分成績的函數*/
break;
case 9:
maverage(); /*求各學生數學平均分、最高和最低分成績的函數*/
break;
case 10:
eaverage(); /*求各學生英語平均分、最高和最低分成績的函數*/
break;
case 11:
comaverage(); /*求各學生計算機平均分、最高和最低分成績的函數*/
break;
case 12:
; /*空操作*/
case 13:
exit(1); /*退出*/
break;
}
scanf("%d",&i);
}
}

⑶ 1.學生成績管理系統 要求: (1)由鍵盤輸入每個學生的學號和四門課程的成績; (2)計算每個學生的平均分

#include<iostream>
#include<cstring>
#include<iomanip>
#include<conio.h>
#include<cstdlib>

using namespace std;

#define SIZE 100

class STU
{
public:
void getdata(char Num[],char Name[],float &Chinese,float &Math,float &Eng,float Sum,float Ave);
void putdata(char Num[],char Name[],float &Chinese,float &Math,float &Eng,float Sum,float Ave);

void showdata();

float getave()
{
return ave;
}

private:
char num[10];
char name[10];
float chinese,math,eng;
float sum;
float ave;
};

void STU::showdata()
{

cout<<setw(-11)<<num<<setw(-11)<<name
<<setw(9)<<chinese<<setw(9)<<math<<setw(9)<<eng
<<setw(9)<<sum<<setw(10)<<ave<<endl;
}

void STU::getdata(char Num[],char Name[],float &Chinese,float &Math,float &Eng,float Sum,float Ave)
{
strcpy(Num,num);
strcpy(Name,name);
Chinese=chinese;
Math=math;
Eng=eng;
Sum=sum;
Ave=ave;
}

void STU::putdata(char Num[],char Name[],float &Chinese,float &Math,float &Eng,float Sum,float Ave)
{
strcpy(num,Num);
strcpy(name,Name);
chinese=Chinese;
math=Math;
eng=Eng;
sum=Sum;
ave=Ave;
}

int n;
STU stu[SIZE];

char num[10];
char name[10];
float chinese;
float math;
float eng;
float sum;
float ave;

void Input();
void Statistic();
void Order();
void Cls(){system("CLS");}

int main()
{
char x;

while(1){
Cls();
cout<<" **************歡迎來到學生管理系統**************"<<endl;
cout<<" 1錄入成績"<<endl;
cout<<" 2查詢成績"<<endl;
cout<<" 3排序成績"<<endl;
cout<<" 0退出系統"<<endl;
cout<<" ************************************************"<<endl;
do
{
x=getch();
}while(x<'0'||x>'3');

switch(x)
{
case '1':Input();break;
case '2':Statistic();break;
case '3':Order();break;
case '0':goto END;break;
default :break;
}
}

END:Cls();return 0;
}

void Input()
{

Cls();

cout<<"\n 學號:";cin>>num;
cout<<" 姓名:";cin>>name;
cout<<" 語文:";cin>>chinese;
cout<<" 數學:";cin>>math;
cout<<" 英語:";cin>>eng;

sum=chinese+math+eng;
ave=sum/3;

stu[n].putdata(num,name,chinese,math,eng,sum,ave);
n++;
}

void Statistic()
{
Cls();
cout<<"學號"<<" "<<"姓名"
<<" "<<"語文"<<" "<<"數學"<<" "<<"英語"<<" "
<<"總分"<<" "<<"平均分"<<endl;
for(int i=0;i<n;i++)
{
stu[i].showdata();
}
getch();
}

void Order()
{
Cls();
STU *a[SIZE];
for(int i=0;i<n;i++)
{
a[i]=&stu[i];
}
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
if((a[i]->getave()) < (a[i]->getave()))
{
STU *p;
p=a[i];
a[i]=a[j];
a[j]=p;
}
}

cout<<"學號"<<" "<<"姓名"
<<" "<<"語文"<<" "<<"數學"<<" "<<"英語"<<" "
<<"總分"<<" "<<"平均分"<<endl;

for(int i=0;i<n;i++)a[i]->showdata();
getch();

}

⑷ C順序表學生信息管理系統,需要補充代碼增添 「算學生的平均成績並按成績由高到低排列「的功能

ASC 升序排列 DESC 是降序排列
資料庫裡面的sql語句加上這個就ok了
希望對你有所幫助

⑸ 1.學生成績管理系統 要求: (1)由鍵盤輸入每個學生的學號和四門課程的成績; (2)計算每個學生的平均分

import java.util.Scanner;

public class Student {
public static void main(String[] args) {
s=new Scanner(System.in);
System.out.print("輸入學生姓名:");
String name=s.nextLine();
System.out.print("輸入語文成績:");
int Chinese=s.nextInt();
System.out.print("輸入數學成績:");
int Math=s.nextInt();
System.out.print("輸入英語成績:");
int English=s.nextInt();
System.out.print("輸入Java成績:");
int Java=s.nextInt();
System.out.println(name+" "+"的成績為:"+"\t"+"語文:"+Chinese+"\t"+"數學:"+Math+"\t"+"英語:"+English+"\t"+"Java:"+Java);
System.out.println("平均成績為:"+(double)(Chinese+Math+English+Java)/4);
s.close();
}

}

⑹ 學生成績管理系統 要求:可以求全班或單科的平均分,某個人的多門課的平均分。

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<conio.h>
#define D "%d"
#define F "%f"
#define S scanf
#define P printf
#define OK 1
#define ERROR 0
#define NULL 0
#define NC 3//每個學生課程總數
typedef int Status;
typedef int NUM;
typedef float CHINESE;
typedef float ENGLISH;
typedef float MATH;
typedef float EVE_Stusum;//EVE(everyone)
typedef float AVE_Stu;//AVE(average)每個學生平均分
typedef float AVE_Course;//每門課平均分

typedef struct LNode{//定義結點
NUM num;
CHINESE ch;
MATH math;
ENGLISH eng;
EVE_Stusum sum;//每個學生總分
AVE_Stu ave;//每個學生平均分
struct LNode *next;
}LNode,*LinkList;

typedef struct{
AVE_Course av_ch;
AVE_Course av_math;
AVE_Course av_eng;
}*Average,AVENode;

void CreatList_L(LinkList &L){//建立鏈表
LinkList p=NULL,p1=NULL;//p用來指向每一個新建立的結點,,p1做記錄
p1=L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;//頭結點
P("----請輸入各學生學號和成績(學號為零則輸入截止)----\n");
p=(LinkList)malloc(sizeof(LNode));
P("請輸入第一位學生學號:\n");
S(D,&p->num);
P("請輸入分數:\n");
P("----語文 數學 英語(空格隔開)----\n");
S("%f%f%f",&p->ch,&p->math,&p->eng);
while(p->num)
{
p1->next=p;
p1=p;
p=(LinkList)malloc(sizeof(LNode));
P("請輸入下一位學生學號:\n");
S(D,&p->num);
if(p->num==0) break;//學號為0則輸入結束
P("請輸入分數:\n");
P("----語文 數學 英語----\n");
S("%f%f%f",&p->ch,&p->math,&p->eng);
}
p1->next=NULL;

}
int Length_L(LinkList L)//求出帶頭結點的鏈表中除頭結點外其餘結點的數目
{
LinkList p=L;
int i=0;
while(p->next)
{
p=p->next;
i++;
}
return i;
}

Status GetNumI_L(LinkList &L,NUM num2){//在帶頭節點的鏈表中找出num2所在的位序,頭結點後第一個結點為1,後依次為2,3,4.......
int i=1;
LinkList p=L->next;//此時p指向頭結點後第一個結點
while(p&&p->num!=num2)
{
p=p->next;
i++;
}
if(!p) {P("沒找到該學號--——\n");return ERROR; }
return i;
}
Status ListDelete_L(LinkList &L,int i){//在帶頭結點的單鏈表中刪除第i個元素
LinkList p=L,q=NULL;
int j=0;
while(p->next&&j<i-1){//p最終指向第i-1個結點
p=p->next;
j++;

}
q=p->next;
p->next=q->next;
free(q);
return OK;

}
Status ListInsert_L(LinkList &L){//在帶頭結點的L學號順序存放鏈表中插入新的學生信息
LinkList p=L,s=NULL,p1=NULL;
p1=p=p->next;
s=(LinkList)malloc(sizeof(LNode));
P("\n---請輸入想要插入的學生信息---\n");
P(" 請輸入學號:\n");
S(D,&s->num);
P("請輸入分數:\n");
P("----語文 數學 英語----\n");
S("%f%f%f",&s->ch,&s->math,&s->eng);
if(s->num<=p->num){L->next=s;s->next=p;return OK;}
while(p&&s->num>=p->num) {p1=p;p=p->next;}
p1->next=s;
s->next=p;
return OK;

}
Status EveryStu_Sum(LinkList &L){//求每個學生總分
LinkList p=L;
p=p->next;
while(p)
{
p->sum=p->ch+p->eng+p->math;
p=p->next;
}
return OK;
}
Status EveryStu_EVE(LinkList L){//求每個學生平均分
LinkList p=L;
p=p->next;
while(p)
{
p->ave=(p->ch+p->eng+p->math)/NC;
p=p->next;
}
return OK;
}

Status AVE_Every(LinkList L,Average PJF){//求每門課平均分,存放在PJF所指結點
LinkList p=L;
int i=Length_L(L);
float sum1=0,sum2=0,sum3=0;
p=p->next;
while(p){
sum1+=p->ch;
sum2+=p->math;
sum3+=p->eng;
p=p->next;

}
PJF->av_ch=sum1/i;
PJF->av_math=sum2/i;
PJF->av_eng=sum3/i;
return OK;
}

Status TheMaxAVE(LinkList L){//找出平均分最高的學生
LinkList p=L;
LinkList p1=p;
p=p->next;
float max=0;
while(p)
{
if((p->ave)>max) {max=p->ave;p1=p;}
p=p->next;
}
p=p1;
P("平均分最高的學生學號為:%d 平均分:%4.2f\n",p->num,p->ave);
return OK;
}

Status Max_Every(LinkList L){//找出每門成績最高分
LinkList p=L,p1=L,p2=L,p3=L;
p=p->next;
float max1=0,max2=0,max3=0;
while(p)
{
if(p->ch>max1){max1=p->ch;p1=p;}
if(p->math>max2){max2=p->math;p2=p;}
if(p->eng>max3){max3=p->eng;p3=p;}
p=p->next;
}
P("\n語文最高:\n學號:%d 成績:%4.2f\n",p1->num,p1->ch);
P("數學最高:\n學號:%d 成績:%4.2f\n",p2->num,p2->math);
P("英語最高:\n學號:%d 成績:%4.2f\n",p3->num,p3->eng);
return OK;
}

Status Min_Every(LinkList L){//找出每門成績最低分
LinkList p=L,p1=L,p2=L,p3=L;
p=p->next;
float min1=101,min2=101,min3=101;
while(p)
{
if(p->ch<min1){min1=p->ch;p1=p;}
if(p->math<min2){min2=p->math;p2=p;}
if(p->eng<min3){min3=p->eng;p3=p;}
p=p->next;
}
P("\n語文最低:\n學號:%d 成績:%4.2f\n",p1->num,p1->ch);
P("數學最低:\n學號:%d 成績:%4.2f\n",p2->num,p2->math);
P("英語最低:\n學號:%d 成績:%4.2f\n",p3->num,p3->eng);
return OK;
}

void PrintAVE_EvryCourse(Average PJF){//列印每門課平均分
P(" 語文平均 數學平均 英語平均\n");
P(" %4.2f %4.2f %4.2f\n",PJF->av_ch,PJF->av_math,PJF->av_eng);
P("\n");
}
void Print_Sum(LinkList L){//列印每個學生總分
LinkList p=L;
p=p->next;
P(" 學號 總分\n" );
while(p)
{
P(" %d %4.2f \n",p->num,p->sum);
p=p->next;
}
}
void PrintEveryStu_EVE(LinkList L){//列印每個學生平均分
LinkList p=L;
p=p->next;
P(" 學號 平均分\n");
while(p)
{
P(" %d %4.2f\n",p->num,p->ave);
p=p->next;
}
}
void Print_L(LinkList L){//列印鏈表中所有元素
LinkList p=L;
p=p->next;
P(" ------學生信息如下-----\n");
P(" 學號 成績\n");
P(" -----------------------------------------\n");
P(" || | 語文 數學 英語 || \n");
P(" -----------------------------------------\n");
while(p)
{
P(" ||%d | %4.2f %4.2f %4.2f||\n",p->num,p->ch,p->math,p->eng);
p=p->next;

}
P(" -----------------------------------------\n");
}

void menu(){//列印菜單
P("\n\n\n ------請選擇操作------\n");
P(" **********MENU*********\n");
P(" ||0---統計學生總數-- ||\n");
P(" ||1---插入學生成績---||\n");
P(" ||2---刪除學生成績---||\n");
P(" ||3---求每個學生總分-||\n");
P(" ||4---求每學生平均分-||\n");
P(" ||5---求每門課平均分-||\n");
P(" ||6---平均分最高學生-||\n");
P(" ||7---每門最高低分---||\n");
P(" ||8---退出-----------||\n");
P(" ***********************\n");
}
void main(){
LinkList L;//L指向鏈表頭結點;
Average PJF;//PJF指向存放平均分的一個結點
PJF=(Average)malloc(sizeof(AVENode));//為存放各科平均分分配一塊空間
NUM num1=0,num0=0;
int i=0;
char ch=0,cho=0;
CreatList_L(L);
Print_L(L);
while(1)
{
menu();
P(" your choice:");
cho=getche();//選擇操作
P("\n");
switch(cho)
{
case '0':
P("學生總數為:%d\n",Length_L(L));
break;

case '1':
while(1)
{
ListInsert_L(L);
Print_L(L);
P("---q鍵退出上一層菜單,其他任意鍵繼續---\n");
ch=getche();
if(ch=='q'||ch=='Q')break;
}
break;
case '2':
while(1)
{
P("請輸入要刪除的學號:\n");
S(D,&num1);
i=GetNumI_L(L,num1);
if(i==0) continue;
else
ListDelete_L(L,i);
Print_L(L);
P("---q鍵退出上一層菜單,其他任意鍵繼續---\n");
ch=getche();
if(ch=='q'||ch=='Q')break;
}
break;
case '3':
EveryStu_Sum(L);//每個學生總分函數
Print_Sum(L);//列印每個學生總分函數
break;
case '4':
EveryStu_EVE(L);//求每個學生平均分
PrintEveryStu_EVE(L);//列印每個學生平均分
break;
case '5':
AVE_Every(L,PJF);
PrintAVE_EvryCourse(PJF);
break;
case '6':
EveryStu_EVE(L);
TheMaxAVE(L);break;
case '7':
Max_Every(L);
Min_Every(L);
break;
case '8':exit(0);
default:P("請重新選擇:\n");break;
}
}
getch();
}

⑺ 學生成績管理系統 變數 學號姓名性別專業班級4門課成績總分, 平均分 應不少於50條記錄

學生管理系統需要一個

⑻ 學生信息管理系統 學生信息包括:學號,姓名,課程成績(5門),總分,平均成績。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void init();//初始化
void brow();//瀏覽
void find();//查找
void find_by_num();//按學號查找
void find_by_pjf();//按平均分高於85的查找
void find_by_bjg();//按不及格的查找
void del ();//刪除
void count ();//計算
void px ();//排序
void px_by_num ();//按學號排序
void px_by_zf ();//按總分排序
struct student
{
int num;//學號
char name[100];//姓名
int score1;//五門成績
int score2;
int score3;
int score4;
int score5;
float zf;//總分
float pjf;//平均分
};
student st[10000],*pst;
int sm=0;
void main()
{
int x;
pst=st;
do
{
printf("\t\t\t\t 學生信息管理系統 \t\t\t\t\n");
printf("\t************************************************************\n");
printf ("\n");
printf("\t\t1--------------------------輸入\n");
printf ("\n");
printf("\t\t2--------------------------瀏覽\n");
printf ("\n");
printf("\t\t3--------------------------查找\n");
printf ("\n");
printf("\t\t4--------------------------刪除 \n");
printf ("\n");
printf("\t\t5--------------------------排序\n");
printf ("\n");
printf("\t\t0--------------------------退出\n");
printf ("\n");
printf("\t************************************************************\n");
printf ("\n");
printf ("請輸入你的選擇:");
scanf("%d",&x);
switch(x)
{
case 1:init();break;
case 2:brow();break;
case 3:find();break;
case 4:del();break;
case 5:px();break;
case 0:printf("謝謝使用,再見\n");break;
}
}
while(x!=0);
}
void init()//初始化學生信息
{
int i,n,t,j;
printf("請輸入學生數量:");
scanf("%d",&n);
for (i=sm;i<n;i++)
{

printf ("請輸入第%d個學生的信息:\n",i+1);
printf ("請輸入學號:");
scanf ("%d",&st[i].num);
for (t=0;t<i;t++)
{
while (st[i].num==st[t].num)
{
printf ("該學生的學號已存在,請重新輸入!\n");

scanf("%d",&st[i].num);
t=-1;
}
}

printf ("請輸入姓名:");
scanf ("%s",st[i].name);
printf ("請輸入第一門成績:");
scanf("%d",&st[i].score1);
printf ("請輸入第二門成績:");
scanf("%d",&st[i].score2);
printf ("請輸入第三門成績:");
scanf("%d",&st[i].score3);
printf ("請輸入第四門成績:");
scanf("%d",&st[i].score4);
printf ("請輸入第五門成績:");
scanf("%d",&st[i].score5);
}
printf ("初始化完畢!\n");
sm+=n;
}
void brow ()//瀏覽學生信息
{
int i;
for (i=0;i<sm;i++)
{
printf ("第%d個學生信息\n",i+1);
printf ("學號:%4d \n",st[i].num);
printf ("姓名:%s \n",st[i].name);
printf ("第一門成績:%d\n",st[i].score1);
printf ("第二門成績:%d\n",st[i].score2);
printf ("第三門成績:%d\n",st[i].score3);
printf ("第四門成績:%d\n",st[i].score4);
printf ("第五門成績:%d\n",st[i].score5);
printf ("\n");
}
}
void del()//刪除信息
{
int num;
int i;
int y=1;
printf("\n 請輸入想要刪除的學生學號:");
scanf("%d",&num);
for (i=0;i<sm;i++)
{
if(num==st[i].num)
break;
}
if (i!=sm)
{
for(;i<sm-1;i++)
{
st[i].num=st[i+1].num;
strcpy(st[i].name,st[i+1].name);
st[i].score1=st[i+1].score1;
st[i].score2=st[i+1].score2;
st[i].score3=st[i+1].score3;
st[i].score4=st[i+1].score4;
st[i].score5=st[i+1].score5;
}
sm--;
printf("刪除成功!o(≥v≤)o~~\n");
}
else
printf("\n 對不起,沒有找到!\n");
}
void find()
{
int x;
do
{
printf("\t************************************************************\n");
printf ("\n");
printf("\t\t1--------------------------按學號查找\n");
printf ("\n");
printf("\t\t2--------------------------查找平均分>=85的同學\n");
printf ("\n");
printf("\t\t3--------------------------查找不及格同學\n");
printf ("\n");
printf ("\t\t0---------------------------退出\n");
printf ("\n");
printf("\t************************************************************\n");
printf ("\n");
printf ("請輸入你的選擇:");
scanf("%d",&x);
switch (x)
{
case 1:find_by_num();break;
case 2:find_by_pjf();break;
case 3:find_by_bjg();break;
case 0:;break;
}
}
while (x!=0);
}
void find_by_num()//按學號查詢學生信息
{
int i,xh;
char c;
do
{
printf ("請輸入你想查找的學號:");
scanf ("%d",&xh);
for (i=0;i<sm;i++)
{
if (xh==st[i].num)
{
printf ("學號:%4d \n",st[i].num);
printf ("姓名:%s \n",st[i].name);
printf ("第一門成績:%3.1d \n",st[i].score1);
printf ("第二門成績:%3.1d \n",st[i].score2);
printf ("第三門成績:%3.1d \n",st[i].score3);
printf ("第四門成績:%3.1d \n",st[i].score4);
printf ("第五門成績:%3.1d \n",st[i].score5);
break;
}
}
if (i>=sm)
printf ("對不起,查無此人!/(ㄒoㄒ)/~~\n");
printf ("繼續嗎?(y/n)");
scanf ("%c",&c);
}
while (c=getchar()!='n');
}
void find_by_pjf()
{
int i;
count ();
printf ("平均分高於85的同學有:");
for (i=0;i<sm;i++)
{
if (st[i].pjf>=85)
printf ("學號:%d\n姓名:%s\n平均分:%f\n",st[i].num,st[i].name,st[i].pjf);
}
}
void find_by_bjg()
{
int i;
count ();
printf ("不及格的同學有:");
for (i=0;i<sm;i++)
{
if (st[i].pjf<60)
printf ("學號:%d\n姓名:%s\n平均分:%f\n",st[i].num,st[i].name,st[i].pjf);
}
}
void count()//學生成績的計算
{
int i;
for(i=0;i<sm;i++)
{
st[i].zf=0;
st[i].pjf=0;
st[i].zf=st[i].score1+st[i].score2+st[i].score3+st[i].score4+st[i].score5;
st[i].pjf=st[i].zf/5;
}
}
void px()//排序
{
int x;
do
{
printf("\t************************************************************\n");
printf ("\n");
printf("\t\t1--------------------------按學號排序\n");
printf ("\n");
printf("\t\t2--------------------------按總分排序\n");
printf ("\n");
printf ("\t\t0---------------------------退出\n");
printf ("\n");
printf("\t************************************************************\n");
printf ("\n");
printf ("請輸入你的選擇:");
scanf("%d",&x);
switch (x)
{
case 1:px_by_num();break;
case 2:px_by_zf();break;
case 0:;break;
}
}
while (x!=0);
}
void px_by_zf ()//按總分排序
{
int i,j,k;
count ();
for (j=0;j<sm;j++)
for (k=0;k<sm-j;k++)
{
if (st[k].zf<st[k+1].zf)
{
st[sm]=st[k];
st[k]=st[k+1];
st[k+1]=st[sm];
}
}
printf ("總分排名:\n");
for (k=0;k<sm;k++)
printf ("第%d名學生的學號:%d\n姓名:%s\n總分:%3.1f\n",k+1,st[k].num,st[k].name,st[k].zf);
printf ("\n");
}
void px_by_num ()
{
int i,j,k;
count ();
for (j=0;j<sm;j++)
for (k=0;k<sm-j;k++)
{
if (st[k].num>st[k+1].num)
{
st[sm]=st[k];
st[k]=st[k+1];
st[k+1]=st[sm];
}
}
printf ("學號排名:\n");
for (k=0;k<sm;k++)
printf ("第%d名學生的學號:%d\n姓名:%s\n總分:%3.1f\n",k+1,st[k].num,st[k].name,st[k].zf);
printf ("\n");
}

這個要在C.pp下寫;就是寫文件名時不要加.c

⑼ 簡單學生成績管理系統

#define N 7 /*學生的人數*/
typedef struct
{
char num[5];
char name[10]; /*記錄姓名和學號*/
float math,english,comput,average; /*各個科目及平均分*/
}mark; /*定義學生記錄結構體類型*/
typedef struct
{
float fen[4];
int n;
}fsp;/*定義學生記錄轉化的中間變數*/

void count(mark *s)/*統計各科平均分 各科的最高(低)分及各分數段的人數*/
{
float ave[3]={0};/*存放各科平均分 */
float m[3][2] ;
int num[3][5]={0};/*存放各分數段的人數*/
int i;
m[0][1]=m[0][0]=s->math;
m[1][0]=m[1][1]=s->english;
m[2][0]=m[2][1]=s->comput;
for(i=0;i<N;i++)
{ ave[0]+=(s+i)->math;
ave[1]+=(s+i)->english;
ave[2]+=(s+i)->comput;
if( (s+i)->math > m[0][0] )
m[0][0]=(s+i)->math;
else if( (s+i)->math < m[0][1] )
m[0][1]=(s+i)->math;
if( (s+i)->english > m[1][0] )
m[1][0]=(s+i)->english;
else if( (s+i)->english < m[1][1] )
m[1][1]=(s+i)->english;
if( (s+i)->comput > m[2][0] )
m[2][0]=(s+i)->comput;
else if( (s+i)->comput < m[2][1] )
m[2][1]=(s+i)->comput;
/*統計各科的最高(低)分*/
if((s+i)->math<60.0)
num[0][0]++;
else if((s+i)->math<70.0)
num[0][1]++;
else if((s+i)->math<80.0)
num[0][2]++;
else if((s+i)->math<90.0)
num[0][3]++;
else num[0][4]++;
/*統計數學各分數段的人數*/
if((s+i)->english<60.0)
num[1][0]++;
else if((s+i)->english<70.0)
num[1][1]++;
else if((s+i)->english<80.0)
num[1][2]++;
else if((s+i)->english<90.0)
num[1][3]++;
else num[1][4]++;
/*統計英語各分數段的人數*/
if((s+i)->comput<60.0)
num[2][0]++;
else if((s+i)->comput<70.0)
num[2][1]++;
else if((s+i)->comput<80.0)
num[2][2]++;
else if((s+i)->comput<90.0)
num[2][3]++;
else num[2][4]++;
/*統計計算機各分數段的人數 */
}
for(i=0;i<3;i++)
ave[i]=ave[i]/N;
printf("三門科的平均分分別為:\n%.1f %.1f %.1f\n",ave[0],ave[1],ave[2]);
printf("三門科的最高分與最底分分別為:\n");
printf("%.1f %.1f\n%.1f %.1f\n%.1f %.1f\n",
m[0][0],m[0][1],m[1][0],m[1][1],m[2][0],m[2][1]);
printf("三門科不及格 60-69 70-79 80-89 90分以上的人數分別為:\n");
printf("數學: %3d%5d%6d%6d%4d\n",num[0][0],num[0][1],num[0][2],num[0][3],num[0][4]);
printf("英語: %3d%5d%6d%6d%4d\n",num[1][0],num[1][1],num[1][2],num[1][3],num[1][4]);
printf("計算機:%3d%5d%6d%6d%4d\n",num[2][0],num[2][1],num[2][2],num[2][3],num[2][4]);
}
void found(mark *s)/*輸入學生的學號查詢學生的成績情況*/
{
char a[10];/*接受輸入的學號*/
int flag,i;/*循環變數*/
char * b="exit";
do
{ flag=0;
printf("請輸入所要查詢的學生的學號或姓名\n");
getchar();
gets(a);
for(i=0;i<N;i++)

{printf("該生的學號,姓名,各門課程及平均成績為:\n%s %s %.1f %.1f %.1f %.1f\n"
,(s+i)->num,(s+i)->name,(s+i)->math,(s+i)->english,(s+i)->comput,(s+i)->average);/*成績列印*/
flag=1;}
if(flag==0) printf("查無此人\n");
}while(strcmp(a,b));
printf("查詢結束");
}
main()
{
mark *s,*a,*b,*c,*d;
fsp *p;
s=(mark*)malloc(N*sizeof(mark));
a=(mark*)malloc(N*sizeof(mark));
b=(mark*)malloc(N*sizeof(mark));
c=(mark*)malloc(N*sizeof(mark));
d=(mark*)malloc(N*sizeof(mark));
p=(fsp*)malloc(N*sizeof(fsp));/*各變數空間開辟 */

printf("初始化學生的記錄為:\n");

printf("按數學成績排序學生的記錄為:\n");

printf("按英語成績排序學生的記錄為:\n");

printf("按計算機成績排序學生的記錄為:\n");

printf("按平均成績排序學生的記錄為:\n");

count(s);
found(s);

}

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919