⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 学生管理系统.txt

📁 这是一个学生管理系统的 源代码 有需要的朋友可以参考
💻 TXT
字号:
#include<stdio.h> 
#include<stdlib.h> 
#include<malloc.h> 
#include<string.h> 
#define ID struct id 
struct id 
{ 
char name[20]; // xing ming 
int num; // xue hao 
int age; // nian ling 
char sex[2]; // xing bie 
char xi[20]; // xi bie 
char zhuan[20]; // zhuan ye 
char add[20]; // di zhi 
ID *next; // 
}; 
// FILE *fp; 
// ID *head; 
int sum_age=0,max_age=0,min_age=100,pc=0; 
float ave_age=0; 
ID *creat() 
{ 
ID *p1,*p2,*head; 
int pd; 
p1=p2=head=NULL; 
printf("\t\t\t 开始输入记录!!!\n"); 
printf("please input pd:\n"); 
scanf("%d",&pd); 
while(pd!=0) 
{ 
p1=(ID*)malloc(sizeof(ID)); 
printf("请输入学生的学号:\n");scanf("%d",&p1->num); 
printf("请输入学生的姓名:\n");scanf("%s",p1->name); 
printf("请输入学生的年龄:\n");scanf("%d",&p1->age); 
sum_age+=p1->age; 
if(max_age<p1->age) max_age=p1->age; 
if(min_age>p1->age) min_age=p1->age; 
printf("请输入学生的性别:\n");scanf("%s",p1->sex); 
printf("请输入学生的系别:\n");scanf("%s",p1->xi); 
printf("请输入学生的专业:\n");scanf("%s",p1->zhuan); 
printf("请输入学生的地址:\n");scanf("%s",&p1->add); 
if(head==NULL) 
{ 
head=p1; 
p2=p1; 
} 
else 
{ 
p2->next=p1; 
p2=p1; 
} 
printf("please input pd:\n"); 
scanf("%d",&pd); 
pc++; 
} 
p2->next=NULL; 
return(head); 
}

/*输入/添加记录*/ 
ID *insert(ID *head) 
{ 
ID *temp,*p1,*p2; 
int pd; 
start: p1=head; 
printf("插入操作开始!!!\n"); 
temp=(ID *)malloc(sizeof(ID)); 
printf("请输入学生的学号:\n");scanf("%d",&temp->num); 
printf("请输入学生的姓名:\n");scanf("%s",temp->name); 
printf("请输入学生的年龄:\n");scanf("%d",&temp->age); 
printf("请输入学生的性别:\n");scanf("%s",temp->sex); 
printf("请输入学生的系别:\n");scanf("%s",temp->xi); 
printf("请输入学生的专业:\n");scanf("%s",temp->zhuan); 
printf("请输入学生的地址:\n");scanf("%s",temp->add); 
if (head==NULL) 
{ 
head=temp; 
temp->next=NULL; 
} 
else 
{ 
while(p1!=NULL) 
{ 
p2=p1; 
p1=p1->next; 
} 
p2->next=temp; 
temp->next=NULL; 
} 
printf("插入末尾成功"); 
pc++; 
printf("是否继续插入 1.Yes 2.No;\n"); 
scanf("%d",&pd); 
if(pd==1) goto start; 
return (head); 
}

/*删除学生记录*/ 
ID *delet(ID *head) 
{ 
ID *p1,*p2; 
int num; 
printf("请输入要删除的学生的学号:");scanf("%d",&num); 
p1=head; 
if (head==NULL) 
{ 
printf("没有记录\n"); 
goto end; 
} 
while(num!=p1->num && p1!=NULL) 
{ 
p2=p1;p1=p1->next; 
} 
if(num==p1->num) 
{ 
if (p1==head) 
head=p1->next; 
else 
p2->next=p1->next; 
printf("删除成功!!!\n"); 
pc--; 
//free(p1); 
//free(p2); 
} 
end:return head; 
}

