📄 student02.cpp
字号:
fprintf(fp,"学号 姓名 计算机应用 Java \tC语言 \tA v e\tS u m\n");
printf("输入你插入的学号:");
scanf("%d",&id);
for(i=0;i<input;i++)
{
if(stu[i].num==id) //判断学员的学号信息否存在?
{
printf("学号信息已经存在!\n");
flag=0;
getch();
break;
}
}
if (flag!=0)
{
input++; //插入一个,原来的总数增加1
printf("请确认输入要插入学生的学号:");
scanf("%d",&stu[input-1].num); //如果不存在..那么就把插入的信息放到结构数组最后
printf("输入学生姓名:");
fflush(stdin);
gets(stu[input-1].name);
printf("输入学生3科成绩\n");
printf("——————————————————————————————\n");
printf("\n计算机应用: ");
fflush(stdin);
scanf("%f",&stu[input-1].score1);
printf("\nJava 语言: ");
fflush(stdin);
scanf("%f",&stu[input-1].score2);
printf("\nC 语言: ");
fflush(stdin);
scanf("%f",&stu[input-1].score3);
printf("——————————————————————————————\n");
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp," %d %s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[input-1].num,stu[input-1].name,stu[input-1].score1,stu[input-1].score2,stu[input-1].score3,stu[input-1].ave,stu[input-1].sum);
Sleep(500);
printf("插入数据成功!\n");
getch();
}
}
void ListStu(struct student stu[]) //浏览所有学生成绩
{
int i=0;
for(i=0;i<input;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
}
printf("\n学号 姓名 计算机应用 java语言 C 语言 平均成绩 总 分\n");
for(i=0;i<input;i++)
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave, stu[i].sum);
}
getch();
}
void DelStu(struct student stu[]) //删除学员信息函数
{
pp=stu;
struct student temp;
int delnum;
char ask;
int i,j;
if((fp=fopen("Deldata.sys","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 姓名 计算机应用 Java \tC语言 \tA v e\tS u m\n");
system("cls");
printf("\n\n\t请输入你要删除的学员的学号:");
fflush(stdin);
scanf("%d",&delnum);
printf("\n\t是否确认删除学员%d的信息(y/n)",delnum);
fflush(stdin);
ask = getchar();
if(ask != 'n')
{
for(i=0;i<input;i++)
{
if(stu[i].num == delnum)
break;
}
if(i > input)
printf("\n\t没有你要删除的学员!\n");
else
{
for(j=i;j<input;j++)
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
input--; //删掉一个学员信息后学员总数相应-1
system("cls");
printf("\n\n删除成功!\n");
}
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp," %d %s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
getch();
}
}
void SortStu(struct student stu[]) //排序函数
{
int i,j,chose; //i,j为循环变量 chose为接收用户输入的排序方式
struct student temp;
printf("排序前的数据为\n");
printf("\n学号 姓名 计算机应用 java语言 C语言 平均成绩 总 分\n");
for(i=0;i<input;i++)
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
}
printf("\n1.按学号排序\t2.按总分(高→低)排序\n");
printf("\n请您正确选择:");
fflush(stdin);
scanf("%d",&chose);
if(chose==1)
{
for(i=0;i<input-1;i++)
{
for(j=i+1;j<input;j++)
{
if(stu[i].num>stu[j].num)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
printf("\n学号 姓名 计算机应用 java语言 C语言 平均成绩 总 分\n");
for(i=0;i<input;i++)
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
}
system("pause");
}
else if(chose==2)
{
for(i=0;i<input-1;i++)
{
for(j=i+1;j<input;j++)
{
if(stu[i].ave<stu[j].ave)
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
printf("\n学号 姓名 计算机应用 java语言 C语言 平均成绩 总 分\n");
for(i=0;i<input;i++)
{
printf("\n %d %s %.1f\t %.1f\t %.1f\t %.1f\t %.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
}
system("pause");
}
}
void Password() //密码验证函数
{
char *pass=NULL; //初始化指针
int i,count;
time_t start,end; //时间函数
pass=(char *)malloc(255*sizeof(char)); //分配内存
while(1)
{
count=0;
printf("\n\n\n\n\n\t\t\t学 生 成 绩 管 理 系 统 \n");
printf("\n\t\t UserName:ChenYiWan \n");
printf("\n\t\t PassWord:");
while((count>=0)&&(pass[count++]=getch())!=13) //密码输入
{
if(pass[0]=='\b')
{
count=0;
continue;
}
else if(pass[count-1]=='\b')
{
printf("%c%c%c",'\b','\0','\b');
count-=2;
}
else
putchar('*');
}
pass[--count]='\0';
if(!strcmp(pass,PASSWORD)) //开始验证
{
printf("\n\n\t\t\t\t\t\tLoading");
for(i=0;i<=25;i++)
{
Sleep(250);
printf(".");
}
system("cls");
printf("\n\n\n\n\n\n\n\n\n\t\t\t");
printf(" 欢 迎 登 陆 学 生 成 绩 管 理 系 统 !");
start=time(NULL);
end=time(NULL);
while(end-start<2) //延时2秒执行以下程序
{
end=time(NULL);
}
system("cls");
free(pass); //释放储存密码的内存
return ;
}
free(pass); //释放密码错误的那块内存
pass=(char *)malloc(255*sizeof(char)); //重新分配储存密码内存
system("cls");
printf("\a\n\n\n\n\n\n\n\n\t\t\t\t密 码 错 误 !");
getch();
system("cls");
}
}
void Save(struct student stu[]) //成绩保存函数
{
int i,j;
pp=stu; //指针指向结构
system("cls");
printf("\n\n\n\n\t\t\tSaving");
for(j=0;j<20;j++)
{
Sleep(300);
printf(".");
}
if((fp=fopen("stu_list2.doc","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fprintf(fp,"学号 \t姓名 计算机应用\tJava \tC语言 \tA v e\tS u m\n");
for(i=0;i<input;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp," %d \t%s \t%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave,stu[i].sum);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -