学生信息管理系统设计与实现C_学生信息管理系统c版

其他范文 时间:2020-02-27 18:33:43 收藏本文下载本文
【www.daodoc.com - 其他范文】

学生信息管理系统设计与实现C由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“学生信息管理系统c版”。

毕业论文题目: 学生信息管理系统的设计与实现

1.学生信息由 :学号,姓名,班级,英语,高数,c语言,及平均成绩组成。

如: 0201,张三,0304,78,62,70,70(自动计算)

2.系统功能:

1)增加一个学生的信息,如 0201,张三,0304,78,62,70。代码如下: void AddStuInfor(struct student *S){ FILE *fp=NULL;fp=fopen(“e:file_student est.txt”,“a”);if(fp==NULL){

printf(“fopen file_student failedn”);} printf(“学号:n”);scanf(“%d”,&S->num);printf(“姓名:n”);scanf(“%s”,&S->name);printf(“班级:n”);scanf(“%d”,&S->grade);printf(“英语:n”);scanf(“%f”,&S->English);printf(“高数:n”);scanf(“%f”,&S->Math);printf(“C:n”);scanf(“%f”,&S->C);S->average=(S->English+S->Math+S->C)/3;S->flag=1;fseek(fp,0,SEEK_END);fwrite(S,sizeof(struct student),1,fp);fclose(fp);printf(“添加成功n”);system(“pause”);system(“cls”);} 2)学生信息的显示:显示出所有信息。代码如下: void PrintStuInfor(){

FILE *fp=NULL;

struct student st[Stu_Total];

int i=0,j;

fp=fopen(“e:file_student est.txt”,“r”);

if(fp==NULL)

{ printf(“fopen file_student failedn”);

}

while(!feof(fp))

{

fread(&st[i],sizeof(struct student),1,fp);

i++;

}

i=i-1;

printf(“学号t姓名t班级t英语t高数tCt平均成绩n”);

for(j=0;j

{

if(st[j].flag==1){

printf(“%dt%st%dt%0.2ft%0.2ft%0.2ft%0.2fn”,st[j].num,st[j].name,st[j].grade,st[j].English,st[j].Math,st[j].C,st[j].average);}

}

fclose(fp);

system(“pause”);

system(“cls”);} 3)学生信息查询,可按学号查询,可按姓名查询,有重名时均显示。(两个功能)代码如下: A.按学号查询: void NumSeek(int num){

FILE *fp=NULL;

struct student st[Stu_Total];

int i=0,j;

fp=fopen(“e:file_student est.txt”,“r”);

if(fp==NULL)

{ printf(“fopen file_student failedn”);

}

while(!feof(fp))

{

fread(&st[i],sizeof(struct student),1,fp);

i++;

}

i=i-1;

printf(“学号t姓名t班级t英语t高数tCt平均成绩n”);

for(j=0;j

{

if(st[j].num==num)

{

printf(“%dt%st%dt%0.2ft%0.2ft%0.2ft%0.2fn”,st[j].num,st[j].name,st[j].grade,st[j].English,st[j].Math,st[j].C,st[j].average);

}

}

fclose(fp);

system(“pause”);

system(“cls”);} B.按姓名查询: void NameSeek(char name[10]){

FILE *fp=NULL;

struct student st[Stu_Total];

int i=0,j;

fp=fopen(“e:file_student est.txt”,“r”);

if(fp==NULL)

{ printf(“fopen file_student failedn”);

}

while(!feof(fp))

{

fread(&st[i],sizeof(struct student),1,fp);

i++;

}

i=i-1;

printf(“学号t姓名t班级t英语t高数tCt平均成绩n”);

for(j=0;j

{

if(!strcmp(st[j].name,name))

{

printf(“%dt%st%dt%0.2ft%0.2ft%0.2ft%0.2fn”,st[j].num,st[j].name,st[j].grade,st[j].English,st[j].Math,st[j].C,st[j].average);

}

}

fclose(fp);

system(“pause”);

system(“cls”);

} 4)按学号删除一个学生的信息。代码如下: void DelStuInfor(struct student *a){ int num,j,i=0;FILE *fp1=NULL,*fp2=NULL;fp1=fopen(“e:file_student est.txt”,“r”);if(fp1==NULL){

printf(“fopen file_student failedn”);} printf(“请输入要删除的学生的学号:n”);scanf(“%d”,&num);while(!feof(fp1)){

fread(&a[i],sizeof(struct student),1,fp1);

i++;} i=i-1;fclose(fp1);fp2=fopen(“e:file_student est.txt”,“w”);if(fp2==NULL){

printf(“fopen file_student failedn”);} for(j=0;j

if(a[j].num==num)

{

a[j].flag=0;

}

else

{

fwrite(&a[j],sizeof(struct student),1,fp2);

} }

fclose(fp2);

printf(“删除成功n”);

system(“pause”);

system(“cls”);

} 5)按学号对学生信息排序。代码如下: void NumSort(){

FILE *fp=NULL;

struct student st[Stu_Total],temp;

int i=0,j,k;

fp=fopen(“e:file_student est.txt”,“r”);

if(fp==NULL)

{ printf(“fopen file_student failedn”);

}

while(!feof(fp))

{

fread(&st[i],sizeof(struct student),1,fp);

i++;

}

i=i-1;

for(j=0;j

for(k=0;k

if(st[k].num>st[k+1].num)

{

temp=st[k];

st[k]=st[k+1];

st[k+1]=temp;

} } printf(“学号t姓名t班级t英语t高数tCt平均成绩n”);for(k=0;k

printf(“%dt%st%dt%0.2ft%0.2ft%0.2ft%0.2fn”,st[k].num,st[k].name,st[k].grade,st[k].English,st[k].Math,st[k].C,st[k].average);}

fclose(fp);

system(“pause”);

system(“cls”);} 6)按平均成绩高低对学生信息排序。代码如下: void AverSort(){

FILE *fp=NULL;

struct student st[Stu_Total],temp;

int i=0,j,k;

fp=fopen(“e:file_student est.txt”,“r”);

if(fp==NULL)

{ printf(“fopen file_student failedn”);

}

while(!feof(fp))

{

fread(&st[i],sizeof(struct student),1,fp);

i++;

}

i=i-1;

for(j=0;j

for(k=0;k

if(st[k].average>st[k+1].average)

{

temp=st[k];

st[k]=st[k+1];

st[k+1]=temp;

} } printf(“学号t姓名t班级t英语t高数tCt平均成绩n”);for(k=0;k

printf(“%dt%st%dt%0.2ft%0.2ft%0.2ft%0.2fn”,st[k].num,st[k].name,st[k].grade,st[k].English,st[k].Math,st[k].C,st[k].average);}

fclose(fp);

system(“pause”);

system(“cls”);} 7)修改学生信息,如更改某一科的成绩,或更改班级、学号信息等。代码如下: void ChangeStuInfor(int num){

int i=0,j,number,grade;

float Math,English,C;

char name[10];

struct student st[ Stu_Total];

FILE *fp1=NULL,*fp2=NULL;

fp1=fopen(“e:file_student est.txt”,“r”);

if(fp1==NULL)

{

printf(“fopen file_student failedn”);

}

while(!feof(fp1))

{

fread(&st[i],sizeof(struct student),1,fp1);

i++;

}

fclose(fp1);

for(j=0;j

{

if(st[j].num==num)

{

printf(“要修改学生的信息:n”);

printf(“学号t姓名t班级t英语t高数tCt平均成绩n”);

printf(“%dt%st%dt%0.2ft%0.2ft%0.2ft%0.2fn”,st[j].num,st[j].name,st[j].grade,st[j].English,st[j].Math,st[j].C,st[j].average);

printf(“学号:1,姓名:2,班级:3,英语:4,高数:5,C:6n”);

printf(“请输入要修改内容的序号:n”);

scanf(“%d”,&number);

switch(number)

{

case 1:printf(“请输入修改后的学号n”);

scanf(“%d”,&num);

st[j].num=num;break;

case 2:printf(“请输入修改后的姓名n”);

scanf(“%s”,name);

strcpy(st[j].name,name);break;

case 3:printf(“请输入修改后的班级n”);

scanf(“%d”,&grade);

st[j].grade=grade;break;

case 4:printf(“请输入修改后的英语成绩n”);

scanf(“%f”,&English);

st[j].English=English;break;

case 5:printf(“请输入修改后的高数成绩n”);

scanf(“%f”,&Math);

st[j].Math=Math;break;

case 6:printf(“请输入修改后的C成绩n”);

scanf(“%f”,&C);

st[j].C=C;break;

default:printf(“输入有误,请重新输入n”);break;

}

}

}

fp2=fopen(“e:file_student est.txt”,“w”);

if(fp2==NULL)

{

printf(“fopen file_student failedn”);

}

for(j=0;j

{

fwrite(&st[j],sizeof(struct student),1,fp2);

}

fclose(fp2);

system(“cls”);

} 8)要求有保存的功能,当关闭系统后,下次打开时依然可以看到之前的信息。代码如下: void store(){ char c;FILE *fp=NULL;printf(“是否保存上次的学生信息?(Y/N)n”);scanf(“%c”,&c);if(c=='n'||c=='N')

{fp=fopen(“e:file_student est.txt”,“w”);

if(fp==NULL)

{ printf(“fopen file_student failedn”);

}

} else {

fp=fopen(“e:file_student est.txt”,“r”);

if(fp==NULL)

{ printf(“fopen file_student failedn”);

}

PrintStuInfor();

fclose(fp);} system(“pause”);//请按任意键继续是由它产生的。

system(“cls”);} 9)退出功能。代码如下: while(correct){

Pic();scanf(“%d”,&number);//连续使用scanf,出现的n(它为一个字符)会输入到下一个scanf中,影响输入。

switch(number){

case 1:

for(i=0;i

{

char c;

if(stu[i].flag!=0)

continue;

else AddStuInfor(&stu[i]);

printf(“是否继续增加?(Y/N)n”);

scanf(“n%c”,&c);

if(c=='n'||c=='N')break;

}

break;

case 2:PrintStuInfor();break;

case 3:printf(“请输入要查询的学生的学号:n”);

scanf(“%d”,&num);

NumSeek(num);break;

case 4:printf(“请输入要查询学生的姓名:n”);

scanf(“n%s”,name);

NameSeek(name);break;

case 5:DelStuInfor(stu);break;

case 6:NumSort();break;

case 7:AverSort();break;

case 8:printf(“请输入要修改学生信息的学号:n”);

scanf(“%d”,&num);

ChangeStuInfor(num);break;

case 9:correct=0;break;//退出系统即退出该while循环.default :printf(“输入信息有误,请重新输入:n”);break;} 3.完成一个对学生信息进行管理的系统,要求如下:

要求用绘出一个简单的界面。界面示例如:(界面可自行调整,更改,只要更能具备就可以。)

********************************************************************************** 学生信息管理系统 *** 1 增加学生信息

2显示学生信息按学号查询按姓名查询删除学生信息按学号排序

7按平均成绩排序

8修改学生信息 退出。******************************************************************************* 代码如下: void Pic(){ printf(“***************************************************n”);printf(“***

学生信息管理系统

***n”);printf(“1增加学生信息

2显示学生信息

3按学号查询n”);printf(“4按姓名查询

5删除学生信息

6按学号排序n”);printf(“7按平均成绩排序

8修改学生信息

9退出n”);printf(“***************************************************n”);

printf(“请输入需要的操作的序号(1-9):n”);}

下载学生信息管理系统设计与实现Cword格式文档
下载学生信息管理系统设计与实现C.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文