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

用C语言实现ktv卡拉ok点歌系统,第1张

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

*************************完成第三部分*****************************

************人员管理是不是人员伏迹的增加也删除等 *** 作******************

有关说明:

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=1i<=60000000i++)

{

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=1i<=60000000i++)

{

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=0i<10i++)

{

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=0i<10i++)

{

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=0i<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=0break

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=0i<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=0i<sizeof(us)/sizeof(us[0])i++)

if(stricmp(us[i].usr,usr)==0&&us[i].p_id>0)

{ us[i].level=levelbreak}

data_user_write_file(us)

break

case 3: data_user_write_file(us)break

case 4: sign=0break

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=0i<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=1printf("\t\t输入的用户名已经存在或者为空!1 秒后自动返回!\n")Sleep(1500)break}

}

if(stricmp(psd,psd_1)!=0&&sign==0)

{ sign=1printf("\t\t两次输入密码不一致!3 秒后自动返回!\n")Sleep(1500)break}

for(i=0i<sizeof(show_user[0])/sizeof(show_user) &&sign==0i++)

{

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=0i<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=0i<sizeof(show_user[0])/sizeof(show_user) &&stricmp(usr,"*")!=0i++)

{

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=0i<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=0i<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=0i<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)

}

!!!!!!!!!!!!!!!!!!!!!!!!!自己去稍微做修改!!!!!!!!!!!!!!!!!!!!!!!!!

********************************结束******************************

自己再稍微修改下,大致程序就像下面的了:

#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=1i<=60000000i++)

{

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=1i<=60000000i++)

{

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=0i<10i++)

{

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=0i<10i++)

{

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=0i<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=0break

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=0i<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=0i<sizeof(us)/sizeof(us[0])i++)

if(stricmp(us[i].usr,usr)==0&&us[i].p_id>0)

{ us[i].level=levelbreak}

data_user_write_file(us)

break

case 3: data_user_write_file(us)break

case 4: sign=0break

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=0i<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=1printf("\t\t输入的用户名已经存在或者为空!1 秒后自动返回!\n")Sleep(1500)break}

}

if(stricmp(psd,psd_1)!=0&&sign==0)

{ sign=1printf("\t\t两次输入密码不一致!3 秒后自动返回!\n")Sleep(1500)break}

for(i=0i<sizeof(show_user[0])/sizeof(show_user) &&sign==0i++)

{

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=0i<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=0i<sizeof(show_user[0])/sizeof(show_user) &&stricmp(usr,"*")!=0i++)

{

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=0i<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=0i<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=0i<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)

}

一:定位好网站的主题和名称

1.网站主题要有特色而且精巧。定位要有KTV特色,内容要精巧。如果想制作一个包含一切KTV信息的站点,把所有认为精彩的KTV信息都放在网站上,往往结果会事与愿违,给人缺乏主题和特色的感觉。

一个样样都有却样样都很肤浅的KTV网站,需枯链要管理员耗费极大的精力去维护它,这是不现实的。通过在网站上发表KTV的最大好处就是更新及时、迅速,且不用费用。有影响力的KTV网站主页都是天天更新甚至几小时更新一次。最新的调查结果也显示,网络上定位准确的"KTV主题站"比"KTV万全站"更受人们喜爱,打个比方,类似专卖店和百货商店,如果我只需要买某方面的东西,往往更喜欢去专买店。当然KTV网站更要有KTV网站的特色。

2.网站的题材要与KTV的内容有关。比如:KTV的名称、KTV的相关知识、KTV的相关机构、KTV的相关活动等等。同时题材的选取也要与所属KTV的实际相结合。

二:首页的设计

在全面规划好KTV网站的栏目,导航链接结构和网站整体风格之后,就可以正式开始制作网站首页了。俗语说:"好的开始是成功的一半"。在KTV网站的建设上同样如此,首页的设计是否成功关系整个网站设计成败。人们往往看到首页就已经对一个网站下了结论。好的首页才能使浏览者继续浏览网站。能否吸引浏览者,设计的首页起关键作用。因此,结合KTV的风格,费大量心思,精心设计、制作首页是绝对重要。有关KTV首页设计方法大致如下:

○版面布局的窍门

○色彩的搭配

○字体的设置和表格的嵌套

○细微之处见功力

○考虑不同的浏览器和分辨率

○设计好您的KTV网站的banner

○标签的重要性

首页,从根本上说就是我们KTV网站内容的目录,也就是索引。但单单罗列目录还是是不够的,如何设计好一个KTV网站的首页呢?一般的步骤是:

●结合KTV网站的特点,确定首页的功能模块

●结合KTV的风格,设计首页的版面

●处理技术上的细节

1、确定建设我们的KTV网站所需要的功能模块:

KTV网站首页的内容板块是指我们需要在首页上体现的内容和功能。一般的KTV网站设计上都需要这样一些模块:网站名称(logo)、 广告条(banner)、主菜单(menu)、新闻(news)、搜索(search), 友情链接(links), \计数器(count), 版权(copyright).我们要选择的模块,实现的功能,是否需要添加其他模块都需要在首页设计开始之前确定。

