?? 課題參考5.txt
字號:
#i nclude<stdio.h>
#i nclude<conio.h>
#i nclude<stdlib.h>
#i nclude<string.h>
#define SU 10
FILE *fp1;
struct student
{
int no;
char name[10];
int ji1;
int ji2;
int ji3;
int sum;
}stu[SU];
int han_shu();
int han_cha();
int han_xiu();
int han_shan();
int han_tong();
int n=0;
void main()
{
if ((fp1=fopen("wen_shu","w"))==NULL) /*定義文件*/
printf("文件不能打開" );fclose(fp1);
int c;
while(1)
{
printf("\n");
printf("\n");
printf("\n");
printf(" *****************************************************\n");
printf(" * *\n");
printf(" * 1-輸入 2-查詢 3-修改 4-刪除 *\n");
printf(" * 5-統計 0-退出 *\n");
printf(" * *\n");
printf(" *****************************************************\n");
printf("\n");
printf("\t請選擇:");
c=getchar();clrscr();
switch?
{
case'1':han_shu();break;
case'2':han_cha();break;
case'3':han_xiu();break;
case'4':han_shan();break;
case'5':han_tong();break;
case'0':{clrscr();
printf("\n\n\n\n\n\t\t您已經退出系統!");
}exit(0);
}
}
}
/*********************************/
int han_shu() /*輸入的函數*/
{
int t;
if ((fp1=fopen("wen_shu","a+"))==NULL)
printf("打開錯誤");
for(t=n;t<SU;t++)
{ printf("\t 學號 姓名 基礎 導論 程序\n");
printf("請輸入:");
scanf("%d%s%d%d%d",&stu[t].no,stu[t].name,&stu[t].ji1,
&stu[t].ji2,&stu[t].ji3);
stu[t].sum=stu[t].ji1+stu[t].ji2+stu[t].ji3;
fwrite(&stu[t],sizeof(struct student),1,fp1);
n++;
printf("還要添加嗎?y/n");
getchar();
if (getchar()!='y')break;
}
fclose(fp1); /*關閉f1所指文件*/
return 0;
}
/*********************************/
int han_cha() /*查詢的函數*/
{
if ((fp1=fopen("wen_shu","r"))==NULL)
printf("打開錯誤");
int i,c2;
while(!feof(fp1))
{
clrscr();
printf("請輸入你要查詢的學號:");
scanf("%d",&c2);
rewind(fp1);
for(i=0;i<SU;i++)
{
fread(&stu[i],sizeof(struct student),1,fp1);
if (c2==stu[i].no)
{
printf("\n該生情況如下:\n學號 姓名 基礎 導論 程序\n");
printf("%d %4s %4d %4d %4d",stu[i].no,stu[i].name,
stu[i].ji1,stu[i].ji2,stu[i].ji3);
break;
}
}
if(i==SU)
printf("\n\n\n對不起!沒有您所需的記錄");
printf("\n\n\n還需查詢嗎?y/n");
getchar();
if (getchar()!='y')break;
}
fclose(fp1); /*關閉f1所指文件*/
return 0;
}
/*********************************/
int han_shan() /*刪除的函數*/
{
int r,y,u,j,e,m;
while(1)
{
if ((fp1=fopen("wen_shu","r"))==NULL)
printf("不能打開");
if (!feof(fp1))rewind(fp1);
for (r=0;!feof(fp1)&&fread(&stu[r],sizeof(struct student),
1,fp1);r++);
printf("要刪除的學號");
scanf("%d",&y);
for (u=0;u<r&&stu[u].no!=y;u++);
if(u>=r)printf("沒有學生信息");
fclose(fp1);
n--;
if(r>1)
{
printf("\n刪除后的學生情況如下:\n學號 姓名 基礎 導論 程序\n");
for (j=u;j<r-1;j++)stu[u]=stu[u+1];
fp1=fopen("wen_shu","w+");
for (u=0;u<r-1;u++)
{
fwrite(&stu[u],sizeof(struct student),1,fp1);
fread(&stu[u],sizeof(struct student),1,fp1);
printf("\n%d %4s %4d %4d %4d",stu[u].no,stu[u].name,
stu[u].ji1,stu[u].ji2,stu[u].ji3);
}
fclose(fp1);
}
else
{printf ("無任何記錄");
fclose(fp1);
}
printf("\n\n還要刪除嗎?y/n");
getchar();
if (getchar()!='y'){clrscr();break; }
clrscr();
}
return 0;
}
/*********************************/
int han_xiu() /*修改的函數*/
{
int z,a,d,s,g,l;
if ((fp1=fopen("wen_shu","r"))==NULL)printf("不能打開");
if(!feof(fp1))
{
rewind(fp1);
printf("輸入要修改的學生學號");
scanf("%d",&s);
for (z=0;fread(&stu[z],sizeof(struct student),
1,fp1);z++)
if(s==stu[z].no){a=z;break;}
if (z==SU)
printf("\n沒有學生信息\n");
for (1;z<SU;z++)
fread(&stu[z],sizeof(struct student),1,fp1);
fclose(fp1);
printf("\t 學號 姓名 基礎 導論 程序\n");
printf("請輸入:");
scanf("%d%s%d%d%d",&stu[a].no,stu[a].name,&stu[a].ji1,
&stu[a].ji2,&stu[a].ji3);
fp1=fopen("wen_shu","w+");
printf("\n\n修改后的學生情況如下:\n學號 姓名 基礎 導論 程序\n");
for (g=0;g<n;g++)
fwrite(&stu[g],sizeof(struct student),1,fp1);
rewind(fp1);
for(l=0;l<n;l++)
{ fread(&stu[g],sizeof(struct student),1,fp1);
printf("\n%d %4s %4d %4d %4d",stu[g].no,stu[g].name,
stu[g].ji1,stu[g].ji2,stu[g].ji3);
}
}
else
{ printf ("無任何記錄");
fclose(fp1);
}
printf("\n\n退回菜單請輸入回車鍵");
getchar();
if (getchar()!=EOF); clrscr();
return 0;
}
/*********************************/
int han_tong() /*統計的函數*/
{
int k;
printf("\n學生情況如下:\n學號 姓名 基礎 導論 程序 總成績\n");
if ((fp1=fopen("wen_shu","r"))==NULL) /*打開f1所指文件*/
printf("打開錯誤");
for(k=0;k<n;++k)
{ fread(&stu[k],sizeof(struct student),1,fp1);
printf("%d %4s %4d %4d %4d %4d\n",stu[k].no,stu[k].name,
stu[k].ji1,stu[k].ji2,stu[k].ji3, stu[k].sum);
}
fclose(fp1); /*關閉f1所指文件*/
printf("\n\n退回菜單請輸入回車鍵");
getchar();
if (getchar()!=EOF); clrscr();
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -