版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年全国统考教师资格考试《教育教学知识与能力(小学)》练习题审定版附答案详解
- 2024-2025学年度宝鸡职业技术学院单招《语文》综合提升测试卷附参考答案详解【综合题】
- 2024-2025学年农村信用社招聘考试题库试题(精练)附答案详解
- 2024-2025学年度执业兽医测试卷及参考答案详解(综合卷)
- 2024-2025学年度施工员模拟题库含答案详解AB卷
- 2024-2025学年度监理工程师全真模拟模拟题及完整答案详解【名校卷】
- 2024-2025学年度天津城市建设管理职业技术学院单招数学练习题及参考答案详解【研优卷】
- 2024-2025学年度计算机四级考前冲刺练习题及参考答案详解(研优卷)
- 2024-2025学年度广东环境保护工程职业学院妇产护理期末模拟试题带答案详解(突破训练)
- 企业资产完备无损承诺书(6篇)
- 汽轮机组试车方案
- 漆安慎力学第二版课后习题解答及漆安慎-力学答案
- PCI围术期强化他汀治疗的获益和机制课件
- 沥青搅拌站安全生产风险分级管控体系方案资料(2022-2023版)
- WTO海关估价协议中文版
- 【广东省】工作证明模板(仅供参考)
- YS/T 613-2006碳膜电位器用电阻浆料
- GB/T 33365-2016钢筋混凝土用钢筋焊接网试验方法
- GB/T 17626.10-2017电磁兼容试验和测量技术阻尼振荡磁场抗扰度试验
- GB/T 14536.6-2008家用和类似用途电自动控制器燃烧器电自动控制系统的特殊要求
- 《乡风文明建设》(王博文)
评论
0/150
提交评论