A. C#KTV点歌系统
后台功能:
1、歌曲分类添加;
2、可以添加N个分类;
3、后台管理网友点歌;
4、可以增加多个管理员。
Build 0305 更新修正:
部分JS错误,修正歌曲列表css,控制显示为一行等
后台入口: admin.asp
用户名: admin
密码: admin888
没找到C#桌面版的,网页版的可以参考下
http://down.chinaz.com/soft/6916.htm
B. 做了个c语言的KTV点歌系统,其中删除歌曲功能有点问题,附删除函数主代码,求debug while
你先去从文件fp里面读取歌曲名,然后比较,不一样就写入这个fp文件中,你觉得有没有问题??
还有,基本你的文件打开模式不会是“a”,也就是写入文件的时候会将源文件清空然后再写入,一旦你写入一个数据,你的原数据就全部丢失了。
C. c语言程序设计:点歌系统
自己再稍微修改下,大致程序就像下面的了:
#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);
}
D. KTV点歌系统代码 C++ 一定要没错的 能运行的 好的话 语言无所谓
中南的悲催啊~阿宁! 三. 程序代码
#include <iostream>
#include<string>
#include <fstream>
using namespace std;
struct flight
{int fligh;
int num;
char place[10];
int dticket;
int yticket;
}fl[10]=,
,
};
struct customer
{char name[10];
int seat;
int num;
}cu[300]=,,}; //定义结构体
int cnum=3; //定义客户编号
void list();
void dingpiao();
void tuipiao();
void chaxun();
void chaxun();
void chaxunquanbu();
void caidan1(); //函数声明
void caidan2();
void chushi();
void main()
{cout<<"欢迎使用航空订票系统2012末日版——版权所有,盗版必究~"<<endl<<endl;
caidan2();
} //主函数
void caidan1()
{int i;
cout<<"************* 航空订票系统v2012 *************"<<endl;
cout<<"*** ***"<<endl;
cout<<"*** 1.订票业务 2.退票业务 ***"<<endl;
cout<<"*** 3.查询客户信息 4.查询全部信息 ***"<<endl;
cout<<"*** 5.退出系统 ***"<<endl;
cout<<"*** ***"<<endl;
cout<<"*** 如果是第一次使用本系统,请载入初始信息~谢谢~ ***"<<endl;
cout<<"*********************************************************"<<endl;
ifstream infile1("airline.dat");
ifstream infile2("customer.dat");
for(i=0;i<3;i++)
for(i=0;i<300;i++)
infile1.close();infile2.close(); //读取数据
cout<<"请输入业务代码:";
list();
} //菜单1
void caidan2()
{int t;
cout<<"第一次启动本软件请输入1,否则请输入2:";cin>>t;
if(t==1)chushi();else caidan1();} //菜单2
void chushi()
{int i;
ofstream outfile("airline.dat");
ofstream file("customer.dat");
for (i=0;i<3;i++)
{ outfile<<fl[i].fligh <<" "
<<fl[i].num<<" "
<<fl[i].place<<" "
<<fl[i].dticket<<" "
<<fl[i].yticket<<endl;
file<<cu[i].name<<" "<<cu[i].num<<" "<<cu[i].seat<<" "<<cnum<<endl;}
outfile.close();file.close();
cout<<"初始化已完毕!"<<endl<<endl;
caidan1();
} //存储数据
void list()
{int a;
cin>>a;cout<<endl;
switch(a)
{case 1:dingpiao();break;
case 2:tuipiao();break;
case 3:chaxun();break;
case 4:chaxunquanbu();break;
case 5:;break;
default: //输入代码
}
}
void dingpiao()/////////////////////////////////////////////////////////// 订票
{char name[10];
int num,i,t,j,k,temp;
int x;
cout<<"请输入你的姓名和想订的航班号:"<<endl<<endl;
cout<<"姓名:";cin>>name;
cout<<endl;
cout<<"航班号:";cin>>num;
for(i=0;i<300;i++)
if(strcmp(name,cu[i].name)==0)
{cout<<"您已经定过航班,要返回主菜单吗?(1.返回/2.退出)";
cin>>t;switch(t)
{case 1:caidan1();break;
default :break;}
}
for(i=0;i<300;i++)
if (name!=cu[i].name)
for(j=0;j<10;j++)
if(fl[j].fligh==num)temp=j;
if(fl[temp].yticket<=100) {cout<<"此航班还有余票,要订票吗?(1.是/2.否)";
cin>>x;
switch(x)
{case 1: {for (k=0;k<3;k++)
if (fl[k].fligh==num)
{
fl[k].dticket=fl[k].dticket+1;fl[k].yticket=fl[k].yticket-1;cnum=cnum+1;
strcpy(cu[cnum].name,name);cu[cnum].num=num;
cu[cnum].seat=fl[k].dticket;
ofstream outfile1("airline.dat");
for(j=0;j<3;j++)
outfile1<<fl[j].fligh<<" "<<fl[j].num<<" "<<fl[j].place<<" "<<fl[j].dticket<<" "<<fl[j].yticket<<endl;
ofstream outfile2("customer.dat",ios::app);
outfile2<<cu[cnum].name<<" "<<cu[cnum].num<<" "<<cu[cnum].seat<<" "<<cnum<<endl; //打开文件并存储数据
cout<<"订票成功!"<<endl<<endl
<<"客户信息:"<<cu[cnum].name<<'\t'<<"航班号:"<<cu[cnum].num<<'\t'<<"座位号:"<<cu[cnum].seat<<endl;
outfile1.close();outfile2.close();
cout<<" 1.返回主菜单 2.退出 :";cin>>temp;
if(temp==1) caidan1();else;
}};break;
default :caidan1();break;}}else cout<<"此航班票已经售完,请订其他航班次的票~";
} ///////////////////////////////////////////////////////////////////////////////////////////////////// //订票
void tuipiao()///////////////////////////////////////////////////////////////////////////////////////// 退票
{char name[10];
int i,temp,t,num,a,j;
struct tmp;
cout<<"请输入您的姓名和航班号:"<<endl;
cout<<"姓名:";cin>>name;cout<<"航班号:";cin>>num;cout<<endl;
for(i=0;i<300;i++)
{if (strcmp(cu[i].name,name)==0)
{a=0;cout<<"确定退订吗?(1.是 2.否):";cin>>temp;
if(temp==1)
{ ofstream outfile1("airline.dat");
ofstream outfile2("customer.dat");
for(j=0;j<=i;j++)
outfile2<<cu[j].name<<" "<<cu[j].num<<" "<<cu[j].seat<<" "<<j<<endl;
for(t=0;t<3;t++)
}
for(t=0;t<3;t++)
outfile1<<fl[t].fligh<<" "<<fl[t].num<<" "<<fl[t].place<<" "<<fl[t].dticket<<" "<<fl[t].yticket<<endl;
}
}
else a!=0;}
if (a!=0) cout<<"没有你的信息,请查证后再操作!";
cout<<"返回主菜单?1.是2.否:";cin>>temp;
if(temp==1)caidan1();}
//////////////////////////////////////////////////////////////////// 退票
void chaxun()
{char name[10];
int temp,i,a;
cout<<"请输入你的姓名:";cin>>name;
for(i=0;i<300;i++)
if (strcmp(cu[i].name,name)==0)
cout<<"*****乘客信息*****"<<endl<<"姓名:"<<cu[temp].name<<'\t'
<<"航班号:"<<cu[temp].num<<'\t'<<"座位号:"<<cu[temp].seat<<endl;
if (a!=0) cout<<"没有你的信息,请查证后再操作!"<<endl;
cout<<"返回主菜单?1.是2.否";cin>>temp;
if(temp==1)caidan1();
} //查询客户信息
void chaxunquanbu()
{int i,temp;
cout<<"乘客信息:"<<endl<<endl;
for(i=0;i<300;i++)
for(i=0;i<temp;i++)
cout<<"姓名:"<<cu[i].name<<'\t'<<"航班号:"<<cu[i].num<<'\t'<<"座位号:"<<cu[i].seat<<'\t'<<"编号:"<<i+1<<endl;
cout<<endl<<"航班信息:"<<endl<<endl;
for(i=0;i<3;i++)
cout<<"航班号:"<<fl[i].fligh<<'\t'<<"飞机号:"<<fl[i].num<<'\t'<<"目的地:"<<fl[i].place<<'\t'<<"已订票数:"<<fl[i].dticket<<'\t'<<"剩余票数:"<<fl[i].yticket<<endl;
cout<<"返回主菜单?1.是2.否";cin>>temp;
if(temp==1)caidan1();} //查询全部信息
这个你看看能用吗
另外,站长团上有产品团购,便宜有保证
E. 用C语言实现ktv卡拉ok点歌系统
你的那登陆怎么不用任何输入,也能登陆!!!
*************************完成第三部分*****************************
************人员管理是不是人员的增加也删除等操作******************
有关说明:
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);
}
!!!!!!!!!!!!!!!!!!!!!!!!!自己去稍微做修改!!!!!!!!!!!!!!!!!!!!!!!!!
********************************结束******************************
F. 谁帮我写用C# 写一个KTV点歌系统啊 要和数据库连接的 卖给我
我正在做的就是这个
G. 用C#编写的KTV点歌系统的一些问题
点歌系统主要有两种:硬解压和软解压。硬解压是通过解压缩卡来完成,软解压是通过解压软件来完成。 此产品适合于夜总会、量贩式KTV、酒店、酒吧等经营场所使用。 奥斯卡KTV点歌系统从2001年就开始进行研发与应用,经过多年的经验摸索,不断地完善改进和升级,使得它更安全、更稳定、更完善。无论夜总会型,还是量贩式型的KTV都可以使用,目前这套系统在全国超过3000家用户,是全国KTV场所中使用最多的点歌系统。该系统加上优质的歌库,并与点歌辅助工具和外围歌厅设备一起使用时,可称之为一套功能强大、可靠性高、实用性好、画优音美的全自动卡拉OK点歌系统,绝对领导着KTV点歌设备的新潮流。 全套系统是架构在计算机网络上的,由电脑来自动管理,无需碟机亦无需人员操作,极大地提高了经营效率。该系统从歌曲录制编辑、歌曲库的自动生成、点歌软件的功能、界面的多样性和美观性、客人的使用人性化、前后台管理的多样性和方便性、与各种外围点歌设备的结合、有4万多首各类歌曲的提供等方面,形成了完整的解决方案,是一套集大成的全面先进的系统。 提到KTN点歌系统我特别提一下显卡问题这是很重要的我遇到的ktv点歌系统最重要的都是显卡问题目前KTV系统支持的显卡只有Ati的NVIDIA的显卡不支持Ati的显卡高档次的也不支持我知道的Ati7500的卡肯定支持但9550的不支持用9550的显卡有的歌不能显示画面Ati8系列的也支持7500的卡目前市场已经很少很少了几乎是买不到的新的要是你想弄个点歌系统你用9200的卡看看我想可能支持9200的现在还是有的卖的关于磁盘阵列问题我想目前用上160GB的硬盘已经够用了不需要用上2个或几个硬盘这只是对于单机用户现在做个系统一般需要1000多快钱主要了就是音乐库
H. 我要C#做一个KTV点歌系统,要求已选歌曲窗口,我可以弄出一首歌,怎么样可以让出现多首歌曲求大神赐教
把已选的歌曲放到一个List<string>集合里面,循环遍历一下这个集合不就可以了吗
I. 请问应该如何在C#窗体中实现手写功能,使用鼠标写的,要做ktv手写点歌系统
先声明:我不会
没做过这样的开发 但是你是新手的话 做不出来这个是正常的 首先模型匹配就是一个比较复杂的算法!
建议你找找字型识别的一些资料
J. 十万火急!!!!!歌曲曲目管理系统C语言程序设计
,发消,,息给,你,了