网吧管理系统设计C语言.docx
- 文档编号:30030608
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:27
- 大小:137.43KB
网吧管理系统设计C语言.docx
《网吧管理系统设计C语言.docx》由会员分享,可在线阅读,更多相关《网吧管理系统设计C语言.docx(27页珍藏版)》请在冰豆网上搜索。
网吧管理系统设计C语言
摘要
随着社会的发展,人们的生活水平逐步得到提高,科学技术的应用也逐步在人们的生活中得到体现。
网吧是社会发展的产物之一,它成为了人们业余休闲的又一个场所。
网吧管理者要靠人力管理网吧里面众多的电脑信息显然很困难,而且存在很多缺陷。
科学技术的不断提高,计算机科学的日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对网吧的电脑信息进行管理,已成为了必然选择。
Withthesocialdevelopmentandpeople'slivingstandardsimproved,scienceandtechnologyapplicationsinpeople'slivesgraduallybereflected.Internetcafesareaproductofsocialdevelopmentandithasbeenoneofplacewherepeoplespendtheirleisuretime.ItisclearlydifficultthatInternetcafemanagersrelyonhumanmanagementtomanagealargenumberofcomputers,andtherearemanydefects.Withthecontinuousimprovementofscienceandtechnology,computerscienceandthematuringofitspowerfulfeaturesforpeopletohaveaprofoundunderstanding.Ithasenteredthehumansocietyinvariousfieldsandisplayinganincreasinglyimportantrole.Aspartofthecomputerapplication,theuseofthecomputeronthemanagementofnet-bar’scomputerinformationhasbecomeaninevitablechoice.
1.课程设计目的:
1.1熟练掌握C语言课程中所学的理论知识;
1.2通过综合C语言的基本知识来解决实际问题;
1.3加强分析和解决问题的能力。
2.课程设计题目描述和要求:
2.1题目描述:
2.1.1题目:
网吧电脑管理系统。
2.1.2描述:
在设计该程序时,要将系统的不同功能分成各个模块,每个模块由一个函数定义,整个程序由函数调用来实现。
每个模块是一个子函数,由一个主函数调用各个子函数。
在定义子函数时,根据其不同的功能来选择不同的语句,需要使用循环是可以用“do……while”来实现,需要使用选择时可以用“switch”来实现,需要使用条件时可以用“if”来实现等。
2.2要求:
2.2.1电脑信息要求:
电脑编号,购买时间,显示器规格,是否带摄像头,每小时资费标准,当前占用情况(B-忙,S-闲)等。
2.2.2系统功能要求:
⑴、系统以菜单方式工作,管理员用密码登陆。
⑵、新增电脑信息。
用数组数据类型赋初值的方法或从键盘输入的方法把电脑信息送到各个数组中,然后把它们输出显示。
⑶、删除电脑信息。
任意输入一个电脑编号,将该电脑所有的信息从数组中删除。
⑷、查看电脑信息。
任意输入一个电脑编号,打印出该电脑的所有相关数据。
同时,能提供根据用户要求的显示器规格和摄像头情况,查找未被占用的电脑。
⑸、修改电脑信息。
任意输入一个电脑编号,打印出所有相关信息后,可对某一项信息进行修改并保存。
⑹、使用计费。
输入一个用户使用的电脑编号、时长,计算该用户应支付的费用。
3.课程设计内容:
3.1各个模块设计的说明:
3.1.1定义相关变量和子函数的声明
运用结构体定义每台电脑的信息。
“structcomputer”结构体类型包括了每台电脑不同类型的数据项(电脑编号,购买时间,显示器规格,是否带摄像头,每小时资费标准,当前占用情况(B-忙,S-闲)等);“structbuydate”结构体类型包括了购买时间的月、日、年,再套用到“structcomputer”中。
对要调用的函数进行声明
#defineN15/*定义电脑的台数上限*/
#include
#include
#include
#include
structbuydate/*定义结构体*/
{
intmonth;
intday;
intyear;
};
structcomputer/*定义结构体*/
{
intnum;
structbuydatedate;
chardisplay[10];
charcamera;
floatfee;
charcondition;
}cmp[N];/*定义数组*/
intcmp_count=0;
/*子函数声明*/
voidma();
voidadd_cmp_info();
voidsearch_cmp_info();
voidoutput_cmp_info();
voidomit_cmp_info();
voidmotify_cmp_info();
voidcost_cmp_info();
voidgo_out();
3.1.2主函数
输出显示欢迎界面,通过函数getch(),printf("*")控制密码的输入输出。
密码正确就进入菜单函数ma();密码错误系统会提醒printf("\n\n密码错误,按任意键重新返回输入!
"),错误次数达三次时printf("对不起!
你输入的密码错误次数已达三次!
你无权进入该系统!
\n"),强制推出。
voidmain()
{
inti,j;
charpass[10];
for(j=0;j<3;j++)
{
system("cls");/*清屏*/
system("colorb0");/*系统背景颜色*/
printf("\n\n\n\n\n\n");
printf("\t\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\t\t========================================================\n");
printf("\t\t※※\n");
printf("\t\t※\1\3欢迎进入网吧电脑管理系统\3\1※\n");
printf("\t\t※※\n");
printf("\t\t========================================================\n");
printf("\t\t☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n");
printf("\n\n");
printf("请输入登陆密码:
");
fflush(stdin);
for(i=0;i<6;i++)
{
pass[i]=getch();/*输入密码并控制其输出为星号*/
printf("*");
}
pass[6]='\0';
if(strcmp(pass,"123456")==0)/*判断输入密码是否正确*/
ma();
else
{
printf("\n\n密码错误,按任意键重新返回输入!
");
getch();
}
}
printf("\n");
printf("对不起!
你输入的密码错误次数已达三次!
你无权进入该系统!
\n");
}
3.1.3新增数据函数
整体用循环结构do……while来实现。
一组数据输入完后printf("是否继续新增?
(y/n)"),判断while(cont==‘y'||cont==‘Y’)继续输入数据。
voidadd_cmp_info()
{
inti;
charcont;
system("cls");
do
{
printf("请输入你要新增的电脑的编号:
\n");
scanf("%d",&i);
fflush(stdin);
cmp[i-1].num=i;/*i-1为指针后移*/
printf("请输入第%d台电脑的购买时间(月,日,年):
",i);
scanf("%d,%d,%d",&cmp[i-1].date.month,&cmp[i-1].date.day,&cmp[i-1].date.year);
fflush(stdin);
printf("请输入第%d台电脑的显示器规格(yj17/19或cp17/19):
",i);
scanf("%s",&cmp[i-1].display);
fflush(stdin);
printf("请输入第%d台电脑是否有摄像头(Y/N):
",i);
scanf("%c",&cmp[i-1].camera);
fflush(stdin);
printf("请输入第%d台电脑的收费标准:
",i);
scanf("%f",&cmp[i-1].fee);
fflush(stdin);
printf("请输入第%d台电脑的占用状态(S-闲,B-忙):
",i);
scanf("%c",&cmp[i-1].condition);
fflush(stdin);
printf("是否继续新增?
(y/n)\n");
fflush(stdin);
cont=getchar();
}while(cont=='y'||cont=='Y');/*判断是否继续新增,不分大小写*/
printf("\n\n\n按任意键返回菜单。
");
getch();
ma();/*调用子函数返回主菜单*/
}
3.1.4显示数据函数
通过for循环输出N台电脑的数据。
voidouput_cmp_info()
{
inti;
system("cls");
printf("\n");
printf("\t\t各台电脑的信息如下:
\n");
printf("No.\tbuydate\tdispaly\tcamera\tfee\tcondition\n");
printf("-----------------------------------------------------------------\n");
printf("\n");
for(i=0;i printf("%d\t%d-%d-%d\t%s\t%c\t%.1f\t%c\n",cmp[i].num,cmp[i].date.month,cmp[i].date.day,cmp[i].date.year,cmp[i].display,cmp[i].camera,cmp[i].fee,cmp[i].condition);/*按数组顺序依次输出数据*/ printf("\n\n按任意键返回菜单。 "); getch(); ma();/*调用子函数返回主菜单*/ } 3.1.5查找数据函数 首先显示查找菜单界面,查找方式分为两种: 一种是编号查找,一种是要求查找,用选择结构switch语句来实现选择。 case1编号查找中套用if语句判断输入的编号是否在电脑N上限内,再用for循环找出匹配电脑;case2要求查找整体运用for循环语句和if判断语句,for循环中再套用if语句和for语句来判断查找条件是否匹配和找出匹配的电脑,其中定义了一个count记录找到的匹配电脑的数目,if(count==0)则没有匹配的电脑。 每个case中是否继续查找就用自我套用函数search_cmp_info()来实现。 voidsearch_cmp_info() { intnum; inti,j,flag,count=0; chardisplay[10]; charcont,camera; system("cls"); printf("\n"); printf("\t\t**********查找菜单**********\n"); printf("\t\t1.选择电脑编号查找方式\n"); printf("\t\t2.选择根据要求查找方式\n"); printf("请选择查找的方式: "); scanf("%d",&flag);/*选择变量*/ switch(flag) { case1: printf("\t\t请输入你要查找的电脑编号: "); scanf("%d",&num); if(num { printf("No.\tbuydate\tdispaly\tcamera\tfee\tcondition\n");printf("-----------------------------------------------------------------\n"); printf("\n"); for(i=0;i if(cmp[i].num==num)/*找出要查找编号的电脑信息*/ { printf("%d\t%d-%d-%d\t%s\t%c\t%.1f\t%c\n",cmp[i].num,cmp[i].date.month,cmp[i].date.day,cmp[i].date.year,cmp[i].display,cmp[i].camera,cmp[i].fee,cmp[i].condition); printf("\n"); printf("请问你是否继续查找(y/n): "); cont=getch(); printf("%c",cont); printf("\n"); if(cont=='y'||cont=='Y') search_cmp_info();/*函数自我套用,达到循环作用*/ } } else { printf("\n\n对不起! 无法找到你要查找的电脑编号\n"); printf("\n\n按任意键返回菜单"); getch(); ma(); } break; case2: printf("\t\t请输入你要查找的电脑的要求(如: yj17或cp17): "); scanf("%s",&display); fflush(stdin); printf("\t\t你要的电脑需要摄像头不(Y/N)? : "); scanf("%c",&camera); fflush(stdin); printf("\n\n"); for(i=0;i { if(strcmp(cmp[i].display,display)==0&&(cmp[i].camera==camera)&&(cmp[i].condition=='S'||cmp[i].condition=='s'))/*匹配条件*/ { count++;/*记录匹配电脑数目*/ printf("\t\t第%d台机子符合要求\n",cmp[i].num);printf("No.\tbuydate\tdispaly\tcamera\tfee\tcondition\n printf("-----------------------------------------------------------------\n");/*输出匹配电脑的信息*/ for(j=0;j if(cmp[j].num==cmp[i].num) { printf("%d\t%d-%d-%d\t%s\t%c\t%.1f\t%c\n",cmp[i].num,cmp[i].date.month,cmp[i].date.day,cmp[i].date.year,cmp[i].display,cmp[i].camera,cmp[i].fee,cmp[i].condition); printf("\n"); printf("请问你是否继续查找(y/n): "); cont=getch(); printf("%c",cont); printf("\n"); if(cont=='y'||cont=='Y')/*是否继续查找*/ search_cmp_info();/*函数自我套用达到循环*/ } printf("\n"); } } if(count==0)/*匹配电脑不存在*/ { printf("\n\n对不起! 无法找到你要查找的电脑编号\n"); printf("\n\n按任意键返回菜单"); getch(); ma();/*调用子函数返回主菜单*/ } break; } printf("\n\n"); printf("按任意键返回菜单。 "); getch(); ma();/*调用子函数返回主菜单*/ } 3.1.6删除数据函数 用if语句判断输入的编号是否在范围内,再用for语句找出要删除的电脑信息,进行删除。 其中还用到了一个if语句用来确认是否输入 无误,删除部分数据是数字的就 赋值味“0”,是单个字符的就赋 值为空格,字符串就用strcpy 复制函数覆盖原有的字符串。 voidomit_cmp_info() { intj,num; charjudge; system("cls"); printf("请输入你要删除的电脑的编号: \n"); fflush(stdin); scanf("%d",&num); printf("\n"); if(num { printf("你确定要删除的电脑信息的编号是%d吗? (Y/N)\n",num); fflush(stdin); scanf("%c",&judge); if(judge=='Y'||judge=='y')/*确认输入无误*/ { for(j=0;j { if(cmp[j].num==num)/*找出匹配电脑*/ { cmp[j].num=0; cmp[j].date.month=0; cmp[j].date.day=0; cmp[j].date.year=0; strcpy(cmp[j].display,""); cmp[j].camera=''; cmp[j].fee=0; cmp[j].condition=''; printf("\t\t删除完成\n"); printf("\n\n按任意键返回菜单"); getch(); ma();/*调用子函数返回主菜单*/ } } } if(judge=='N'||judge=='n') { printf("\n\n按任意键返回菜单"); getch(); ma();/*调用子函数返回主菜单*/ } } else { printf("\n\n对不起! 无法找到你要删除的电脑编号\n"); printf("\n\n按任意键返回菜单"); getch(); ma();/*调用子函数返回主菜单*/ } } 3.1.7修改数据函数 输入要修改电脑的编号(do… …while),选择要修该的项目 (switch语句),修改相关选项 (case),修改完后选择是否继 续修改(while)。 voidmodify_cmp_info() { inti,flag,num1; intnum2; intmonth,day,year; chardisplay[10]; charcamera; floatfee; charcondition; charcont; system("cls"); do { printf("\t\t请输入你要修改电脑信息的电脑编号: "); scanf("%d",&num1); printf("\n\n该电脑原有信息如下: \n"); printf("No.\tbuydate\tdispaly\tcamera\tfee\tcondition\n");printf("-----------------------------------------------------------------\n"); printf("\n"); for(i=0;i { if(cmp[i].num==num1)/*编号的匹配*/ printf("%d\t%d-%d-%d\t%s\t%c\t%.1f\t%c\n",cmp[i].num,cmp[i].date.month,cmp[i].date.day,cmp[i].date.year,cmp[i].display,cmp[i].camera,cmp[i].fee,cmp[i].condition);/*输出匹配电脑的原有信息*/ } printf("\n\n"); printf("\t\t电脑信息修改的项目如下: \n"); printf("\t\t1.No.\n"); printf("\t\t2.buydate\n"); printf("\t\t3.display\n"); printf("\t\t4.camera\n"); printf("\t\t5.fee\n"); printf("\t\t6.condition\n"); printf("\t\t请选择你要修改的项目: "); scanf("%d",&flag); fflush(stdin); switch(flag)/*选择修改项目*/ { case1: printf("请输入改动的电脑编号: "); scanf("%d",&num2); for(i=0;i { if(cmp[i].num==num1) cmp[i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网吧 管理 系统 设计 语言