C语言程序 学生信息管理Word下载.docx
《C语言程序 学生信息管理Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序 学生信息管理Word下载.docx(21页珍藏版)》请在冰点文库上搜索。
![C语言程序 学生信息管理Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/a3b42589-5345-40fb-8063-06e5104d59fd/a3b42589-5345-40fb-8063-06e5104d59fd1.gif)
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)
{
\n"
********************\n"
*=====================*\n"
*1.inputgrade*\n"
*2.loaddata*\n"
*3.outputgrade*\n"
*4.sortstudent'
grade*\n"
*5.seekstudent'
information*\n"
*6.deletestudent'
*7.insertnewstudent'
*8.amenddata*\n"
*9.exit*\n"
Pleasechoose(1~8):
scanf("
%d"
&
sel);
switch(sel)
{
case1:
input_grade();
break;
case2:
load();
case3:
output_grade();
case4:
sort();
case5:
chaxun();
case6:
del_data();
case7:
insert();
case8:
amend();
case9:
exitout();
default:
printf("
Nooptionselected!
}
}
}
/**********************************登陆函数**********************************/
intpass()/*功能:
输入正确的密码后进入用户界面*/
staticcharkey[10]="
nicaicai"
;
if(strcmp(password,key)==0)
{printf("
*******youarewelcome!
*******"
return1;
else
*******youarewrong!
Pleaseagain****"
return0;
/***********************************输入函数**********************************/
voidinput_grade()/*输入学生信息*/
printf("
Inputdata:
for(i=0;
i<
N;
i++)
Enter%dstudentdate:
N);
number?
stu[i].num);
if(stu[i].num==-1)break;
count++;
name?
%s"
stu[i].name);
sex?
stu[i].sex);
English?
%d"
stu[i].English);
Math?
stu[i].Math);
Cprogram?
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)
noinformation!
else{
\nAllstudentsinformationasfollows:
number\tname\tsex\tEnglish\tMath\tCprogram\tTotal\tAverage\n"
count;
%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;
nomessage!
while
(1)
{printf("
printf("
1.sortbytotal\n"
/*按总成绩排序*/
2.sortbyname\n"
/*按姓名排序*/
3.sortbynum\n"
/*按学号排序*/
4.return\n"
Pleasechoose(1~4):
scanf("
sel2);
switch(sel2)
{
case1:
sort_total();
case2:
sort_name();
case3:
sort_num();
case4:
return;
default:
Nooptionchoose!
}
voidsort_total()
intj;
intt;
intl;
for(i=1;
l=i-1;
for(j=i;
j<
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位交换位置*/
voidsort_name()
into;
if(strcmp(stu[j].name,stu[l].name)<
0)l=j;
/*用字符串比较函数比较j位和l位的大小*/
stu[o]=stu[i-1];
stu[l]=stu[o];
voidsort_num()
intm;
if(stu[j].num<
stu[l].num)l=j;
stu[m]=stu[i-1];
stu[l]=stu[m];
/***********************************写入函数**********************************/
voidsave()/*定义save函数存储数据到文件中*/
FILE*fp;
inti;
if((fp=fopen("
c:
\\123\\new3.dat"
"
wb"
))==NULL)
Cannotopenfile\n"
exit(0);
fwrite(&
stu[i],sizeof(structstudent),1,fp);
/*fwrite函数向文件里输入一个数据块*/
fclose(fp);
/*********************************存放出函数**********************************/
voidload()/*定义load函数从文件中读取数据到内存中*/
fread(&
/*fread函数从文件中读入数据块*/
while(!
feof(fp))
i++;
fread(&
/**********************************查询函数**********************************/
voidchaxun()/*查询学生信息*/
intsel1;
1.choosenumberfind\n"
/*按学号查询*/
2.choosenamefind\n"
/*按姓名查询*/
3.outputgrade\n"
sel1);
switch(sel1)
chaxunnum();
chaxunname();
voidchaxunnum()
intstu_num;
Pleaseinputquerystudent'
number:
stu_num);
if(stu[i].num==stu_num)break;
if(i<
count)
if(i==count)
Nofindthisstudent!
voidchaxunname()
intf=0;
charstu_name[20];
name:
stu_name);
if(strcmp(stu[i].name,stu_name)==0)
{f++;
if(f>
0)
Successfulfind!
if(f==0)
/**********************************删除函数**********************************/
voiddel_data()/*删除学生信息*/
intsign;
1.choosenumberdelete\n"
/*按学号删除*/
2.choosenamedelete\n"
/*按姓名删除*/
sign);
switch(sign)
del_num();
del_name();
voiddel_num()
intj=0,delnum;
Pleaseinputthenumberthatyouwanttodelete:
\n"
delnum);
if(stu[i].num==delnum)break;
count-1;
stu[j]=stu[j+1];
count--;
Successfuldelete!
voiddel_name()
intk=0;
intr=0;
intc=0;
chardelname[20];
Pleaseinputthenamethatyouwanttodelete:
delname);
if(strcmp(stu[i].name,delname)==0)
k=i;
c++;
for(r=k;
r<
r++)
stu[r]=stu[r+1];
count--;
i=k-1;
if(c>
i