2、设计KTV网站的首页版面

在确定了功能模块后,我们可以开始设计KTV网站首页的版面。好比搭积木,每个模块是一块积木,我们要做的就是搭出一座漂亮的房子,这就要需要我们的创意和想象力了。最后的方法就是结如败手合KTV的特色,设计版面的最好方法是先将理想中的草图勾勒出来,然后再用网页制作软件来实现。 3、处理技术上的细节

制作的主页必须在不同分辨率下能保持不变形,在IE下看起来好看,设置字体和链接颜色....等等,KTV网站首页设计必须结合KTV的特征,这也是整个网站设计的难点和关键,在制作的过程中根据KTV网站的特征,处理好各种技术的细节,这也是非常重要的。

三:定位好KTV网站的形象

制作一个杰出的KTV网站,和实体公司一样,也需要对网站整体的形象进行包装和设计。准确,有创意的形象设计,对KTV网站建成后的宣传、推广有事半功倍的效果。在KTV网站的具体主题、名称定下来后,接下来要考虑的就是网站的形象。KTV网站建设,在形象上要具有代表KTV的特色。 具体说来,包括:

1.设计好KTV网站的标志(logo).logo如同商标一样,是KTV站点主题和内涵的集中体现,我们的目的是让大家看见logo联想起我们的网站。标志的设计创意来必须结合网站的名称和内容,能表明和KTV的关联意志。

2.设计KTV网站的标准色,也就是主题色。网渣嫌站给人的视觉冲击首先来自主题色的视觉刺激,标准色彩的确定是KTV网站建设重要的一步。不同的色彩搭配会产生不同的效果并影响到访问者的情绪。通常说来,"标准色彩"必须选择能体现KTV网站主题形象和内涵的色彩。例如:IBM采用深蓝色,肯得基采用红色条型,windows视窗采用红蓝黄绿色块,这些好的设计使我们觉得很贴切、和谐。标准色、标准色彩一般用于KTV网站的标志,标题,主菜单和主色块。其目的是给人以整体统一的感觉。其它色彩也可以使用,但只能作为点缀和衬托,绝不能喧宾夺主。

3.设计KTV网站的标准字体。和标准色彩类似,标准字体通常用于标志、标题、主菜单。一般网页默认的字体是宋体。有时候为了体现站点的"与众不同"和KTV网站特有风格,我门可以根据需要选择一些特别字体。

4.设计KTV网站的宣传标语。将KTV网站的精神、目标,用一句话甚至一个词来高度概括。以上四方面:标志,色彩,字体,标语,是建KTV网站的关键,设计并完成这几步,KTV网站将脱胎换骨,整体形象有一个提高。

四、 确定KTV网站建设所需要的栏目和版块

建立一个KTV网站好比写一篇关于KTV的文章,提纲清晰,才能主题明确,层次明朗;也好比造楼,设计好框架图纸,方能使楼房结构合理。网站结构不清晰,目录庞杂,内容没有主题不相干,会使得浏览者看得糊涂,也会使得网站管理员扩充、维护网站发生困难,网站或许因此半途而废。所以,在动手制作网页前,一定要考虑好以下三方面:

1.考虑KTV网站的特征,确定栏目和版块;

2.确定KTV网站的目录结构和链接结构

3.确定KTV网站的整体风格、创意设计

首先,我们来讨论"确定KTV网站的栏目和版块"。我们网站的题材是关于KTV,收集和组织了许多相关的资料内容。能否吸引网友们来浏览网站,对内容的位置、内容在版面上的分布都是至关重要。一般一个KTV网站栏目安排要注意以下几方面:

1.要紧扣主题!通常的做法是:将KTV这个主题按一定的方法分类,并将分类作为的主栏目。主栏目个数在总栏目中要占绝大多数,这样的KTV网站给人感觉专业,主题突出,能给人留下深刻印象。

2.设一个最近更新或KTV指南栏目。这样做可以方便常来的访客,让网站更有人性化。

3.提供一个可以供管理员与用户交流的栏目。不需要很多,但一定要有。比如论坛,留言本,可以手机浏览者留下的信息。

4.设一个下载或常见KTV问题,特点是信息共享。当然,最后,我们也要设好其它辅助内容,如关于本站,版权信息等。这些最好不放在主栏目里,以免冲淡KTV这个主题。总结以上几点,得出划分栏目需要注意的是:

●尽可能删除与KTV无关的栏目

●尽可能将网站最有价值的关于KTV的内容列在栏目上

●尽可能方便访问者的浏览和查询

以上说的是栏目,我们再看看版块设置。版块比栏目的概念更大一些,版块容纳版块的栏目。我们要根据KTV网站建设的需要来设置版块。

同时应该注意1.各版块要有相对独立性。2.各版块要有相互关联。3.版块的内容要围绕站点主题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12539884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存