del.c

来自「学生管理系统c」· C语言 代码 · 共 55 行

C
55
字号
#include <stdio.h>
#include "h.h"
void del()
{
	char c;
	printf("\n\tPlease input the student's number:");
	getchar();
	scanf("%s",&s.num);
	if((fp=fopen("student.dat","rb"))==0)
		{printf("cannot open!");
		exit(0);}
	for(i=0;fread(&st[i],LEN,1,fp)!=0;i++);
	fclose(fp);
	n=i;
	printf("\nnumber    name             sex      score                                  ave ");
	for(flag=1,i=0;flag&&i<n;i++)
		{
			if(strcmp(s.num,st[i].num)==0)/*删除条件*/
			{
				flag=0;
				printf("\n%-10s%-10s%10s",st[i].num,st[i].name,st[i].sex);
				for(j=0;j<K;j++)
					printf("%8d",st[i].score[j]);
				printf("%8.2f\n",st[i].ave);
				printf("\n\tDo you want delete?(y/n)\n\ty--delete and return menu\n\tn--return menu:");
				getchar();
				scanf("%c",&c);
				if(c=='n'||c=='N')
				{
					main();
				}
				if(c=='y'||c=='Y')
					for(j=i;j<n-1;j++)/*删除主要语句*/
					{
						strcpy(st[j].num,st[j+1].num);
						strcpy(st[j].name,st[j+1].name);
						strcpy(st[j].sex,st[j+1].sex);
						for(k=0;k<K;k++)
							st[j].score[k]=st[j+1].score[k];
					}
			}
		}
	if(!flag) n=n-1;
	else
		printf("\n\n\nNot find!\n\n");
	if((fp=fopen("student.dat","wb"))==0)
	{
		printf("Cannot open!");
		exit(0);
	}
	for(i=0;i<n;i++)
		fwrite(&st[i],LEN,1,fp);
	fclose(fp);
	main();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?