當前位置:首頁 » 考試成績 » C語言程序課程設計學生成績報告

C語言程序課程設計學生成績報告

發布時間: 2021-03-08 13:46:08

❶ 關於學生成績管理系統的c語言課程設計報告

這個好像要用到VB吧!

❷ c語言課程設計,學生成績管理,設計報告也要,

這個當時我們也做過的,很簡單但也很麻煩!
樓主想要我可以發你,但5個知道分確實太少.....

❸ c語言程序課程設計--學生成績管理

我自己做過這個設計,還有設計報告,最後得了95分,你要的話我可以發給你
我的郵箱 [email protected]

❹ C語言課程設計報告(題目:學生成績管理系統)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 35
char name;
int inth;
struct date
{
int year;
char month;
char day;
};
struct student
{
char no[9];
char name[9];
char sex[3];
struct date birthday;
int score[4];
};
int menu()
{

int code;

printf(" 菜單\n");

printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");

printf("┃ 0.退出 ┃\n");

printf("┃ 1.顯示學生信息 ┃\n");

printf("┃ 2.顯示按姓名排序後的學生信息 ┃\n");

printf("┃ 3.顯示按總分排序後的學生信息 ┃\n");

printf("┃ 4.按學號查學生分數和平均分數 ┃\n");

printf("┃ 5.按姓名查學生分數和平均分數 ┃\n");

printf("┃ 6.查各課程平均分數 ┃\n");

printf("┃ 7.查男女學生的人數 ┃\n");

printf("┃ 8.顯示學生信息表 ┃\n");

printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

printf("選擇代碼(0,1,2,3,4,5,6,7,8): ");

scanf("%d",&code);

return code;

}

/* 建立學生信息數組 */

void readsi(struct student stud[],int *n)

{

FILE*fp;

int i;

if((fp=fopen("studf.txt","r"))==NULL)

{

printf("不能打開studf.txt文件!\n");

exit(1);

}

for(i=0;!feof(fp);i++)

{

(*n)++;

if(*n>N)

{

printf("最多處理35位學生信息!\n");

return;

}

fscanf(fp,"%s %s %s %d %d %d %d %d %d",stud[i].no,stud[i].name,stud[i].sex,&stud[i].birthday.year,&stud[i].birthday.month,&stud[i].birthday.day,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
// fscanf從一個流中執行格式化輸入
stud[i].score[3]=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];

}

fclose(fp);

}

/* 顯示學生信息 */

void printsi(struct student *pstud,int n)

{

int i,k=0;

printf(" 學號 姓名 性別 年 月 日 數學 英語 C 總分\n");

printf("┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉\n");

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

for(i=0;i<n;i++)

{

printf("%-8s %-8s %-2s %4d %2d %2d %4d %4d %4d %5d\n",pstud[i].no,pstud[i].name,pstud[i].sex,pstud[i].birthday.year,pstud[i].birthday.month,pstud[i].birthday.day,

pstud[i].score[0],pstud[i].score[1],pstud[i].score[2],pstud[i].score[3]);

k++;

if(k%20==0)

scanf("%*c");

}

}

/* 按學號排序—簡單比較排序法*/

void csort_no(struct student *pstud,int n)

{

struct student temp;

int i,j;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(strcmp(pstud[i].no,pstud[j].no)>0)

{

temp=pstud[i];

pstud[i]=pstud[j];

pstud[j]=temp;

}

}

/* 顯示學生信息表*/

void printtable(struct student *pstud,int n)

{

int i,k=0;struct student studA[N];

for(i=0;i<n;i++)

studA[i]=pstud[i];

csort_no(studA,n);

printf("\n\n");

printf(" 學生信息表\n");

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

printf("┏━━━━┳━━━━┳━━━┳━━━━━━┳━━━┳━━━┳━━━┳━━━┓\n");

printf("┃學號 ┃姓名 ┃ 性別 ┃ 年 月 日 ┃ 數學 ┃ 英語 ┃ C ┃ 總分 ┃\n");

printf("┣━━━━╋━━━━╋━━━╋━━━━━━╋━━━╋━━━╋━━━╋━━━┫\n");

printf("┣━━━━╋━━━━╋━━━╋━━━━━━╋━━━╋━━━╋━━━╋━━━┫\n");

for(i=0;i<n;i++)

{

printf("┃%-8s┃%-8s┃ %-2s ┃ %4d %2d %2d ┃ %4d ┃ %4d ┃ %4d ┃ %4d ┃\n",studA[i].no,studA[i].name,studA[i].sex,studA[i].birthday.year,studA[i].birthday.month,studA[i].birthday.day,studA[i].score[0],studA[i].score[1],studA[i].score[2],studA[i].score[3]);

if(i==n-1)

printf("┗━━━━┻━━━━┻━━━┻━━━━━━┻━━━┻━━━┻━━━┻━━━┛\n");

else

printf("┣━━━━╋━━━━╋━━━╋━━━━━━╋━━━╋━━━╋━━━╋━━━┫\n");

k++;

if(k%20==0)

scanf("%*c");

}

}

