C语言程序 学生信息管理.docx

上传人:b****2 文档编号:3274618 上传时间:2023-05-05 格式:DOCX 页数:21 大小:17.53KB
下载 相关 举报
C语言程序 学生信息管理.docx_第1页
第1页 / 共21页
C语言程序 学生信息管理.docx_第2页
第2页 / 共21页
C语言程序 学生信息管理.docx_第3页
第3页 / 共21页
C语言程序 学生信息管理.docx_第4页
第4页 / 共21页
C语言程序 学生信息管理.docx_第5页
第5页 / 共21页
C语言程序 学生信息管理.docx_第6页
第6页 / 共21页
C语言程序 学生信息管理.docx_第7页
第7页 / 共21页
C语言程序 学生信息管理.docx_第8页
第8页 / 共21页
C语言程序 学生信息管理.docx_第9页
第9页 / 共21页
C语言程序 学生信息管理.docx_第10页
第10页 / 共21页
C语言程序 学生信息管理.docx_第11页
第11页 / 共21页
C语言程序 学生信息管理.docx_第12页
第12页 / 共21页
C语言程序 学生信息管理.docx_第13页
第13页 / 共21页
C语言程序 学生信息管理.docx_第14页
第14页 / 共21页
C语言程序 学生信息管理.docx_第15页
第15页 / 共21页
C语言程序 学生信息管理.docx_第16页
第16页 / 共21页
C语言程序 学生信息管理.docx_第17页
第17页 / 共21页
C语言程序 学生信息管理.docx_第18页
第18页 / 共21页
C语言程序 学生信息管理.docx_第19页
第19页 / 共21页
C语言程序 学生信息管理.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序 学生信息管理.docx

《C语言程序 学生信息管理.docx》由会员分享,可在线阅读,更多相关《C语言程序 学生信息管理.docx(21页珍藏版)》请在冰点文库上搜索。

C语言程序 学生信息管理.docx

C语言程序学生信息管理

#defineN100/*指定结构体数组的长度*/

#include

#include

inti=0,count=0;/*用count记录实际存放的条数*/

charpassword[10];

structstudent

{

intnum;

charname[20];

charsex[2];

intEnglish;

intMath;

intCprogram;

floatTotal;

floatAverage;

}stu[N];

voidinput_grade();

voidoutput_grade();

intpass();

voidsort();

voidsort_total();

voidsort_name();

voidsort_num();

voidinsert();

voidsave();

voidload();

voidchaxun();

voidchaxunnum();

voidchaxunname();

voiddel_data();

voiddel_num();

voiddel_name();

voidamend();

voidexitout();

main()

