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

學生成績管理信息系統

發布時間: 2020-11-27 21:11:23

㈠ 我們想做一個簡單的學生成績管理信息系統,應該要有哪幾個功能模塊

學生號 姓名 班級 學期 學科 成績
至少要這幾個!

㈡ 求個學生成績管理信息系統 就學生和教師 學生課程查詢 修...

求個學生成績管理信息系統 就學生和教師 學生課程查詢 修...
u can download the related project example from many web site, ex.CSDN. Good luck.

汗馬絕塵安外振中標青史 錦羊開泰富民清政展新篇 春滿人間

㈢ 學生成績管理系統設計

你把有的課程名字改一下,或者添加一些東西,在結構體定義那裡
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct stu
{
int num;
int wuli;
int huaxue;
int math;
};
FILE *fp;
//添加學生信息,可以排除與已存的沖突;
void add()
{
int a,b,c,d,n=0;
struct stu student;
fp=fopen("score.txt","r+");
printf("請輸入要添加學生的學號、物理成績、化學成績及數學成績\n");
scanf("%d%d%d%d",&student.num,&student.wuli,&student.huaxue,&student.math);
while(!feof(fp))
{
fscanf(fp,"%d%d%d%d",&a,&b,&c,&d);
if(student.num==a)
{
printf("該學生信息已存在,不需要添加\n");
fclose(fp);
n=1;
break;
}
}
if(n==0)
{
printf("信息庫中沒有該學生信息,可以添加\n");
fseek(fp,0,2);//文件末尾添加;
fprintf(fp,"%d\t%d\t%d\t%d\n",student.num,student.wuli,student.huaxue,student.math);
fclose(fp);
}

}
//修改學生信息;
void modify()
{
int n=0,number,a,b,c,d,offset;
struct stu student;
fp=fopen("score.txt","r+");
if(fp==NULL)
{
printf("信息庫為空\n");
exit(0);
}
printf("請輸入要修改學生的學號\n");
scanf("%d",&number);
while(!feof(fp))
{
offset=ftell(fp);
fscanf(fp,"%d%d%d%d",&a,&b,&c,&d);
if(number==a)
{
printf("該學生信息為:\n");
printf("%d\t%d\t%d\t%d\n",a,b,c,d);
printf("請輸入要修改的信息\n");
scanf("%d%d%d%d",&student.num,&student.wuli,&student.huaxue,&student.math);
fseek(fp,offset,0);
fprintf(fp,"%d\t%d\t%d\t%d\n",student.num,student.wuli,student.huaxue,student.math);
n=1;
break;
}
}
if(n==0)
{
printf("該學生信息不存在\n");
}
fclose(fp);
}
//刪除學生信息;
void del()
{
int n=0,number,a,b,c,d,m,offset;
fp=fopen("score.txt","r+");
if(fp==NULL)
{
printf("信息庫為空\n");
exit(0);
}
printf("請輸入刪除學生的學號\n");
scanf("%d",&number);
while(!feof(fp))
{
offset=ftell(fp);
fscanf(fp,"%d%d%d%d",&a,&b,&c,&d);

if(number==a)
{
printf("該學生信息為:\n");
printf("%d\t%d\t%d\t%d\n",a,b,c,d);
printf("是否要刪除該學生信息,是:1 ;否:0\n");
scanf("%d",&m);
if(m)
{
fseek(fp,offset,0);
fprintf(fp,"%s\t%s\t%s\t%s"," "," "," "," ");
printf("\n");
printf("該學生信息已刪除\n");
}
else printf("您已放棄刪除該學生信息\n");
n=1;
break;
}
}
if(n==0)
{
printf("該學生信息不存在\n");
}
fclose(fp);
}
//查找學生信息;
void search()
{
int n=0,number,a,b,c,d,m;
char s[10];
fp=fopen("score.txt","r+");
if(fp==NULL)
{
printf("信息庫為空\n");
exit(0);
}
printf("請選擇查找方式:1--按學號查找;0--按學科查找\n");
scanf("%d",&m);
if(m)
{
printf("請輸入要查找學生的學號\n");
scanf("%d",&number);
while(fscanf(fp,"%d%d%d%d",&a,&b,&c,&d)!=-1)
{
if(number==a)
{
printf("已找到,該學生信息為:\n");
printf("%s %s %s %s\n","學號","物理成績","化學成績","數學成績");
printf("%d\t %d\t %d\t %d\n",a,b,c,d);
n=1;
break;
}
}
if(n==0)
{
printf("該學生信息不存在\n");
}
fclose(fp);
}
else
{
printf("請輸入要查找的學科\n");
scanf("%s",s);
if(strcmp(s,"wuli")==0)
{
printf("學號\t物理成績\n");
while(fscanf(fp,"%d%d%d%d",&a,&b,&c,&d)!=-1)
printf("%d\t%d\n",a,b);
fclose(fp);
}
if(strcmp(s,"huaxue")==0)
{
printf("學號\t化學成績\n");
while(fscanf(fp,"%d%d%d%d",&a,&b,&c,&d)!=-1)
printf("%d\t%d\n",a,c);
fclose(fp);
}
if(strcmp(s,"math")==0)
{
printf("學號\t數學成績\n");
while(fscanf(fp,"%d%d%d%d",&a,&b,&c,&d)!=-1)
printf("%d\t%d\n",a,d);
fclose(fp);
}
if(strcmp(s,"wuli")&&strcmp(s,"huaxue")&&strcmp(s,"math") )
{
printf("錯誤,要查找的學科不存在\n");
fclose(fp);
}
}
}
//統計學生信息;
void tongji()
{
int n=0,a,b,c,d,m,k,x[100],i,j,l=1;
float sum=0,h[100],k1;
fp=fopen("score.txt","r+");
if(fp==NULL)
{
printf("信息庫為空\n");
exit(0);
}
printf("0--統計單科平均成績\n");
printf("1--統計單個學生的平均成績和總成績,對學生排名\n");
printf("請選擇統計類型\n");
scanf("%d",&m);
if(!m)
{
printf("1--統計物理的平均成績\n");
printf("2--統計化學的平均成績\n");
printf("3--統計數學的平均成績\n");
printf("請選擇要統計的學科\n");
scanf("%d",&m);
if(m==1)
{
while(fscanf(fp,"%d%d%d%d",&a,&b,&c,&d)!=-1)
{
sum=sum+b;
n++;
}
printf("物理的平均成績為 %2.2f\n",sum/n);
fclose(fp);
}
if(m==2)
{
while(fscanf(fp,"%d%d%d%d",&a,&b,&c,&d)!=-1)
{
sum=sum+c;
n++;
}
printf("化學的平均成績為 %.2f\n",sum/n);
fclose(fp);
}
if(m==3)
{
while(fscanf(fp,"%d%d%d%d",&a,&b,&c,&d)!=-1)
{
sum=sum+d;
n++;
}
printf("數學的平均成績為 %.2f\n",sum/n);
fclose(fp);
}
}
else
{
while(fscanf(fp,"%d%d%d%d",&a,&b,&c,&d)!=-1)
{
h[n]=(float)(b+c+d);
x[n]=a;
n++;
}
for(i=0;l==1&&i<n-1;i++)
{
l=0;
for(j=0;j<n-1-i;j++)
{
if(h[j]>h[j+1])
{
k1=h[j];
h[j]=h[j+1];
h[j+1]=k1;
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
l=1;
}
}
}
printf("排序後\n");
printf("學號\t總成績\t平均成績\n");
for(i=0;i<n;i++)
printf("%d\t%3.0f\t%.2f\n",x[i],h[i],h[i]/3.0);
}
fclose(fp);

}
void main()
{
int m;
/*fp=fopen("score.txt","w");
fprintf(fp,"%s\t%s\t%s\t%s\n","學號","物理成績","化學成績","數學成績");
fclose(fp);*/
while(1)
{
printf("\n\t\t*********歡迎使用學生信息管理系統*********\n\n");
printf("\n\t\t添加,請按1");
printf("\n\t\t修改,請按2");
printf("\n\t\t刪除,請按3");
printf("\n\t\t查詢,請按4");
printf("\n\t\t統計,請按5");
printf("\n\t\t退出,請按0\n");
printf("\n\t\t********************************************\n\n");
printf("Please select(0--5):");
scanf("%d",&m);
if(m>=0&&m<=5)
{
switch(m)
{
case 1: add();
break;
case 2: modify();
break;
case 3: del();
break;
case 4: search();
break;
case 5: tongji();
break;
case 0: exit(0);
}
printf("\n\n操作完畢,請再次選擇!");
}
else
printf("\n\n選擇錯誤,請再次選擇!");
}
}