/*查找学生记录*/ 
ID *search(ID *head) 
{ 
ID *p1,*p2; 
int num; 
printf("请输入要查找的学生的学号:");scanf("%d",&num); 
p1=head; 
while(num!=p1->num && p1!=NULL) 
{ 
p2=p1;p1=p1->next; 
} 
if(num==p1->num) 
{ 
printf("学生的学号:%d\n",p1->num); 
printf("学生的姓名:%s\n",p1->name); 
printf("学生的年龄:%d\n",p1->age); 
printf("学生的性别:%s\n",p1->sex); 
printf("学生的系别:%s\n",p1->xi); 
printf("学生的专业:%s\n",p1->zhuan); 
printf("学生的地址:%s\n",&p1->add); 
//free(p1); 
//free(p2); 
} 
return head; 
} 
/*按学号查询学生记录进行修改*/ 
ID *modify_num(ID *head) 
{ 
ID *p; 
int i,m,n,num; 
start: 
printf("请输入要修改的学生的学号:"); 
scanf("%d",&num); 
p=head; 
while(p!=NULL ) 
{ 
if(num==p->num) 
{ 
m=1; 
while(m==1) 
{ 
m=0; 
printf("\t\t 1.修改学生的学号\n"); 
printf("\t\t 2.修改学生的姓名\n"); 
printf("\t\t 3.修改学生的年龄\n"); 
printf("\t\t 4.修改学生的性别\n"); 
printf("\t\t 5.修改学生的系别\n"); 
printf("\t\t 6.修改学生的专业\n"); 
printf("\t\t 7.修改学生的地址\n"); 
printf("请选择(1--7):"); 
scanf("%d",&i); 
switch( i ) 
{ 
case 1 : 
printf("请输入修改后的学号:"); 
scanf("%d",&p->num); 
break; 
case 2: 
printf("请输入修改后的姓名:"); 
scanf("%s",p->name); 
break; 
case 3: 
printf("请输入修改后的年龄:"); 
scanf("%d",&p->age); 
break; 
case 4: 
printf("请输入修改后的性别:"); 
scanf("%s",&p->sex); 
break; 
case 5: 
printf("请输入修改后的系别:"); 
scanf("%s",p->xi); 
break; 
case 6: 
printf("请输入修改后的专业:"); 
scanf("%s",p->zhuan); 
break; 
case 7: 
printf("请输入修改后的地址:"); 
scanf("%s",p->add); 
break; 
default: printf("输入错误,请重新输入"); 
} 
} 
break; 
} 
p=p->next; 
} 
printf("是否继续修改其他学生情况(1改 2不改):"); 
scanf("%d",&n); 
if(n==1)goto start; 
else return head; 
}


/*退出程序*/ 
void ask_age() 
{ 
if(pc==0) 
{ 
printf("没有记录\n"); 
return ; 
} 
ave_age=float(sum_age*1.0/pc); 
printf("%f\n",ave_age); 
printf("%d\n",max_age); 
printf("%d\n",min_age); 
} 
/*显示结果函数*/ 
void print(ID *head) 
{ 
ID *p; 
p=head; 
printf("\t\t\t*****************\n"); 
printf("显示结果是:\n"); 
if(head!=NULL) 
do 
{ 
printf("%10d%10s%10d%10s%10s%10s%10s\n",p->num,p->name,p->age,p->sex,p->xi,p->zhuan,p->add); 
p=p->next; 
} while(p!=NULL); 
}

void main() 
{ 
ID *head; 
int choise; 
printf("\t\t\t* * * * 李林C语言课设* * * *\n"); 
while(1) 
{ 
printf("\t\t 学生信息管理系统\n"); 
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); 
printf("\t\t 1.建立文件\n"); 
printf("\t\t 2.插入数据\n"); 
printf("\t\t 3.删除数据\n"); 
printf("\t\t 4.修改记录\n"); 
printf("\t\t 5.搜索记录\n"); 
printf("\t\t 6.求年龄\n"); 
printf("\t\t 0.退出\n"); 
printf("\n"); 
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); 
printf("请选择(0-6):"); 
scanf("%d",&choise); 
switch(choise) 
{ 
case 1: head=creat(); 
print(head); 
break; 
case 2: head=insert(head); 
print(head); 
break; 
case 3: head=delet(head); 
print(head); 
break; 
case 4: head=modify_num(head); 
print(head); 
break; 
case 5:search(head); 
print(head); 
break; 
case 6:ask_age(); 
break; 
case 0: 
exit(0); 
break; 
default :printf("输入错误,请重新输入!\n"); 
} 
} 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -