C学生系统(帮忙改进哈)
#include<stdio.h>#include<string.h>
struct student
{
char name [20];
long int number;
char sex;
int age;
long int phone;
}stu[20];
struct student *p;
int n,i;//表示学生数
int s_add();
int s_scan();
int s_update();
int s_delete();
int main()
{
int a;//选择
printf("--------------------------------------------------------------------------------\n");
printf("------------------------------欢迎使用学生系统----------------------------------\n");
//printf("-------------------------------------------------------------------------------\n");
printf("------------------------------请根据提示正常操作--------------------------------\n\n");
printf("--------------------------------------------------------------------------------\n");
printf("\t\t\t 1----添加学生信\n");
printf("\t\t\t 2----查询学生的信息\n");
printf("\t\t\t 3----修改学生信息\n");
printf("\t\t\t 4----删除学生的信息\n");
printf("\t\t\t 0----退出\n");
printf("请输入你的选择:");
scanf("%d",&a);
switch(a)
{
case 0:break;
case 1:s_add();break;
case 2:s_scan();break;
case 3:s_update();break;
case 4:s_delete();break;
default:printf("error!try again\n");break;
}
return 0;
}
int s_add()
{
int b;
if(n==0)
p=stu;
while(b)
{
printf("姓名:");
scanf("%s\n",p->name);
printf("学号:");
scanf("%ld\n",&p->number);
printf("性别:");
scanf("%c\n",&p->sex);
printf("年龄:");
scanf("%d\n",&p->age);
printf("电话号码:");
scanf("%ld\n",&p->phone);
p++;
n++;
printf("1:继续输入 \n");
printf("0:输入完成\n");
printf("请输入选择:\n");
scanf("%d",&b);
}
printf("你一共输入%d个学生\n",n);
printf("姓名 学号 性别 年龄 电话号码 \n");
for(i=0;i<n;i++)
printf("%s%ld%c%d%ld\n",stu[i].name,stu[i].number,stu[i].sex,stu[i].age,stu[i].phone);
return 0;
}
int s_scan()
{
int b;
char name[20];
long int num;
while(n!=0)
{
printf("学生总数:\n");
for(i=0;i<n;i++)
printf("%s%ld%c%d%ld\n",stu[i].name,stu[i].number,stu[i].sex,stu[i].age,stu[i].phone);
printf("\t\t 1--姓名查询--\n");
printf("\t\t 2--学号查询--\n");
printf("\t\t 0----取消----\n");
printf("\t\t 请输入你的选择:");
scanf("%d",&b);
switch(b)
{
case 1:printf("请输入要查询的姓名:");
scanf("%s",name);
for(i=0;i<n;i++)
if(strcmp(stu[i].name,name)==0)
{
printf("你要查找的信息:\n");
printf("%s%ld%c%d%ld\n",stu[i].name,stu[i].number,stu[i].sex,stu[i].age,stu[i].phone);
}
break;
case 2:printf("请输入要查询的学号:");
scanf("%ld",num);
for(i=0;i<n;i++)
if(stu[i].number==num)
{
printf("你要查找的信息:\n");
printf("%s%ld%c%d%ld\n",stu[i].name,stu[i].number,stu[i].sex,stu[i].age,stu[i].phone);
}
break;
case 0:break;
default:printf("error!try again!");break;
}
}
return 0;
}
int s_update()
{
char name[20];
int c;
if(n!=0)
{
printf("请输入你要修改的姓名:");
scanf("%s",name);
for(i=0;i<n;i++)
if(strcmp(stu[i].name,name)==0)
{
printf("请输入你要修改的信息:");
printf("\t\t 1--修改学号:\n");
printf("\t\t 2--修改性别:\n");
printf("\t\t 3--修改年龄:\n");
printf("\t\t 4--修改电话号码:");
printf("\t\t 0--取消");
printf("请输入你的选择:");
scanf("%d",c);
switch(c)
{
case 1:printf("请输入新学号:");
scanf("%ld\n",&stu[i].number);break;
case 2:printf("请输入性别:");
scanf("%c\n",&stu[i].sex);break;
case 3:printf("请输入年龄:");
scanf("%ld\n",&stu[i].age);break;
case 4:printf("请输入电话号码:");
scanf("%ld\n",&stu[i].number);break;
default:printf("error,try again");break;
}
}else printf("无学生数据!");
}
return 0;
}
int s_delete()
{
long int num;
int i,j,k;
if(n!=0)
{
for(i=0;i<n;i++)
printf("%s%ld%c%d%ld\n",stu[i].name,stu[i].number,stu[i].sex,stu[i].age,stu[i].phone);
printf("请输入您要删除的学生的学号:");
scanf("%ld", &num);
printf("\n");
for(i=0;i<n;i++)
if(num==stu[i].number)
j=i;
if(j!=(n-1))
for(k=i-1;k<n;k++,j++)
{
stu[j].number=stu[j+1].number;
strcpy(stu[j].name,stu[j+1].name);
stu[j].sex=stu[j+1].sex;
stu[j].age=stu[j+1].age;
stu[j].phone=stu[j+1].phone;
n--;p--;
}
else
{
n--;p--;}
printf("提示:删除完毕!");
}
else printf("提示:无学生数据,请输入数据!");
return 0;
}