C语言实现学生信息管理系统开发_第1页
C语言实现学生信息管理系统开发_第2页
C语言实现学生信息管理系统开发_第3页
C语言实现学生信息管理系统开发_第4页
C语言实现学生信息管理系统开发_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第C语言实现学生信息管理系统开发scanf("%s",ch);

while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要录入新信息*/

{

printf("number:");

scanf("%d",stu[m].num);/*输入学生学号*/

for(i=0;ii++)

if(stu[i].num==stu[m].num)

{

printf("number已经存在了,按任意键继续!");

getch();

fclose(fp);

return;

}

printf("name:");

scanf("%s",stu[m].name);/*输入学生姓名*/

printf("elective:");

scanf("%lf",stu[m].elec);/*输入选修课成绩*/

printf("experiment:");

scanf("%lf",stu[m].expe);/*输入实验课成绩*/

printf("requiredcourse:");

scanf("%lf",stu[m].requ);/*输入必修课成绩*/

stu[m].sum=stu[m].elec+stu[m].expe+stu[m].requ;/*计算出总成绩*/

if(fwrite(stu[m],LEN,1,fp)!=1)/*将新录入的信息写入指定的磁盘文件*/

{

printf("不能保存!");

getch();

}

else

{

printf("%s被保存!\n",stu[m].name);

m++;

}

printf("继续(y/n):");/*询问是否继续*/

scanf("%s",ch);

}

fclose(fp);

printf("OK!\n");

voidshow()

//增加data.txt文件不存在或者文件内容为空时的显示

FILE*fp;

inti,m=0;

fp=fopen("data.txt","rb");

//

if((fp=fopen("data.txt","a+"))==NULL)/*打开指定文件*/

//

{

//

printf("文件不存在!\n");

//

return;

//

}

//

fclose(fp);

//

if(m==0)

//

printf("文件中没有记录!\n");

//

return;

while(!feof(fp))

{

if(fread(stu[m],LEN,1,fp)==1)

m++;

}

fclose(fp);