/* 查各課程平均分數 */

void find_ave(struct student *pstud,int n)

{

static summath=0,sumenglish=0,sumC=0,score=0;int i;struct student studA[N];

for(i=0;i<n;i++)

studA[i]=pstud[i];

csort_no(studA,n);

printf(" 各課程平均分數 \n ");

printf("————————————————————————————\n");

for(i=0;i<n;i++)

{

summath=summath+pstud[i].score[0];

sumenglish=sumenglish+pstud[i].score[1];

sumC=sumC+pstud[i].score[2];

score=score+pstud[i].score[3];

}

printf("數學平均分數:%4d\n",summath/n);

printf("英語平均分數:%4d\n",sumenglish/n);

printf("c平均分數:%4d\n",sumC/n);

printf("總分平均分數:%5d\n",score/n);

}

/* 查男女學生人數 */

void find_pnum(struct student *pstud,int n)

{

int i,j=0,k=0;

for(i=0;i<n;i++)

{

if(strcmp(pstud[i].sex,"男")==0)

j++;

else

k++;

}

printf("男學生人數為%d人",j);

printf("女學生人數為%d人",k);

}

/* 按總分遞減選擇排序(應用指針數組)*/

void ssort(struct student *ptscore[],int n)

{

struct student *temp;

int i,j;

for(i=0;i<n-1;i++)

for(j=0;j<n-i-1;j++)

if(ptscore[j]->score[3]<ptscore[j+1]->score[3])

{

temp=ptscore[j];

ptscore[j]=ptscore[j+1];

ptscore[j+1]=temp;

}

}

/* 按學號查學生信息和平均分數(順序查找)*/

void ssrch_no(struct student *pstud[],int n)

{

int i=0,j=0;char no[9];

printf("請輸入要查找的學生學號:");

scanf("%s",&no);

printf("\n");

for(i=0;i<n;i++)

{

if(strcmp(no,pstud[i]->no)==0)

printf("已找到學號為%-8s的學生\n學號:%-8s\n姓名:%-8s\n性別:%-2s\n%4d年%2d月%2d日\n數學:%4d\n英語:%4d\nc:%4d\n總分%4d\n平均分數為:%4d\n",pstud[i]->no,pstud[i]->no,pstud[i]->name,pstud[i]->sex,pstud[i]->birthday.year,pstud[i]->birthday.month,pstud[i]->birthday.day,pstud[i]->score[0],pstud[i]->score[1],pstud[i]->score[2],pstud[i]->score[3],pstud[i]->score[3]/3);

else

j++;

}

if(j==6)

printf("未找到學號為%-8s的學生\n",no);

}

/* 按姓名查找的學生信息和平均分數(折半查找)*/

void bsrch_name(struct student *pname[],int n)

{
int bsrch(struct student *pname[],int n,char *name);
char name[9];int i;

printf("請輸入要查找的學生姓名:");

scanf("%s",name);

i=bsrch(pname,n,name);

if(i!=-1)

printf("已找到該學生,學生信息:%-8s %-8s %-2s %4d %2d %2d %4d %4d %4d %5d\n",

pname[i]->no,pname[i]->name,pname[i]->sex,

pname[i]->birthday.year,pname[i]->birthday.month,

pname[i]->birthday.day,

pname[i]->score[0],pname[i]->score[1],pname[i]->score[2],

pname[i]->score[3]);

else

printf("%d沒有找到該學生資料!\n",name);

for(;;)

{ i=i-1;

if(strcmp(name,pname[i]->name)==0) printf("已找到該學生,學生信息:%-8s %-8s %-2s %4d %2d %2d %4d %4d %4d %5d\n",

pname[i]->no,pname[i]->name,pname[i]->sex,

pname[i]->birthday.year,pname[i]->birthday.month,

pname[i]->birthday.day,

pname[i]->score[0],pname[i]->score[1],pname[i]->score[2],

pname[i]->score[3]);

else

break;

}

i=bsrch(pname,n,name);

for(;;)

{i=i+1;

if(strcmp(name,pname[i]->name)==0) printf("已找到該學生,學生信息:%-8s %-8s %-2s %4d %2d %2d %4d %4d %4d %5d\n",

pname[i]->no,pname[i]->name,pname[i]->sex,

pname[i]->birthday.year,pname[i]->birthday.month,

pname[i]->birthday.day,

pname[i]->score[0],pname[i]->score[1],pname[i]->score[2],

pname[i]->score[3]);

else

break;

}

}

