无头头指针单向链Word文档格式.docx
- 文档编号:20848228
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:49
- 大小:23.96KB
无头头指针单向链Word文档格式.docx
《无头头指针单向链Word文档格式.docx》由会员分享,可在线阅读,更多相关《无头头指针单向链Word文档格式.docx(49页珍藏版)》请在冰豆网上搜索。
/*主程序选择菜单*/
intmenu_delselect();
/*删除选择菜单*/
intmenu_inselect();
/*插入选择菜单*/
intmenu_findselect();
/*查找选择菜单*/
voidmenu_prog();
/*主程序执行菜单*/
voidmenu_delprog();
/*删除执行菜单*/
voidmenu_inprog();
/*插入执行菜单*/
voidmenu_findprog();
/*查找执行菜单*/
voidplaypasword(char*s);
/*密码采用*号表示*/
voidsetpasword();
/*建立密码*/
voidmadpasword();
/*修改密码*/
voidsave();
/*保存文件*/
voidload();
/*装载文件*/
LNode*inilink(LNode*head);
/*初始化*/
LNode*setlink(LNode*head);
/*建立链表*/
voidprintlink(LNode*head);
/*输出链表*/
LNode*distroylink(LNode*head);
/*消链表*/
LNode*insert(LNode*head);
/*插入数据*/
LNode*inserts(LNode*head);
/*插入任意位置数据*/
LNode*delnumb(LNode*head);
/*删除编号*/
LNode*delname(LNode*head);
/*删除姓名*/
LNode*findnumb(LNode*head);
/*查找编号*/
LNode*findname(charstrname[],LNode*p);
/*查找姓名*/
LNode*sortdata(LNode*head);
/*数据排序*/
LNode*madedata(LNode*head);
/*修改数据*/
voidsortsdata(LNode*head);
/*数据统计*/
intflagint(charstrnum[]);
/*判字串中是否均为数字*/
intflagints(charstrnum[]);
/*判字串中是否为数字或小数点*/
main()
{/*主程序*/
FILE*fp;
charcha[20],chb[20];
inti=0;
fp=fopen("
pasword.exe"
"
rb"
);
if(fp==NULL)setpasword();
elsefclose(fp);
head=NULL;
/*头指针初值为空*/
clrscr();
/*清屏*/
printf("
\n"
************************************\n"
**\n"
*数据结构课程设计实例*\n"
*学生成绩管理系统*\n"
*(无头单链表)*\n"
*作者:
孙俊杰*\n"
*2008年1月1日*\n"
*初始密码:
1234*\n"
*数据库名:
dd.dat*\n"
fgets(cha,81,fp);
请输入密码:
"
playpasword(chb);
while(strcmp(cha,chb)<
0||strcmp(cha,chb)>
0)
{
i++;
if(i==3)
*密码错误无权使用!
!
*\n"
*谢谢*\n"
**\n"
*如想使用本软件请与作者联系*\n"
*2007年1月1日*\n"
scanf("
%*c"
exit(0);
}
密码错误!
请输入密码:
"
menu_prog();
}
voidmenu_prog()
{/*主程序选项菜单执行系统*/
for(;
;
)
switch(menu_select())
case1:
if(head!
=NULL)
{
printf("
\n系统中已经存在数据库!
不能新建立数据库!
\n请退出系统后重新操作!
按任意键继续........."
getch();
break;
}
else{
head=inilink(head);
/*初始化链表算法*/
setlink(head);
/*建立链表算法*/
if(head!
=NULL&
&
head->
next!
=NULL)printlink(head);
/*输出链表
算法*/
elseif(head->
next==NULL)
{
free(head);
}
printf("
getch();
break;
case2:
if(head==NULL)printf("
请先建立链表后再进行操作!
else{
printlink(head);
/*显示数据算法*/
getch();
case3:
menu_delprog();
/*调用删除窗口*/
break;
case4:
menu_inprog();
/*调用插入窗口*/
case5:
menu_findprog();
/*调用查找窗口*/
case6:
head=madedata(head);
/*修改算法*/
case7:
head=sortdata(head);
/*排序算法*/
case8:
sortsdata(head);
/*统计算法*/
case9:
madpasword();
case10:
save();
/*将程序中数据保存到磁盘文件中*/
case11:
不能打开新数据库!
load();
/*将磁盘文件内容装载到内存中*/
case12:
if(head!
\n是否保存内存中的数据?
(y/n):
scanf("
%c%*c"
&
ch);
if(ch=='
y'
)save();
head=distroylink(head);
}
voidmenu_delprog()
{/*删除选项菜单执行系统*/
inti;
i=menu_delselect();
switch(i)
head=delnumb(head);
/*删除编号算法*/
head=delname(head);
/*删除姓名算法*/
if(i==3)break;
voidmenu_inprog()
{/*插入选项菜单执行系统*/
i=menu_inselect();
head=insert(head);
/*插入数据算法*/
head=inserts(head);
voidmenu_findprog()
{/*选项菜单执行系统*/
i=menu_findselect();
else{/*编号查找算法*/
ch='
while(ch=='
{
p=findnumb(head);
if(p!
printf("
编号姓名年龄性别语文成绩数
学成绩英语成绩总成绩\n"
%s%8s%6d%6s%11.2f%11.2f%11.2f%11.2f\n"
p-
>
numb,p->
name,p->
age,p->
sex,p->
ywcj,p->
sxcj,p->
yycj,p->
zcj);
elseprintf("
数据库中无此编号的数据!
\n是否重新查找另一个编号的记录?
scanf("
}
else{/*姓名查找算法*/
chs='
ch='
while(chs=='
请输入要查找记录的姓名:
gets(sname);
p=head;
p=findname(sname,p);
if(p!
编号姓名年龄性别语文成绩
数学成绩英语成绩总成绩\n"
\n是否继续查找相同姓名的记录?
scanf("
if(ch=='
)p=p->
next;
else{
printf("
查找结束或该数据库中无此姓名的记录!
break;
\n是否重新进行查找操作?
chs);
intmenu_select()
{/*选项菜单系统*/
chars[8];
intc;
*无头单向链表基本操作窗口*\n"
01:
学生成绩库的建立操作\n"
02:
学生成绩库的显示操作\n"
03:
学生成绩库的删除操作\n"
04:
学生成绩库的插入操作\n"
05:
学生成绩库的查找操作\n"
06:
学生成绩库的修改操作\n"
07:
学生成绩库的排序操作\n"
08:
学生成绩库的统计操作\n"
09:
修改系统的密码操作\n"
10:
将数据存入磁盘文件\n"
11:
将磁盘文件装入内存\n"
12:
退出系统\n"
do{
输入你的选择号:
1---12:
gets(s);
c=atoi(s);
}while(c<
0||c>
12);
return(c);
intmenu_delselect()
{/*删除菜单系统*/
*学生成绩库的删除操作窗口*\n"
01:
按编号删除记录\n"
02:
按姓名删除记录\n"
退出\n"
1---3:
3);
intmenu_inselect()
{/*插入菜单系统*/
*学生成绩库的插入操作窗口*\n"
**\n"
插入到数据库尾部\n"
插入到任意位置处\n"
intmenu_findselect()
{/*查找菜单系统*/
*学生成绩库的查找操作窗口*\n"
按编号查找记录\n"
按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 头头 指针 单向