问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用C语言实现ktv卡拉ok点歌系统

发布网友 发布时间:2022-04-23 09:27

我来回答

3个回答

热心网友 时间:2023-10-09 12:46

你的那登陆怎么不用任何输入,也能登陆!!!

*************************完成第三部分*****************************
************人员管理是不是人员的增加也删除等操作******************
有关说明:
1.首次运行时,由于没有建立用户信息数据文件,系统会自动创建,会出现登陆面致慢的现象!
2.2和3权限的人,可以进入修改用户信息,但只能修改自己的密码,不能进行其他任何操作,如:不能修改权限.
3.其他的自己运行就知道了!!!!!!!!!!!!!!!!!!

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
#include <string.h>
#include <windows.h>
//结构3:用户档案
struct user{
int p_id;//人员序号
char usr[20];//用户名
char psd[10];//密码
int level;//权限级别(1-全部权限2-只能新增和查询3-只能查询)
}us[10]={{1,"admin","admin",1},{2,"kinglin","kinglin",2}},Online_User={0,"","",3};
//Oneline为在线用户,可用于权限级别等*!!!
//第三部分:人员管理
void user_menu(struct user *show_user);
void user_add(struct user *show_user);
void user_find(struct user *show_user);
void user_update(struct user up_user);
void user_del(struct user *show_user);
//第四部分:休闲小游戏及登录程序和界面设计
void main_menu();
void game_play();
void user_login();
//另外:文件操作
void data_user_read_file(struct user *show_user);
void data_user_write_file(struct user *show_user);

void main()
{
data_user_read_file(us);
user_login();
main_menu();
}

void main_menu()
{
int select;
system("cls");
system("color f1");
printf("\n\n\t\t\t+==============================+\n");
printf("\t\t\t| |\n");
printf("\t\t\t| 1->歌曲基本数据管理 |\n");
printf("\t\t\t| 2->歌曲点取播放 |\n");
printf("\t\t\t| 3->人员权限管理 |\n");
printf("\t\t\t| 4->休闲小游戏 |\n");
printf("\t\t\t| 5->退出系统 |\n");
printf("\t\t\t| |\n");
printf("\t\t\t+==============================+\n");
scanf("%d",&select);
switch(select)
{
// case 1: music_menu()break;
// case 2: play_menu()break;
case 3: user_menu(us);break;
//case 4: game_play();break;
case 5: data_user_write_file(us);exit(1);break; //退出前保存数据。
default:printf("选项输入错误!请选择(1-5):");
}
}

void user_login()
{
int i,count=0;
char u_name[10];
char u_psd[10];

do{
system("cls");
system("color f1");
printf("\n");
printf("\t\t ");
for(i=1;i<=60000000;i++)
{
if (i%3000000==0)
printf("☆");
}
printf("\n\n\t\t\t 欢迎进入KTV点歌系统! \n");
printf("\t\t\t \n");
printf("\t\t\t 风花雪月 \n");
printf("\t\t\t 研发小组 \n");
printf("\t\t\t 组长:王林 \n");
printf("\n\t\t\t 艾生芳 罗泽宇 邓丰波\n");
printf("\n\t\t\t 2007/08/15\n");
printf("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t ");
for(i=1;i<=60000000;i++)
{
if (i%3000000==0)
printf("★\b\b");
}
printf("\n");
printf("\n\t\t\t用户名:");
fflush(stdin);
gets(u_name);
printf("\n\t\t\t密 码:");
for(i=0;i<10;i++)
{
fflush(stdin);
u_psd[i]=getch();
if (int (u_psd[i])==13)
{
u_psd[i]='\0';
break;
}
else if (int (u_psd[i])==8)
{
i=i-2;
printf("\b \b");
}
else
printf("*");
}
u_psd[i]='\0';
for(i=0;i<10;i++)
{
if(strcmp(u_name,us[i].usr)==0&&us[i].p_id>0)
break;
}
if (strcmp(u_psd,us[i].psd)==0)
{
printf("\n\t\t\t\t登陆成功!\n");
Sleep(1500);
for(i=0;i<sizeof(us)/sizeof(us[0]);i++)
{
if(stricmp(us[i].usr,u_name)==0)
{//登陆成功,记录用户信息
Online_User.p_id=us[i].p_id;
sprintf(Online_User.usr,"%s",us[i].usr);
sprintf(Online_User.psd,"%s",us[i].psd);
Online_User.level=us[i].level;
break;
}
}
break;
}
else
{
count++;
if(count>=3)
printf("三次密码不正确,请稍后再试!");
else
printf("\n\t\t\t用户名或密码不正确,请重新输入!\n");

}
}while(count<3);
}