int bsrch(struct student *pname[],int n,char *name)

{

int lower=0,upper=n-1,mid;

if(strcmp(name,pname[lower]->name)==0) return lower;

else if(strcmp(name,pname[upper]->name)==0) return upper;

else

while(lower<=upper)

{

mid=(lower+upper)/2;

if(strcmp(name,pname[mid]->name)==0)

return mid;

else if(strcmp(name,pname[mid]->name)>0)

lower=mid+1;

else

upper=mid-1;

}

return -1;

}

/* 按姓名遞增冒泡排序(應用指針數組) */

void bsort(struct student *pname[],int n)

{

struct student *temp;

int i,j;

for(i=0;i<n-1;i++)

for(j=0;j<n-i-1;j++)

if(strcmp(pname[j]->name,pname[j+1]->name)>0)

{

temp=pname[j];

pname[j]=pname[j+1];

pname[j+1]=temp;

}

}

/* 按總分名次查找的學生信息和平均分數 */

void printf_ptscore(struct student *ptscore[],int n,int inth)

{

printf("請輸入要查找總分名次:");

scanf("%d",&inth);

inth--;

if(inth>n)

{

printf("未找到總分名次為%5d的學生",inth);

}

else

printf("已找到總分名次為%5d的學生\n學號:%-8s\n姓名:%-8s\n性別:%-2s\n%4d年%2d月%2d日\n數學:%4d\n英語:%4d\nc:%4d\n總分%5d\n平均分數為:%4d",inth+1,ptscore[inth]->no,ptscore[inth]->name,ptscore[inth]->sex,ptscore[inth]->birthday.year,ptscore[inth]->birthday.month,ptscore[inth]->birthday.day,ptscore[inth]->score[0],ptscore[inth]->score[1],ptscore[inth]->score[2],ptscore[inth]->score[3],ptscore[inth]->score[3]/3);

}

/*顯示姓名排序後的學生信息*/

void printsi_p1(struct student *parray[],int n)

{

int i,k=0;

printf(" 按姓名排序後的學生信息\n\n");

printf("學號 姓名 性別 年 月 日 數學 英語 C 總分\n");

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

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

for(i=0;i<n;i++)

{

printf("%-8s%-8s%-2s%4d %2d %2d %4d %4d %4d %5d\n",

parray[i]->no,parray[i]->name,parray[i]->sex,

parray[i]->birthday.year,parray[i]->birthday.month,parray[i]->birthday.day,

parray[i]->score[0],parray[i]->score[1],parray[i]->score[2],parray[i]->score[3]);

k++;

if(k%20==0)

scanf("%*c");

}

}

/* 顯示按總分排序後的學生信息 */

void printsi_p2(struct student *ptscore[],int n)

{

int i,k=0;

printf("\n\n");

printf(" 按總分排序後的學生信息表\n");

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

printf("┏━━━━┳━━━━┳━━━┳━━━━━━┳━━━┳━━━┳━━━┳━━━┓\n");

printf("┃學號 ┃姓名 ┃ 性別 ┃ 年 月 日 ┃ 數學 ┃ 英語 ┃ C ┃ 總分 ┃\n");

printf("┣━━━━╋━━━━╋━━━╋━━━━━━╋━━━╋━━━╋━━━╋━━━┫\n");

printf("┣━━━━╋━━━━╋━━━╋━━━━━━╋━━━╋━━━╋━━━╋━━━┫\n");

for(i=0;i<n;i++)

{

printf("┃%-8s┃%-8s┃ %-2s ┃ %4d %2d %2d ┃ %4d ┃ %4d ┃ %4d ┃ %4d ┃\n",ptscore[i]->no,ptscore[i]->name,ptscore[i]->sex,ptscore[i]->birthday.year,ptscore[i]->birthday.month,ptscore[i]->birthday.day,ptscore[i]->score[0],ptscore[i]->score[1],ptscore[i]->score[2],ptscore[i]->score[3]);

if(i==n-1)

printf("┗━━━━┻━━━━┻━━━┻━━━━━━┻━━━┻━━━┻━━━┻━━━┛\n");

else

printf("┣━━━━╋━━━━╋━━━╋━━━━━━╋━━━╋━━━╋━━━╋━━━┫\n");

k++;

if(k%20==0)

scanf("%*c");

}

}
#include<stdio.h>

