注册 登录
编程论坛 C++ Builder

求请教,不能保存不能读出!!线上等!急!!

aa456123 发布于 2011-06-07 16:10, 1269 次点击
#include<stdio.h>
#include<string.h>
#define N 100
struct stu{
char num[10];
char name[10];
char qq[10];
char sex[10];
char day[10];
}stu[50];

int m=1,i=1;

void input()
{
int i;
void menu();
printf("输入待录入的学生数:");
scanf("%d",&m);
while(m>N)
{
printf("个数太多,重新输入,推出请输入\n");
scanf("%d",&m);
if(m==0)
void menu();
}

printf("输入学生信息(学号   姓名    qq     性别   出生年月)\n");
for(i=0;i<m;i++)
{
printf("请输入学号:");
scanf("%s",&stu[i].num);
printf("请输入名字:");
scanf("%s",&stu[i].name);
printf("请输入qq号:");
scanf("%s",&stu[i].qq);  
printf("请输入性别:");
scanf("%s",&stu[i].sex);
printf("请输入出生年月:");
scanf("%s",&stu[i].day);
}
printf("输入完毕\n");
menu();
}
void del()
{
    int i,j;
    char ch;
    char snum[10];
    printf("请输入学号:");
    scanf("%s",snum);
    for(i=0;i<m;i++)
        if(strcmp(snum,stu[i].num)==0)
            break;
            printf("学号   姓名\n");
            printf("%-10s %-10s",stu[i].num,stu[i].name);
        printf("找到这个学生,确定删除?(y/n)");
        scanf("%c\n",&ch);scanf("%c",&ch);
        if(ch=='Y'||ch=='y')
        {    for(j=i;j<m;j++)

                stu[j]=stu[j+1];
                    m--;
        FILE *fp;
        if((fp=fopen("a.txt","w"))==NULL)
            {
             printf("cannot open file\n");
              return;
        }

        fwrite(&stu,sizeof(stu[i]),1,fp);
 fclose(fp);

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

        }
            else
            {
              return;
            }

}


void print()
{
    int i=m;
void menu();
FILE *fp;
  if((fp=fopen("a.txt","w+"))==NULL)
 {
  printf("cannot open file\n");
  return;
 }
  
      printf("学号   姓名    qq     性别   出生年月\n");
for(i=0;i<m;i++)
{
    fread(&stu[i],sizeof(struct stu),1,fp);
printf("%-8s%-8s%-8s%-8s%-8s\n",stu[i].num,stu[i].name,stu[i].qq,stu[i].sex,stu[i].day);
}
fclose(fp);

menu();
}

void shut()
{
printf("谢谢使用本系统。");
}

 void save()
 {
     FILE *fp;
     if((fp=fopen("a.txt","w"))==NULL)
     {
  printf("cannot open file\n");
  return;
 }
fwrite(&stu,sizeof(stu[i]),1,fp);
 fclose(fp);
print();
 }

void menu()
{
int key;

printf("\n*****学生信息管理系统*****\n");
printf("----------------------------------\n");
printf("1. 录入学生信息\n");  
printf("2. 按学号删除信息\n");
printf("3. 显示学生信息\n");  
printf("4. 保存信息\n");
printf("5. 退出系统\n");
printf("请输入key;");
scanf("%d",&key);
switch(key)
{
case(1):
input();
break;  
case(2):
del();
break;
case(3):
print();
break;  
case(4):
save();
case(5):
shut();
default :
break;
}
}


void main()
{
menu();
}
0 回复
1