void user_menu(struct user *show_user)
{
int sign=1,select;
while(sign)
{
system("cls");
system("color b1");
printf("\n\n\t\t\t+==============================+\n");
printf("\t\t\t| |\n");
printf("\t\t\t| 1->增加用户信息 |\n");
printf("\t\t\t| 2->删除用户信息 |\n");
printf("\t\t\t| 3->查询用户权限 |\n");
printf("\t\t\t| 4->修改用户信息 |\n");
printf("\t\t\t| 5->退出管理 |\n");
printf("\t\t\t| |\n");
printf("\t\t\t+==============================+\n");
printf("选择操作数:");
fflush(stdin);
scanf("%d",&select);
if((Online_User.level==2&&select==2)||(Online_User.level==3&&select!=3&&select!=4&&select!=5))
select=6;
switch(select)
{
case 1: user_add(show_user);break;
case 2: user_del(show_user);break;
case 3: user_find(show_user);break;
case 4: user_update(Online_User);break;
case 5: sign=0;break;
case 6: printf("\t\t\t警告:你的权限不足,3 秒后自动返回!");Sleep(3000);break;
default:printf("选项输入错误!请选择(1-5):");
}
}
}

void user_update(struct user up_user)
{
int sign=1,select,level=1,i;;
char usr[20]="",psd[10]="";//密码
char psd_1[10]=" ";//重复密码
while(sign==1)
{
system("cls");
printf("\t\t\t===================================\n");
printf("\t\t\t++ KTV点歌系统--更新用户信息 ++\n");
printf("\t\t\t++ 1.修改密码 ++\n");
printf("\t\t\t++ 2.设置权限 ++\n");
printf("\t\t\t++ 3.更新用户库 ++\n");
printf("\t\t\t++ 4.返回上一菜单 ++\n");
printf("\t\t\t===================================\n");
fflush(stdin);
scanf("%d",&select);
if((Online_User.level==2||Online_User.level==3)&&select!=1&&select!=4)
select=5;
switch(select)
{
case 1: printf("\t\t\t 新 密 码:");
fflush(stdin);
scanf("%s",psd);
printf("\t\t\t 重复密码:");
fflush(stdin);
scanf("%s",psd_1);
if(stricmp(psd,psd_1)!=0)
{ printf("\t\t两次输入密码不一致!3秒后返回自动!\n");Sleep(3000);break;}
sprintf(up_user.psd,"%s",psd);
for(i=0;i<sizeof(us)/sizeof(us[0]);i++)
if(stricmp(us[i].usr,up_user.usr)==0&&us[i].p_id>0)
{ sprintf(us[i].psd,"%s",psd); break;}
data_user_write_file(us);
break;
case 2: printf("\t\t\t 用 户 名:");
fflush(stdin);
scanf("%s",usr);
printf("\t\t\t 设置权限:");
fflush(stdin);
scanf("%d",&level);
for(i=0;i<sizeof(us)/sizeof(us[0]);i++)
if(stricmp(us[i].usr,usr)==0&&us[i].p_id>0)
{ us[i].level=level; break;}
data_user_write_file(us);
break;
case 3: data_user_write_file(us); break;
case 4: sign=0;break;
case 5: printf("\t\t\t警告:你的权限不足,3 秒后自动返回!");Sleep(3000);break;
default:printf("选项输入错误!请选择(1-3):");
}
}
}