{

intsel;

intq;

do{

printf("\n**Pleaseinputthepassword:

");

scanf("%s",password);

q=pass();

}while(q==0);

while

(1)

{

printf("\n");

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

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

printf("*1.inputgrade*\n");

printf("*2.loaddata*\n");

printf("*3.outputgrade*\n");

printf("*4.sortstudent'grade*\n");

printf("*5.seekstudent'information*\n");

printf("*6.deletestudent'information*\n");

printf("*7.insertnewstudent'grade*\n");

printf("*8.amenddata*\n");

printf("*9.exit*\n");

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

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

printf("Pleasechoose(1~8):

");

scanf("%d",&sel);

switch(sel)

{

case1:

input_grade();break;

case2:

load();break;

case3:

output_grade();break;

case4:

sort();break;

case5:

chaxun();break;

case6:

del_data();break;

case7:

insert();break;

case8:

amend();break;

case9:

exitout();break;

default:

printf("Nooptionselected!

\n");

}

}

}

/**********************************登陆函数**********************************/

intpass()/*功能:

输入正确的密码后进入用户界面*/

{

staticcharkey[10]="nicaicai";

if(strcmp(password,key)==0)

{printf("\n");

printf("*******youarewelcome!

*******");

return1;

}

else

{printf("\n");

printf("*******youarewrong!

Pleaseagain****");

return0;

}

}

/***********************************输入函数**********************************/

voidinput_grade()/*输入学生信息*/

{

printf("Inputdata:

\n");

for(i=0;i

{

printf("Enter%dstudentdate:

\n",N);

printf("number?

");

scanf("%d",&stu[i].num);

if(stu[i].num==-1)break;

count++;

printf("name?

");

scanf("%s",stu[i].name);

printf("sex?

");

scanf("%s",stu[i].sex);

printf("English?

");

scanf("%d",&stu[i].English);

printf("Math?

");

scanf("%d",&stu[i].Math);

printf("Cprogram?

");

scanf("%d",&stu[i].Cprogram);

stu[i].Total=stu[i].English+stu[i].Math+stu[i].Cprogram;/*计算总成绩*/

stu[i].Average=stu[i].Total*1.0/3;/*计算平均成绩,将int型转换成float型*/

}

save();

}

/**********************************输出函数**********************************/

voidoutput_grade()/*在屏幕上显示输入的学生信息*/

{

if(count==0)

printf("noinformation!

\n");

else{

printf("\nAllstudentsinformationasfollows:

\n");

printf("number\tname\tsex\tEnglish\tMath\tCprogram\tTotal\tAverage\n");

for(i=0;i

printf("%d\t%s\t%s\t%d\t%d\t%d\t\t%0.2f\t%0.2f\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].English,stu[i].Math,stu[i].Cprogram,stu[i].Total,stu[i].Average);

}

}

/***********************************排序函数**********************************/

voidsort()/*将学生信息排序*/

{

intsel2;

if(count==0)

printf("nomessage!

");

else

{

while

(1)

{printf("\n");

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

printf("1.sortbytotal\n");/*按总成绩排序*/

printf("2.sortbyname\n");/*按姓名排序*/

printf("3.sortbynum\n");/*按学号排序*/

printf("4.return\n");

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

printf("Pleasechoose(1~4):

");

scanf("%d",&sel2);

switch(sel2)

{

case1:

sort_total();break;

case2:

sort_name();break;

case3:

sort_num();break;

case4:

return;

default:

printf("Nooptionchoose!

\n");

}

}

}

}

voidsort_total()

{

intj;

intt;

intl;

for(i=0;i

for(i=1;i

{

l=i-1;

for(j=i;j

if(stu[j].Total>stu[l].Total)l=j;/*如果j位同学的总成绩大于i位,将j的值赋值于l*/

if((i-1)!

=l)

{

stu[t]=stu[i-1];

stu[i-1]=stu[l];

stu[l]=stu[t];/*j位和i位交换位置*/

}

}

if(count==0)

printf("noinformation!

\n");

else{

printf("\nAllstudentsinformationasfollows:

\n");

printf("number\tname\tsex\tEnglish\tMath\tCprogram\tTotal\tAverage\n");

for(i=0;i

printf("%d\t%s\t%s\t%d\t%d\t%d\t\t%0.2f\t%0.2f\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].English,stu[i].Math,stu[i].Cprogram,stu[i].Total,stu[i].Average);

}

}

voidsort_name()

{

intj;

into;

intl;

for(i=0;i

for(i=1;i

{

l=i-1;

for(j=i;j

if(strcmp(stu[j].name,stu[l].name)<0)l=j;/*用字符串比较函数比较j位和l位的大小*/

if((i-1)!

=l)

{

stu[o]=stu[i-1];

stu[i-1]=stu[l];

stu[l]=stu[o];

}

}

if(count==0)

printf("noinformation!

\n");

else{

printf("\nAllstudentsinformationasfollows:

\n");

printf("number\tname\tsex\tEnglish\tMath\tCprogram\tTotal\tAverage\n");

for(i=0;i

printf("%d\t%s\t%s\t%d\t%d\t%d\t\t%0.2f\t%0.2f\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].English,stu[i].Math,stu[i].Cprogram,stu[i].Total,stu[i].Average);

}

}

voidsort_num()

{

intj;

intm;

intl;

for(i=0;i

for(i=1;i

{

l=i-1;

for(j=i;j

if(stu[j].num

if((i-1)!

=l)

{

stu[m]=stu[i-1];

stu[i-1]=stu[l];

stu[l]=stu[m];

}

}

if(count==0)

printf("noinformation!

\n");

else{

printf("\nAllstudentsinformationasfollows:

\n");

printf("number\tname\tsex\tEnglish\tMath\tCprogram\tTotal\tAverage\n");

for(i=0;i

printf("%d\t%s\t%s\t%d\t%d\t%d\t\t%0.2f\t%0.2f\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].English,stu[i].Math,stu[i].Cprogram,stu[i].Total,stu[i].Average);

}

}

/***********************************写入函数**********************************/

voidsave()/*定义save函数存储数据到文件中*/

{

FILE*fp;

inti;

if((fp=fopen("c:

\\123\\new3.dat","wb"))==NULL)

{

printf("Cannotopenfile\n");

exit(0);

}

for(i=0;i

fwrite(&stu[i],sizeof(structstudent),1,fp);/*fwrite函数向文件里输入一个数据块*/

fclose(fp);

}

/*********************************存放出函数**********************************/

voidload()/*定义load函数从文件中读取数据到内存中*/

{

FILE*fp;

if((fp=fopen("c:

\\123\\new3.dat","wb"))==NULL)

{

printf("Cannotopenfile\n");

exit(0);

}

fread(&stu[i],sizeof(structstudent),1,fp);/*fread函数从文件中读入数据块*/

while(!

feof(fp))

{

i++;

fread(&stu[i],sizeof(structstudent),1,fp);

count++;

}

fclose(fp);

}

/**********************************查询函数**********************************/

voidchaxun()/*查询学生信息*/

{

intsel1;

if(count==0)

printf("nomessage!

");

else

{

while

(1)

{printf("\n");

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

printf("1.choosenumberfind\n");/*按学号查询*/

printf("2.choosenamefind\n");/*按姓名查询*/

printf("3.outputgrade\n");

printf("4.return\n");

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

printf("Pleasechoose(1~4):

");

scanf("%d",&sel1);

switch(sel1)

{

case1:

chaxunnum();break;

case2:

chaxunname();break;

case3:

output_grade();break;

case4:

return;

default:

printf("Nooptionchoose!

\n");

}

}

}

}

voidchaxunnum()

{

intstu_num;

printf("Pleaseinputquerystudent'number:

");

scanf("%d",&stu_num);

for(i=0;i

{

if(stu[i].num==stu_num)break;

}

if(i

{

printf("number\tname\tsex\tEnglish\tMath\tCprogram\tTotal\tAverage\n");

printf("%d\t%s\t%s\t%d\t%d\t%d\t\t%0.2f\t%0.2f\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].English,stu[i].Math,stu[i].Cprogram,stu[i].Total,stu[i].Average);

}

if(i==count)

{

printf("Nofindthisstudent!

");

}

}

voidchaxunname()

{

intf=0;

charstu_name[20];

printf("Pleaseinputquerystudent'name:

");

scanf("%s",stu_name);

for(i=0;i

{

if(strcmp(stu[i].name,stu_name)==0)

{f++;

printf("number\tname\tsex\tEnglish\tMath\tCprogram\tTotal\tAverage\n");

printf("%d\t%s\t%s\t%d\t%d\t%d\t\t%0.2f\t%0.2f\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].English,stu[i].Math,stu[i].Cprogram,stu[i].Total,stu[i].Average);

}

}

if(f>0)

{

printf("Successfulfind!

\n");

}

if(f==0)

{

printf("Nofindthisstudent!

");

}

}

/**********************************删除函数**********************************/

voiddel_data()/*删除学生信息*/

{

intsign;

if(count==0)

printf("nomessage!

");

else

{

while

(1)

{printf("\n");

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

printf("1.choosenumberdelete\n");/*按学号删除*/

printf("2.choosenamedelete\n");/*按姓名删除*/

printf("3.outputgrade\n");

printf("4.return\n");

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

printf("Pleasechoose(1~4):

");

scanf("%d",&sign);

switch(sign)

{

case1:

del_num();break;

case2:

del_name();break;

case3:

output_grade();break;

case4:

return;

default:

printf("Nooptionchoose!

\n");

}

}

}

}

voiddel_num()

{

intj=0,delnum;

printf("Pleaseinputthenumberthatyouwanttodelete:

\n");

scanf("%d",&delnum);

for(i=0;i

{

if(stu[i].num==delnum)break;

}

if(i

{

for(j=i;j

stu[j]=stu[j+1];

count--;

printf("Successfuldelete!

");

}

if(i==count)

{

printf("Nofindthisstudent!

");

}

}

voiddel_name()

{

intk=0;

intr=0;

intc=0;

chardelname[20];

printf("Pleaseinputthenamethatyouwanttodelete:

");

scanf("%s",delname);

for(i=0;i

{

if(strcmp(stu[i].name,delname)==0)

{

k=i;

c++;

for(r=k;r

stu[r]=stu[r+1];

count--;

i=k-1;

}

}

if(c>0)

{printf("Successfuldelete!

");

}

i

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2