学生管理系统(数据结构课程设计之完整代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程设计
学生信息管理系统C语言编写仅供参考:
#include
#include
#include
#include
#define LEN sizeof(LNode)
typedef struct LNode
{
//用于存放学生信息节点
int stuNumber;
char telenum[50];
int age;
char chass[50];
char deptName[50];
/*char zhuanYe[50];
char adress[50];*/
char name[20];
struct LNode *next;
}LNode,*Link;
//****************创建链表结点************************************************************************** Link createLink(Link L)
{ //初始化定义函数,声明变量
void inserStu(Link L,Link Elem);//定义插入函数
int count(Link L);
int temp;
temp=count(L);
printf("节点个数为%d:\n",temp);
Link p;
int num=1, stuNumber;
char telenum[50];
char name[20];
int age;
/* char deptName[50];
char adress[50];
char zhuanYe[50];*/
char chass[50];
//开始输出学生信息
while(1)
{
printf("请输入学生的信息:学号,姓名,年龄,班级,院系,专业,家庭住址,电话号码\n");
printf("学号输入负数结束!\n");
printf("请输入学号%d: ",num);
scanf("%10d",&stuNumber);
if(stuNumber<0) {break;}
printf("请输入姓名%d: ",num);
getchar();
gets(name);
printf("请输入年龄%d: ",num);
scanf("%d",&age);
printf("请输入班级%d: ",num);
getchar();
gets(chass);
printf("请输入电话号码: ",num);
getchar();
gets(telenum);
/* printf("请输入院系%d: ",num);
getchar();
gets(deptName);*/
if(stuNumber>=0)
{
p=(Link)malloc(LEN);
p->stuNumber=stuNumber;
strcpy(p->chass,chass);
/* strcpy(p->deptName,deptName);*/
p->age=age;
strcpy(p->telenum,telenum);
strcpy(p->name,name);//插入新结点
inserStu(L,p);
num++;
}
}
return (L);
}
//******************打印头结点为L的学生记录********************************************************
void printList(Link L)
{
printf("\n*********************学号,姓名,年龄,班级,电话号码
**************************\n");
printf("\n 学号姓名年龄专业班级电话号码\n");
int n=1;
Link p=L;
int count(Link L);
int temp;
temp=count(L);//结点个数:
if(temp==0)printf("系统中没有元素\n");//判断学生管理系统中有无信息
else
while(p->next!=NULL)
{
printf("%2d %-9d",n,p->next->stuNumber);
printf("%-8s %-5d %-12s %s \n",p->next->name, p->next->age,p->next->chass,p->next->telenum/*p->next->deptName*/);//首个字符打印不出来
p= p->next;
n++;
}
printf("\n****************************************************************** *****************\n");
return;
}
//********************************插入学生信息**************************************
void inserStu(Link L,Link Elem)
{
Link prior(Link L,Link p);
Link p=L->next;//*******%%%%****
while(p!=NULL&&Elem->stuNumber>=p->stuNumber)
{
if(p->stuNumber==Elem->stuNumber)
{
printf("重复输入学号,输入失败!");return ;
}
p=p->next;
}//确定Elem的插入位置
if(p==NULL)
{
p=prior(L,p);Elem->next=NULL;p->next=Elem;//若为空表,插入到头结点之后}
else
{