level 6
爱在两地
楼主
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct student
{
int no;
char name[20];
int kuangke;//旷课
int later;//迟到
int qingjia;//请假
int normal;//正常出勤
};
struct student input();
void display(struct student[],int);
void sort(struct student[],int);
int fndi(struct student[],int,int);
void query(struct student[],int);
void update(struct student[],int);
void remove(struct student[],int*);
void main()
{
struct student stu[20];
int count=0;
char sel='1',flag;
while(sel!='7')
{
system("cls");
printf("------------学员出勤情况管理系统-------------\n\n");
printf("1.录入\n2.显示\n3.排序\n4.查询\n5.修改\n6.删除\n7.退出\n");
printf("\n请选择: ");
sel=getchar();
switch(sel)
{
case'1':
system("cls");
do
{
stu[count]=input();
count++;
printf("\n是否继续(y/n):");
fflush(stdin);
flag=getchar();
}while(flag=='y'||flag=='Y');
break;
case'2':
display(stu,count);
break;
case'3':
sort(stu,count);
break;
case'4':
query(stu,count);
break;
case'5':
update(stu,count);
break;
case'6':
remove(stu,&count);
break;
}
}
}
struct student input()
{
struct student stu;
printf("\n学号:");
scanf("%d",&stu.no);
printf("\n姓名:");
scanf("%s",stu.name);
printf("\n出勤情况:\n");
printf("正常出勤:\n");
scanf("%d",&stu.normal);
printf("迟到:\n");
scanf("%d",&stu.later);
printf("请假:\n");
scanf("%d",&stu.qingjia);
printf("旷课:\n");
scanf("%d",&stu.kuangke);
return stu;
}
void display(struct student stud[],int count)
{
system("cls");
printf("\n%-8s%-12s%-12s%-12s%-12s%-12s","学号","姓 名","正常出勤","迟到次数","请假次数","旷课次数");
printf("\n%-8s%-12s%-12s%-12s%-12s%-12s\n","====","========","========","========","========""========");
for(int i=0;i<count;i++)
{
printf("%-8d",stud[i].no);
printf("%-12s",stud[i].name);
printf("%-12.2d",stud[i].normal);
printf("%-12.2d",stud[i].later);
printf("%-12.2d",stud[i].qingjia);
printf("%-12.2d",stud[i].kuangke);
printf("\n");
}
printf("\n按任意键返回主菜单:");
getch();
}
void sort(struct student stud[],int count)
{
struct student t;
int i,j;
for(i=0;i<count-1;i++)
{
for(j=count-1;j>i;j--)
{
if(stud[j].kuangke>stud[j-1].kuangke)
{
t=stud[j];
stud[j]=stud[j-1];
stud[j-1]=t;
}
}
}
system("cls");
printf("\n排序已完成,按任意键返回主菜单:");
getch();
}
int find(struct student stud[],int count,int no)
{
int i;
for(i=0;i<count;i++)
{
if(stud[i].no==no)
return i;
}
return -1;
}
void query(struct student stud[],int count)
{
int dno, i;
system("cls");
printf("\n请输入要查询的学号:");
scanf("%d",&dno);
i=find(stud,count,dno);
if(i==-1)
{
printf("\n您所查询的学员不存在!按任意键返回主菜单:");
getch();
return;
}
printf("\n%-8s%-12s%-12s%-12s%-12s%-12s","学号","姓 名","正常出勤","迟到次数","请假次数","旷课次数");
printf("\n%-8s%-12s%-12s%-12s%-12s%-12s\n","====","========","========","========","========""========");
printf("%-8d",stud[i].no);
printf("%-12s",stud[i].name);
printf("%-12d",stud[i].normal);
printf("%-12d",stud[i].later);
printf("%-12d",stud[i].qingjia);
printf("%-12d",stud[i].kuangke);
printf("\n按任意键返回主菜单:");
getch();
}
void update(struct student stud[],int count)
{
int dno,i;
system("cls");
printf("\n请输入要修改学员的学号:");
scanf("%d",&dno);
i=find(stud,count,dno);
if(i==-1)
{
printf("\n您所要修改的学员不存在!按任意键返回主菜单:");
getch();
return;
}
stud[i]=input();
printf("\n修改成功!按任意键返回主菜单:");
getch();
}
void remove(struct student stud[],int *count)
{
int dno,i;
system("cls");
printf("\n请输入要删除学员的学号:");
scanf("%d",&dno);
i=find(stud,*count,dno);
if(i==-1)
{
printf("\n您所要删除的学员不存在!按任意键返回主菜单:");
getch();
return;
}
for(int j=i;j<*count-1;j++)
{
stud[j]=stud[j+1];
}
(*count)--;
printf("\n删除成功!按任意键返回主菜单:");
getch();
}
2011年11月22日 14点11分
1
#include<stdlib.h>
#include<conio.h>
struct student
{
int no;
char name[20];
int kuangke;//旷课
int later;//迟到
int qingjia;//请假
int normal;//正常出勤
};
struct student input();
void display(struct student[],int);
void sort(struct student[],int);
int fndi(struct student[],int,int);
void query(struct student[],int);
void update(struct student[],int);
void remove(struct student[],int*);
void main()
{
struct student stu[20];
int count=0;
char sel='1',flag;
while(sel!='7')
{
system("cls");
printf("------------学员出勤情况管理系统-------------\n\n");
printf("1.录入\n2.显示\n3.排序\n4.查询\n5.修改\n6.删除\n7.退出\n");
printf("\n请选择: ");
sel=getchar();
switch(sel)
{
case'1':
system("cls");
do
{
stu[count]=input();
count++;
printf("\n是否继续(y/n):");
fflush(stdin);
flag=getchar();
}while(flag=='y'||flag=='Y');
break;
case'2':
display(stu,count);
break;
case'3':
sort(stu,count);
break;
case'4':
query(stu,count);
break;
case'5':
update(stu,count);
break;
case'6':
remove(stu,&count);
break;
}
}
}
struct student input()
{
struct student stu;
printf("\n学号:");
scanf("%d",&stu.no);
printf("\n姓名:");
scanf("%s",stu.name);
printf("\n出勤情况:\n");
printf("正常出勤:\n");
scanf("%d",&stu.normal);
printf("迟到:\n");
scanf("%d",&stu.later);
printf("请假:\n");
scanf("%d",&stu.qingjia);
printf("旷课:\n");
scanf("%d",&stu.kuangke);
return stu;
}
void display(struct student stud[],int count)
{
system("cls");
printf("\n%-8s%-12s%-12s%-12s%-12s%-12s","学号","姓 名","正常出勤","迟到次数","请假次数","旷课次数");
printf("\n%-8s%-12s%-12s%-12s%-12s%-12s\n","====","========","========","========","========""========");
for(int i=0;i<count;i++)
{
printf("%-8d",stud[i].no);
printf("%-12s",stud[i].name);
printf("%-12.2d",stud[i].normal);
printf("%-12.2d",stud[i].later);
printf("%-12.2d",stud[i].qingjia);
printf("%-12.2d",stud[i].kuangke);
printf("\n");
}
printf("\n按任意键返回主菜单:");
getch();
}
void sort(struct student stud[],int count)
{
struct student t;
int i,j;
for(i=0;i<count-1;i++)
{
for(j=count-1;j>i;j--)
{
if(stud[j].kuangke>stud[j-1].kuangke)
{
t=stud[j];
stud[j]=stud[j-1];
stud[j-1]=t;
}
}
}
system("cls");
printf("\n排序已完成,按任意键返回主菜单:");
getch();
}
int find(struct student stud[],int count,int no)
{
int i;
for(i=0;i<count;i++)
{
if(stud[i].no==no)
return i;
}
return -1;
}
void query(struct student stud[],int count)
{
int dno, i;
system("cls");
printf("\n请输入要查询的学号:");
scanf("%d",&dno);
i=find(stud,count,dno);
if(i==-1)
{
printf("\n您所查询的学员不存在!按任意键返回主菜单:");
getch();
return;
}
printf("\n%-8s%-12s%-12s%-12s%-12s%-12s","学号","姓 名","正常出勤","迟到次数","请假次数","旷课次数");
printf("\n%-8s%-12s%-12s%-12s%-12s%-12s\n","====","========","========","========","========""========");
printf("%-8d",stud[i].no);
printf("%-12s",stud[i].name);
printf("%-12d",stud[i].normal);
printf("%-12d",stud[i].later);
printf("%-12d",stud[i].qingjia);
printf("%-12d",stud[i].kuangke);
printf("\n按任意键返回主菜单:");
getch();
}
void update(struct student stud[],int count)
{
int dno,i;
system("cls");
printf("\n请输入要修改学员的学号:");
scanf("%d",&dno);
i=find(stud,count,dno);
if(i==-1)
{
printf("\n您所要修改的学员不存在!按任意键返回主菜单:");
getch();
return;
}
stud[i]=input();
printf("\n修改成功!按任意键返回主菜单:");
getch();
}
void remove(struct student stud[],int *count)
{
int dno,i;
system("cls");
printf("\n请输入要删除学员的学号:");
scanf("%d",&dno);
i=find(stud,*count,dno);
if(i==-1)
{
printf("\n您所要删除的学员不存在!按任意键返回主菜单:");
getch();
return;
}
for(int j=i;j<*count-1;j++)
{
stud[j]=stud[j+1];
}
(*count)--;
printf("\n删除成功!按任意键返回主菜单:");
getch();
}