线性表应用实例数据结构.docx

上传人:b****0 文档编号:310795 上传时间:2022-10-08 格式:DOCX 页数:33 大小:144.96KB
下载 相关 举报
线性表应用实例数据结构.docx_第1页
第1页 / 共33页
线性表应用实例数据结构.docx_第2页
第2页 / 共33页
线性表应用实例数据结构.docx_第3页
第3页 / 共33页
线性表应用实例数据结构.docx_第4页
第4页 / 共33页
线性表应用实例数据结构.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

线性表应用实例数据结构.docx

《线性表应用实例数据结构.docx》由会员分享,可在线阅读,更多相关《线性表应用实例数据结构.docx(33页珍藏版)》请在冰豆网上搜索。

线性表应用实例数据结构.docx

线性表应用实例数据结构

数据结构实例程序

————线性表的应用

一、图书管理程序一

二、图书管理程序二

三、学生管理程序

四、学生成绩管理程序

五、工资管理程序

六、汽车管理程序

一、图书管理程序一

#include<>

#include<>

#include<>

#include<>

#include<>

#definelensizeof(Book)

typedefstructBook{

charno[8];

d==i)

{

printf("书名:

%s\n",books[n].name);

printf("作者:

%s\n",books[n].author);

printf("存数:

%d\n",books[n].store);

printf("总数:

%d\n",books[n].total);

returnn;

}

}

printf("\n输入有错或图书序号不存在.\n");

return-1;

}

voidbook_out(void)

{

intn,s,l,d;

page_title("借书");

if((n=search_book())!

=-1&&books[n].store>0)

{

printf("请输入借书证号:

");

scanf("%d",&s);

printf("请输入可借天数:

");

scanf("%d",&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!

=-1&&books[n].store==0)printf("此书已经全数借出.\n");

return_confirm();

}

voidbook_in(void)

{

intn,s,l;

page_title("还书");

if((n=search_book())!

=-1&&books[n].store

{

printf("借阅者图书证列表:

\n");

for(l=0;l<10;l++)

if(books[n].usr[l]!

=0)

printf("[%d]-%d天\n",books[n].usr[l],books[n].days[l]);

printf("请输入借书证序号:

");

scanf("%d",&s);

for(l=0;l<10;l++)

{

if(books[n].usr[l]==s)

{

books[n].usr[l]=0;

books[n].days[l]=0;

break;

}

}

books[n].store++;

}

if(n!

=-1&&books[n].store==books[n].total)

printf("全数入藏.\n");

return_confirm();

}

voidbook_add(void)

{

intn;

page_title("注册书");

for(n=0;n<100;n++)

if(books[n].id==0)break;

printf("序号:

");

scanf("%d",&books[n].id);

printf("书名:

");

scanf("%s",&books[n].name);

printf("作者:

");

scanf("%s",&books[n].author);

printf("数量:

");

scanf("%d",&books[n].total);

books[n].store=books[n].total;

return_confirm();

}

voidbook_del(void)

{

intn;

page_title("注销书");

if((n=search_book())!

=-1)books[n].id=0;

printf("该书已注销.\n");

return_confirm();

}

voidmain(void)

{

menu:

page_title("菜单");

printf("请按以下要求选择操作\n\n");

printf("1借书\n2还书\n\n");

printf("3注册书\n4注销书\n\n");

printf("\n0退出\n");

switch(getch())

{

case'1':

book_out();break;

case'2':

book_in();break;

case'3':

book_add();break;

case'4':

book_del();break;

case'0':

exit(0);

}

gotomenu;

}

三、学生管理程序

#include<>

#include<>

#include<>

#include<>

#defineMAXSIZE100

typedefstruct{

charnum[10];

charname[20];

charsex[5];

intscore;

}DataType;

typedefstruct

{

DataTypestu[MAXSIZE];

intlength;

}sequenlist;

intmenu_select()

{

intsn;

printf("\n学生信息管理系统\n");

printf("=========================================\n");

printf("********1.学生信息线性表的成立********\n");

printf("********2.插入学生信息********\n");

printf("********3.查询学生信息********\n");

printf("********4.删除学生信息********\n");

printf("********5.输出所有学生信息********\n");

printf("********0.退出管理系统********\n");

printf("==========================================\n");

printf("请选择0-5:

\n");

for(;;)

{

scanf("%d",&sn);

if(sn<0||sn>5)

printf("输入错误,重选0-5\n");

else

break;

}

returnsn;

}

voidcreateList(sequenlist*L)

{

intn,i;

printf("有几位学生?

请输入:

\n");

fflush(stdin);

scanf("%d",&n);

printf("请输入这%d位学生的信息:

\n",n);

for(i=1;i<=n;i++)

{

printf("第%d位学生:

",i);

printf("\n学号姓名性别成绩\n");

fflush(stdin);

scanf("%s%s%s%d",L->stu[i].num,L->stu[i].name,L->stu[i].sex,&L->stu[i].score);

}

L->length=n;

}

voidprintList(sequenlist*L)

{

inti;

printf("\n学生姓名性别成绩\n");

printf("-------------------------------------------\n");

for(i=1;i<=L->length;i++)

{

printf("第%d位学生:

",i);

printf("%s,%s,%s,%d\n",L->stu[i].num,L->stu[i].name,L->stu[i].sex,L->stu[i].score);

printf("------------------------------------------------------------------\n");

}

}

intinsert(sequenlist*L,DataType*student,inti)

{

intj;

if(L->length==MAXSIZE)

{

printf("overflow!

");

return0;

}

elseif((i<0)||(i>L->length))

{

printf("error,pleaseinputtheright'i'");

return0;

}

else

{

for(j=L->length-1;j>=i;j--)

{

strcpy(L->stu[j+1].num,L->stu[j].num);

strcpy(L->stu[j+1].name,L->stu[j].name);

strcpy(L->stu[j+1].sex,L->stu[j].sex);

L->stu[j+1].score=L->stu[j].score;

}

strcpy(L->stu[i].num,student->num);

strcpy(L->stu[i].name,student->name);

strcpy(L->stu[i].sex,student->sex);

L->stu[i].score=student->score;

L->length=L->length+1;

}

return1;

}

intfindList(sequenlist*L)

{

charnum[8];

charname[9];

inti=0;

printf("===========================\n");

printf("请输入要查询的学生的学号或姓名\n");

printf("===========================\n");

fflush(stdin);

{

scanf("%s",num);

for(i=1;i<=L->length;i++)

{

if(strcmp(L->stu[i].num,num)==0)

returni;

}

scanf("%s",name);

for(i=0;ilength;i++)

{

if(strcmp(L->stu[i].name,name)==0)

returni;

}

}

return-1;

}

voiddelNode(sequenlist*L)

{

inti,j;

i=findList(L);

if(i==-1)

{

printf("没有查到要删除的学生信息");

return;

}

for(j=i;jlength;j++)

{

L->stu[j].score=L->stu[j+1].score;

strcpy(L->stu[j].num,L->stu[j+1].num

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

当前位置:首页 > 高中教育 > 理化生

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

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