学生管理系统数据结构课程设计报告之代码Word格式.docx
- 文档编号:21860259
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:20
- 大小:150.97KB
学生管理系统数据结构课程设计报告之代码Word格式.docx
《学生管理系统数据结构课程设计报告之代码Word格式.docx》由会员分享,可在线阅读,更多相关《学生管理系统数据结构课程设计报告之代码Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
\n"
);
printf(”请输入学生的信息:
学号,,年龄,班级,院系,专业,家庭住址,
printf("
学号输入负数结束!
\n"
请输入学号%d:
”,num);
seanf("
%10d"
,&
stuNumber);
if(stuNumber<
0){break;
}
printf(”请输入%d:
"
num);
getchar();
gets(name);
请输入年龄%d:
scanf("
%d"
&
age);
请输入班级%d:
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;
telenum,telenum);
name,name);
//插入新结点
inserStu(L,p);
num++;
return(L);
********************************************************voidprintList(LinkL)
\n
*********************
************************
**\n"
\n学号年龄专业班级\n"
intn=1;
Linkp=L;
temp=count(L);
〃结点个数:
if(temp==O)printf("
系统中没有元素\n”);
//判断学生管理系统中有无信息
else
while(p->
next!
=NULL)
%2d%-9d"
n,p->
next->
stuNumber);
%-8s%-5d%-12s%s\n"
p->
next-〉name,
age,p->
chass,p->
telenum/*p->
deptName*/);
//首个字符
打印不出来
p=p_>
next;
n++;
\n****************************************************************
return;
//**********************************************************************voidinserStu(LinkL,LinkElem)
Linkprior(LinkL,Linkp);
Linkp=L->
next;
//*******%%%%****
while(p!
=NULL&
&
Elem->
stuNumber>
=p->
stuNumber)
if(p->
stuNumber==Elem->
重复输入学号,输入失败!
return;
p=p->
}//确定Elem的插入位置
if(p==NULL)
若为空表,插入到头结点之
p=prior(L,p);
next=NULL;
next=Elem;
//
后
next=p->
p_>
next=Elem;
*************************************************************************
Linkprior(LinkL,Linkp)
if(L->
next==NULL)return(L);
Linkp_prior=L;
while(p_prior->
next!
=p){
p_prior=p_prior->
next;
return(p_prior);
***************************************************************************intsearchName(LinkL,charn[])
intflag=O;
〃标志要查找的学生和学生记录中的是否匹配
intseat=1;
next==NULL||L==NULL)printf("
没有学生信息\n"
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("
stuNumber<
=n)
stuNumber==n)〃比较要查找的学号是否和当前学生信息所指的
学号匹配
//输入学号匹配
要查找的是第%d位学生\n"
seat);
printf(”学号是:
%s\n”,p->
}returnflag;
***************************************************************************voiddeleteElem(LinkL,inti)
intj=0;
next&
j<
i-1)
j++;
(p->
next))//判断i时候合法,i不能大于元素的个数,也不能小于等于0
第%d(学生删除失败\n"
i);
Linkq=p->
p->
next=q->
free(q);
按删除学生
〃*******************
******************************************************************************
****************intdeleName(LinkL,charn[])
{voiddeteStu(Link);
〃判断要删除的学生与系统中的是否匹配
intseat=1;
next==NULL){printf("
\n\n"
deteStu(L);
name,n))//{
%s"
name);
p=p->
deleteElem(L,seat);
//}
next;
删除提示:
系统中没有元素,删除失败!
比较名字是否匹配
删除第i个学生的信息
被删除了\n"
if(flag)printf("
returnflag;
//*
****************
按学号删除学
*****************************************************************intdeleNum(LinkL,intn){voiddeteStu(Link);
intflag=0;
next==NULL)
\n删除提示:
系统中没有元素,删除失败!
stuNumber==n)
deleteElem(L,seat);
break;
if(flag){printf("
else{printf("
没有找到学生信息\n"
***************************************************************************
*********
voidsearchWay1(LinkL)
{voidsearchMenu(LinkL);
intsearchWay=O;
〃控制跳出循环,再次选择查询方式
if(searchWay==O)
请输入要查询的学生的学号:
intn,s;
n);
s=searchNum(L,n);
if(s==O)printf("
查找失败\n”);
searchWay=1;
if(searchWay==1)
searchMenu(L);
****voidsearchWay2(LinkL)
charn[20];
intflag;
请输入要查询的学生\n"
chartemp2=getchar();
gets(n);
flag=searchName(L,n);
if(flag==0)printf(”查找失败!
y*****************************************************************8voidsearchMenu(LinkL)
intmainMenu();
**************************************
printf(”请选择1-3:
intmenu;
&
menu);
switch(menu)
case1:
{searchWay1(L);
case2:
{searchWay2(L);
}case3:
//跳回主菜单程序
*****************************************
voidalterStu(LinkL)//按学号更新学生信息
intn;
printf("
请输入要修改的学生学号:
scanf("
if(p==NULL){printf("
学生管理系统没有学生信息!
=NULL)〃循环查找学生信息,如果找到该学号则进入循环体更改学生信息
{〃***************************************************************************
*******************
stuNumber==n){
intnum=1,stuNumber,age;
printf(*****************************************\n"
请输入学生的学号,和\n"
请输入学号%d:
num);
printf(”请输入:
strcpy(p->
//更新新结点
LinkstuEntry(){
FILE*fp;
Linkp,q,L;
文件则新建
L=q=(Link)malloc(LEN);
while(!
feof(fp))
{p=(Link)malloc(LEN);
fscanf(fp,"
%d\t%s\t%s\n"
stuNumber,&
name,&
telenum);
\n%d\t%s\t%s\n"
name,p->
q_>
next=p;
q=p;
q->
fclose(fp);
printf(”按任意键结束:
getch();
〃返回
returnL;
〃********************
//****************
voidAddStu(LinkL)
if(temp==0){createLink(L);
}〃如果没有学生信息则调用初始
化函数
createLink(L);
删
****************************************************voiddeteStu(LinkL)
intflag=0,way,n;
\n************************
********************、n"
)・
way);
if(way<
1||way>
3){deteStu(L);
switch(way)
{
请输入要删除的学生学号:
flag=deleNum(L,n);
printf(”请输入要删除的学生:
”);
chartemp仁getchar();
flag=deleName(L,n);
case3:
{break;
if(flag)
删除成功!
\n”);
deteStu(L);
intmainMenu()
*********************7
I******
欢迎使用学
生管
理
信丿
系
统
**********
****************、n"
*
***
1
输
入
学
生
信
息
****
*\n"
2
显
示
3
查
询
4
更
新
5
添
加
6
除
7
保
存
8
从文件导入学
.信
0退出
管
printf(
欢迎使用学生管理信息系统
***********************************************"
intmenu=O;
printf(”请选择0-8:
menu);
if(menu<
0&
menu>
8)
输入无效,请正确输入有效序号0-8:
returnmenu;
*************************
main()
***********************voidmain()
LinkL=(Link)malloc(LEN);
//在主函数上首先让结构体指针初始化;
L->
//学生信息是否建立
intmenu=0;
〃菜单选项
do{
menu=mainMenu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 管理 系统 数据结构 课程设计 报告 代码