📄 xueshengguanli.txt
字号:
#include"stdio.h"
#include"string.h"
#define Max 3
#define N 3
int sum;
int p=0;
/*定义学生分数结构体和学生结构体(含总分数)*/
struct course
{
int xuehao;
int English;
int cyuyan ;
int xuanxiu;
int modian;
int shiyan;
}ban[N];
struct students
{
int banji;
int num;
char name[20];
struct course xuefen;
}s[Max];
/*保存信息*/
save_message(int sum)
{
FILE *fp;
int i;
if((fp=fopen("student.txt","wb"))==NULL)/*信息保存在随机文件student.txt中*/
{
printf("reading error\n");
return;
}
for(i=0;i<sum;i++)
if(fwrite(&s[i],sizeof(struct students),1,fp)!=1)
printf("writing error\n");
fclose(fp);
}
/*1.输入学生信息*/
input_message()
{
int i;
int k;
clrscr();
printf("\n please input student message \n");
for(i=0;i<Max;i++)
{
printf("\n student num:");
scanf("%d",&s[i].num);
printf("\n student name: ");
scanf(" %s",s[i].name);
getchar();
printf(" student class: ");
scanf("%d",&s[i].banji);
printf(" student xuehao:");
scanf("%d",&s[i].xuefen.xuehao);
printf(" student credit hour: \n" );
scanf("%d %d %d %d %d",&s[i].xuefen.English,&s[i].xuefen.cyuyan ,
&s[i].xuefen.xuanxiu,&s[i].xuefen.modian,&s[i].xuefen.shiyan);
}
sum=sum+i;
printf("message is over");
bioskey(0);
}
/*读取信息*/
int read_message()
{
FILE *fp;
int i=0;
if((fp=fopen("student.txt","rb"))==NULL)
{
printf("\n--**--no message--**--\n");
return 0;
}
while(feof(fp)!=1)
{
if(fread(&s[i],sizeof(struct students),1,fp)!=1) break;
else i++;
}
fclose(fp);
return(i);
}
/*2.查找某一学生的分数情况*/
inquire_stu()
{ int j;
clrscr();
printf("****************\n\n");
printf(" 1. inquire student number\n\n");
printf(" 2. inquire student name \n\n ");
printf("please choice(1--2)");
scanf("%d",&j);
switch(j)
{case 1 : st_num();break;
case 2 : st_nam();break;
} }
st_num()
{ int m,k;
char choice;
printf("\n plesae input student number\n");
scanf("%d",&m);
for(k=0;k<sum;k++)
if(s[k].num==m)
{
printf(" name class xuehao\n");
printf("%10s%10d%8d\n",s[k].name,s[k].banji ,s[k].xuefen.xuehao);
printf(" English cyuyan xuanxiu modian shiyan\n");
printf(" %8d%8d%8d%8d%8d\n",s[k].xuefen.English,s[k].xuefen.cyuyan ,
s[k].xuefen.xuanxiu,s[k].xuefen.modian,s[k].xuefen.shiyan);
break;
}
bioskey(0);
}
st_nam()
{
int m,k;
char choice[20];
clrscr();
printf("\n plesae input student name\n");
scanf("%s",choice);
for(k=0;k<sum;k++)
if(strcmp(s[k].name,choice)==0&&s[k].xuefen.xuehao!=0)
{
printf(" name class xuehao\n");
printf("%10s%10d%8d\n",s[k].name,s[k].banji ,s[k].xuefen.xuehao);
printf(" English cyuyan xuanxiu modian shiyan\n");
printf(" %8d%8d%8d%8d%8d\n",s[k].xuefen.English,s[k].xuefen.cyuyan ,
s[k].xuefen.xuanxiu,s[k].xuefen.modian,s[k].xuefen.shiyan);
break;
}
bioskey(0);
}
/*修改某一学生的信息*/
revise_message()
{
int m;
int i;
char choice;
clrscr();
printf("\n input revising student number:\n");
scanf("%d",&m);
for(i=0;i< Max;i++)
if(m==s[i].num)
{
printf("\n credithour \n");
printf("\n 1.English:%d \n",s[i].xuefen.English);
printf("\n 2.cyuxin:%d \n",s[i].xuefen.cyuyan );
printf("\n 3.xuanxiu:%d \n",s[i].xuefen.xuanxiu);
printf("\n 4.modian:%d \n",s[i].xuefen.modian);
printf("\n 5.shiyan:%d \n",s[i].xuefen.shiyan);
printf("\n plsase choice(1--5):");
scanf("%d",&choice);
switch(choice)
{case 1: printf("\n input English mari:");
scanf("%d",&s[i].xuefen.English);break;
case 3: printf(" \n input xuanxiu mari:");
scanf("%d",&s[i].xuefen.xuanxiu);break;
case 2: printf(" \n input cyuyan mari:");
scanf("%d",&s[i].xuefen.cyuyan );break;
case 4: printf("\n input modian mari:");
scanf("%d",&s[i].xuefen.modian);break;
case 5: printf("\n input shiyan mari:");
scanf("%d",&s[i].xuefen.shiyan);break;
default: printf("\n choicing error");break;
}
printf("\n revise message:\n");
printf(" %4d%5d%6d%7d%8d",s[i].xuefen.English,s[i].xuefen.cyuyan ,s[i].xuefen.xuanxiu,s[i].xuefen.modian,s[i].xuefen.shiyan);
break;
}
bioskey(0);
}
/*删除某一学生的信息*/
del_message()
{
int i,k;
char choice;
clrscr();
printf("\n please input del-student-number\n");
scanf("%d",&k);
for(i=0;i<sum;i++)
{
if(k==s[i].num)
{ p++;
for(;i<sum-1;i++)
{
s[i].num=s[i+1].num;
strcpy(s[i].name,s[i+1].name);
s[i].banji=s[i+1].banji;
s[i].xuefen.xuehao=s[i+1].xuefen.xuehao;
s[i].xuefen.English=s[i+1].xuefen.English;
s[i].xuefen.cyuyan =s[i+1].xuefen.cyuyan ;
s[i].xuefen.xuanxiu=s[i+1].xuefen.xuanxiu;
s[i].xuefen.modian=s[i+1].xuefen.modian;
s[i].xuefen.shiyan=s[i+1].xuefen.shiyan;
}
printf(" \n deleting is succeed \n");
sum=sum-1;
break;
}
else if(s[sum-1].num==k)
{
printf(" delete the end of student\n");
sum=sum-1;
printf(" continue(Y/N)\n");
choice=getchar();
if(choice=='y'||choice=='Y')
bioskey(0);
}
}
if(sum==0) printf(" message isn't exist\n");
else printf("\n continue?(Y/N):");
choice=getchar();
getch();
if(choice=='Y'||choice=='y') bioskey(0);
}
/*插入模块*/
insert_students()
{
clrscr();
printf("insert new student number :");
sum+=1;
p--;
scanf("%d",&s[sum-1].num);
printf("name class xuehao :\n");
scanf("%s%d%d",s[sum-1].name,&s[sum-1].banji,&s[sum-1].xuefen.xuehao);
getchar();
printf("cordit hour :\n");
scanf("%d%d%d%d%d",&s[sum-1].xuefen.English,&s[sum-1].xuefen.cyuyan,
&s[sum-1].xuefen.xuanxiu,&s[sum-1].xuefen.modian,&s[sum-1].xuefen.shiyan);
printf("new student basic information:\n");
printf("number:%d\n",s[sum-1].num);
printf("name:%s\n",s[sum-1].name);
printf("class:%d\n",s[sum-1].banji);
printf("xuehao:%d\n",s[sum-1].xuefen.xuehao);
printf("English:%d\n",s[sum-1].xuefen.English);
printf("cyuyan:%d\n",s[sum-1].xuefen.cyuyan);
printf("xuanxiu:%d\n",s[sum-1].xuefen.xuanxiu);
printf("modian:%d\n",s[sum-1].xuefen.modian);
printf("shiyan:%d\n",s[sum-1].xuefen.shiyan);
save_message(sum);
getch();
}
/*按课程的总分数高低排序*/
order_message()
{
int i,a[30];
int t,k;
struct students b;
clrscr();
printf("\n sequence(form highness to lowness):\n");
for(i=0;i<N-p;i++)
a[i]=(s[i].xuefen.English+s[i].xuefen.cyuyan+s[i].xuefen.xuanxiu+s[i].xuefen.modian+s[i].xuefen.shiyan);
for(i=0;i<N-1-p;i++)
for(k=i+1;k<N-p;k++)
if(a[i]<a[k])
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
for(i=0;i<N-p;i++)
printf("\n%8d %10s %4d %4d %4d %4d %4d %4d\n",s[i].num,
s[i].name,s[i].xuefen.English,s[i].xuefen.cyuyan ,
s[i].xuefen.xuanxiu,s[i].xuefen.modian,s[i].xuefen.shiyan,a[i]);
printf("---------------------------------------------------------------------------\n");
getch();bioskey(0);
}
/*统计及格的科目数*/
count_stu()
{
int count=0;
int i=0;
clrscr();
printf("\n count graduate student number\n");
for(i=0;i<N-p;i++)
{
if(s[i].xuefen.English>=60) count++;
if(s[i].xuefen.cyuyan >=60) count++;
if(s[i].xuefen.xuanxiu>=60) count++;
if(s[i].xuefen.modian>=60) count++;
if(s[i].xuefen.shiyan>=60) count++;
}
printf("\n graduate student number:");
printf("%d",count);
getch();
}
/*对所有学生进行列表*/
output_message()
{
int i,u=N;
clrscr();
printf("\n an xuesheng xuehao paixu \n");
printf("input student number name class xuehao credit hour\n");
for(i=0;i<u-p;i++)
printf(" %10d %s %3d %3d %10d %6d %4d %4d %3d \n",
s[i].num,s[i].name,s[i].banji,s[i].xuefen.xuehao,
s[i].xuefen.English,s[i].xuefen.cyuyan ,s[i].xuefen.xuanxiu,
s[i].xuefen.modian,s[i].xuefen.shiyan);
getch();
bioskey(0);
}
/*主程序*/
main()
{
int choice,i,a,b;
sum=read_message();
bioskey(0);
printf(" please input password:\n");
scanf("%d",&i);
if(i!=123)
{ printf("\n sorry,passwoed is wrong!");getch();exit(0);}
else
{ do
{
clrscr();
printf("\n\n\n******** student administer system ********\n\n");
printf(" 1.input student message\n\n"); /*输入模块*/
printf(" 2.inquire student message\n\n"); /*查询模块*/
printf(" 3.revise student message\n\n"); /*修改模块*/
printf(" 4.delete student message\n\n"); /*删除模块*/
printf(" 5.order student grade\n\n"); /*排序模块*/
printf(" 6.count graduate number\n\n"); /*统计及格的科目数*/
printf(" 7.output student message\n\n"); /*输出模块*/
printf(" 8.insert student message\n\n") ; /*插入模块*/
printf(" 0.break\n\n");
printf(" please choise(0--8):");
scanf("%d",&choice);
switch(choice)
{
case 1: input_message();break;
case 2: inquire_stu();break;
case 3: revise_message();break;
case 4: del_message();break;
case 5: order_message();break;
case 6: count_stu();break;
case 7: output_message();break;
case 8: insert_students();break;
case 0: break;
}
}
while(choice!=0);
save_message(sum);
printf("\n\n---message was saved--(文件名:student.txt)\n");
} }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -