学生管理系统数据结构课程设计之完整代码Word文档下载推荐.docx
- 文档编号:19481028
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:19
- 大小:19.10KB
学生管理系统数据结构课程设计之完整代码Word文档下载推荐.docx
《学生管理系统数据结构课程设计之完整代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生管理系统数据结构课程设计之完整代码Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
chartelenum[50];
charname[20];
intage;
/*chardeptName[50];
charzhuanYe[50];
charchass[50];
//开始输出学生信息
while
(1)
{
printf("
请输入学生的信息:
学号,姓名,年龄,班级,院系,专业,家庭住址,电话号码\n"
);
学号输入负数结束!
请输入学号%d:
"
num);
scanf("
%10d"
&
stuNumber);
if(stuNumber<
0){break;
}
请输入姓名%d:
getchar();
gets(name);
请输入年龄%d:
%d"
age);
请输入班级%d:
getchar();
gets(chass);
请输入电话号码:
gets(telenum);
/*printf("
请输入院系%d:
gets(deptName);
if(stuNumber>
=0)
{
p=(Link)malloc(LEN);
p->
stuNumber=stuNumber;
strcpy(p->
chass,chass);
/*strcpy(p->
deptName,deptName);
age=age;
strcpy(p->
telenum,telenum);
name,name);
//插入新结点
inserStu(L,p);
num++;
}
}
return(L);
}
//******************打印头结点为L的学生记录********************************************************
voidprintList(LinkL)
{
\n*********************学号,姓名,年龄,班级,电话号码**************************\n"
\n学号姓名年龄专业班级电话号码\n"
intn=1;
Linkp=L;
//结点个数:
if(temp==0)printf("
系统中没有元素\n"
//判断学生管理系统中有无信息
else
while(p->
next!
=NULL)
printf("
%2d%-9d"
n,p->
next->
%-8s%-5d%-12s%s\n"
p->
name,p->
age,p->
chass,p->
telenum/*p->
deptName*/);
//首个字符打印不出来
p=p->
next;
n++;
\n***********************************************************************************\n"
return;
//********************************插入学生信息**************************************
voidinserStu(LinkL,LinkElem)
Linkprior(LinkL,Linkp);
Linkp=L->
//*******%%%%****
while(p!
=NULL&
&
Elem->
stuNumber>
=p->
stuNumber)
{
if(p->
stuNumber==Elem->
重复输入学号,输入失败!
"
return;
p=p->
}//确定Elem的插入位置
if(p==NULL)
p=prior(L,p);
next=NULL;
p->
next=Elem;
//若为空表,插入到头结点之后
else
next=p->
//***********************找到当前地址元素的前一元素的地址*************************************************************************
Linkprior(LinkL,Linkp)
if(L->
next==NULL)return(L);
Linkp_prior=L;
while(p_prior->
=p)
p_prior=p_prior->
next;
}
return(p_prior);
//********************************8按学号查询学生信息***************************************************************************
intsearchName(LinkL,charn[])
intflag=0;
//标志要查找的学生和学生记录中的姓名是否匹配
intseat=1;
if(L->
next==NULL||L==NULL)printf("
没有学生信息\n"
{
while(p!
=NULL)
if(!
strcmp(p->
name,n))//比较要查找的姓名是否和当前学生信息所指的姓名匹配
{
flag=1;
//输入姓名匹配
要查找的是第%d位学生\n"
seat);
学号是:
%d名字:
%s年龄:
%d班级:
%s手机号:
%s\n"
stuNumber,p->
name,p->
telenum);
}
seat++;
returnflag;
//****************************************按学号查找学生信息*********************************************************************
intsearchNum(LinkL,intn)
//标志要查找的学生和管理信息系统中的学号是否匹配
next==NULL)printf("
while(p!
{
if(p->
stuNumber<
=n)
{
stuNumber==n)//比较要查找的学号是否和当前学生信息所指的学号匹配
flag=1;
//输入学号匹配
printf("
p=p->
//*******************************从通讯录中删除第i个元素***************************************************************************
voiddeleteElem(LinkL,inti)
intj=0;
while(p->
next&
j<
i-1)
p=p->
j++;
if(!
(p->
next))//判断i时候合法,i不能大于元素的个数,也不能小于等于0
第%d个学生删除失败\n"
i);
return;
Linkq=p->
p->
next=q->
free(q);
//*******************按姓名删除学生信息**********************************************************************************************
intdeleName(LinkL,charn[])
{voiddeteStu(Link);
//判断要删除的学生与系统中的姓名是否匹配
intseat=1;
next==NULL){printf("
\n删除提示:
系统中没有元素,删除失败!
deteStu(L);
name,n))//比较名字是否匹配
%s"
name);
deleteElem(L,seat);
//删除第i个学生的信息
else
if(flag)printf("
被删除了\n"
//*****************按学号删除学生信息*****************************************************************
intdeleNum(LinkL,intn)
intflag=0;
Linkp=L->
intseat=1;
next==NULL)
stuNumber==n)
{
p=p->
deleteElem(L,seat);
break;
seat++;
if(flag){
else{
没有找到学生信息\n"
//*************************************************************************************
voidsearchWay1(LinkL)
{voidsearchMenu(LinkL);
intsearchWay=0;
//控制跳出循环,再次选择查询方式
if(searchWay==0)
printf("
请输入要查询的学生的学号:
intn,s;
scanf("
n);
s=searchNum(L,n);
if(s==0)printf("
查找失败\n"
searchWay=1;
if(searchWay==1)
searchMenu(L);
//********************************************************************************
voidsearchWay2(LinkL)
if(searchWay==0)
charn[20];
intflag;
printf("
请输入要查询的学生姓名\n"
chartemp2=getchar();
gets(n);
flag=searchName(L,n);
if(flag==0)printf("
查找失败!
searchWay=1;
}
if(searchWay==1)
//*****************************************************************8
voidsearchMenu(LinkL)
intmainMenu();
printf("
**********************查询菜单**************************************\n"
***1输入学生学号查询学生信息\n"
***2输入学生姓名查询学生信息\n"
***3返回上级菜单\n"
请选择1-3:
intmenu;
menu);
switch(menu)
case1:
{searchWay1(L);
break;
case2:
{searchWay2(L);
case3:
break;
//跳回主菜单程序
//************************************更新学生信息模块*****************************************
voidalterStu(LinkL)//按学号更新学生信息
intn;
请输入要修改的学生学号:
if(p==NULL){printf("
学生管理系统没有学生信息!
=NULL)//循环查找学生信息,如果找到该学号则进入循环体更改学生信息
{//**********************************************************************************************
stuNumber==n){
intnum=1,stuNumber,age;
chartelenum[50];
charname[20];
charchass[50];
***********************更改学生信息*****************************************\n"
请输入学生的学号,姓名和电话号码\n"
gets(name);
gets(telenum);
strcpy(p->
strcpy(p->
//更新新结点
***********************更改学生信息完毕*****************************************\n"
//*************************************************************************************************
p=p->
//****************保存学生信息模块***************************************************************************
voidkeepStu(LinkL)
FILE*fp;
if((fp=fopen("
student.txt"
"
r"
))==NULL)//打开文件,不存在此文件则新建
fp=fopen("
E:
\\测试\\student.txt"
w"
fclose(fp);
a"
fprintf(fp,"
%d\t%s\t%s\n"
文件保存成功!
//********************统计结点个数模块***********************************************************************************
intcount(LinkL)
intn=0;
不存在学生信息\n"
n++;
returnn;
//********************************导入学生信息模块**********************************************************************
LinkstuEntry()
Linkp,q,L;
if((fp=fopen("
;
}
L=q=(Link)malloc(LEN);
\n学号姓名手机号\n"
**********************************************************\n"
while(!
feof(fp))
{p=(Link)malloc(LEN);
fscanf(fp,"
stuNumber,&
name,&
\n%d\t%s\t%s\n"
q->
next=p;
q=p;
按任意键结束:
getch();
//返回
returnL;
//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 管理 系统 数据结构 课程设计 完整 代码