C语言程序 学生信息管理.docx
- 文档编号:10004462
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:21
- 大小:17.53KB
C语言程序 学生信息管理.docx
《C语言程序 学生信息管理.docx》由会员分享,可在线阅读,更多相关《C语言程序 学生信息管理.docx(21页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序 学生信息管理 语言 程序 学生 信息管理