学生管理系统数据结构课程设计之完整代码Word下载.docx

上传人:b****5 文档编号:17240083 上传时间:2022-11-29 格式:DOCX 页数:19 大小:20.83KB
下载 相关 举报
学生管理系统数据结构课程设计之完整代码Word下载.docx_第1页
第1页 / 共19页
学生管理系统数据结构课程设计之完整代码Word下载.docx_第2页
第2页 / 共19页
学生管理系统数据结构课程设计之完整代码Word下载.docx_第3页
第3页 / 共19页
学生管理系统数据结构课程设计之完整代码Word下载.docx_第4页
第4页 / 共19页
学生管理系统数据结构课程设计之完整代码Word下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

学生管理系统数据结构课程设计之完整代码Word下载.docx

《学生管理系统数据结构课程设计之完整代码Word下载.docx》由会员分享,可在线阅读,更多相关《学生管理系统数据结构课程设计之完整代码Word下载.docx(19页珍藏版)》请在冰豆网上搜索。

学生管理系统数据结构课程设计之完整代码Word下载.docx

intnum=1,stuNumber;

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;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1