线性表应用实例数据结构Word文档下载推荐.docx
《线性表应用实例数据结构Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《线性表应用实例数据结构Word文档下载推荐.docx(33页珍藏版)》请在冰豆网上搜索。
![线性表应用实例数据结构Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-10/8/1a2cb719-a858-4b5a-aad6-01d883cef64b/1a2cb719-a858-4b5a-aad6-01d883cef64b1.gif)
总数:
books[n].total);
returnn;
}
\n输入有错或图书序号不存在.\n"
);
return-1;
voidbook_out(void)
intn,s,l,d;
page_title("
借书"
if((n=search_book())!
=-1&
&
books[n].store>
0)
请输入借书证号:
"
scanf("
%d"
&
s);
请输入可借天数:
d);
for(l=0;
l<
10;
l++)
if(books[n].usr[l]==0)
books[n].usr[l]=s;
books[n].days[l]=d;
break;
books[n].store--;
if(n!
books[n].store==0)printf("
此书已经全数借出.\n"
return_confirm();
voidbook_in(void)
intn,s,l;
还书"
books[n].store<
books[n].total)
借阅者图书证列表:
\n"
if(books[n].usr[l]!
=0)
[%d]-%d天\n"
books[n].usr[l],books[n].days[l]);
请输入借书证序号:
if(books[n].usr[l]==s)
books[n].usr[l]=0;
books[n].days[l]=0;
books[n].store++;
books[n].store==books[n].total)
全数入藏.\n"
voidbook_add(void)
intn;
注册书"
for(n=0;
n<
100;
n++)
if(books[n].id==0)break;
序号:
books[n].id);
%s"
books[n].name);
books[n].author);
数量:
books[n].total);
books[n].store=books[n].total;
voidbook_del(void)
注销书"
=-1)books[n].id=0;
该书已注销.\n"
voidmain(void)
menu:
page_title("
菜单"
请按以下要求选择操作\n\n"
1借书\n2还书\n\n"
3注册书\n4注销书\n\n"
\n0退出\n"
switch(getch())
case'
1'
:
book_out();
2'
book_in();
3'
book_add();
4'
book_del();
0'
exit(0);
gotomenu;
#defineMAXSIZE100
typedefstruct{
charnum[10];
charname[20];
charsex[5];
intscore;
}DataType;
typedefstruct
{
DataTypestu[MAXSIZE];
intlength;
}sequenlist;
intmenu_select()
intsn;
\n学生信息管理系统\n"
=========================================\n"
********1.学生信息线性表的成立********\n"
********2.插入学生信息********\n"
********3.查询学生信息********\n"
********4.删除学生信息********\n"
********5.输出所有学生信息********\n"
********0.退出管理系统********\n"
==========================================\n"
请选择0-5:
for(;
;
)
scanf("
sn);
if(sn<
0||sn>
5)
printf("
输入错误,重选0-5\n"
else
break;
}
returnsn;
voidcreateList(sequenlist*L)
intn,i;
有几位学生?
请输入:
fflush(stdin);
n);
请输入这%d位学生的信息:
n);
for(i=1;
i<
=n;
i++)
第%d位学生:
i);
\n学号姓名性别成绩\n"
fflush(stdin);
%s%s%s%d"
L->
stu[i].num,L->
stu[i].name,L->
stu[i].sex,&
L->
stu[i].score);
length=n;
voidprintList(sequenlist*L)
inti;
\n学生姓名性别成绩\n"
-------------------------------------------\n"
=L->
length;
%s,%s,%s,%d\n"
stu[i].sex,L->
------------------------------------------------------------------\n"
intinsert(sequenlist*L,DataType*student,inti)
intj;
if(L->
length==MAXSIZE)
overflow!
return0;
elseif((i<
0)||(i>
length))
error,pleaseinputtheright'
i'
else
for(j=L->
length-1;
j>
=i;
j--)
{
strcpy(L->
stu[j+1].num,L->
stu[j].num);
stu[j+1].name,L->
stu[j].name);
stu[j+1].sex,L->
stu[j].sex);
L->
stu[j+1].score=L->
stu[j].score;
}
stu[i].num,student->
num);
strcpy(L->
stu[i].name,student->
name);
stu[i].sex,student->
sex);
stu[i].score=student->
score;
length=L->
length+1;
return1;
intfindList(sequenlist*L)
charnum[8];
charname[9];
inti=0;
===========================\n"
请输入要查询的学生的学号或姓名\n"
num);
for(i=1;
if(strcmp(L->
stu[i].num,num)==0)
returni;
name);
for(i=0;
stu[i].name,name)==0)
voiddelNode(sequenlist*L)
inti,j;
i=findList(L);
if(i==-1)
没有查到要删除的学生信息"
return;
for(j=i;
j<
j++)
stu[j].score=L->
stu[j+1].score;
stu[j].num,L->
stu[j+1].num