#include<stdlib.h>

#include<string.h>
#define N 35
void main()

{

static struct student stud[N];

struct student *pstud[N];

struct student *pname[N];

struct student *ptscore[N];

int code,inth=0;

int n=0,i;

readsi(stud,&n);

for(i=0;i<N;i++)

pstud[i]=&stud[i];

for(i=0;i<N;i++)

pname[i]=&stud[i];

for(i=0;i<N;i++)

ptscore[i]=&stud[i];

bsort(pname,n);

ssort(ptscore,n);

printf("\n 學生信息:\n");

printsi(stud,n);

printf("\n 按<Enter>,進入菜單:\n");

scanf("%*c");

while(1)

{

code=menu();

switch(code)

{

case 0: /* 退出 */

exit(1);

case 1: /* 顯示學生信息 */

printsi(stud,n);

scanf("%*2c");break;

case 2: /* 顯示按姓名排序後的學生信息 */

printsi_p1(pname,n);

scanf("%*2c");break;

case 3: /* 顯示按總分排序後的學生信息 */

printsi_p2(ptscore,n);

scanf("%*2c");break;

case 4: /* 按學號查找學生信息和平均分數 */

ssrch_no(pstud,n);

scanf("%*2c");break;

case 5: /* 按姓名查找學生信息和平均分數 */

bsrch_name(pname,n);

scanf("%*2c");break;

case 6: /* 查各門課的平均分數 */

find_ave(stud,n);

scanf("%*2c");break;

case 7: /* 查男女人數 */

find_pnum(stud,n);

scanf("%*2c");break;

case 8: /* 顯示學生信息表 */

printtable(stud,n);

scanf("%*2c");break;

}

}

}

❺ c語言課程設計之學生成績管理系統設計的程序

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

#define MAX 80
#define max 3

int nu=0;

struct classname
{
char name[20];
float score;
};

struct student
{
char no[20];
char std_name[20];
struct classname km[max];
float ave;
float sum;
int save;
};

struct student stu[MAX],*p;

void chushi()
{
int i,j;
for(i=0;i<MAX;i++)
{
for(j=0;j<20;j++)
{
stu[i].no[j]=NULL;
stu[i].std_name[j]=NULL;
stu[i].km[j].name[j]=NULL;
stu[i].km[j].score=0;
}
stu[i].ave=0;
stu[i].sum=0;
stu[i].save=0;
}
}

void av()/*求平均值*/
{
int i;
for(i=0;i<nu;i++)
{
stu[i].sum=stu[i].km[1].score+stu[i].km[2].score+stu[i].km[3].score;
stu[i].ave=stu[i].sum/3;
}
}

void first_check()
{
FILE *p;
int i,j;
struct classname frist[max];
for(i=0;i<max;i++)
{
for(j=0;j<20;j++)
frist[i].name[j]=NULL;
frist[i].score=0;
}
if ((p=fopen("c:\\kemu.txt","r"))==NULL)
{
printf("您好,歡迎使用學生成績管理系統\n\n因為您是第一次使用,請輸入科目名稱(三科)\n\n");
p=fopen("c:\\kemu.txt","w");
printf("輸入課程1名稱:");
scanf("%s",frist[0].name);
fprintf(p,"%s\n",frist[0].name);
printf("輸入課程2名稱:");
scanf("%s",frist[1].name);
fprintf(p,"%s\n",frist[1].name);
printf("輸入課程3名稱:");
scanf("%s",frist[2].name);
fprintf(p,"%s\n",frist[2].name);
}
system("cls");
fclose(p);
}

void save_nu()
{
FILE *p;
p=fopen("c:\\renshu.txt","w");
fprintf(p,"%d\n",nu);
fclose(p);
}

void Save_add(int n)
{
FILE * p;
int i;
p= fopen("c:\\cheji.txt","at");
if (p == NULL)
{
printf("文件不存在!!\n");
exit(0);
}
save_nu();
for (i = 0;i<n;i++)
if(stu[i].save==1)
{
stu[i].sum=stu[i].km[1].score+stu[i].km[2].score+stu[i].km[3].score;
stu[i].ave=stu[i].sum/3;
fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].ave,stu[i].sum);
}
fclose(p);
}

