commit
8b5df5c693
@ -0,0 +1,226 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
struct student
|
||||
{ long int num;
|
||||
char name[20];
|
||||
int age;
|
||||
char sex[4];
|
||||
char p[15];
|
||||
}stu[100];
|
||||
int n=0;
|
||||
FILE *fp;
|
||||
struct student *p;
|
||||
void lr();
|
||||
void ll();
|
||||
void cx();
|
||||
void px();
|
||||
void xg();
|
||||
void sc();
|
||||
void bc();
|
||||
void bc();
|
||||
void main()
|
||||
{
|
||||
int z;
|
||||
printf("/欢迎使用学生信息管理系统/\n");
|
||||
do
|
||||
{ printf(" 主菜单 \n");
|
||||
printf(" [1]----录入学生信息 \n");
|
||||
printf(" [2]----浏览学生信息 \n");
|
||||
printf(" [3]----查询学生信息 \n");
|
||||
printf(" [4]----排序学生信息 \n");
|
||||
printf(" [5]----删除学生信息 \n");
|
||||
printf(" [6]----修改学生信息 \n");
|
||||
printf(" [7]----保存学生信息 \n");
|
||||
printf(" [0]----退出系统 \n");
|
||||
printf("请输入您的选择:");
|
||||
scanf("%d", &z);
|
||||
switch(z)
|
||||
{ case 0 : break;
|
||||
case 1 :lr();break;
|
||||
case 2 :ll();break;
|
||||
case 3 :cx();break;
|
||||
case 4 :px();break;
|
||||
case 5 :sc();break;
|
||||
case 6 :xg();break;
|
||||
case 7 :bc();break;
|
||||
default:printf("\n无效选项");
|
||||
}
|
||||
}
|
||||
while(z!= 0);
|
||||
}
|
||||
void lr()/*录入函数*/
|
||||
{ int y;
|
||||
if(n==0) p=stu;
|
||||
do
|
||||
{ printf("请输入学生的学号:");
|
||||
scanf("%ld",&p->num);
|
||||
printf("请输入学生的姓名:");
|
||||
scanf("%s",p->name);
|
||||
printf("请输入学生的年龄:");
|
||||
scanf("%d",&p->age);
|
||||
printf("请输入学生的性别:");
|
||||
scanf("%s",p->sex);
|
||||
printf("请输入学生的电话:");
|
||||
scanf("%s",p->p);
|
||||
n++; p++;
|
||||
printf("\n1.继续输入.\n0.输入完毕.\n");
|
||||
printf("请选择:");
|
||||
scanf("%d",&y);
|
||||
}
|
||||
while(y==1);
|
||||
printf("输入完毕!您一共输入%d个\n",n);
|
||||
}
|
||||
void ll()/*浏览函数*/
|
||||
{ printf("\n学号 姓名 年龄 性别 电话\n");
|
||||
char ch;
|
||||
if((fp=fopen("student.txt","r"))==NULL)
|
||||
{
|
||||
printf("打开文件失败");
|
||||
exit(0);
|
||||
}
|
||||
ch=fgetc(fp);
|
||||
while(ch!=EOF)
|
||||
{
|
||||
printf("%c",ch);
|
||||
ch=fgetc(fp);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
void cx()/*查询函数*/
|
||||
{ int c;
|
||||
int w,i,j=0;
|
||||
char name[20];
|
||||
if(n!=0)
|
||||
{ do{ printf("\n");
|
||||
printf(" 按学号查询 请按 1 \n");
|
||||
printf(" 按姓名查询 请按 2 \n");
|
||||
printf(" 取消 请按 0 \n");
|
||||
printf(" 请输入您的选择:");
|
||||
scanf("%d", &c);
|
||||
switch(c)
|
||||
{ case 0:break;
|
||||
case 1:
|
||||
printf("请输入学生的学号:");
|
||||
scanf("%ld", &w);
|
||||
printf("\n");
|
||||
for(i=0;i<n;i++)
|
||||
if(stu[i].num==w)
|
||||
{ printf("\n学号 姓名 年龄 性别 电话\n");/*显示查询界面1*/
|
||||
printf("%ld %s %d %s %s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].p);
|
||||
j=1;
|
||||
}
|
||||
if(j==0)
|
||||
printf("提示:没有该学生记录,请核对!");break;
|
||||
case 2:printf("请输入学生的姓名:");
|
||||
scanf("%s", name);
|
||||
printf("\n");
|
||||
for(i=0;i<n;i++)
|
||||
if(strcmp(name,stu[i].name)==0)
|
||||
{ printf("\n学号 姓名 年龄 性别 电话\n");/*显示查询界面2*/
|
||||
j=1;
|
||||
printf("%ld %s %d %s %s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].p);
|
||||
}
|
||||
if(j==0)
|
||||
printf("提示:没有该学生记录,请核对!");break;
|
||||
default:
|
||||
printf("\n提示:无效选项!");break;
|
||||
}
|
||||
} while(c!= 0);
|
||||
} else printf("提示:无学生数据,请输入数据!");
|
||||
return;
|
||||
}
|
||||
void px()/*排序函数*/
|
||||
{ int i,j;
|
||||
struct student t[100];
|
||||
for(i=0;i<n;i++)
|
||||
{ for(j=0;j<n-1-i;j++)
|
||||
{if(stu[j].num>stu[j+1].num)
|
||||
{t[i]=stu[j];
|
||||
stu[j]=stu[j+1];
|
||||
stu[j+1]=t[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
for(i=0;i<n;i++)
|
||||
{ printf("%ld %s %d %s %s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].p);
|
||||
}
|
||||
}
|
||||
void xg()/*修改函数*/
|
||||
{ long int num;
|
||||
int i,j,c;
|
||||
if(n!=0)
|
||||
{ printf("请输入您要修改的学生的学号:");
|
||||
scanf("%ld", &num);
|
||||
printf("\n");
|
||||
for(i=0;i<n;i++)
|
||||
if(stu[i].num==num)
|
||||
j=i;
|
||||
do{
|
||||
printf("请选择您要修改的学生的信息内容:\n");
|
||||
printf(" 姓名 请按 1 \n");
|
||||
printf(" 年龄 请按 2 \n");
|
||||
printf(" 性别 请按 3 \n");
|
||||
printf(" 学号 请按 4 \n");
|
||||
printf(" 电话 请按 5 \n");
|
||||
printf(" 取消 请按 0 \n");
|
||||
printf("请输入您的选择:");
|
||||
scanf("%d", &c);
|
||||
printf("\n");
|
||||
switch(c)
|
||||
{ case 0:break;
|
||||
case 1:printf("请输入新姓名:");
|
||||
scanf("%s",stu[j].name);break;
|
||||
case 2:printf("请输入新年龄:");
|
||||
scanf("%d",&stu[j].age);break;
|
||||
case 3:printf("请输入新性别:");
|
||||
scanf("%s",stu[j].sex);break;
|
||||
case 4:printf("请输入新学号:");
|
||||
scanf("%ld",&stu[j].num);break;
|
||||
case 5:printf("请输入新电话:");
|
||||
scanf("%s",stu[j].p);break;
|
||||
default:
|
||||
printf("\n无效选项!");
|
||||
break;
|
||||
}
|
||||
} while(c!= 0);
|
||||
} else printf("提示:无学生数据,请输入数据!");
|
||||
}
|
||||
void sc()/*删除函数?*/
|
||||
{ long int num;
|
||||
int i,j,e;
|
||||
if(n!=0)
|
||||
{ printf("学号 姓名 年龄 性别 电话\n");/*显示删除界面*/
|
||||
for(i=0;i<n;i++)
|
||||
printf("%ld %s %d %s %s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].p);
|
||||
printf("请输入您要删除的学生的学号:");
|
||||
scanf("%ld", &num);
|
||||
printf("\n");
|
||||
for(i=0;i<n;i++)
|
||||
if(num==stu[i].num)
|
||||
j=i;
|
||||
if(j!=(n-1))
|
||||
{ for(e=i-1;e<n;e++,j++)
|
||||
{ stu[j].num=stu[j+1].num;
|
||||
strcpy(stu[j].name,stu[j+1].name);
|
||||
strcpy(stu[j].sex,stu[j+1].sex);
|
||||
stu[j].age=stu[j+1].age;
|
||||
strcpy(stu[j].p,stu[j+1].p);
|
||||
n--;
|
||||
p--;
|
||||
}
|
||||
}else {n--;
|
||||
p--;}
|
||||
printf("提示:删除完毕!");
|
||||
}else printf("提示:无学生数据,请输入数据!");
|
||||
}
|
||||
void bc()/*保存函数*/
|
||||
{ int i;
|
||||
FILE *fp;
|
||||
fp=fopen("student.txt","wb+");
|
||||
for(i=0;i<n;i++)
|
||||
{
|
||||
fprintf(fp,"%ld %s %d %s %s \n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].p);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
Loading…
Reference in new issue