学生信息管理系统C语言源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
#include
#define len sizeof(struct student)
FILE *fp;
struct student
{
long num;
char name[15];
int age;
char sex[3];
char chushen[10];
char dizhi[20];
char phone[11];
char email[20];
struct student *next;
};
void menu()
{
printf("===========学生信息管理系统==========\n\n");
printf(" 1、录入学生信息\n");
printf(" 2、浏览学生信息\n");
printf(" 3、查询学生信息\n");
printf(" 4、删除学生信息\n");
printf(" 5、插入学生信息\n");
printf(" 6、修改学生信息\n");
printf(" 7、排序学生信息\n");
printf(" 8、退出管理系统\n");
printf("=====================================\n");
}
struct student *creat() //录入学生信息
{
int n;
struct student *head;
struct student *p1,*p2;
n=0;
p1=p2=(struct student *) malloc(len);
scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chushen ,p1->dizhi,p1->phone,p1->email);
head=NULL;
while(p1->num!=0)
{
n=n+1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=(struct student *)malloc(len);
scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&p1->num,&p1->age,p1->name,p1->sex,p1->chu shen,p1->dizhi,p1->phone,p1->email);
}
p2->next=NULL;
return(head);
}
void insert(struct student *head) //插入学生信息
{
int search_num;
struct student *p,*q,*s;
p=head;
printf("在哪个学生前插入请输入学号:\n");
scanf("%d",&search_num);
while((p!=NULL)&&(p->num!=search_num))
{
q=p;
p=p->next;
}
s=(struct student *)malloc(len);
q->next=s;
system("cls");
printf("请输入学生信息:\n");
printf("学号\t年龄\t姓名\t性别\t出生\t地址\t电话\te-mail\n");
scanf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s",&s->num,&s->age,s->name,s->sex,s->chushen,s->diz hi,s->phone,s->email);
s->next=p;
}
void printList(struct student *head) //浏览全部学生信息
{
struct student *p;
p=head;
if(head==NULL)
printf("没有学生信息!!\n");
else
{
do
{
fread(p,len,1,fp);
printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz hi,p->phone,p->email);
p=p->next;
}while(p!=NULL);
}
}
void findList_num(struct student *head,long search_num) //按学号查找
{
struct student *p;
p=head;
while((p!=NULL)&&(p->num!=search_num))
p=p->next;
if(p!=NULL)
printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz hi,p->phone,p->email);
else
printf("没有该学生信息!!\n");
}
void findList_name(struct student *head,char *search_name) //按姓名查找
{
struct student *p;
int cmp1=0,cmp=0;
p=head;
while(p!=NULL)
if(strcmp(p->name,search_name)!=0)
{
p=p->next;
cmp++;
}
else
{
printf("%d\t%d\t%s\t%s\t%s\t%s\t%s\t%s\n",p->num,p->age,p->name,p->sex,p->chushen,p->diz