㈣ c語言學生信息管理系統代碼

代碼如下:

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
typedef struct examinee //考生信息結構
{ char examno[20]; //准考證號
char name[10]; //姓名
char sex[4]; //性別
short age; //年齡
char examtype[10]; //報考科目
}ElemType;

typedef struct Node //定義鏈表結點
{
ElemType data; //數據域
struct Node *next; //指針域
}Node,*List,*position;

List make_empty( List L ); //創建一個帶頭結點的空表
int is_empty( List L ); //測試鏈表是否是空表
int is_last( position p, List L ); //測試當前位置是否是表尾
position make_node( position p,int n ); //創建結點並輸入考生信息
void put_information( position p ); //是否輸出該考生信息
void put_name_information( List L ); //輸出姓名為xx的考生信息
int put_pos_information( position p ); //輸出該地址考生信息
void link_to_tail( List L, position p ); //將結點連接到表尾
int ciculation_make(); //循環創建考生信息
int judge_put_all(); //是否輸出所有考生信息
void put_all(List L); //輸出所有考生信息。
position find( List L ); //查找第一個姓名為xx的元素並返回位置
position find_previous( List L ); //查找第一個姓名為xx的元素並返回該元素直接前驅的位置
//int judge_delete_val(); //詢問是否刪除考生數據
int delete_val( List L ); //刪除指定考生信息並輸出其信息
void menu(List L); //菜單函數
List L;
//position p;

