软件图书管理系统课设源代码.docx
《软件图书管理系统课设源代码.docx》由会员分享,可在线阅读,更多相关《软件图书管理系统课设源代码.docx(16页珍藏版)》请在冰点文库上搜索。
软件图书管理系统课设源代码
#include
#include
#include
typedefstruct
{charnum[6];/*编号*/
charname[20];/*姓名*/
chargender[10];/*性别*/
chartel[15];/*电话*/
charcity[30];/*城市*/
chareip[20];/*邮编*/
}datatype;
typedefstructnode
{
datatypedata;
structnode*next;
}listnode;
typedeflistnode*linklist;
linklisthead;
listnode*p,*q;
intmenu_select();
linklistcreatelist(void);
voidinsertnode(linklisthead,listnode*p);
listnode*listfind(linklisthead);
voidalternode(linklisthead);
voiddelnode(linklisthead);
voidprintlist(linklisthead);
voidmain()
{
for(;;)
{
switch(menu_select())
{
case1:
printf("********************************\n");
printf("*通信录的创建*\n");
printf("********************************\n");
head=createlist();
break;
case2:
printf("*********************************\n");
printf("*通信录信息添加*\n");
printf("*********************************\n");
printf("*************************************************************************\n");
printf("*NUM**NAME**GENDER**TEL**CITY**EIP*\n");
printf("*************************************************************************\n");
p=(listnode*)malloc(sizeof(listnode));
scanf("%s%s%s%s%s%s",p->data.num,p->data.name,p->data.gender,p->data.tel,p->data.city,p->data.eip);
printf("*************************************************************************\n");
insertnode(head,p);
break;
case3:
printf("******************************\n");
printf("*通信录信息查询*\n");
printf("******************************\n");
p=listfind(head);
if(p!
=NULL)
{
printf("*************************************************************************\n");
printf("*NUM**NAME**GENDER**TEL**CITY**EIP*\n");
printf("*************************************************************************\n");
printf("%4s%15s%12s%19s%10s%14s\n",p->data.num,p->data.name,p->data.gender,p->data.tel,p->data.city,p->data.eip);
printf("*************************************************************************\n");
}
elseprintf("没有您要查询的联系人!
\n");
break;
case4:
printf("******************************\n");
printf("*通信录信息的修改*\n");
printf("******************************\n");
alternode(head);
break;
case5:
printf("*******************************\n");
printf("*通信录信息的删除*\n");
printf("*******************************\n");
delnode(head);
break;
case6:
printf("*******************************\n");
printf("*通信录信息的显示*\n");
printf("*******************************\n");
printlist(head);
break;
case0:
printf("*******************\n");
printf("*谢*谢*您*的*使*用*!
\n");
printf("*******************\n");
return;
}
}
}
intmenu_select()
{
intf;
printf("\n");
printf("******************************************\n\n");
printf("**欢*迎*使*用*通*信*录*信*息*管*理*系*统**\n\n");
printf("******************************************\n\n");
printf("*******************************************************************************\n\n");
printf("*1.通信录的创建*\n\n");
printf("*2.通信录信息的添加*\n\n");
printf("*3.通信录信息的查询*\n\n");
printf("*4通信录信息的修改*\n\n");
printf("*5.通信录信息的删除*\n\n");
printf("*6.通信录信息的显示*\n\n");
printf("*0.退出通信录管理系统*\n\n");
printf("*******************************************************************************\n\n");
printf("*************\n\n");
printf("*请选择(0-6)*\n\n");
printf("*************\n\n");
for(;;)
{
scanf("%d",&f);
if(f<0||f>6)
printf("\t输入错误\n");
elsebreak;
}
returnf;
}
linklistcreatelist(void)
{
listnode*p,*q;
intcycle=1;
linklisthead=(listnode*)malloc(sizeof(listnode));
q=head;
while(cycle==1)
{
p=(listnode*)malloc(sizeof(listnode));
printf("*************************************************************************\n");
printf("*NUM**NAME**GENDER**TEL**CITY**EIP*\n");
printf("*************************************************************************\n");
scanf("%s%s%s%s%s%s",p->data.num,p->data.name,p->data.gender,p->data.tel,p->data.city,p->data.eip);
printf("*************************************************************************\n");
q->next=p;
q=p;
printf("您要继续吗?
(1.是,2.否):
\n");
scanf("%d",&cycle);
}
printf("创建成功!
\n\n");
printf("请按任意键返回主菜单\n");
q->next=NULL;
returnhead;
}
voidinsertnode(linklisthead,listnode*p)
{
intt;
listnode*p1,*p2;
p2=head;
p1=head->next;
printf("********************\n");
printf("*1.编码之后添加*\n");
printf("*2.编码之前添加*\n");
printf("********************\n");
printf("*请选择*:
\n");
scanf("%d",&t);
if(t==1)
{
while(p1!
=NULL&&strcmp(p1->data.num,p->data.num)>0)
p1=p1->next;
if(p1!
=NULL)
{
p->next=p1->next;
p1->next=p;
printf("添加成功!
\n");
}
else
printf("添加失败!
\n");
}
elseif(t==2)
{
while(p1!
=NULL&&strcmp(p1->data.num,p->data.num)<0)
{
p2=p1;
p1=p1->next;
}
if(p1!
=NULL)
{
p->next=p1;
p2->next=p;
printf("添加成功!
\n");
}
else
printf("添加失败!
\n");
}
printf("请按任意键返回主菜单\n");
}
listnode*listfind(linklisthead)
{
charnum[6];
charname[20];
intx;
listnode*p;
p=head->next;
printf("********************\n");
printf("*1.编号查询*\n");
printf("*2.姓名查询*\n");
printf("********************\n");
printf("*请选择*:
\n");
scanf("%d",&x);
if(x==1)
{
printf("请输入要查询联系人的编号:
\n");
scanf("%s",num);
while(p!
=NULL&&strcmp(p->data.num,num)!
=0)
p=p->next;
if(p!
=NULL)
printf("查找成功!
\n");
else
printf("查找失败!
\n");
}
elseif(x==2)
{
printf("请输入要查询联系人的姓名:
\n");
scanf("%s",name);
while(p!
=NULL&&strcmp(p->data.name,name)!
=0)
p=p->next;
if(p!
=NULL)
printf("查找成功!
\n");
else
printf("查找失败!
\n");
}
printf("请按任意键返回主菜单\n");
returnp;
}
voidalternode(linklisthead)
{charnum[6];
charname[20];
intm,y;
p=head->next;
printf("********************\n");
printf("*1.按编号修改*\n");
printf("*2.按姓名修改*\n");
printf("********************\n");
printf("*请选择*:
\n");
scanf("%d",&y);
if(y==1)
{
printf("请输入要修改联系人的编号:
\n");
scanf("%s",num);
while(p!
=NULL&&strcmp(p->data.num,num)!
=0)
p=p->next;
if(p!
=NULL)
{
printf("您确定要修改吗?
(1.是,2.否)\n");
scanf("%d",&m);
if(m==1)
{
printf("请输入新的记录:
\n");
printf("*************************************************************************\n");
printf("*NUM**NAME**GENDER**TEL**CITY**EIP*\n");
printf("*************************************************************************\n");
scanf("%s%s%s%s%s%s",p->data.num,p->data.name,p->data.gender,p->data.tel,p->data.city,p->data.eip);
printf("*************************************************************************\n");
printf("修改成功!
\n");
}
else
printf("修改失败\n");
}
}
elseif(y==2)
{
printf("请输入要修改联系人的姓名:
\n");
scanf("%s",name);
while(p!
=NULL&&strcmp(p->data.name,name)!
=0)p=p->next;
if(p!
=NULL)
{
printf("您确定要修改吗?
(1.是,2.否)\n");
scanf("%d",&m);
if(m==1)
{
printf("请输入新的记录:
\n");
printf("*************************************************************************\n");
printf("*NUM**NAME**GENDER**TEL**CITY**EIP*\n");
printf("*************************************************************************\n");
scanf("%s%s%s%s%s%s",p->data.num,p->data.name,p->data.gender,p->data.tel,p->data.city,p->data.eip);
printf("*************************************************************************\n");
printf("修改成功!
\n");
}
else
printf("修改失败!
:
\n");
}
}
printf("请按任意键返回主菜单\n");
}
voiddelnode(linklistnode)
{charnum[6];
charname[20];
q=head;
p=head->next;
if(p==NULL)
{
printf("没有您要删除的联系人!
\n");
return;
}
else
{intn,z;
printf("**********************\n");
printf("*1.按编号删除*\n");
printf("*2.按姓名删除*\n");
printf("**********************\n");
printf("*请选择*:
\n");
scanf("%d",&z);
if(z==1)
{
printf("请输入要删除联系人的编号:
\n");
scanf("%s",num);
while(p!
=NULL&&strcmp(p->data.num,num)!
=0)
{
q=p;
p=p->next;
}
if(p!
=NULL)
{
printf("您确定要删除该联系人吗?
(1.是,0.否):
\n");
scanf("%d",&n);
if(n==1)
{
q->next=p->next;
free(p);
printf("该联系人已被删除!
\n");
}
}
else
printf("删除失败!
\n");
}
elseif(z==2)
{
printf("请输入要删除联系人的姓名:
\n");
scanf("%s",name);
while(p!
=NULL&&strcmp(p->data.name,name)!
=0)
{
q=p;
p=p->next;
}
if(p!
=NULL)
{
printf("您确定要删除该联系人吗?
(1.是,0.否):
");
scanf("%d",&n);
if(n==1)
{
q->next=p->next;
free(p);
printf("该联系人已被删除!
\n");
}
}
else
printf("删除失败!
\n");
}
}
printf("请按任意键返回主菜单\n");
}
voidprintlist(linklisthead)
{
listnode*p;
p=head->next;
printf("*************************************************************************\n");
printf("*NUM**NAME**GENDER**TEL**CITY**EIP*\n");
printf("*************************************************************************\n");
while(p!
=NULL)
{
printf("%4s%15s%12s%19s%10s%14s\n",p->data.num,p->data.name,p->data.gender,p->data.tel,p->data.city,p->data.eip);
printf("*************************************************************************\n");
p=p->next;
}
printf("请按任意键返回主菜单\n");
}