C语言课程设计网吧管理系统.docx
- 文档编号:26184937
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:18
- 大小:177.43KB
C语言课程设计网吧管理系统.docx
《C语言课程设计网吧管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计网吧管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
C语言课程设计网吧管理系统
1.课程设计的目的
随着社会的飞速发展,人们去网吧上网越来越频繁,交际的范围也越来越广。
那么对于网吧来说更迫切的需要一个管理系统来管理好网吧使人们方便上机下机以及加钱加点于是尝试编写了一个小的网吧管理系统程序,希望有助于人们去网吧上网,可以参考使用。
该程序一共有六个选项,可以进行会员上机、显示会员、查找会员、临时人员上机、下机等操作.该系统足以支持网吧正常运行,良好的记录了上机人员的信息
程序用了条件、循环、结构体等知识点,综合了链表和文件的打开和保存编写的。
可运用于小的管理软件。
软件运用菜单实现交互式管理,用户轻松的按键既可实现对软件的操作,操作简单易懂,功能丰富,可以很好的满足用户的需要
2.设计方案论证
2.1设计思路:
建立一个函数,用来保存上机会员的名字,身份证号码等信息,完成记录会员信息的功能。
主函数可以调用六个子函数,分别完成会员上机,查找,临时上机,下机,显示,退出六个功能。
在主函数中可以设置调用六个子函数的方法,例如按1,2,3,4,5,0数字键,则分别可以执行某个功能模块,主要功能模块如图1所示;
图1.网吧管理主要功能模块
2.2程序设计
根据所构想的功能及模块设计出与之相对算法并建立函数来实现系统运行[1]
①创建会员基本信息结构体和会员信息数组.将会员的信息作为一个结构体。
[2]如下
ID*creat()
{
ID*p1,*p2,*head;
charstr[20];
p1=p2=head=NULL;
printf("\t\t\t开始输入上机会员记录(姓名#结束)!
\n");
while
(1)
{
printf("请输入姓名:
\n");scanf("%s",str);getchar();
if(strcmp(str,"#")==0)break;
p1=(ID*)malloc(sizeof(ID));
strcpy(p1->name,str);
printf("请输入身份证号码:
\n");scanf("%s",p1->tele);getchar();
②main()主函数:
主函数是程序的入口,才用模块化设计[3],主函数应该尽可能简洁,功能要体现其中,首先声明一些必要变量,利用无限循环体为开关语句[4],该语句的条件通过函数的输入值来实现功能选取,同时设置一个断点[5],即当返回值为一定条件时运行exit()函数来结束程序,以免造成死循环。
网吧管理系统流程图见如2.
图2.网吧管理系统主要流程图
2.3.源程序
#include
#include
#include
#include
#defineIDstructid
structid
{
charname[20];
chartele[20];
ID*next;
};
intpc=0;
ID*creat()
{
ID*p1,*p2,*head;
charstr[20];
p1=p2=head=NULL;
printf("\t\t\t开始输入上机会员记录(姓名#结束)!
\n");
while
(1)
{
printf("请输入姓名:
\n");scanf("%s",str);getchar();
if(strcmp(str,"#")==0)break;
p1=(ID*)malloc(sizeof(ID));
strcpy(p1->name,str);
printf("请输入身份证号码:
\n");scanf("%s",p1->tele);getchar();
if(head==NULL)
{
head=p1;
p2=p1;
}
else
{
p2->next=p1;
p2=p1;
}
pc++;
}
p2->next=NULL;
return(head);
p2=p1;}
/*输入/添加记录*/
ID*insert(ID*head)
{
ID*temp,*p1,*p2;
printf("临时人员上机操作开始!
!
!
\n");
temp=(ID*)malloc(sizeof(ID));
printf("请输入姓名:
\n");scanf("%s",temp->name);getchar();
printf("请输入身份证号码:
\n");scanf("%s",temp->tele);getchar();
if(head==NULL)
{
head=temp;
temp->next=NULL;
}
else
{
p1=head;
while(p1!
=NULL)
{
p1=p1->next;
}
p2->next=temp;
temp->next=p1;
}
printf("临时上机登陆成功");
pc++;
return(head);
}
/*会员下机记录*/
ID*delet(ID*head)
{
ID*p1,*p2;
charstr[20];
printf("请输入要下机会员的身份证号:
");scanf("%s",str);getchar();
p1=head;
if(head==NULL)
{
printf("没有记录\n");
gotoend;
}
while(p1!
=NULL&&strcmp(p1->tele,str))
{
p2=p1;p1=p1->next;
}
if(p1==NULL)
printf("未找到符合记录!
\n");
elseif(strcmp(p1->tele,str)==0)
{
if(p1==head)
head=p1->next;
else
p2->next=p1->next;
printf("下机成功!
!
!
\n");
pc--;
}
end:
returnhead;
}
/*查找记录*/
ID*search(ID*head)
{
ID*p1,*p2;
intflag=0;
charc;
printf("请输入姓名的首字母:
");scanf("%c",&c);getchar();
p1=head;
while(p1!
=NULL)
{
if(p1->name[0]==c)
{
printf("姓名:
%s\t身份证号码:
%s\n",p1->name,p1->tele);
flag=1;
}
p2=p1;p1=p1->next;
}
if(flag==0)printf("未找到符合记录!
\n");
returnhead;
}
/*修改记录*/
ID*modify(ID*head)
{
ID*p1,*p2;
intmode;
charstr[20];
printf("请输入要修改记录的姓名:
");scanf("%s",str);getchar();
p1=head;
while(p1!
=NULL)
{
if(strcmp(p1->name,str)==0)
{
printf("1.姓名:
%s\t2.身份证号码:
%s\n",p1->name,p1->tele);
printf("请选择要修改选项:
\n");
scanf("%d",&mode);getchar();
if(mode==1)
{
printf("请输入修改后的姓名\n");
scanf("%s",p1->name);getchar();
}
elseif(mode==2)
{
printf("请输入修改后的身份证号码\n");
scanf("%s",p1->tele);getchar();
}
else
printf("输入有误!
\n");
break;
}
p2=p1;p1=p1->next;
}
if(p1==NULL)printf("未找到符合要求的记录!
\n");
returnhead;
}
/*显示结果函数*/
voidprint(ID*head)
{
ID*p;
p=head;
printf("\t\t\t*****************\n");
printf("显示结果是:
\n");
printf("姓名\t身份证号码\n");
if(head!
=NULL)
do
{
printf("%s\t%s\n",p->name,p->tele);
p=p->next;
}while(p!
=NULL);
}
voidmain()
{
ID*head=NULL;
intchoise;
printf("\t\t\t****C语言课设****\n");
while
(1)
{
printf("\t\t网吧管理系统\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\t1.会员上机\n");
printf("\t\t2.显示会员\n");
printf("\t\t3.查找\n");
printf("\t\t4.临时人员上机\n");
printf("\t\t5.会员下机\n");
printf("\t\t0.退出\n");
printf("\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("请选择(0-6):
");
scanf("%d",&choise);getchar();
switch(choise)
{
case1:
head=creat();
break;
case2:
print(head);
break;
case3:
head=search(head);
break;
case4:
head=insert(head);
break;
case5:
head=delet(head);
break;
case0:
exit(0);
break;
default:
printf("输入错误,请重新输入!
\n");
}}}
3.设计结果与分析
在VC++6.0环境中输入源程序,在没有提示错误的情况下编译,可以正常运行系统,实现网吧管理.如图2所示界面
图3程序主界面
①执行文件时,会看到如图3所示界面。
运行主函数的时候,首先调用函数ID*creat(),该函数是一个菜单函数,用scanf语句来实现各功能模块的输入执行。
根据网吧管理员实际情况的选择数据,分别调用其他自定义函数。
②在输入1按回车后会系统提示输入会员姓名、身份证号码,网吧管理员要把会员的信息进行输入。
如图4所示。
图4.输入会员上机信息界面
该界面是调用函数ID*creat()的结果,在ID*creat()函数中,首先printf姓名用scanf函数接收会员上机信息.最后#结束该函数.回到主函数.
在输入2按回车后系统会显示所有上机人员的信息。
其中包括临时上机人员和会员,如图5所示。
图5输入所有上机人员信息结果界面
该界面是调用函数ID*creat()的结果,在ID*creat()函数中,首先printf姓名用scanf函数接收会员上机信息.最后#结束该函数.回到主函数.
④再输入3按回车后,输入你要查询的会员名系统会出现该会员的相关信息例如输入a按回车结果如图6所示。
图6显示所查找会员信息界面
该界面是调用ID*search(ID*head)的结果,scanf函数输入要查询的会员名,这里用到while,if语句.当符合输入的信息条件时,系统就会执行输出会员信息,若不符合则输入另一条指令.即"未找到符合记录!
"按#回到主界面
⑤再输入4按回车后,显示临时上机人员需要登记的信息.即填临时上机人员的姓名,身份证号码结果如图7所示。
图7临时人员上机操作信息界面
该界面调用ID*insert(ID*head)函数记录新增临时上机人员信息,用到if条件语句,和while语句,当临时上机人员符合要求时,会显示临时上机登陆成功的字样.若不成功则直接跳过.根据管理人员得选择数据,调用其他函数.按#回车会到主界面
⑥再输入5按回车后,显示临时下机人员的信息.输入下机人员的身份证号码结果a.若输入正确的会员身份证号码如图8所示。
图8人员下机信息界面
该界面调用了ID*delet(ID*head)函数,运用了if,goto,while语句.实现条件选择和循环的.按#回车回到主界面
b.若错误则出现如图9所示的界面.告诉管理员未找到符合要求的记录!
图9人员下机不符合信息要求界面
该界面调用了ID*delet(ID*head)函数,运用了if,goto,while语句.实现条件选择和循环的.按#回车回到主界面
⑦再输入0按回车后,则退出网吧管理系统如图10所示
图10退出管理系统界面
退出该系统执行exit()命令可以防止程序进行无功的反复运行.等待下次管理员的使用程序
.
4.设计体会
通过对本程序的编辑和编译使我学会了很多:
1重视语言的组成结构,熟记各种语句的应用,因为一个小小的错误可能就会使程序无法运行!
所以尽量避免编写时的语句错误是非常必要的,可以省去我们不必要浪费的时间,有利于更加完善自己的设计.
2C语言的编辑及运行是非常灵活的,所以更需要我们能透彻的掌握这门语言,才能运用的灵活自如.把自己想要编写的东西写出来,是件非常有成就感的事情.所以对于以后的学习更应该刻苦,扎实自己的低.因为是第一次写这种课程设计,难免有些紧张.觉得程序,语句,或多或少还是有些小问题的,以后就努力改进的!
3在实践种体会到了互帮互助的重要性,第一次编写,幸亏有老师的再三提点还有同学们的意见,让我受益匪浅,感谢老师和同学的帮忙.关于C语言,是我的主修课,通过这次的课程设计,唤起了我对C语言的喜爱,以后会努力学习的!
5.参考文献
[1]李爱齐,C语言设计实用技巧,上海:
机科普出版社,1996.5:
39-48
[2]陈国章,C语言应用专家编程,天津:
科学技术出版社,1995.5:
41-44
[3]谭浩强编著.C程序设计第二版〔M〕.北京:
清华大学出版社,1999007-025
[4]HerbertSchildit著.戴健鹏译.C语言大全〔M〕.北京:
电子工业出版社,1994100-121
[5]曹衍龙,林瑞仲,徐慧编著.C语言实例解析精粹〔J〕北京:
人民邮电出版社,2005.101-125
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 网吧 管理 系统