void Save()
{
FILE * p;
int i;
p= fopen("c:\\cheji.txt","w");
if (p == NULL)
{
printf("文件不存在!!\n");
exit(0);
}
save_nu();
for (i = 0;i<nu;i++)
if(stu[i].save==1)
{
av();
fprintf(p,"%s %s %2.1f %2.1f %2.1f %2.1f %2.1f \n",stu[i].no,stu[i].std_name,stu[i].km[0].score,stu[i].km[1].score,stu[i].km[2].score,stu[i].ave,stu[i].sum);
}
fclose(p);
}

int read_nu()
{
FILE *p;
char ch,s[10]={'\0'};
int i=0;
p=fopen("c:\\renshu.txt","r");
if(p==NULL)
{
save_nu();
return 0;
}
ch=fgetc(p);
while(ch!='\n')
{
s[i]=ch;
ch=fgetc(p);
i++;
}
nu=atoi(s);
fclose(p);
return 0;
}

int read_km()
{
FILE *p;
int i,j=0;
char s[20]={'\0'};
chushi();
p=fopen("c:\\kemu.txt","r");
if(p==NULL)
{
printf("ERROR read_km");
return 0;
}
fgets(s,20,p);
while(strlen(s)!=0)
{
for(i=0;i<strlen(s);i++)
if(s[i]==10)
{
s[i]='\0';
break;
}
for(i=0;i<=nu;i++)
strcpy(stu[i].km[j].name,s);
for(i=0;i<20;i++)
s[i]='\0';
j++;
fgets(s,20,p);
}
}

void read()
{
FILE *p;
int i,j,n,k,z=0;
char s[50]={'\0'};
char o[10]={'\0'};
p=fopen("c:\\cheji.txt","r");
if(p==NULL)
printf("ERROR_read");
chushi();
read_km();
fgets(s,50,p);
while(strlen(s)!=0)
{
j=0;
for(i=0;i<50;i++)
{
if(s[i]!='\n')
{
n=0;
while(j==0)
{
if(s[i]!=' ')
{
stu[z].no[n]=s[i];
n++;i++;
}
else
break;
}
while(j==1)
{
if(s[i]!=' ')
{
stu[z].std_name[n]=s[i];
n++;i++;
}
else
break;
}
while(j==2)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].km[0].score=atoi(o);
break;
}
}
while(j==3)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].km[1].score=atoi(o);
break;
}
}
while(j==4)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].km[2].score=atoi(o);
break;
}
}
while(j==5)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].ave=atoi(o);
break;
}
}
while(j==6)
{
if(s[i]!=' ')
{
o[n]=s[i];
n++;i++;
}
else
{
stu[z].sum=atoi(o);
break;
}
}
for(k=0;k<10;k++)
o[k]='\0';
}
else
break;
j++;
}
for(i=0;i<50;i++)
s[i]='\0';
fgets(s,50,p);
z++;
}
}