int
main( void )
{
List L = NULL; //定義頭結點指針
position p = NULL; //定義表工作指針
L = make_empty( L ); //創建空表
printf(" ★★考生報名管理程序★★ ---------------------------------------- ");
menu(L);
return 0;
}

//創建一個帶頭結點的空表
List
make_empty( List L)
{
L = ( List ) malloc (sizeof( Node ));
if(NULL == L)
{
printf("內存分配失敗");
exit( 1 );
}
L->next = NULL;
//printf("空表創建成功。 ");
return L;
}

//創建結點並輸入考生信息
position
make_node( position p ,int n)
{
if(n) //n為1是創建結點並輸入,n為0是修改
{
p = ( position ) malloc ( sizeof ( Node ));
p->next = NULL ;
}
printf("請輸入考生准考證號:");
gets(p->data.examno);
printf("請輸入考生姓名:");
gets(p->data.name);
do
{
printf("請輸入考生性別,只能輸入「男」或者「女」:");
gets(p->data.sex);
}
while( 0 != strcmp( p->data.sex, "男" ) && 0 != strcmp( p->data.sex, "女" )); //判斷性別是否有誤
printf("請輸入考生年齡:");
scanf("%hd",&p->data.age);
getchar(); //如果把這句刪掉,就「無法執行」下面的報考類別
/*下面的do while用來判斷報考類別是否輸入有誤*/
do
{
printf("請輸入報考類別,只能輸入「數學」或「英語」或者「數據結構」:");
gets(p->data.examtype);
}
while( 0 != strcmp( "英語", p->data.examtype ) && 0 != strcmp( "數學", p->data.examtype ) && 0 != strcmp( "數據結構", p->data.examtype ));
if(n)
{
printf("報名成功 ");
}
else
{
printf("修改成功 ");
}
return p;
}

//前插法;
void
link_to_tail( List L, position p)
{
p->next = L->next;
L->next = p;
}

//查找第一個姓名為xx的元素並返回位置
position
find( List L )
{
position p = L->next;
char name[10];
printf("請輸入你要查找的考生姓名:");
gets(name);
while( p != NULL && 0 != strcmp( p->data.name , name))
{
p=p->next;
}
return p;
}

//測試鏈表是否是空表
int
is_empty( List L )
{
return L->next == NULL;
}

//測試當前位置是否是表尾
int
is_last( position p, List L )
{
return p->next == NULL;
}