void user_add(struct user *show_user)
{
int i,sign=1;
char usr_cp[20],usr[20]="";//用户名 ;
char psd[10]="";//密码
char psd_1[10]=" ";//重复密码
int level;
while(sign)
{
sign=0;
system("cls");
printf("\t\t\t===================================\n");
printf("\t\t\t++ KTV点歌系统--添加用户 ++\n");
printf("\t\t\t===================================\n");
printf(" 注意: 1.根据提示,输入用户名、密码、并设置用户权限!\n");
printf(" 2.权限级别(1-全部权限2-只能新增和查询3-只能查询.\n\n");
printf("\t\t\t 用 户 名:");
fflush(stdin);
scanf("%s",usr);
printf("\t\t\t 密 码:");
fflush(stdin);
scanf("%s",psd);
printf("\t\t\t 重复密码:");
fflush(stdin);
scanf("%s",psd_1);
printf("\t\t\t 设置权限:");
fflush(stdin);
scanf("%d",&level);

for(i=0;i<sizeof(show_user[0])/sizeof(show_user);i++)
{
sprintf(usr_cp,"%s",show_user[i].usr);
if(stricmp(usr_cp,usr)==0||stricmp(usr,"*")==0)
{ sign=1; printf("\t\t输入的用户名已经存在或者为空!1 秒后自动返回!\n");Sleep(1500);break;}
}
if(stricmp(psd,psd_1)!=0&&sign==0)
{ sign=1; printf("\t\t两次输入密码不一致!3 秒后自动返回!\n");Sleep(1500);break;}
for(i=0;i<sizeof(show_user[0])/sizeof(show_user) && sign==0;i++)
{
if(show_user[i].p_id==0)
{
show_user[i].p_id=i+1;
sprintf(show_user[i].usr,"%s",usr);
sprintf(show_user[i].psd,"%s",psd);
show_user[i].level=level;
data_user_write_file(show_user);
break;
}
if(i-1==sizeof(show_user[0])/sizeof(show_user)) {printf("已达到最大用户数!");}
}

}
}

void user_find(struct user *show_user)
{
int i,sign=1;
char usr_cp[20],usr[20],ctnu='Y';
while(ctnu=='Y'||ctnu=='y')
{
system("cls");
printf("\t\t\t===================================\n");
printf("\t\t\t++ KTV点歌系统--用户信息查询 ++\n");
printf("\t\t\t===================================\n");
printf("\t\t 提示:输入*号,可查询所有用户信息!\n");
printf("\t 用 户 名:");
fflush(stdin);
scanf("%s",usr);
printf("%d",stricmp(usr,"*"));
if(stricmp(usr,"*")==0)
{
printf("\t\t\t 编号 用户名 用户权限\n");
for(i=0;i<sizeof(show_user[0])/sizeof(show_user);i++)
if(show_user[i].p_id>0)
printf("\t\t\t\t %d %s %d\n",show_user[i].p_id,show_user[i].usr,show_user[i].level);
}
for(i=0;i<sizeof(show_user[0])/sizeof(show_user) && stricmp(usr,"*")!=0;i++)
{
sprintf(usr_cp,"%s",show_user[i].usr);
if(stricmp(usr_cp,usr)==0&&show_user[i].p_id>0)
{
printf("\t\t\t 编号 用户名 用户权限\n");
printf("\t\t\t\t %d %s %d\n",show_user[i].p_id,show_user[i].usr,show_user[i].level);
break;
}
}
if(i==sizeof(show_user[0])/sizeof(show_user)&&stricmp(usr,"*")!=0)
printf("\t\t 用户不存在。\n");
printf("\n\t\t\t 继续-查询操作?(Y||N):");
fflush(stdin);
scanf("%c",&ctnu);
}
}

void user_del(struct user *show_user)
{
int i;
char usr_cp[20],usr[20],ctnu='Y';
while(ctnu=='Y'||ctnu=='y')
{
system("cls");
printf("\t\t\t===================================\n");
printf("\t\t\t++ KTV点歌系统--删除用户 ++\n");
printf("\t\t\t===================================\n");
printf("\t\t\t 用 户 名:");
fflush(stdin);
scanf("%s",usr);
for(i=0;i<sizeof(show_user[0])/sizeof(show_user);i++)
{
sprintf(usr_cp,"%s",show_user[i].usr);
if(stricmp(usr_cp,usr)==0&&stricmp(usr_cp,"admin")!=0&&show_user[i].p_id>0)
{
printf("\t\t已删除: 编号 %d 用户名 %s 用户权限 %d 的用户。\n",show_user[i].p_id,show_user[i].usr,show_user[i].level);
show_user[i].p_id=0;
sprintf(show_user[i].usr,"%s","");
data_user_write_file(show_user);
break;
}

}
if(i==sizeof(show_user[0])/sizeof(show_user)) printf("\t\t\t 用户不存在,删除失败。\n");
printf("\n\t\t 继续下一个-删除操作?(Y||N):");
fflush(stdin);
scanf("%c",&ctnu);
}
}

