70,037
社区成员
发帖
与我相关
我的任务
分享#include <stdio.h>
#include <stdlib.h>
#include <string.h>//这里
#define N 4
void save();
void read();
typedef struct
{
char id[10];
char sname[11];
int cj[3];
}stud;
main()
{
char ch='1';
while(ch!='0')
{
system("cls");
printf("\n\t\t\t菜单选项\n\n");
printf("\t1.添加数据\t2.查询数据\t3.修改数据\n");
printf("\t0.退出\n\n\n");
printf("\tPlease input a choose(1-0): ");
ch=getchar();getchar();
switch(ch)
{
case '1':
save();
// printf("\tOk\n");
getchar();getchar();
break;
case '2':
read();
printf("\nPlease press enter\n");
getchar();getchar();
break;
case '3':
break;
case '0':
exit(0);
default:
printf("\tError again");
break;
}
}
}
void save()
{
stud stu[N];
int i,j,t=1;
FILE *fp;
char filename[90];
printf("请输入要保存的文件的路径: ");
scanf("%s",&filename);
fp=fopen(filename,"w");
if(fp==NULL)
{
printf("没有找到文件或者无法打开,程序退出\n\n");
// exit(0);
}
printf("信息输入开始:\n");
for(i=0;i <N;i++)
{
printf("\n输入ID : ");
scanf("%s",stu[i].id);
printf("\n输入姓名 : ");
scanf("%s",stu[i].sname);
stu[i].cj[0]=0;
for(j=0;j <3;j++)
{
printf("输入第%d门成绩 : ",t);
scanf("%d",&stu[i].cj[j]);
t++;
}
t=1;
fwrite(&stu[i],sizeof(stu[i]),1,fp);
}
printf("\n输入完成.....");
fclose(fp);
}
void read()
{
stud s[N];
int i,j;
FILE *fp;
char filename[90];
char ch='1';
char x[10];//这里
printf("请输入要查询的文件的路径: ");
scanf("%s",&filename);
fp=fopen(filename,"r");
if(fp==NULL)
{
printf("没有找到文件或者无法打开,程序退出\n\n");
}
while(ch!='0')
{
system("cls");
printf("\n\t\t\t查询菜单\n\n");
printf("\t1.查询全部\t2.学生ID\t3.学生姓名\n\t4.学生某门成绩\t5.学生总成绩\n");
printf("\t0.退出\n\n\n");
printf("\tPlease input a choose(1-0): ");
ch=getchar();getchar();
switch(ch)
{
case '1':
printf("\tID\t姓名\t成绩1\t成绩2\t成绩3\t总成绩\n");
printf("\t---------------------------------------------\n");
for(i=0;i <N;i++)
{
fread(&s[i],sizeof(s[i]),1,fp);
printf("\t%s\t%s\t",s[i].id,s[i].sname);
for(j=0;j <3;j++)
{
printf("%d\t",s[i].cj[j]);
}
printf("\n");
}
break;
case '2':
printf("输入学生ID号码: ");
scanf("%s",x); //这里
printf("\tID\t姓名\t成绩1\t成绩2\t成绩3\t总成绩\n");
for(i=0;i <N;i++)
{
fread(&s[i],sizeof(s[i]),1,fp);
if (!strcmp(x, s[i].id)) //这里
printf("\t%s\t%s\t",s[i].id,s[i].sname);
for(j=0;j <3;j++)
{
printf("%d\t",s[i].cj[j]);
}
printf("\n");
}
getchar();
break;
case '0':break;
default:
printf("\tError");
break;
}
getchar();
}
fclose(fp);
printf("\n\t查询完毕,按回车键返回\n");
}