void putin()
{
int n,i=0;
char ch;
read_km();
do
{
printf("\t\t\t\t錄入學員信息\n輸入第%d個學員的信息\n",i+1);
printf("\n輸入學生編號:");
scanf("%s",stu[i].no);
printf("\n輸入學員姓名:");
scanf("%s",stu[i].std_name);
printf("\n輸入課程%s的分數:",stu[0].km[0].name);
scanf("%f",&stu[i].km[0].score);
printf("\n輸入課程%s的分數:",stu[0].km[1].name);
scanf("%f",&stu[i].km[1].score);
printf("\n輸入課程%s的分數:",stu[0].km[2].name);
scanf("%f",&stu[i].km[2].score);
stu[i].save=1;
printf("\n\n");
i++;
n=i;
printf("是否繼續輸入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
if(nu==0)
{
nu=n;
Save();
}
else
{
nu=n+nu;
Save_add(n);
}
}

int putout()
{
int i;char s;
if(nu==0)
{
printf("學生信息為零!請錄入...");
return 0;
}
read();
do
{
printf("學生成績信息:\n\n");
for(i=0;i<nu;i++)
printf("學號:%s 姓名:%s\n%s分數:%2.1f\t%s分數:%2.1f\t%s分數:%2.1f\n平均分數:%2.1f\t總成績:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].km[0].name,stu[i].km[0].score,stu[i].km[1].name,stu[i].km[1].score,stu[i].km[2].name,stu[i].km[2].score,stu[i].ave,stu[i].sum);
printf("\t\t按任意鍵返回主菜單");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}

int sort()/*排序數據函數*/
{
struct student temp;
int i,j;
char s;
if(nu==0)
{
printf("學生信息為零!請錄入...");
return 0;
}
chushi();
read();
for(i=1;i<nu;i++)
{
for(j=1;j<=nu-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
do
{
printf("學生成績信息:\n\n");
for(i=0;i<nu;i++)
printf("學號:%s 姓名:%s 平均成績:%2.1f\n\n",stu[i].no,stu[i].std_name,stu[i].ave);
printf("\t\t按任意鍵返回主菜單");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}

void find()/*查詢函數*/
{
int j,i=0;
int c=0;
char search[10]={'\0'};
char as;
if(nu==0)
{
printf("學生信息為零!請錄入...");
return 0;
}
chushi();
read();
do
{
printf("輸入要查詢課程名稱:");
scanf("%s",search);
for(j=0;j<max;j++)
if(!strcmp(stu[i].km[j].name,search))
{
c=1;
printf("\n該課程不及格學生姓名:\n");
for(i=0;i<nu;i++)
if(stu[i].km[j].score<60)
printf("%s\n",stu[i].std_name);
}
if(c==0)
printf("無此課程!");
printf("\n\t\t按任意鍵返回主菜單");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}

void tongji()
{
int j,m,z,i=0;
char s;
if(nu==0)
{
printf("學生信息為零!請錄入...");
return 0;
}
chushi();
read();
for(z=0;z<max;z++)
{
m=stu[i].km[z].score;j=0;
printf("%s 最高分: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(m<stu[i].km[z].score)
{
m=stu[i].km[z].score;
j=i;
}
printf("%s\t",stu[j].std_name);
j=0;i=0;m=stu[i].km[z].score;
printf("%s 最低分: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(m>stu[i].km[z].score)
{
m=stu[i].km[z].score;
j=i;
}
printf("%s\t",stu[j].std_name);
m=0;j=0;i=0;
printf("%s 平均分: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
m=m+stu[i].km[z].score;
printf("%d\n",m/nu);
m=0;i=0;
printf("%s 分數低於的60人數: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(stu[i].km[z].score<60)
m++;
printf("%d\t",m);
m=0;j=0;i=0;
printf("%s 分數高於60的人數: ",stu[i].km[z].name);
for(i=0;i<nu;i++)
if(stu[i].km[z].score>60)
m++;
printf("%d\n\n",m);
}
do
{
printf("\t\t按任意鍵返回主菜單");
fflush(stdin);
s=getch();
}
while(!s);
system("cls");
}

void main()/*主函數*/
{
int as;
first_check();
start: printf("\n\t\t\t歡迎使用學生成績管理系統\n");
/*一下為功能選擇模塊*/
do
{
printf("\n\t\t\t\t1.錄入學員信息\n\t\t\t\t2.顯示學員信息\n\t\t\t\t3.成績排序信息\n\t\t\t\t4.查詢不及格學生\n\t\t\t\t5.統計信息\n\t\t\t\t6.退出\n");
printf("\t\t\t\t選擇功能選項:");
fflush(stdin);
read_nu();
scanf("%d",&as);
switch(as)
{
case 1:system("cls");putin();break;
case 2:system("cls");putout();break;
case 3:system("cls");sort();break;
case 4:system("cls");find();break;
case 5:system("cls");tongji();break;
case 6:system("exit");exit(0);
default:system("cls");goto start;
}
}
while(1);
/*至此功能選擇結束*/
}

❻ c語言課程設計附報告 學生成績管理 [email protected]

我有學生成績管理 課程設計附報告

❼ C語言課程設計 學生成績統計

http://wenku..com/view/92d3d138376baf1ffc4fad1a.html
我的文庫裡面有
我以前的實訓

看你分這么高,給你做了個(可以正確運行),最近好多人找我要,是不是都是你們班的呀
#include<stdio.h>
#include<string.h>

struct Student {
char name[20];
int serial;
int scores[5];
};
main()
{
char ch,temp;
FILE *fpstu;
struct Student stu;
int i,sum=0;
float average;
printf("是否進行成績錄入(Y/N):");
ch=getchar();
temp=getchar();
if((fpstu=fopen("students.txt","a+"))==NULL)
{
printf("file open students.txt failed!\n");
system("pause");
exit(0);
}
if(ch=='Y' || ch=='y')
{
printf("姓名:");
scanf("%s",stu.name);
printf("學號:");
scanf("%d",&stu.serial);
for(i=0;i<5;i++)
{
printf("課程%d分數:",i+1);
scanf("%d",&stu.scores[i]);
}
printf("輸入完畢!\n");
if(fwrite(&stu,sizeof(struct Student),1,fpstu)!=1)
{
printf("存檔失敗!\n");
system("pause");
exit(0);
}
else
printf("存檔完畢!\n");
}
rewind(fpstu);
printf("姓名\t學號\t課程1\t課程2\t課程3\t課程4\t課程5\t總分\t平均\n");
while(!feof(fpstu))
{
if(fread(&stu,sizeof(struct Student),1,fpstu)!=1)
{
printf("讀取完畢!\n");
system("pause");
exit(0);
}
printf("%s\t%d\t",stu.name,stu.serial);
sum = 0;
for (i = 0; i < 5; i++)
{
if(stu.scores[i] >= 90)
temp = 'A';
else if(stu.scores[i] >= 80)
temp = 'B';
else if(stu.scores[i] >= 70)
temp = 'C';
else if(stu.scores[i] >= 60)
temp = 'D';
else
temp = 'E';
printf("%c\t",temp);
sum += stu.scores[i];
}
average = (float)sum / 5;
printf("%d\t%f\n",sum,average);
}
}

❽ C語言課程設計學生成績統計

# include <iostream>
# include <fstream>
# include <string.h>
#include <conio.h>//用getch();
using namespace std;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Student
{
public:
char name[20];
char Id[20];
int MTnum; //數學課程得分
int ENnum; //英語課程得分
int PHnum; //物理課程得分
int sum; //總分
Student * Next;
void Input()
{
cout<<"\t\t請輸入學生的姓名:"; cin>>name;
cout<<"\t\t請輸入學生的學號:"; cin>>Id;
cout<<"\t\t請輸入數學課程的成績:"; cin>>MTnum;
cout<<"\t\t請輸入英語課程的成績:"; cin>>ENnum;
cout<<"\t\t請輸入物理課程的成績:"; cin>>PHnum;
sum=MTnum+ENnum+PHnum;
}
void ReadFile(istream & in)
{
in>>name>>Id>>MTnum>>ENnum>>PHnum>>sum;
}
void Show()
{
cout<<"姓名:"<<name<<endl<<"學號:"<<Id<<endl<<"C++:"<<MTnum<<endl
<<"數學:"<<ENnum<<endl<<"外語:"<<PHnum<<endl<<"總成

績:"<<sum<<endl<<endl<<endl;
}
};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Studentmassage
{
public:
Studentmassage();
~Studentmassage();
void ShowMenu();
void Find();
void Save();
void ModifyItem();
void RemoveItem();
void Swap(Student *,Student *);
void Sort();
//void Unpass();
int ListCount();
//void Average();
void Display()
{
for(Student * p=Head->Next;p!=End;p=p->Next)
p->Show();
cout<<"輸入任意字元!繼續……";
getch();
}
void AddItem()
{
End->Input();
End->Next=new Student;
End=End->Next;
cout<<"添加成功!"<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
private:
Student * Head,* End;
ifstream in;
ofstream out;
Student *FindItem(char * name)
{
for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功則返回上一個指針,

不成功就返回空
if(!strcmp(p->Next->name,name))return p;
return NULL;
}
Student *FindID(char * Id)
{
for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功則返回上一個指針,

不成功就返回空
if(!strcmp(p->Next->Id,Id))return p;
return NULL;
}
};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌構造函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::Studentmassage()
{
Head=new Student;
Head->Next=new Student;
End=Head->Next;
in.open("sort.txt");
if(!in)
cout<<"這是一個新系統,無學生信息。請先輸入。"<<endl;
else
{
while(!in.eof())
{
End->ReadFile(in);
if(End->name[0]=='\0')break;
End->Next=new Student;
End=End->Next;
}
in.close();
cout<<"\t\t讀取學生信息成功!"<<endl;
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析構函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::~Studentmassage()
{
Save();
for(Student * temp;Head->Next!=End;)
{
temp=Head->Next;
Head->Next=Head->Next->Next;
delete temp;
}
delete Head,End;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜單﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ShowMenu()
{
cout<<"〓〓〓〓〓〓〓〓〓〓 ☆ 學 生 成 績 管 理 系 統 ☆ 〓〓〓〓〓〓〓〓〓

〓"<<endl;
cout<<"〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓

〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.增加學生成績 ☆ ★〓〓〓〓〓〓〓〓

〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 2.顯示學生成績 ☆ ★〓〓〓〓〓〓〓〓

〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 3.排序統計成績 ☆ ★〓〓〓〓〓〓〓〓

〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 4.查找學生成績 ☆ ★〓〓〓〓〓〓〓〓

〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 5.刪除學生成績 ☆ ★〓〓〓〓〓〓〓〓

〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 6.修改學生信息 ☆ ★〓〓〓〓〓〓〓〓

〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系統 ☆ ★〓〓〓〓〓〓〓〓

〓"<<endl;

cout<<"\n\t\t\n\t\t請選擇:";
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Find()
{
char name[20] ,Id[10];
int x;
Student * p=NULL;
cout<<"\n\t\t*********************************\n";
cout<<"\t\t※ 1.按學生的姓名查找\n\t\t※ 2.按學生學號查找";
cout<<"\n\t\t*********************************\n請選擇:";
cin>>x;
switch(x)
{
case 1:{cout<<"\t\t請輸入要查找的學生的姓名:";cin>>name;
if(p=FindItem(name))
{
p->Next->Show();
cout<<"輸入任意字元!繼續……";
getch();
}
else
{
cout<<"\t\t沒有找到該姓名的學生!"<<'\n'<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
}break;
case 2:
{
cout<<"\t\t請輸入要查找的學生的學號:";cin>>Id;
if(p=FindID(Id))
{
p->Next->Show();
cout<<"輸入任意字元!繼續……";
getch();
}
else
{
cout<<"\t\t沒有找到該學好的學生!"<<'\n'<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
}break;
}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ModifyItem() //修改信息
{
char name[20];
Student * p=NULL;
cout<<"\t\t請輸入要修改的人的姓名:";cin>>name;
if(p=FindItem(name))
{
cout<<"\t\t已找到學生的信息,請輸入新的信息!"<<endl;
p->Next->Input();
cout<<"修改成功!"<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
else
{
cout<<"\t\t沒有找到!"<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌刪除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::RemoveItem() // 刪除信息
{
char name[20];
Student * p=NULL,*temp=NULL;
cout<<"\t\t請輸入要刪除的學生的姓名:"<<endl;cin>>name;
if(p=FindItem(name))
{
temp=p->Next;
p->Next=p->Next->Next;
delete temp;
cout<<"\t\t刪除成功!"<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
else
{
cout<<"\t\t沒有找到!"<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Swap(Student *p1, Student *p2)//交換兩個combox變數的數據域
{
Student *temp=new Student;
strcpy(temp->name,p1->name);
strcpy(temp->Id,p1->Id);
temp->MTnum=p1->MTnum;
temp->ENnum=p1->ENnum;
temp->PHnum=p1->PHnum;
temp->sum=p1->sum;

strcpy(p1->name,p2->name);
strcpy(p1->Id,p2->Id);
p1->MTnum=p2->MTnum;
p1->ENnum=p2->ENnum;
p1->PHnum=p2->PHnum;
p1->sum=p2->sum;

strcpy(p2->name,temp->name);
strcpy(p2->Id,temp->Id);
p2->MTnum=temp->MTnum;
p2->ENnum=temp->ENnum;
p2->PHnum=temp->PHnum;
p2->sum=temp->sum;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int Studentmassage::ListCount()//統計當前鏈表的記錄總數,返回一個整數
{
if(! Head)
return 0;
int n=0;
for(Student * p=Head->Next;p!=End;p=p->Next)
{
n++;
}
return n;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Sort()//對當前鏈表進行排序
{
cout <<"Sorting..."<<endl;
Student *p=NULL,*p1=NULL,*k=NULL;
int n=Studentmassage::ListCount();
if(n<2)
return;
for(p=Head->Next;p!=End;p=p->Next)
for(k=p->Next;k!=End;k=k->Next)
{
if(p->sum>k->sum)
{
Studentmassage::Swap(p,k);
}
}
cout <<"排序完成!"<<endl;
getch();
return;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Save()
{
out.open("sort.txt");
for(Student *p=Head->Next;p!=End;p=p->Next)
out<<p->name<<"\t"<<p->Id<<"\t"<<p->MTnum<<"\t"
<<p->ENnum<<"\t"<<p->PHnum<<"\t"<<p->sum<<'\n';
out.close();
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int main()
{
int x,i=0;
bool quit=false;
cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl;
for(i=0;i<3;i++)
cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl;
cout<<"\t\t◎★★★★【 歡迎進入學生成績管理系統 】★★★★◎"<<endl;
for(i=0;i<3;i++)
cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl;
cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"<<endl;;
Studentmassage Grade;
cout<<"按任意鍵開始……";
getch();
while(!quit)
{
system("cls");
Grade.ShowMenu();
cin>>x;
switch(x)
{
case 0:quit=true;break;
case 1:Grade.AddItem();break;
case 2:Grade.Display();break;
case 3:Grade.Sort();break;
case 4:Grade.Find();break;
case 5:Grade.RemoveItem();break;
case 6:Grade.ModifyItem();break;
}
}
return 0;
}

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