void data_user_read_file(struct user *show_user)
{
FILE *fp;
int i;
if((fp=fopen("user_data.dat","rb"))==NULL)
{
fp=fopen("user_data.dat","wb+");
printf("Can not open the oid_data_file,It's a new_data_file!\n");
Sleep(3000);
}

for(i=0;i<sizeof(show_user[0])/sizeof(show_user);i++)
{
fseek(fp,i*sizeof(struct user),0);
fread(&show_user[i],sizeof(struct user),1,fp);
}
fclose(fp);
}

void data_user_write_file(struct user *show_user)
{
FILE *fp;
int i;
if((fp=fopen("user_data.dat","wb"))==NULL)
{
printf("Can not open the file\n");
exit(0);
}

for(i=0;i<sizeof(show_user[0])/sizeof(show_user);i++)
{
fseek(fp,i*sizeof(struct user),0);
if(fwrite(&show_user[i],sizeof(struct user),1,fp)!=1)
printf("File write error\n");
}
fclose(fp);
}

!!!!!!!!!!!!!!!!!!!!!!!!!自己去稍微做修改!!!!!!!!!!!!!!!!!!!!!!!!!
********************************结束******************************

热心网友 时间:2023-10-09 12:47

你给的几乎一点用没有,框架到是有了~~别的好做,播放 我实在是不会啊。。。不好意识,

热心网友 时间:2023-10-09 12:47

我也要!!!!!!!!

2分..........
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
发摅解释 摅的组词有哪些 摅字能组哪些词 检测电脑配置的软件电脑硬件检测权威软件有哪几个 查看电脑参数的软件什么软件可以全面检测显示出电脑硬件参数数据_百度... 有没有可以查自己电脑配置的软件啊??? 芯片程序解密哪家好 ...文章怎么突然间阅读量开始大减,从几百掉到个位数。 百家号怎么才个位数播放量?个位数播放量怎么算? 保本收益投资合法吗 c语言程序设计:点歌系统 刚买回来的新砂锅,要怎么样开锅处理才耐用? 砂锅第一次用需要怎么处理? 新买回来的砂锅怎么处理才不容易爆裂? 新买回来的砂锅要怎样处理后才能使用 电砂锅煮稀饭,怎样才能不粘锅 砂锅粥怎样不粘锅,我锅也洗干净了,水分也够,可是就是粘锅 砂锅炖肉如何不粘锅 砂锅煮米饭怎么不粘锅 沙锅饭怎么煮才不粘锅? 什么方法能让沙锅煎排骨不糊不粘锅? 砂锅煮饭如何不粘锅 还有百度一下幼师动作模仿有哪些,提前练习一下 幼儿相关作游戏时的安全方面 如何鼓励幼儿探索玩具、材料的多种玩法的基础上,保障幼儿的运动安全? 杜东母猪配什么猪精是三元杂交猪? 长大母猪在用约克公猪配带的小母猪可以留做,母猪不、 小班抓尾巴属于哪一个领域 母猪发情前排出粘液.是上次配种的猪精吗 公猪母猪人工授精比例怎么算? C语言程序设计一个点歌系统求帮忙 做了个C语言的KTV点歌系统,其中删除歌曲功能有点问题,附删除函数主代码,求debug while c#KTV点歌系统 设计程序 【KTV点歌系统,歌曲的录入模块】 KTV点歌系统代码 C++ 一定要没错的 能运行的 好的话 语言无所谓 怎样用C语言编程实现清除屏幕上指定的以现实内容? 使用C语言做出点歌系统- -!前台界面和后台管理系统功能!求各位大虾们帮忙啊! 谁会用C#写KTV点歌系统的拼音点歌那部分。。急求 ktv 点歌系统实现的原理 语言 c语言编程和软件界面的问题 (追加几分) ktv点歌系统的设计与实现本科毕设论文 用JAVAEE编写一个ktv点歌系统 要求:本课程设计完成一KTV自动点歌管理系统,本系统包括歌曲管理和友好的点 天天要发朋友圈,海鲜发朋友圈,精美的句子怎么发? KTV的点歌系统是如何组建和实现的?需要哪些设备?请详细说明。谢谢! KTV点歌系统具体是什么? 朋友圈发海鲜怎么配字 饭店明天开业!想发朋友圈宣传下,不知道怎么组织语言 求C++ 写的 KTV点歌系统源码 想研究交流自己写一个 谢 海鲜礼包广告词大全 海鲜大排挡的宣传语