?? 學生管理.c.txt
字號:
window(1,1,80,25);
}
void Wind( int x1,int y1,int x2,int y2,int FR,int IS,int BC,int TC,int BG)
{ int i;
int c[2][6]={{0xda,0xc4,0xbf,0xb3,0xc0,0xd9},
{0xc9,0xcd,0xbb,0xba,0xc8,0xbc}};
textcolor(TC);
textbackground(BC);
window(x1,y1,x2,y2);
clrscr();
if(FR)
{ window(1,1,80,25);
gotoxy(x1,y1);
putch(c[FR-1][0]);
for(i=x1+1;i<x2;i++)
putch(c[FR-1][1]);
putch(c[FR-1][2]);
for(i=y1+1;i<y2;i++)
{ gotoxy(x1,i);
putch(c[FR-1][3]);
gotoxy(x2,i);
putch(c[FR-1][3]);}
gotoxy(x1,y2);
putch(c[FR-1][4]);
for(i=x1+1;i<x2;i++)
putch(c[FR-1][1]);
putch(c[FR-1][5]); }
if(IS)
textcolor(BG);
textbackground(0);
for(i=y1+1;i<y2+1;i++)
{ gotoxy(x2+1,i); }
for(i=x1+1;i<x2+2;i++)
{ gotoxy(i,y2+1); }
window(x1+1,y1+1,x2-1,y2-1);
}
void Quit()
{ textbackground(0);
textcolor(7);
window(1,1,80,25);
clrscr();
exit(0);}
void into()
{ char filename[15];
int a,i,sum; int j,x1,y1,x2,y2;
FILE *fp; void *buf;
window(1,5,80,25);
/* buf=(void *)malloc(2*80*25);
gettext(1,5,80,20,buf); */
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
cprintf("輸入人數:");
scanf("%d",&a);
for(i=0;i<a&&Key!=ESC;i++)
{ Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
cprintf("輸入姓名:");
scanf("%s",stu[i].name);gotoxy(2,2);
cprintf("學生信息");gotoxy(2,3);
cprintf("學號:");scanf("%d",&stu[i].num);gotoxy(2,4);
cprintf("班級:");scanf("%s",&stu[i].class);gotoxy(2,5);
cprintf("性別:");scanf("%s",stu[i].sex);gotoxy(2,6);
cprintf("出生日期:");gotoxy(15,6);
cprintf("年:");scanf("%d",&stu[i].birth.year);gotoxy(23,6);
cprintf("月:");scanf("%d",&stu[i].birth.month);gotoxy(31,6);
cprintf("日:");scanf("%d",&stu[i].birth.date);gotoxy(2,7);
cprintf("政治面貌:");scanf("%s",stu[i].pol);gotoxy(2,8);
cprintf("家庭住址:");scanf("%s",stu[i].addr);
getchar();clrscr();}
for(i=0;i<a&&Key!=ESC&&Key!=ALT_X;i++)
{ Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
cprintf("姓名:%s",stu[i].name);gotoxy(2,2);
cprintf("輸入期末成績:\n");
printf("高等數學 英語 C語言 大學物理 馬哲");gotoxy(2,4);
scanf("%d%d%d%d%d",&stu[i].score.score1[0],&stu[i].score.score1[1],
&stu[i].score.score1[2],&stu[i].score.score1[3],&stu[i].score.score1[4]);
printf("\nif you want to stop; please enter ESC");
getchar();clrscr();}
fp=fopen("a:\\stu.new","a+");
for(i=0;i<a;i++)
fwrite(&stu[i],sizeof(struct student),1,fp);
fclose(fp);
return; }
void insert() /*插入學號*/
{ FILE *fp;
int i,h,e,j,t, numb;
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
cprintf("輸入插入的學號:");
scanf("%d",&numb);
if((fp=fopen("a:\\stu.new","r"))==NULL)
{cprintf("文件打不開!");
exit(0);}
for(i=0,j=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++)
if(stu[i].num<numb) j++;
fclose(fp);
h=j;
fp=fopen("a:\\stu.new","r");
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++) ;
e=i;
/*move datas*/
for(j=e-1;j>=h;j--)
{ stu[j+1]=stu[j]; }
fclose(fp);
fp=fopen("a:\\stu.new","w+");
gotoxy(2,2);
cprintf("輸入姓名:");
scanf("%s",stu[h].name);gotoxy(2,3);
cprintf("學生信息:");gotoxy(2,4);
cprintf("班級:");scanf("%s",&stu[h].class);gotoxy(2,5);
cprintf("性別:");scanf("%s",stu[h].sex);gotoxy(2,6);
cprintf("出生日期:");gotoxy(15,6);
cprintf("年:");scanf("%d",&stu[h].birth.year);gotoxy(23,6);
cprintf("月:");scanf("%d",&stu[h].birth.month);gotoxy(31,6);
cprintf("日:");scanf("%d",&stu[h].birth.date);gotoxy(2,7);
cprintf("政治面貌:");scanf("%s",stu[h].pol);gotoxy(2,8);
cprintf("家庭住址:");scanf("%s",stu[h].addr);
getchar();clrscr();
cprintf("姓名:%s\n",stu[h].name);
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
cprintf("輸入期末成績 :");gotoxy(2,2);
printf("高等數學 英語 C語言 大學物理 馬哲");gotoxy(2,3);
scanf("%d%d%d%d%d",&stu[h].score.score1[0],&stu[h].score.score1[1],
&stu[h].score.score1[2],&stu[h].score.score1[3],&stu[h].score.score1[4]);
for(i=0;i<=e;i++)
fwrite(&stu[i],sizeof(struct student),1,fp);
fclose(fp); getchar();clrscr(); return; }
void fromname() /*按名字查詢*/
{ FILE *fp;
int i,n,flag=0,t;
char str[10],key;
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
if((fp=fopen("a:\\stu.new","r"))==NULL)
{printf("file can't open"); getch();
exit(0);}
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++);
n=i;
while(1)
{ Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
cprintf("輸入姓名:");
scanf("%s",str);
for(i=0;i<n;i++)
{ if(strcmp(str,stu[i].name)==0)
{gotoxy(2,2);cprintf("學生的信息:");gotoxy(2,3);
cprintf("學號:%d",stu[i].num);gotoxy(2,4);
cprintf("班級:%s",stu[i].class);gotoxy(2,5);
cprintf("性別:%s",stu[i].sex);gotoxy(2,6);
cprintf("出生日期:"); gotoxy(15,6);
cprintf("年:%d",stu[i].birth.year);gotoxy(23,6);
cprintf("月:%d",stu[i].birth.month);gotoxy(31,6);
cprintf("日:%d",stu[i].birth.date);gotoxy(2,7);
cprintf("政治面貌:%s",stu[i].pol);gotoxy(2,8);
cprintf("家庭住址:%s",stu[i].addr);gotoxy(2,9);
cprintf("期末成績:");gotoxy(12,9);
cprintf("高等數學:%d",stu[i].score.score1[0]);gotoxy(25,9);
cprintf("英語:%d",stu[i].score.score1[1]);gotoxy(35,9);
cprintf("C語言:%d",stu[i].score.score1[2]);gotoxy(45,9);
cprintf("大學物理:",stu[i].score.score1[3]);gotoxy(58,9);
cprintf("馬哲:%d",stu[i].score.score1[4]);gotoxy(68,9);
cprintf("平均分:%d",(stu[i].score.score1[0]+stu[i].score.score1[1]+
stu[i].score.score1[2]+stu[i].score.score1[3]+stu[i].score.score1[4])/5);
flag++; }
}
if(flag==0)
{ gotoxy(2,10);
textattr(0x3e);
cprintf(" 找不到!");
}
gotoxy(2,15);
textattr(0x3e);
cprintf("繼續嗎?(Y/N):");
if((getch()=='n')||(getch()=='N'))
{ window(1,1,80,25);clrscr();break;}
clrscr(); }
fclose(fp);
return;}
void fromnum() /*按學號查詢*/
{ FILE *fp;
int i,n,num,flag=0,t;
char key;
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
if((fp=fopen("a:\\stu.new","r"))==NULL)
{printf("file can't open"); getch();
exit(0);}
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++);
n=i;
while(1)
{ Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
cprintf("輸入學號:");
scanf("%d",&num);
for(i=0;i<n;i++)
{ if(num==stu[i].num)
{gotoxy(2,2);cprintf("姓名:%s",stu[i].name);gotoxy(2,3);
cprintf("學號:%d",stu[i].num);gotoxy(2,4);
cprintf("班級:%s",stu[i].class);gotoxy(2,5);
cprintf("性別:%s",stu[i].sex);gotoxy(2,6);
cprintf("出生日期");gotoxy(15,6);
cprintf("年:%d",stu[i].birth.year);gotoxy(23,6);
cprintf("月:%d",stu[i].birth.month);gotoxy(31,6);
cprintf("日:%d",stu[i].birth.date);gotoxy(2,7);
cprintf("政治面貌:%s",stu[i].pol);gotoxy(2,8);
cprintf("家庭住址:%s",stu[i].addr);gotoxy(2,9);
cprintf("期末成績:");gotoxy(12,9);
cprintf("高等數學:%d",stu[i].score.score1[0]);gotoxy(25,9);
cprintf("英語:%d",stu[i].score.score1[1]);gotoxy(35,9);
cprintf("C語言:%d",stu[i].score.score1[2]);gotoxy(45,9);
cprintf("大學物理:%d",stu[i].score.score1[3]);gotoxy(58,9);
cprintf("馬哲:%d",stu[i].score.score1[4]);gotoxy(68,9);
cprintf("平均分:%d",(stu[i].score.score1[0]+stu[i].score.score1[1]+
stu[i].score.score1[2]+stu[i].score.score1[3]+stu[i].score.score1[4])/5);
flag++; }
}
if(flag==0)
{ gotoxy(2,7);
textattr(0x3e);
cprintf(" 找不到!");
}
gotoxy(2,12);
textattr(0x3e);
cprintf("繼續嗎?(Y/N):");
if((getch()=='n')||(getch()=='N'))
{window(1,1,80,25);clrscr(); break;}
clrscr();}
fclose(fp);
return;}
void out()
{ FILE *fp; char key;
int i,j,n; void *buffer;
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
if((fp=fopen("a:\\stu.new","r"))==NULL)
{ gotoxy(2,1);
cprintf("can't open!");
exit(0);}
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0&&Key!=ESC;i++)
{ gotoxy(2,1);
cprintf("假如想中斷,按鍵B");gotoxy(2,2);
cprintf("姓名:%s",stu[i].name);gotoxy(2,3);
cprintf("學生信息:");gotoxy(2,4);
cprintf("學號:%d",stu[i].num);gotoxy(2,5);
cprintf("班級:%s",stu[i].class);gotoxy(2,6);
cprintf("性別:%s",stu[i].sex);gotoxy(2,7);
cprintf("出生日期");gotoxy(15,7);
cprintf("年:%d",stu[i].birth.year);gotoxy(23,7);
cprintf("月:%d",stu[i].birth.month);gotoxy(31,7);
cprintf("日:%d",stu[i].birth.date);gotoxy(2,8);
cprintf("政治面貌:%s",stu[i].pol);gotoxy(2,9);
cprintf("家庭住址:%s",stu[i].addr);gotoxy(2,10);
cprintf("輸出期末成績:");gotoxy(2,11);
cprintf("高等數學:%d",stu[i].score.score1[0]);gotoxy(15,11);
cprintf("英語:%d",stu[i].score.score1[1]);gotoxy(25,11);
cprintf("C語言:%d",stu[i].score.score1[2]);gotoxy(35,11);
cprintf("大學物理:%d",stu[i].score.score1[3]);gotoxy(48,11);
cprintf("馬哲:%d",stu[i].score.score1[4]);gotoxy(58,11);
cprintf("平均分:%d",(stu[i].score.score1[0]+stu[i].score.score1[1]+
stu[i].score.score1[2]+stu[i].score.score1[3]+stu[i].score.score1[4])/5);
cprintf("按任意鍵繼續!");
key=getch();
if(key=='B'||key=='b')
{ clrscr(); puttext(1,1,80,25,buffer); free(buffer);getch(); return; }
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE); }
fclose(fp); return;}
void sort() /* 排序 */
{ FILE *fp; void *buffer;
int i,j,n,sum1[ALL],p[ALL];
char key;
buffer=(void *)malloc(2*80*25);
gettext(1,1,80,25,buffer);
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
gotoxy(2,1);
cprintf("由分數排名:");
gotoxy(30,1);
cprintf("按任意鍵開始!");
getch();
if((fp=fopen("a:\\stu.new","r"))==NULL)
{ gotoxy(2,5);
cprintf("沒有記錄!"); getch();
exit(0);}
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++)
{sum1[i]=stu[i].score.score1[0]+stu[i].score.score1[1]+stu[i].score.score1[2]+
stu[i].score.score1[3]+stu[i].score.score1[4];
stu[i].score.ave1=sum1[i]/5;
p[i]=stu[i].score.ave1;
n=i; fclose(fp);
/*sort average*/
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(p[i]<p[j]) /*平均分比較*/
{ MID=stu[i];
stu[i]=stu[j];
stu[j]=MID;}
fp=fopen("a:\\stu.new","a+");
for(i=0;i<n;i++)
fwrite(&stu[i],sizeof(struct student),1,fp);
fclose(fp);
/*put out*/
gotoxy(2,2);
cprintf("結果是:");
fp=fopen("a:\\stu.new","r");
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0&&Key!=ESC;i++)
{ gotoxy(2,3);
cprintf("想中斷,按鍵 B");
gotoxy(2,4);
cprintf("第%d名是:",i+1);gotoxy(2,5);
cprintf("%s",stu[i].name);gotoxy(2,6);
cprintf("期末成績:");gotoxy(2,7);
cprintf("高等數學:%d",stu[i].score.score1[0]);gotoxy(15,7);
cprintf("英語:%d",stu[i].score.score1[1]);gotoxy(25,7);
cprintf("C語言:%d",stu[i].score.score1[2]);gotoxy(35,7);
cprintf("大學物理:%d",stu[i].score.score1[3]);gotoxy(48,7);
cprintf("馬哲:%d",stu[i].score.score1[4]);gotoxy(58,7);
cprintf("平均分:%d",(stu[i].score.score1[0]+stu[i].score.score1[1]+
stu[i].score.score1[2]+stu[i].score.score1[3]+stu[i].score.score1[4])/5);
printf("按任意鍵繼續");
key=getch();
if(key=='B'||key=='b')
{ clrscr(); puttext(1,1,80,25,buffer); free(buffer);getch(); return;}
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE); }
fclose(fp); return;}
}
void quit()
{ char *log[]={"想退出?,YES OR NO?", "按鍵Y/N"};
char key;
Wind(30,10,60,20,2,0,1,15,1);
textbackground(BLUE);
do{textcolor(WHITE);
gotoxy(1,3);cprintf("%s",log[0]);
textcolor(WHITE);
gotoxy(4,5);cprintf("%s",log[1]);
gotoxy(21,5);
key=getch();
if(key=='y'||key=='Y')
{window(1,1,80,25);clrscr();exit(0);}
else if(key=='n'||key=='N') break;}
while(1);
window(1,1,80,25);
}
void delete() /*刪除檔案*/
{ FILE *fp; void *buf;
int i,j,logic,del,n;
char ch,name[10];
window(1,1,80,25);
buf=(void *)malloc(80*2*25);
gettext(1,1,80,25,buf);
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
if((fp=fopen("a:\\stu.new","r"))==NULL)
{ gotoxy(2,1); /*將文本從存儲區考備到屏幕*/
cprintf("can't open!"); getch();puttext(1,1,80,25,buf);free(buf);return;}
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0&&Key!=ESC;i++);
n=i; fclose(fp); gotoxy(2,1);
cprintf("輸入你想刪除學生的姓名:");
scanf("%s",name); getch();
for(i=0,logic=1;i<n&&logic;i++)
{if(strcmp(name,stu[i].name)==0)
{ del=i; logic=0;}
}
if(!logic)
n--;
else { gotoxy(2,4);cprintf("不能找到,按鍵返回!");
getch();puttext(1,1,80,25,buf);free(buf);return;}
fp=fopen("a:\\stu.new","w");
for(i=0;i<del;i++)
fwrite(&stu[i],sizeof(struct student),1,fp);
for(i=del+1;i<n;i++)
fwrite(&stu[i],sizeof(struct student),1,fp);
fclose(fp);
gotoxy(2,5);
cprintf("刪除成功!");
getch(); puttext(1,1,80,25,buf);free(buf); return; }
void pass() /*及格統計*/
{ FILE *fp;
int i,n,sum1[ALL],m1=0;
char key;
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
if((fp=fopen("a:\\stu.new","r"))==NULL)
{ gotoxy(2,1);
cprintf("file can't open"); getch();
exit(0);}
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++);
n=i; fclose(fp);
for(i=0;i<n;i++)
{ if((stu[i].score.score1[0]>=60)&&(stu[i].score.score1[1]>=60)
&&(stu[i].score.score1[2]>=60)&&(stu[i].score.score1[3]>=60)
&&(stu[i].score.score1[4]>=60)) m1++; }
gotoxy(2,6);
cprintf("及格人數是(期末):%d",m1);
getch();
clrscr();
return;} /*優秀統計*/
void best()
{ FILE *fp;
int i,n,sum1[ALL];
int t1=0;
char key;
Wind(1,2,80,23,2,0,1,15,1);
textbackground(BLUE);
if((fp=fopen("a:\\stu.new","r"))==NULL)
{ gotoxy(2,1);
cprintf("file can't open"); getch();
exit(0);}
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++);
n=i; fclose(fp);
for(i=0;i<n;i++)
{sum1[i]=stu[i].score.score1[0]+stu[i].score.score1[1]+stu[i].score.score1[2]+
stu[i].score.score1[3]+stu[i].score.score1[4];
stu[i].score.ave1=sum1[i]/5; }
for(i=0;i<n;i++)
{ if((stu[i].score.score1[0]>=60)&&(stu[i].score.score1[1]>=60)
&&(stu[i].score.score1[2]>=60)&&(stu[i].score.score1[3]>=60)
&&(stu[i].score.score1[4]>=60)&&(stu[i].score.ave1>=80)) t1++;}
gotoxy(2,6);
cprintf("優秀人數是(期末):%d",t1);
getch();
clrscr();
return;}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -