无头头指针双循环Word格式.docx
- 文档编号:18907273
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:58
- 大小:26.69KB
无头头指针双循环Word格式.docx
《无头头指针双循环Word格式.docx》由会员分享,可在线阅读,更多相关《无头头指针双循环Word格式.docx(58页珍藏版)》请在冰豆网上搜索。
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);
/*显示祥细数据算法*/
voidprintlinks(LNode*head);
/*输出链表*/
voidprintlinkss(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[]);
/*判字串中是否为数字或小数点*/
LNode*scandata(LNode*q);
/*输入缴费信息*/
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"
*作者:
孙俊杰*\n"
*2008年1月1日*\n"
*初始密码:
1234*\n"
*数据库名:
hh.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"
*如想使用本软件请与作者联系*\n"
*2007年1月1日*\n"
scanf("
%*c"
exit(0);
}
密码错误!
请输入密码:
"
menu_prog();
}
voidmenu_prog()
{/*选项菜单执行系统*/
charch;
for(;
;
)
switch(menu_select())
case1:
if(head!
=NULL)
{
printf("
\n系统中已经存在数据库!
不能新建立数据库!
\n请退出系统后重新操作!
按任意键继续........."
getch();
break;
}
else{
head=inilink(head);
/*初始化链表算法*/
setlink(head);
/*建立链表算法*/
if(head!
=NULL&
&
head->
next!
=head)printlink(head);
/*输出链表
算法*/
elseif(head->
next==head)
{
free(head);
}
printf("
getch();
break;
case2:
if(head==NULL)printf("
请先建立链表后再进行操作!
是否输出祥细信息?
(y/n):
%c%*c"
&
ch);
if(ch=='
y'
)printlink(head);
else{
printlinks(head);
/*显示数据算法*/
printlinkss(head);
getch();
break;
case3:
menu_delprog();
/*调用删除窗口*/
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是否保存内存中的数据?
scanf("
)save();
head=distroylink(head);
voidmenu_delprog()
inti;
for(;
i=menu_delselect();
switch(i)
head=delnumb(head);
/*删除编号算法*/
head=delname(head);
/*删除姓名算法*/
if(i==3)break;
voidmenu_inprog()
i=menu_delselect();
head=insert(head);
/*插入数据算法*/
head=inserts(head);
voidmenu_findprog()
i=menu_findselect();
else{/*编号查找算法*/
ch='
while(ch=='
{
p=findnumb(head);
if(p!
学生证号姓名年龄性别第一学期第
二学期第三学期第四学期缴费总计\n"
%s%8s%6d%6s%9s%9s%9s%9s%10.2f\n\n"
p-
>
numb,p->
name,p->
age,p->
sex,p->
tims[0],p->
tims[1],p->
tims[2],p->
tims[3],p->
yzzf);
收费项目:
学杂费教材费住宿
费总计缴费日期\n"
第1学年:
%11.2f%11.2f%11.2f%11.2f%
15s\n"
p->
yesf[0][1],p->
yesf[0][2],p->
yesf[0][3],p->
yesf[0][4],p->
timf[0]);
第2学年:
yesf[1][1],p->
yesf[1][2],p->
yesf[1][3],p->
yesf[1][4],p->
timf[1]);
第3学年:
yesf[2][1],p->
yesf[2][2],p->
yesf[2][3],p->
yesf[2][4],p->
timf[2]);
第4学年:
yesf[3][1],p->
yesf[3][2],p->
yesf[3][3],p->
yesf[3][4],p->
timf[3]);
elseprintf("
数据库中无此编号的数据!
\n是否重新查找另一个编号的记录?
scanf("
}
else{/*姓名查找算法*/
printlinks(head);
chs='
ch='
while(chs=='
请输入要查找记录的姓名:
gets(sname);
p=head;
p=findname(sname,p);
if(p!
费总计缴费日期\n"
printf("
\n是否继续查找相同姓名的记录?
scanf("
if(ch=='
p=p->
next;
if(p==head)
{
printf("
\n查找结束或该数据库中无此姓名的记
录!
break;
}
else{
查找结束或该数据库中无此姓名的记录!
\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);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 头头 指针 双循环