//輸出姓名為xx的考生信息
void
put_name_information( List L )
{
position p = find(L);
if(p!=NULL)
{
printf("您要查找的考生信息: ");
printf("准考證號:%s 姓名:%s 性別:%s 年齡:%hd 報考科目:%s ",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
}
else
{
printf("沒有您要找的學生。 ");
}

}

//循環創建考生信息
int
ciculation_make()
{
int n = 2;
do
{
printf("是否繼續創建考生信息?是請輸入「1」,不是請輸入「0」:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}

//是否輸出考生信息
void
put_information( position p )
{
int n=2;
do
{
printf("是否輸出該考生信息?是請輸入「1」,不是請輸入「0」:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
if(n)
{
printf("准考證號:%s 姓名:%s 性別:%s 年齡:%hd 報考科目:%s ",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
}
}


//是否輸出所有考生信息
int
judge_put_all()
{
int n = 2;
do
{
printf("是否輸出所有考生信息?是請輸入「1」,不是請輸入「0」:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}

//輸出所有考生信息
void
put_all(List L)
{
if(L->next == NULL)
{
printf("現無考生報名! ");
}
else
{
position p=L->next;
while( p != NULL )
{
printf("准考證號:%s 姓名:%s 性別:%s 年齡:%hd 報考科目:%s ",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
p=p->next;
}
}
//getchar();

}

//詢問是否刪除考生數據
int
judge_delete_val()
{
int n = 2;

do
{
printf("是否要刪除某個考生數據?是請輸入「1」,不是輸入「0」:");
scanf("%d",&n);
getchar();
}
while( n != 0 && n != 1);
return n;
}

//查找第一個姓名為xx的元素並返回其直接前驅的位置
position
find_previous( List L )
{
position q = L;
position p = L->next;
char name[10];
printf("請輸入你要查找的考生姓名:");
gets(name);
while( p != NULL && 0 != strcmp( p->data.name , name))
{
q=p;
p=p->next;
}
if( p != NULL )
{
return q;
}
else
return p;
}

//刪除指定考生信息並輸出其信息
int
delete_val(List L)
{
int n=2;
position q=NULL;
position p=find_previous( L ); //返回考生信息地址
if( NULL == p )
{
printf("你要刪除的考生不存在 ");
return 0;
}
else
{
q = p->next;
p->next = q->next;
printf("刪除成功。 刪除的考生信息為: ");
printf("准考證號:%s 姓名:%s 性別:%s 年齡:%hd 報考科目:%s ",q->data.examno,q->data.name,q->data.sex,q->data.age,q->data.examtype);
free(q);
return 1;
}

}

//輸出該地址考試信息
int
put_pos_information( position p )
{
if(p != NULL )
{
printf("准考證號:%s 姓名:%s 性別:%s 年齡:%hd 報考科目:%s ",p->data.examno,p->data.name,p->data.sex,p->data.age,p->data.examtype);
return 1;
}
else
{
printf("沒有您要查找的學生。");
return 0;
}
}
//菜單函數
void
menu(List L)
{
printf(" a. 考生報名入口 ");
printf(" b. 查詢考生信息 ");
printf(" c. 修改考生信息 ");
printf(" d. 刪除考生信息 ");
printf(" e. 全部考生信息 ");
printf(" f. 程序作者信息 ");
printf(" g. 退出程序 ");
char n='h';

while(n != 'g')
{
do //確定正確輸入
{
printf("請通過字母序號選擇功能:");
n = getchar();
getchar();
putchar(' ');
if( n < 'a' || n > 'g')
{
printf("錯誤的字母序號。 ");
}
}
while( n < 'a' || n > 'g' );
switch (n)
{
case 'a':
{
printf("請輸入報名考生信息: ");
position p = make_node( p, 1 ); //創建新結點
link_to_tail( L, p ); //將新結點連接到表上
put_information( p ); //是否輸出該考生信息
putchar(' ');
}
break;

case 'b':
{
put_name_information( L );
putchar(' ');
}
break;

case 'c':
{
int n=0;
position p = NULL;
printf("您正在進行修改操作。 ");
p = find(L);
n = put_pos_information( p );
if(n)
{
make_node( p , 0 );
put_information( p ); //是否輸出該考生信息
}
putchar(' ');
}
break;

case 'd':
{
printf("您正在進行刪除操作。 ");
delete_val( L );
putchar(' ');
}
break;

case 'e':
{
put_all( L );
putchar(' ');
}
break;

case 'f':
{
printf(" 修改日期 版本號 修改人 修改內容 ");
printf(" -------------------------------------------------------- ");
printf(" 2018.6.19 v2.0 陳百川 增加主菜單 ");
printf(" 2018.6.23 v3.0 陳百川 增加生成文件功能 ");
printf(" 該版本號為v2.0 ");
putchar(' ');
}
break;

default:
break;
}
}
printf(" 感謝本次使用,祝您生活愉快。");
getch();
}

(4)學生成績管理信息系統擴展閱讀:

C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。[1]目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。

C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。

其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

參考資料:

網路——C語言

㈤ 設計一個學生成績管理系統,學生成績信息包括:學號,姓名,四門課成績,實現功能如下:

//我簡單寫,請借鑒:
#include"stdafx.h"
#include"stdio.h"
#include"string.h"
#include"math.h"
#include"time.h"
#include"string.h"#include<iostream>
usingnamespacestd;

structStudent//定義學生結構
{
charid[20];//id
charname[11];//姓名
charres[4];//成績
intend;//存儲時顯示換行,可去掉
Student(){end=0x0a0d;}//回車,換行

}list[100];//100個賬號,測試

voidmain()
{
srand((unsigned)time(0));//種子
charbuf[256];//緩存

//初始化學生100名
inti;
for(i=0;i<100;++i)
{
strcpy(list[i].id,itoa(i,buf,10));
strcpy(list[i].name,"某人");
strcpy(list[i].res,itoa(rand()%100,buf,10));
}

//保存數據
FILE*pf=fopen("data.txt","wb");

for(i=0;i<100;++i)
{
fwrite(&list[i],sizeof(Student),1,pf);
}
fclose(pf);

//讀出數據
Studentlist_1[100];//新數組
pf=fopen("data.txt","rb");
for(i=0;i<100;++i)
{
fread(&list_1[i],sizeof(Student),1,pf);
}

//顯示list_1測試
for(i=0;i<100;++i)
{
cout<<list_1[i].id<<""<<list_1[i].name<<""<<list_1[i].res<<endl;
}}

㈥ 題目:學生成績管理系統

功能 能夠實現輸入記錄、查詢記錄、更新記錄、統計記錄、輸出記錄等功能。
1. 輸入記錄。對每個學生的學號、姓名、班級、數學、英語、計算機成績進行輸入並存儲,在程序的運行過程中,數據的存儲可以採用結構體數組或者鏈表,但是最終應該存儲在文件中。
2. 維護記錄。能夠實現添加、刪除、修改學生記錄,但是一定要將最終數據存儲到文件中。
3. 查詢記錄。根據班級、學號、科目等查詢學生的成績。如果查詢時學生數據並沒有讀入到結構體數組或者鏈表中,則應該先從文件中讀出數據並存儲在結構體數組或者鏈表中,然後在結構體數組或者鏈表中查詢滿足條件的數據。
4. 統計記錄。完成對各門功課最高分和不及格人數的統計。

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define LEN sizeof(Student)

typedef struct student
{
int num;
char name[20];
int score[4];
int sum;
struct student *next;
}Student;
int n;

Student *cin(void);
Student *sort_1(Student *head,int);
void sort_2(Student *head);
void print(Student *head);
Student *sort_all(Student *head);
void find(Student *head);
Student *add_new(Student *head);

Student *cin()
{
int flag;
Student *head,*p1,*p2;
n=0;
head=(Student *)malloc(LEN);
p2=head;
printf("\n請輸入第%d名學生的學號,學號為0表示結束輸入:",n+1);
scanf("%d",&flag);
while(getchar()!='\n');
for(;flag;)
{
n++;
p1=(Student *)malloc(LEN);
p1->num=flag;
printf("請輸入第%d名學生的姓名:",n);
scanf("%s",p1->name);
printf("請輸入第%d名學生的語文成績:",n);
scanf("%d",&p1->score[0]);
printf("請輸入第%d名學生的數學成績:",n);
scanf("%d",&p1->score[1]);
printf("請輸入第%d名學生的英語成績:",n);
scanf("%d",&p1->score[2]);
printf("請輸入第%d名學生的計算機成績:",n);
scanf("%d",&p1->score[3]);
p1->sum=p1->score[0]+p1->score[1]+p1->score[2]+p1->score[3];
p2->next=p1;
p2=p1;
printf("\n請輸入第%d名學生的學號,沒有此學生則輸入0表示結束:",n+1);
scanf("%d",&flag);
}
p2->next=NULL;
printf("\n\n");
return head;
}

Student *sort_all(Student *head)
{
int choose;
for(;;)
{
printf("\n\t\t# # # # # 學生成績統計排序 # # # #\n");
printf("\t\t#\t1.按學生學號排序\t #\n");
printf("\t\t#\t2.按學生總分排序\t #\n");
printf("\t\t#\t3.按學生語文成績排序\t #\n");
printf("\t\t#\t4.按學生數學成績排序\t #\n");
printf("\t\t#\t5.按學生英語成績排序\t #\n");
printf("\t\t#\t6.按學生計算機成績排序\t #\n");
printf("\t\t#\t7.單科高分及均分\t #\n");
printf("\t\t#\t8.顯示當前學生成績\t #\n");
printf("\t\t#\t0.返回上一級菜單\t #\n");
printf("\t\t# # # # # 由himpo友情提供# # # # #\n\n");
printf("請輸入你要執行的操作:");
scanf("%d",&choose);
while(getchar()!='\n');
switch(choose)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:head=sort_1(head,choose);break;
case 7:print(head);sort_2(head);break;
case 8:print(head);break;
case 0:return head;
default: printf("\n\n您的輸入有誤!請重新輸入:\n\n");break;
}
}
}

Student *sort_1(Student *head,int choose)
{
Student *p1,*p2=head->next,*pm,*px;
Student mid;
if (!p2) return head;
for(p1=p2;p1->next!=NULL;p1=p1->next)
{
pm=p1;
for(p2=p1->next;p2!=NULL;p2=p2->next)
switch(choose)
{
case 1:if (pm->num>p2->num) pm=p2;break;
case 2:if (pm->sum<p2->sum) pm=p2;break;
case 3:if (pm->score[0]<p2->score[0]) pm=p2;break;
case 4:if (pm->score[1]<p2->score[1]) pm=p2;break;
case 5:if (pm->score[2]<p2->score[2]) pm=p2;break;
case 6:if (pm->score[3]<p2->score[3]) pm=p2;break;
}
if (pm!=p1)
{
mid=*pm;
*pm=*p1;
*p1=mid;
px=pm->next;
pm->next=p1->next;
p1->next=px;
}
}
printf("\n排序後的成績表為:\n");
print(head);
return head;
}

void sort_2(Student *head)
{
Student *p=head->next;
int max_1,max_2,max_3,max_4,min_1,min_2,min_3,min_4;
int max_sum,min_sum;
int sum_1=0,sum_2=0,sum_3=0,sum_4=0;
float aver_1,aver_2,aver_3,aver_4,aver_sum;
if (!p) return;
max_1=min_1=p->score[0];max_2=min_2=p->score[1];
max_3=min_3=p->score[2];max_2=min_2=p->score[3];
max_sum=min_sum=p->sum;
for(;p;p=p->next)
{
if (max_1<p->score[0]) max_1=p->score[0];
else if (min_1>p->score[0]) min_1=p->score[0];
if (max_2<p->score[1]) max_2=p->score[1];
else if (min_2>p->score[1]) min_2=p->score[1];
if (max_3<p->score[2]) max_3=p->score[2];
else if (min_3>p->score[2]) min_3=p->score[2];
if (max_4<p->score[3]) max_4=p->score[3];
else if (min_4>p->score[3]) min_4=p->score[3];
if (max_sum<p->sum) max_sum=p->sum;
else if (min_sum>p->sum) min_sum=p->sum;
sum_1+=p->score[0];sum_2+=p->score[1];sum_3+=p->score[2];sum_4+=p->score[3];
}
aver_1=1.0*sum_1/n;aver_2=1.0*sum_2/n;aver_3=1.0*sum_3/n;aver_4=1.0*sum_4/n;
aver_sum=aver_1+aver_2+aver_3+aver_4;
printf("總共%d名學生,具體數據為:\n",n);
printf("語文最高分為%d,最低分為%d,平均分為%.2f\n",max_1,min_1,aver_1);
printf("數學最高分為%d,最低分為%d,平均分為%.2f\n",max_2,min_2,aver_2);
printf("英語最高分為%d,最低分為%d,平均分為%.2f\n",max_3,min_3,aver_3);
printf("計算機最高分為%d,最低分為%d,平均分為%.2f\n",max_4,min_4,aver_4);
printf("總分最高分為%d,最低分位%d,平均分為%.2f\n",
max_sum,min_sum,aver_sum);
}

void find(Student *head)
{
Student *p;
int choose,fnum;
char tem[20];
if (n==0)
for(;;)
{
printf("\n請輸入您要查詢學生的方式:\n\n");
printf("1、按學號查詢;2、按姓名查詢;0、我不查詢了。\n\n");
printf("請選擇:");
scanf("%d",&choose);
while(getchar()!='\n');
if (choose==1)
{
printf("\n請輸入你要查詢的學生的學號,輸入0退出學號查詢:");
scanf("%d",&fnum);
for(;fnum;)
{
for(p=head->next;p!=NULL&&p->num!=fnum;p=p->next);
if (!p)
{
printf("\n\n找不到你要查詢的學號,請重新輸入,輸入0表示結束:");
scanf("%d",&fnum);
}
else if (p->num==fnum)
{
printf("\n學號為%d學生的數據為:\n",p->num);
printf("學號\t姓名\t語文成績 數學成績 英語成績 計算機\
成績 總分\n");
printf("%d\t%s\t %d %d %d %d \
%d\n",p->num,
p->name,p->score[0],p->score[1],p->score[2],p->score[3],
p->sum);
printf("\n\n請輸入你還要查詢的學生的學號,輸入0表示不按學\
號查詢了:");
scanf("%d",&fnum);
}
}
}
else if (choose==2)
{
printf("\n請輸入你要查詢的學生的姓名,輸入0退出姓名查詢:");
scanf("%s",tem);
for(;strcmp(tem,"0");)
{
for(p=head->next;p!=NULL&&strcmp(p->name,tem);p=p->next);
if (!p)
{
printf("\n\n找不到你要查詢的姓名,請重新輸入,輸入0表\
示結束:");
scanf("%s",tem);
}
else if (!strcmp(p->name,tem))
{
printf("\n姓名為%s學生的數據為:\n",p->name);
printf("學號\t姓名\t語文成績 數學成績 英語成績 \
計算機成績 總分\n");
printf("%d\t%s\t %d %d %d \
%d %d\n",
p->num,p->name,p->score[0],p->score[1],p->score[2],
p->score[3],p->sum);
printf("\n\n請輸入你還要查詢的學生的姓名,輸入0表\
示不按姓名查詢了:");
scanf("%s",tem);
}
}
}
else if (choose==0)
else
}
}

Student *add_new(Student *head)
{
Student *p;
int flag;
printf("\n\n請輸入你要新加入學生的學號,學號為0表示結束輸入:");
scanf("%d",&flag);
while(getchar()!='\n');
for(;flag;)
{
p=(Student *)malloc(LEN);
p->num=flag;
printf("請輸入新加入學生的姓名:",n);
scanf("%s",p->name);
printf("請輸入新加入學生的語文成績:",n);
scanf("%d",&p->score[0]);
printf("請輸入新加入學生的數學成績:",n);
scanf("%d",&p->score[1]);
printf("請輸入新加入學生的英語成績:",n);
scanf("%d",&p->score[2]);
printf("請輸入第%d名學生的計算機成績:",n);
scanf("%d",&p->score[3]);
p->sum=p->score[0]+p->score[1]+p->score[2]+p->score[3];
p->next=head->next;
head->next=p;
n++;
printf("\n請輸入還要加入學生的學號,沒有此學生則輸入0表示結束:");
scanf("%d",&flag);
}
head=sort_1(head,1);
printf("加入後的成績表為:\n");
print(head);
return head;
}

void print(Student *head)
{
Student *p=head->next;
if (!p)
printf("此系統目前共計學生%d名:\n",n);
printf("**************************學生成績統計一覽************************\
*****\n");
printf("學號\t姓名\t語文成績 數學成績 英語成績 計算機成績 總分\n");
for(;p;p=p->next)
printf("%d\t%s\t %d %d %d %d %d\n",
p->num,p->name,
p->score[0],p->score[1],p->score[2],p->score[3],
p->sum=p->score[0]+p->score[1]+p->score[2]+p->score[3]);
printf("************************此軟體由himpo友情提供*************************\
*\n\n");
}

int main()
{
Student *head;
int choose,i;
head=(Student *)malloc(LEN);
head->next=NULL;
for(;;)
{
printf("\n\t\t* * * * * 學生成績管理系統 * * * *\n");
printf("\t\t*\t1.學生數據鍵盤錄入\t *\n");
printf("\t\t*\t2.學生數據統計排序\t *\n");
printf("\t\t*\t3.查詢學生數據\t\t *\n");
printf("\t\t*\t4.插入學生數據\t\t *\n");
printf("\t\t*\t5.顯示當前成績表\t *\n");
printf("\t\t*\t0.退出成績管理系統\t *\n");
printf("\t\t* * * * * 由himpo友情提供* * * * *\n\n");
printf("\n請輸入你要執行的操作:");
scanf("%d",&choose);
while(getchar()!='\n');
switch(choose)
{
case 1:printf("\n\t\t\t\t****注意****");
printf("\n\n 此選項將會建立新的學生數據系統 ,原來的數據將\
不再存在,你確信要刪除原來的數據並建立新的數據系統么?\n\n");
printf("1、建立新的數據系統;0、放棄建立新的數據系統。\n\n");
printf("請選擇:");
scanf("%d",&i);
if (i==1)
else if (i==0)
{
printf("\n你選擇了放棄建立新的數據系統!\n");
break;
}
else {
printf("\n你做出別的選擇,當作放棄建立!\n");
break;
}
case 2:head=sort_all(head);break;
case 3:find(head);break;
case 4:head=add_new(head);
case 5:print(head);break;
case 0:system("pause");return 0;
default: printf("\n\n您的輸入有誤!請重新輸入:\n\n");break;
}
}
}

㈦ 自行設計學生成績管理信息系統

你按照程序寫需求還可能找到答案,你這樣列出一堆需求要程序不是給分能解決的。是要錢的。行情啊。

我有個程序,你要的話留下郵箱[email protected]

㈧ C語言程序設計 學生成績管理信息系統

我主要設計一個能實現學生信息管理系統,讓它來運行和管理學生信息。它在現實生活中運用方便的、管理方便。它能輸入學生學號、年齡、性別、出生年月、地址電話E-mail。系統以菜單的方式進行工作,進入子菜單後,還可以返回主菜單。在子菜單中的各種操作都有中文說明,操作簡單、易懂。只要我們正確的操作系統,系統就無異常現在,當然系統也能對一些基本的錯誤做出提示,並能讓使用者重新進行操作。
對各個操作的成功,如:添加學生信息、修改學生信息、刪除學
生信息,系統都輸出「…….的成功」的字樣。系統對刪除和修改前,還進行「確定」和「取消」。系統對不存在的學號和姓名系統能判斷是否存在。對已存在的學號,操作者不能添加和這個學號一樣的學生信息,同時系統還提示已有此學號。對於修改、刪除和查詢,系統遇到不存在的學生能提示沒有這個信息。

㈨ 學生成績管理系統風險分析

6. 風險分析
6.1 信息系統面臨的主要風險
信息系統一般有技術性風險、工程性風險和環境性風險這三種類型。
同樣,我們所創建的學生成績管理信息系統也面臨著這幾方面的風險。
首先,是有關環境性風險,我們現在創建的學生成績管理信息系統要盡可能的全面,社會在不斷的發展,我們也要與時俱進。學生成績管理信息系統要囊括各個功能,我們要時刻的關注學校的發展,要大膽思考,將一些管理學生成績中可能要用到的編寫進去。
還有我們所開發的信息系統是否與社會的法律、政策、道德規范相沖突;組織管理是否實現科學化,編寫信息系統的程序員的文化知識素養有么有達到建設信息系統的需要;企業能否保證信息系統建設所需要的足夠資金。
有關工程性風險:工程組織是否規范、工程管理是否混亂、在工程中是否使用了不稱職的管理人員或工程技術人員。
有關技術性風險:信息系統是否安全,異常處理是否得當,信息系統開發所採用的理論、方法、技術、設備等技術性因素是否存在風險。
6.2 風險的處理策略
設備要從正規評價高的地方買,方法理論不能偏離實際異想天開,技術發面要考慮實際情況。要關注管理員程序員,根據他們的實際水平分配他們各自職務和任務。要綜合考慮資金發面的問題,不要一味的追求最好的 只要適當搭配就行。

系統層的安全問題來自網路內使用的操作系統。系統層的安全性問題表現在兩方面:系統預警防護;系統安全系統;系統安全配置;系統日誌審計;
應用層的安全考慮所採用的應用軟體和業務數據的安全性,包括資料庫軟體、web服務、電子郵件系統等常見應用系統及業務應用系統安全。此外,還包括病毒對系統的威脅。

熱點內容
武漢大學學生會輔導員寄語 發布: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