标签:fp struct int 信息 学生 stu student printf 录入
程序思维导图
1.加载文件
输入1进行文件加载
2. 录取学生信息
输入2进行录取学生信息
3.显示学生信息
输入3进行显示学生信息
4.查找学生信息
输入4进行查找学生信息
5.退出程序
输入5退出程序
代码程序如下
#include <stdio.h>
#include <stdlib.h>
struct student
{
int no;
char name[20];
char sex;
int age;
};
void display_menu();
int stu_input(struct student *pstu);
int stu_output(struct student stu);
int main(int argc, char* argv[])
{
char sz;
char szPath[100];
char szName[20];
char found = 0;
FILE *fp = NULL;
struct student stu;
int n;
display_menu();
scanf("%s",&sz);
while(sz != 0)
{
switch (sz)
{
case '1':
printf("加载文件..:\n请输入要加载的文件:");
scanf("s",szPath);
fp = fopen(szPath,"ab+");
if(fp != NULL)
{
printf("文件加载成功!\n");
system("pause");
break;
}
break;
case '2':
printf("录入学生信息.. \n");
if(!fp)
{
printf("需要先加载文件后再使用!\n");
system("pause");
break;
}
stu_input(&stu);
fwrite(&stu,sizeof(struct student),1,fp);
break;
case '3':
printf("显示学生信息.. \n");
if(!fp)
{
printf("需要先加载文件后再使用!\n");
system("pause");
break;
}
rewind(fp); /*文件指针返回文件头位置*/
n = fread(&stu,sizeof(struct student),1,fp);
while(n>0)
{
stu_output(stu);
n = fread(&stu,sizeof(struct student),1,fp);
}
break;
case '4':
printf("查找学生信息.. \n");
if(!fp)
{
printf("需要先加载文件后再使用!\n");
system("pause");
break;
}
rewind(fp); /*文件指针返回文件头位置*/
printf("输入所要查找的学生姓名:");
scanf("%s",szName);
n = fread(&stu,sizeof(struct student),1,fp);
while(n>0)
{
if(strcmp(stu.name,szName)==0)
{
found++;
stu_output(stu);
}
n = fread(&stu,sizeof(struct student),1,fp);
}
if(found == 0)
{
printf("不存在该生[%s]\n",szName);
system("pause");
}
else
{
printf("找到了%d条信息\n",found);
system("pause");
found = 0;
}
break;
default:
exit(0);
}
flushall();
display_menu();
scanf("%c",&sz);
}
return 0;
}
void display_menu()
{
char str[100];
FILE* fp;
char *szChar;
fp = fopen("config.cfg", "r");
szChar = fgets(str,100,fp);
while (szChar != NULL)
{
printf("%s", str);
szChar = fgets(str,100,fp);
}
fclose(fp);
}
int stu_input(struct student *pstu)
{
printf("学号:");
scanf("%d",&pstu->no);
printf("姓名:");
scanf("%s",&pstu->name);
getchar();
printf("性别 (F/M):");
scanf("%c",&pstu->sex);
printf("年龄:");
scanf("%d",&pstu->age);
return 0;
}
int stu_output(struct student stu)
{
printf("%06d,%10s,%2s,%2d\n",
stu.no,
stu.name,
stu.sex == 'M'?"男":"女",
stu.age);
return 0;
}
结果视频如下
<iframe allowfullscreen="true" data-mediaembed="bilibili" id="Ighoqc2N-1636789941059" src="https://player.bilibili.com/player.html?aid=379134296"></iframe>
学生基本信息录入系统结果
标签:fp,struct,int,信息,学生,stu,student,printf,录入 来源: https://blog.csdn.net/DAXIEA671025/article/details/121302743
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。