printf("number

name

elective

experiment

required

sum\t\n");

for(i=0;ii++)

{

printf(FORMAT,DATA);/*将信息按指定格式打印*/

}

voidmenu()/*自定义函数实现菜单功能*/

system("cls");

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

printf("\t\t|---------------学生信息管理系统---------------|\n");

printf("\t\t|\t\t\t\t\t

|\n");

printf("\t\t|\t\t1.录入学生信息\t

|\n");

printf("\t\t|\t\t2.查找学生信息\t

|\n");

printf("\t\t|\t\t3.删除学生信息\t

|\n");

printf("\t\t|\t\t4.修改学生信息\t

|\n");

printf("\t\t|\t\t5.插入学生信息\t

|\n");

printf("\t\t|\t\t6.排序\t\t

|\n");

printf("\t\t|\t\t7.统计学生总数\t

|\n");

printf("\t\t|\t\t8.显示所有学生信息\t

|\n");

printf("\t\t|\t\t0.退出系统\t\t

|\n");

printf("\t\t|\t\t\t\t\t

|\n");

printf("\t\t|----------------------------------------------|\n\n");

printf("\t\t\t请选择(0-8):");

voidorder()/*自定义排序函数*/

FILE*fp;

structstudentt;

inti=0,j=0,m=0;

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

{

printf("文件不存在!\n");

return;

}

while(!feof(fp))

if(fread(stu[m],LEN,1,fp)==1)

m++;

fclose(fp);

if(m==0)

{

printf("文件中没有记录!\n");

return;

}

if((fp=fopen("data.txt","wb"))==NULL)

{

printf("文件不存在!\n");

return;

}

for(i=0;im-1;i++)

for(j=i+1;jj++)/*双重循环实现成绩比较并交换*/

if(stu[i].sumstu[j].sum)

{

t=stu[i];stu[i]=stu[j];stu[j]=t;

}

if((fp=fopen("data.txt","wb"))==NULL)

{

printf("文件不存在!\n");

return;

}

for(i=0;ii++)/*将重新排好序的内容重新写入指定的磁盘文件中*/

if(fwrite(stu[i],LEN,1,fp)!=1)

{

printf("%s不能保存文件!\n");

getch();

}

fclose(fp);

printf("保存成功\n");

voiddel()/*自定义删除函数*/

/*逻辑:首先判断data.txt文件是否存在,如果存在,继续操作,判断文件是否为空,不为空,则输入要删除的学生学号;如果文件不存在

返回“文件不存在”,文件内容为空则返回“文件中没有记录”

输入学号----判断是否有这个学号。有:询问是否删除,y删除;n不删除,“找到了记录,选择不删除!”

没有:“没有找到这名学生!”

*/

{

FILE*fp;

intsnum,i,j,m=0;

charch[2];

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

//data.txt文件不存在

{

printf("文件不存在!\n");

return;

}

while(!feof(fp))

if(fread(stu[m],LEN,1,fp)==1)m++;

fclose(fp);

if(m==0)

{

printf("文件中没有记录!\n");

//data.txt文件存在,但里面没有内容

return;

}

printf("请输入学生学号");

scanf("%d",snum);

for(i=0;ii++)

if(snum==stu[i].num)

{

printf("找到了这条记录,是否删除(y/n)");

scanf("%s",ch);

if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要进行删除*/

{

for(j=i;jj++)

stu[j]=stu[j+1];/*将后一个记录移到前一个记录的位置*/

m--;/*记录的总个数减1*/

if((fp=fopen("data.txt","wb"))==NULL)

{

printf("文件不存在\n");

return;

}

for(j=0;jj++)/*将更改后的记录重新写入指定的磁盘文件中*/

if(fwrite(stu[j],LEN,1,fp)!=1)

{

printf("cannotsave!\n");

getch();

}

fclose(fp);

printf("删除成功!\n");

}else{

printf("找到了记录,选择不删除!");

}

break;

}

else

{

printf("没有找到这名学生!\n");/*未找到要查找的信息*/

}

voidsearch()/*自定义查找函数*/

//新增:搜索文件中没有的学号时的情况

FILE*fp;

intsnum,i,m=0;

if((fp=fopen("data.txt","rb"))==NULL)

{

printf("文件不存在!\n");

return;

}

while(!feof(fp))

if(fread(stu[m],LEN,1,fp)==1)

m++;

fclose(fp);

if(m==0)

{

printf("文件中没有记录!\n");

return;

}

printf("请输入number:");

scanf("%d",snum);

for(i=0;ii++)

if(snum==stu[i].num)/*查找输入的学号是否在记录中*/

{

printf("number

name

elective

experiment

required

sum\t\n");

printf(FORMAT,DATA);/*将查找出的结果按指定格式输出*/

break;

}

if(i==m)printf("没有找到这名学生!\n");/*未找到要查找的信息*/

voidmodify()/*自定义修改函数*/

//修正:要修改文件中没有记录的学号时,还是说“找到了。。。”

FILE*fp;

structstudentt;

inti=0,j=0,m=0,snum;

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

{

printf("文件不存在!\n");

return;

}

while(!feof(fp))

if(fread(stu[m],LEN,1,fp)==1)

m++;

if(m==0)

{

printf("文件中没有记录!\n");

fclose(fp);

return;

}

show();

printf("请输入要修改的学生number:");

scanf("%d",snum);

for(i=0;ii++)

if(snum==stu[i].num)/*检索记录中是否有要修改的信息*/

{

printf("找到了这名学生,可以修改他的信息!\n");

printf("name:");

scanf("%s",stu[i].name);/*输入名字*/

printf("elective:");

scanf("%lf",stu[i].elec);/*输入选修课成绩*/

printf("experiment:");

scanf("%lf",stu[i].expe);/*输入实验课成绩*/

printf("requiredcourse:");

scanf("%lf",stu[i].requ);/*输入必修课成绩*/

printf("修改成功!");

stu[i].sum=stu[i].elec+stu[i].expe+stu[i].requ;

if((fp=fopen("data.txt","wb"))==NULL)

{

printf("cannotopen\n");

return;

}

for(j=0;jj++)/*将新修改的信息写入指定的磁盘文件中*/

if(fwrite(stu[j],LEN,1,fp)!=1)

{

printf("cannotsave!");

getch();

}

fclose(fp);

break;

}

if(i==m)

printf("没有找到这名学生!\n");/*未找到要查找的信息*/

voidinsert()/*自定义插入函数*/

FILE*fp;

inti,j,k,m=0,snum;

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

{

printf("文件不存在!\n");

return;

}

while(!feof(fp))

if(fread(stu[m],LEN,1,fp)==1)

m++;

if(m==0)

{

printf("文件中没有记录!\n");

fclose(fp);

return;

}

printf("请输入要插入的位置(number):\n");

scanf("%d",snum);/*输入要插入的位置*/

for(i=0;ii++)//遍历

if(snum==stu[i].num)//判断是否存在

break;

for(j=m-1;jj--)//学号下面的内容

stu[j+1]=stu[j];/*从最后一条记录开始均向后移一位*/

printf("现在请输入要插入的学生信息.\n");

printf("number:");

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

for(k=0;kk++)//判断是否存在

if(stu[k].num==stu[m].num)

{

printf("number已经存在,按任意键继续!");

getch();

fclose(fp);

return;

}

printf("name:");

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

printf("elective:");

scanf("%lf",stu[i+1].elec);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论