當前位置:首頁 » 考試成績 » c學生成績統計系統

c學生成績統計系統

發布時間: 2021-01-29 04:01:44

Ⅰ 用c語言編寫一個學生成績統計系統 急!!

思路提示。創建一個頭文件,定義二維數組保存學生成績。聲明求學生總成績以及各科最高最低成績函數。創建源文件,實現上述頭文件聲明的函數。創建main函數調用上述方法即可

Ⅱ c語言學生成績統計系統,

#include<stdio.h>
#include<string.h>

#define NUM1 3
#define NUM2 3
#define NUM3 3

struct student
{
char name[10];
int score;
}c1[NUM1],c2[NUM2],c3[NUM3];//定義三個結構體數組
int i,j,k;
FILE *fp1_order,*fp2_order,*fp3_order;//定義文件指針
//=========================================================
void main(void)
{
void data_in(void);
void score_order(void);
void save_in(void);
void save_order(void);
void open_order(void);
printf("******************************學生成績文件管理******************************\n");
printf(" programmer:喻翔\n\n");
printf("一、輸入三個班的學生姓名和成績:\n\n");
data_in();
printf("\n\n\n");
printf("############################################################################\n\n");
printf("二、保存輸入的姓名和成績:\n\n");
save_in();
printf("\n\n\n\n");
printf("############################################################################\n\n");
printf("三、排名並保存姓名和成績:\n\n");
score_order();
save_order();
printf("\n\n\n\n");
printf("############################################################################\n\n");
printf("四、驗證排名後保存的文件:\n\n");
open_order();
printf("\n\n\n");
}
//============================================
void data_in(void)
{
printf("請輸入一班%d個學生的姓名和成績:\n",NUM1);
for(i=0;i<NUM1;i++)
{
printf("第%d個:",i+1);
scanf("%s %d",c1[i].name,&c1[i].score);
}
printf("\n\n\n請輸入二班%d個學生的姓名和成績:\n",NUM2);
for(j=0;j<NUM2;j++)
{
printf("第%d個:",j+1);
scanf("%s %d",c2[j].name,&c2[j].score);
}
printf("\n\n\n請輸入三班%d個學生的姓名和成績:\n",NUM3);
for(k=0;k<NUM3;k++)
{
printf("第%d個:",k+1);
scanf("%s %d",c3[k].name,&c3[k].score);
}
}
//=============================================================
void score_order(void)
{
int h,t;
char s[10];
for(h=0;h<NUM1-1;h++)
for(i=0;i<NUM1-1-h;i++)
if(c1[i].score<c1[i+1].score)
{
t=c1[i].score;
c1[i].score=c1[i+1].score;
c1[i+1].score=t;
strcpy(s,c1[i].name);//一定要使用strcpy()函數
strcpy(c1[i].name,c1[i+1].name);
strcpy(c1[i+1].name,s);
}
for(h=0;h<NUM2-1;h++)
for(j=0;j<NUM2-1-h;j++)
if(c2[j].score<c2[j+1].score)
{
t=c2[j].score;
c2[j].score=c2[j+1].score;
c2[j+1].score=t;
strcpy(s,c2[j].name);
strcpy(c2[j].name,c2[j+1].name);
strcpy(c2[j+1].name,s);
}

for(h=0;h<NUM3-1;h++)
for(k=0;k<NUM3-1-h;k++)
if(c3[k].score<c3[k+1].score)
{
t=c3[k].score;
c3[k].score=c3[k+1].score;
c3[k+1].score=t;
strcpy(s,c3[k].name);
strcpy(c3[k].name,c3[k+1].name);
strcpy(c3[k+1].name,s);
}
}
//=====================================================================
void save_in(void)
{
FILE *fp1_in,*fp2_in,*fp3_in;
if((fp1_in=fopen("data1_in.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(i=0;i<NUM1;i++)
if(fwrite(&c1[i],sizeof(struct student),1,fp1_in)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp1_in);
if((fp2_in=fopen("data2_in.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(j=0;j<NUM2;j++)
if(fwrite(&c2[j],sizeof(struct student),1,fp2_in)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp2_in);
if((fp3_in=fopen("data3_in.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(k=0;k<NUM3;k++)
if(fwrite(&c3[k],sizeof(struct student),1,fp3_in)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp3_in);
}

//==============================================================
void save_order(void)
{
if((fp1_order=fopen("data1_order.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(i=0;i<NUM1;i++)
if(fwrite(&c1[i],sizeof(struct student),1,fp1_order)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp1_order);
if((fp2_order=fopen("data2_order.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(j=0;j<NUM2;j++)
if(fwrite(&c2[j],sizeof(struct student),1,fp2_order)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp2_order);
if((fp3_order=fopen("data3_order.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(k=0;k<NUM3;k++)
if(fwrite(&c3[k],sizeof(struct student),1,fp3_order)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp3_order);
}

//=============================================================
void open_order(void)
{
fp1_order=fopen("data1_order.dat","rb");
printf("一班的成績排名如下:\n");
printf("名次 姓名 C語言成績\n");
printf("----------------------------------------\n");
for(i=0;i<NUM1;i++)
{
printf("第%d名 ",i+1);
fread(&c1[i],sizeof(struct student),1,fp1_order);
printf("%s %d\n",c1[i].name,c1[i].score);
}
fp2_order=fopen("data2_order.dat","rb");
printf("\n\n\n二班的成績排名如下:\n");
printf("名次 姓名 C語言成績\n");
printf("----------------------------------------\n");
for(j=0;j<NUM2;j++)
{
printf("第%d名 ",j+1);
fread(&c2[j],sizeof(struct student),1,fp2_order);
printf("%s %d\n",c2[j].name,c2[j].score);
}
fp3_order=fopen("data3_order.dat","rb");
printf("\n\n\n三班的成績排名如下:\n");
printf("名次 姓名 C語言成績\n");
printf("----------------------------------------\n");
for(k=0;k<NUM3;k++)
{
printf("第%d名 ",k+1);
fread(&c3[k],sizeof(struct student),1,fp3_order);
printf("%s %d\n",c3[k].name,c3[k].score);
}
}

Ⅲ c\c++課程設計 學生成績管理及統計系統

#include <string.h>

#include <stdio.h>

#include <malloc.h>

#include <stdlib.h>//包含system函數頭文件

#define LEN sizeof(struct student)

struct student

{

char num[20];//學號

char name[100];//用戶姓名

char phone[20];//電話號碼

char home[100];//通訊地址

char birthday[20];//出生日期

struct student *next;

};

void face(void)//功能選擇面板

{

printf("********************************************************************");

printf("\t\t\t\t☆★☆★☆★ ~_~ ~_~ ~_~ ☆★☆★☆★\n");

printf("\n\t\t\t☆★歡迎使用張億斐電話號碼查詢系統☆★");

printf("\n\n\t☆★選擇你需要操作的功能:☆★(現無記錄,建議先填加記錄)★☆\n");

printf("\n");

printf("\t\t\t1.【增加系統信息〗\n");

printf("\t\t\t2.〖顯示系統中所有記錄】\n");

printf("\t\t\t3.【刪除需要刪除的信息〗\n");

printf("\t\t\t4.〖以名字查詢所需的信息】\n");

printf("\t\t\t5.【保存系統中的所有記錄到指定文件中〗\n");

printf("\t\t\t6.〖退出不保存!!】\n");

printf("\n");

printf("\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★");

printf("\n\n********************************************************************\n\n");

}

void print(struct student *head)

{

struct student *p;

p=head;

system("CLS");//調用DOS命令CLS能夠清屏

printf("*************************************************************\n");

printf("==================== → 用戶信息記錄表 ← ===================\n");

printf("*************************************************************\n");

if(head!=NULL)

do

{

printf("聯系人學號:%s\n",p->num);

printf("聯系人姓名:%s\n",p->name);

printf("聯系人電話號碼:%s\n",p->phone);

printf("學生地址:%s\n",p->home);

printf("聯系人出生日期:%s\n",p->birthday);

printf("********************************************************\n");

p=p->next;

}while(p!=NULL);

else

{

printf("對不起!!沒有任何聯系人記錄!!\n\n");

printf("=============================================================\n");

}

}

//增添電子通訊錄中的內容,即創建連表過程

struct student *append(struct student *head)

{

struct student *p0=NULL,*p1,*p2;//p0為要插入的新節點

p1=head;

p2=head;

system("CLS");

printf("\n\n***********************************************************\n");

printf("\t\t你能在此目錄下創建並添加聯系人信息");

printf("\n***********************************************************\n");

p0=(struct student *)malloc(LEN);

printf("請輸入聯系人學號:");

gets(p0->num);

printf("請輸入聯系人姓名:");

gets(p0->name);

printf("請輸入聯系人電話號碼:");

gets(p0->phone);

printf("請輸入聯系人地址:");

gets(p0->home);

printf("請輸入聯系人出生日期:");

gets(p0->birthday);

//對插入的節點排序,按姓名的拼音順序

if(head==NULL)

{head=p0;p0->next=NULL;}

else

{

while((strcmp(p0->name,p1->name)>0)&&(p1->next!=NULL))

{p2=p1;p1=p1->next;}

if((strcmp(p0->name,p1->name))<=0)

{

if(head==p1)

head=p0;

else

p2->next=p0;

p0->next=p1;

}

else

{p1->next=p0;p0->next=NULL;}

printf("恭喜你!!成功添加了聯系人信息!!");

printf("\n************************************************************\n");

printf("\n\n");

}

return(head);

}

//電子通訊錄的維護(刪除),通過輸入聯系人學號刪除聯系人數據

struct student *del(struct student *head)

{

struct student *p1,*p2;

char num[12];

system("CLS");

printf("\n\n************************************************************\n");

printf("================= → 用戶信息記錄刪除功能 ← ===============\n");

printf("************************************************************\n");

printf("輸入要刪除的聯系人學號:");

gets(num);

p1=head;

if (head==NULL)

{

printf("很抱歉!!沒有任何聯系人紀錄!!\n");

printf("\n*******************************************************\n");

return(head);

}

while(p1!=NULL)

{

if(strcmp(p1->num,num)==0)

{

if(p1==head)

head=p1->next;

else p2->next=p1->next;

free(p1);

printf("刪除記錄成功!!\n");

return(head);

}

p2=p1;

p1=p1->next;

}

printf("對不起!!沒有要刪除的聯系人紀錄!!\n");

return(head);

}

//電子通訊錄的查找,關鍵字為用戶姓名;

void search(struct student *head)

{

struct student *p1,*p2;

char name[20];

p1=head;

p2=p1;

system("CLS");

printf("\n**************************************************************\n");

printf("================ → 用戶信息記錄查詢功能 ← ==================\n");

printf("**************************************************************\n");

printf("輸入要查找聯系人的姓名:");

gets(name);

while(p1!=NULL)

{

if(strcmp(p1->name,name)==0)

{

printf("聯系人學號:");

puts(p1->num);

printf("聯系人姓名:");

puts(p1->name);

printf("聯系人電話號碼:");

puts(p1->phone);

printf("聯系人地址:");

puts(p1->home);

printf("聯系人出生日期:");

puts(p1->birthday);

printf("\n=============================================================\n");

break;

}

p2=p1;

p1=p1->next;

}

if(p1==NULL)

printf("對不起!!沒有該聯系人的紀錄!!\n");

}

//電子通訊錄的記錄存檔操作,使用文件指針;

void save(struct student *head)

{

FILE *fp,*fp1;

struct student *p;

p=head;

fp=fopen("record.txt","w");

fp1=fopen("record1.txt","w");

fprintf(fp1,"=============== → 用戶信息記錄表 ← =================\n");

while(p!=NULL)

{

//首先把數據保存在record.txt中,這是提供給load函數用的數據

//fprintf(fp," %s %s %s %s %s %s",p->num,p->name,p->phone,p->email,p->home,p->birthday);

//然後把數據保存在record1.txt中,這是能提供直接查詢看的,有比較友好的畫面

fprintf(fp1,"====================================================\n");

fprintf(fp1,"聯系人學號:%s\n",p->num);

fprintf(fp1,"聯系人姓名:%s\n",p->name);

fprintf(fp1,"聯系人電話:%s\n",p->phone);

fprintf(fp1,"聯系人家庭地址:%s\n",p->home);

fprintf(fp1,"聯系人出生日期:%s\n",p->birthday);

p=p->next;

}

fprintf(fp1,"*************************************************************\n");

fclose(fp1);

fclose(fp);

printf("\n\n恭喜你!!成功儲存,你能在record1.txt找到相應紀錄\n");

printf("**************************************************************\n");

printf("PRESS ANY KEY TO EXIT.\n\n");

getchar();

exit(1);

}

//電子通訊錄的記錄讀盤操作,使用文件指針;

struct student *load(void)

{

FILE *fp;

struct student *head=NULL,*p1=NULL,*p2=NULL;

char c;

int i;

fp=fopen("record.txt","r");

for(i=1;(c=fgetc(fp))!=-1;i++)

{

p1=(struct student *)malloc(LEN);

//fscanf(fp,"%s %s %s %s %s %s",p1->num,p1->name,p1->phone,p1->email,p1->home,p1->birthday);

if(i==1)

{head=p1;p2=p1;}

else

{p2->next=p1;p2=p1;}

}

if(p1==NULL)

{fclose(fp);return(head);}

p2->next=NULL;

fclose(fp);

return(head);

}

main()

{

FILE *fp1,*fp2;

int c;//功能選擇需要的號碼

system("cls");

system("color 5f");

system("cls");

struct student *head=NULL;

if ((fp1=fopen("record.txt","r"))==NULL)

{

fp2=fopen("record.txt","w");//如果不存在record.txt就創建一個

fclose(fp2);

}

head=load();

while(1)

{

face();

printf("選擇你需要操作的功能號碼:");

scanf("%d",&c);

getchar();

switch(c)

{

case 1:head=append(head);break;

case 2:print(head);break;

case 3:head=del(head);break;

case 4:search(head);break;

case 5:save(head);break;

case 6:exit(0);break;

default :printf("Enter error!!\n");

}

//printf("*****************\n");

printf("◇◆請按ENTER返回功能操作菜單◇◆\n");

//printf("*****************\n");

getchar();

system("CLS");

}

}

Ⅳ c語言程序設計-學生成績管理系統(成績的查詢,統計,用結構體,指針)

#include<stdio.h>
#include<stdlib.h>
struct stu
{
int num;
char name[20];
float grade;
};
int main()
{
int n,i,n1;
float sum=0.0,ave;
printf("請輸入學生人數:\n");
scanf("%d",&n);
struct stu *p;
p=(struct stu*)calloc(n,sizeof(stu));
printf("請輸入%d個學生信息(學號,姓名,成績):\n",n);
for(i=0;i<n;i++)
{
scanf("%d %s %f",&p[i].num,&p[i].name,&p[i].grade);
}
for(i=0;i<n;i++)
{
printf("%d %s %f\n",p[i].num,p[i].name,p[i].grade);
}
printf("請輸入要查詢學生成績的編號:\n");
scanf("%d",&n1);
printf("%d號學生的成績為:%f\n",n1,p[n1-1].grade);
for(i=0;i<n;i++)
{
sum+=p[i].grade;
}
ave=sum/n;
printf("%d個學生的平均成績為:%f\n",n,ave);
delete []p;
return 0;
}
你所指的統計功能不知道是什麼,我就改成計算平均數了

Ⅳ 用C語言做一個學生成績統計系統,求幫忙(源代碼。。)

可以給你。需要點時間。現在在上課。
#include <stdio.h>
void main()
{
int Password =0,i=0,sum=0;
clrscr();
printf("\n===請輸入密碼!====\n");
while(Password != 1234)
{
if(i>3)
{
printf(" 密碼錯誤!\n ");
return;
}
i++;
printf(" 請輸入密碼!\n");
}
//以上為三次密碼部分,密碼默認1234。
int k=0,b=0;
int stu[50];
loop:
printf("1. 學生成績錄入(限人數50)\n");
printf("2. 顯示學生成績\n");
printf("3. 統計總分平均分\n");
printf("4. 最高分和最低分\n");
printf("5. 統計各分數段人數\n");
printf("6. 退出\n");
abc:
scanf("%d",&k);
switch(k)
{
case 1:
printf("請輸入50個學生成績:\n");
for(i=0;i<50;i++)
{
scanf("%d",&stu[i]);
b=i;
}
printf("請選擇下一個選項:\n");
goto abc;
case 2:
if(b == 50)
{
printf(" 顯示學生成績:\n");
for(i=0;i<50;i++)
printf(" %d ",stu[i]);
printf("請選擇下一個選項:\n");
goto abc;
}
else
{
clrscr();
printf("========================\n");
printf(" 請先輸入50個學生成績:\n");
goto loop;
}
case 3:
if(b == 50)
{
printf(" 顯示學生總分:\n");
for(i=0;i<50;i++)
sum += stu[i];
printf(" %d ",sum);
printf("請選擇下一個選項:\n");
goto abc;
}
else
{
clrscr();
printf("========================\n");
printf(" 請先輸入50個學生成績:\n");
goto loop;
}
case 4:
if(b == 50)
{
printf(" 顯示學生最大分,最小分:\n");
min = stu[0];
max = stu[49];
for(i=0;i<50;i++)
if(min > stu[i])
min = stu[i];
for(i=0;i<50;i++)
if(max < stu[i])
max = stu[i];
printf(" %d %d ",max ,min);
printf("請選擇下一個選項:\n");
goto abc;
}
else
{
clrscr();
printf("========================\n");
printf(" 請先輸入50個學生成績:\n");
goto loop;
}
case 5:
if(b == 50)
{
printf(" 統計各分數段人數:\n");
// ************************************
// 哥們,這里你自己來寫好嗎?我給點提示,把及格,不及格寫出來。細分分數段,你自己來吧。
int x=0,y=0;
for(i=0;i<50;i++)
if (stu[i]>=60)
x++;
else
y++;
printf(" 及格人數 %d 人,不及格人數 %d 人\n",x,y);
// ***********************************
printf("請選擇下一個選項:\n");
goto abc;
}
else
{
clrscr();
printf("========================\n");
printf(" 請先輸入50個學生成績:\n");
goto loop;
}
case 6:
break;
default:
clrscr();
printf("========================\n");
printf(" 請先輸入50個學生成績:\n");
goto loop;
}
//switch語句結束。
getch();
}
親,剛寫好了。我沒調試。這個僅供參考。自己調試,有錯就找找。

Ⅵ c語言學生成績統計系統

#include<stdio.h>
#include<string.h>
#define NUM1 3
#define NUM2 3
#define NUM3 3
struct student
{
char name[10];
int score;
}c1[NUM1],c2[NUM2],c3[NUM3];//定義三個結構體數組
int i,j,k;
FILE *fp1_order,*fp2_order,*fp3_order;/*/定義文件指針
/*/=========================================================
void main(void)
{
void data_in(void);
void score_order(void);
void save_in(void);
void save_order(void);
void open_order(void);
printf("******************************學生成績文件管理******************************\n");
printf(" programmer:喻翔\n\n");
printf("一、輸入三個班的學生姓名和成績:\n\n");
data_in();
printf("\n\n\n");
printf("############################################################################\n\n");
printf("二、保存輸入的姓名和成績:\n\n");
save_in();
printf("\n\n\n\n");
printf("############################################################################\n\n");
printf("三、排名並保存姓名和成績:\n\n");
score_order();
save_order();
printf("\n\n\n\n");
printf("############################################################################\n\n");
printf("四、驗證排名後保存的文件:\n\n");
open_order();
printf("\n\n\n");
}
//=============================================================
void data_in(void)
{
printf("請輸入一班%d個學生的姓名和成績:\n",NUM1);
for(i=0;i<NUM1;i++)
{
printf("第%d個:",i+1);
scanf("%s %d",c1[i].name,&c1[i].score);
}
printf("\n\n\n請輸入二班%d個學生的姓名和成績:\n",NUM2);
for(j=0;j<NUM2;j++)
{
printf("第%d個:",j+1);
scanf("%s %d",c2[j].name,&c2[j].score);
}
printf("\n\n\n請輸入三班%d個學生的姓名和成績:\n",NUM3);
for(k=0;k<NUM3;k++)
{
printf("第%d個:",k+1);
scanf("%s %d",c3[k].name,&c3[k].score);
}
}
//=============================================================
void score_order(void)
{
int h,t;
char s[10];
for(h=0;h<NUM1-1;h++)
for(i=0;i<NUM1-1-h;i++)
if(c1[i].score<c1[i+1].score)
{
t=c1[i].score;
c1[i].score=c1[i+1].score;
c1[i+1].score=t;
strcpy(s,c1[i].name);//一定要使用strcpy()函數
strcpy(c1[i].name,c1[i+1].name);
strcpy(c1[i+1].name,s);
}
for(h=0;h<NUM2-1;h++)
for(j=0;j<NUM2-1-h;j++)
if(c2[j].score<c2[j+1].score)
{
t=c2[j].score;
c2[j].score=c2[j+1].score;
c2[j+1].score=t;
strcpy(s,c2[j].name);
strcpy(c2[j].name,c2[j+1].name);
strcpy(c2[j+1].name,s);
}

for(h=0;h<NUM3-1;h++)
for(k=0;k<NUM3-1-h;k++)
if(c3[k].score<c3[k+1].score)
{
t=c3[k].score;
c3[k].score=c3[k+1].score;
c3[k+1].score=t;
strcpy(s,c3[k].name);
strcpy(c3[k].name,c3[k+1].name);
strcpy(c3[k+1].name,s);
}
}
//=====================================================================
void save_in(void)
{
FILE *fp1_in,*fp2_in,*fp3_in;
if((fp1_in=fopen("data1_in.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(i=0;i<NUM1;i++)
if(fwrite(&c1[i],sizeof(struct student),1,fp1_in)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp1_in);
if((fp2_in=fopen("data2_in.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(j=0;j<NUM2;j++)
if(fwrite(&c2[j],sizeof(struct student),1,fp2_in)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp2_in);
if((fp3_in=fopen("data3_in.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(k=0;k<NUM3;k++)
if(fwrite(&c3[k],sizeof(struct student),1,fp3_in)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp3_in);
}

//==============================================================
void save_order(void)
{
if((fp1_order=fopen("data1_order.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(i=0;i<NUM1;i++)
if(fwrite(&c1[i],sizeof(struct student),1,fp1_order)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp1_order);
if((fp2_order=fopen("data2_order.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(j=0;j<NUM2;j++)
if(fwrite(&c2[j],sizeof(struct student),1,fp2_order)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp2_order);
if((fp3_order=fopen("data3_order.dat","wb"))==NULL)
{
printf("The file can not open!\n");
return;
}
for(k=0;k<NUM3;k++)
if(fwrite(&c3[k],sizeof(struct student),1,fp3_order)!=1)
{
printf("file write error!\n");
return;
}
fclose(fp3_order);
}

//=============================================================
void open_order(void)
{
fp1_order=fopen("data1_order.dat","rb");
printf("一班的成績排名如下:\n");
printf("名次 姓名 C語言成績\n");
printf("----------------------------------------\n");
for(i=0;i<NUM1;i++)
{
printf("第%d名 ",i+1);
fread(&c1[i],sizeof(struct student),1,fp1_order);
printf("%s %d\n",c1[i].name,c1[i].score);
}
fp2_order=fopen("data2_order.dat","rb");
printf("\n\n\n二班的成績排名如下:\n");
printf("名次 姓名 C語言成績\n");
printf("----------------------------------------\n");
for(j=0;j<NUM2;j++)
{
printf("第%d名 ",j+1);
fread(&c2[j],sizeof(struct student),1,fp2_order);
printf("%s %d\n",c2[j].name,c2[j].score);
}
fp3_order=fopen("data3_order.dat","rb");
printf("\n\n\n三班的成績排名如下:\n");
printf("名次 姓名 C語言成績\n");
printf("----------------------------------------\n");
for(k=0;k<NUM3;k++)
{
printf("第%d名 ",k+1);
fread(&c3[k],sizeof(struct student),1,fp3_order);
printf("%s %d\n",c3[k].name,c3[k].score);
}
}

Ⅶ 用C語言設計一個學生成績統計系統

// Note:Your choice is C++ IDE
#include <iostream>
#include <string>
using namespace std;
//N代表科目數,M代表人數
#define N 2
#define M 3

class student
{public:
float score[N];
string name;
float average;
float total;
int rank;

student();
void inscore();
void calav();
void caltt();
void show();

};

void student::inscore()
{
int i;
cout<<"輸入姓名:";
cin>>name;
cout<<"輸入成績:";
for(i=0;i<N;i++)
{
cin>>score[i];
}
caltt();
calav();

}

void student::calav()
{
average=total/N;
}

void student::caltt()
{
int i;
for(i=0;i<N;i++)
total+=score[i];
}

void student::show()
{
int i;
cout<<rank<<" "<<name<<" ";
for(i=0;i<N;i++)
cout<<score[i]<<" ";

cout<<endl;
}

void setrank(student sys[M])
{
int i,j;
student tmp=sys[0];

for(i=0;i<M-1;i++)
{
for(j=i+1;j<M;j++)
if(sys[j].average>sys[i].average)
{
tmp=sys[j];
sys[j]=sys[i];
sys[i]=tmp;
}
sys[i].rank=i+1;
}
sys[i].rank=i+1;
}

void findsc(student sys[M])
{
string n;
int i;
cout<<"請輸入查詢的名字:";
cin>>n;
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(i=0;i<M;i++)
if(sys[i].name==n)
{

sys[i].show();
}
}

void findrank(student sys[M])
{
string n;
int i;
cout<<"請輸入查詢的名字:";
cin>>n;
for(i=0;i<M;i++)
if(sys[i].name==n) cout<<sys[i].rank;

}

void find10(student sys[M])
{
int j;
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<10;j++)
sys[j].show();
}

void findgrade(student sys[M])
{
int i,j;
cout<<"1.>=85 2.>=75 3.>=60 4.<60"<<endl;
cin>>i;
switch(i)
{
case 1:
{
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<M;j++)
sys[j].show();

}
break;

case 2:
{
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<M;j++)
if(sys[j].average>=75 && sys[j].average<85) sys[j].show();

}
break;
case 3:
{
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<M;j++)
sys[j].show();

}
break;

case 4:
{
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<M;j++)
if(sys[j].average<60) sys[j].show();

}
break;

}

}

void findbad(student sys[M])
{
int i,j,k;
for(i=0;i<M;i++)
{
k=0;

cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(j=0;j<N;j++)
{
if(sys[i].score[j]<60) k++;
if(k==3)
}
}
}

void pub(student sys[M])
{
int i;
cout<<"排名 "<<"姓名 "<<"--成績--"<<endl;
for(i=0;i<M;i++)
sys[i].show();
}

int main()
{
student st[M];
int i,j;

while(1)
{
cout<<
"-------------------------------\n"<<
"1.輸入成績\n"<<
"2.查詢任一學生成績\n"<<
"3.查詢任一學生排名\n"<<
"4.查詢前十的學生\n"<<
"5.查詢成績級別的情況\n"<<
"6.查詢三門不及格的學生\n"<<
"7.按成績高低,順序輸入所有學生\n"<<
"-------------------------------"<<endl;
cin>>i;
switch(i)
{
case 1:
for(j=0;j<M;j++)
{
cout<<"輸入第"<<j+1<<"個學生的成績"<<endl;
st[j].inscore();
};
setrank(st);
break;

case 2:findsc(st);system("pause");break;
case 3:findrank(st);system("pause");break;
case 4:find10(st);system("pause");break;
case 5:findgrade(st);system("pause");break;
case 6:findbad(st);system("pause");break;
case 7:pub(st);system("pause");break;
}

}

return 0;
}

Ⅷ 用C語言設計一個學生成績管理系統

#include <stdio.h>
#include <string.h>

#include <stdlib.h>
#defineMAX1000

/*定義學生成績信息結構*/
struct stu
{

char id[8];
char name[8];


(8)c學生成績統計系統擴展閱讀:

short:修飾int,短整型數據,可省略被修飾的int。(K&R時期引入)

long:修飾int,長整型數據,可省略被修飾的int。(K&R時期引入)

long long:修飾int,超長整型數據,可省略被修飾的int。(C99標准新增)

signed:修飾整型數據,有符號數據類型。(C89標准新增)

unsigned:修飾整型數據,無符號數據類型。(K&R時期引入)

restrict:用於限定和約束指針,並表明指針是訪問一個數據對象的唯一且初始的方式。(C99標准新增)

復雜類型關鍵字

struct:結構體聲明。(K&R時期引入)

union:聯合體聲明。(K&R時期引入)

enum:枚舉聲明。(C89標准新增)

typedef:聲明類型別名。(K&R時期引入)

sizeof:得到特定類型或特定類型變數的大小。(K&R時期引入)

inline:內聯函數用於取代宏定義,會在任何調用它的地方展開。(C99標准新增)

Ⅸ 數據結構c++c語言 學生成績分析系統

|給你個我寫的復,並在項目制中使用了很長時間的正則吧.
/<img.*src\s*=\s*[\"|\']?\s*([^>\"\'\s]*)/i
,我使用kindeditor保存文章,但是需要取出第N個圖片的地址作為文章的標志圖片,文章代碼(內容的html)保存到資料庫一個欄位,然後圖片地址保存到另外一個欄位.我就是使用上面的正則解決的.

我說明下,上面的地址是直接獲取img標簽內src屬性的值.在使用該正則的php頁面訪問該路徑如果能找到圖片的話,可以直接使用,如果不能,你可以使用preg_match_all將所有地址先保存到數組,然後處理路徑,比如獲取文件名稱(不含路徑部分),然後重新組成url,再刪除圖片.

我的例子:
preg_match_all("/<img.*src\s*=\s*[\"|\']?\s*([^>\"\'\s]*)/i",str_ireplace("\\","",$content),$arr);

呵呵 我的內容部分被php給加上\轉義了,所以我需要先把\去除,str_ireplace("\\","",$content),然後將匹配的內容保存到$arr數組(二維的).
$arr[1]就是存儲該路徑的數組.

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