鱼C论坛

 找回密码
 立即注册
查看: 1367|回复: 1

新手菜鸟的C语言问题,完全自打.修改错误已自崩....想找师傅教教...

[复制链接]
匿名鱼油
匿名鱼油  发表于 2015-1-8 20:46:05 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <string.h>
void tianjia(); //添加函数
void zhuce(); //注册函数
void denglu(); //登陆函数
void jieshu(char zh); //借书函数
void huanshu(); //还书函数
void xiugai(); //修改图书信息函数
void shanchu(); //删除图书信息函数
void bianhaochashu(); //按编号查书函数
void shumingchashu(); //按书名查书函数
void chashu(); //查书函数(主界面)
void xianshi(int k); //定义显示书籍信息函数
void guoke(); //匆匆过客的界面
void tuichu(); //退出CC图书馆管理系统
void menu(); //主菜单
FILE *fp; //建立图书信息保存文件指针
FILE *fpzc; //建立用户注册的信息文件指针
struct Yonghu //建立用户结构体
{
char zhanghao[20];//帐号
char Name[20];//姓名
char sex[5];//性别
char id[20];//学号
char phone[20];//电话号码
char mima[20];//密码
char jie[10];//借书情况
char huan[10];//还书情况
};
struct Yonghu yonghu[100];
struct tushu//建立图书信息结构体
{
char name[30]; //书名
char zuozhe[20]; //作者
char ID[10]; //图书的编号
char sl[10]; //图书的数量
char dj[10]; //图书的单价
};
struct tushu shu[10000];

void tianjia()//添加函数
{
int b,c,i=0;
printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");
printf("请输入你要添加的书的数量");scanf("%d",&b);
for(i=0;i<b;i++)
{
printf("请输入要添加的第%ld图书的书名:",i+1);
scanf("%s",shu[i+1].name);

printf("请输入要添加的第%ld图书的作者:",i+1);
scanf("%s",shu[i+1].zuozhe);

printf("请输入要添加的第%ld图书的编号:",i+1);
scanf("%s",shu[i+1].ID);

printf("请输入要添加的第%ld图书的数量:",i+1);
scanf("%s",shu[i+1].sl);

printf("请输入要添加的第%ld图书的单价:",i+1);
scanf("%s",shu[i+1].dj);
printf("\n");
}
if((fp=fopen("CC图书馆管理系统.txt","w+"))==NULL)
{
printf("打开文件失败!\n");
exit(0);
}
for(i=0;i<b;i++)
fprintf(fp,"%20s%20s%20s%20s",shu[i+1].name,shu[i+1].zuozhe,shu[i+1].ID,shu[i+1].sl,shu[i+1].dj);
fclose(fp);
printf("\n");
printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n"); 
}
void zhuce()//注册函数 
{ 
char mima2[20];
char xuanze4; 
static int e;//定义静态变量e
char cf3[]={'帐号','姓名','性别','学号','电话','密码'};//用于存放信息提示文字
system("cls");
printf("欢迎来到注册界面"); printf("\n\n");
printf("请输入你的帐号:");scanf("%s",yonghu[e].zhanghao);printf("\n\n");
printf("请输入你的姓名:");scanf("%s",yonghu[e].Name);printf("\n\n");
printf("请输入你的性别:");scanf("%s",yonghu[e].sex);printf("\n\n");
printf("请输入你的学号:");scanf("%s",yonghu[e].id);printf("\n\n");
printf("请输入你的电话:"); scanf("%s",yonghu[e].phone);printf("\n\n");
printf("请输入你的密码:");scanf("%s",yonghu[e].mima);printf("\n\n"); 
printf("请再次输入你的密码");scanf("%s",mima2);printf("\n\n");
if(strcmp(mima2,yonghu[e].mima)==0)
{
printf("恭喜你!你已经注册成功!");printf("\n\n");
printf("按任意键回到主菜单");
system("pause");
menu();
}
else
{
printf("密码输入错误啦!!请重新注册!@@^=^@@");
system("pause");
zhuce();
}
if((fpzc=fopen("帐号注册资料保存.txt","w+"))==NULL)
{
printf("\n\n打开文件失败!\n");
exit(0);
}
// fwrite(cf3,sizeof(cf3),1,fpzc);
fwrite(&yonghu[e],sizeof(struct Yonghu),1,fpzc); //有两种读写方法
fclose(fpzc);
e++;
printf("信息已保存!\n"); 
printf("输入任意键返回主菜单");printf("\n\n");
system("pause");
menu();
}
void denglu() //登陆函数
{
FILE *fpzc;
char mima3[20],zhanghao2[20];
char mima4[20],zhanghao3[20];
int t;
system("cls");
printf("欢迎来到登陆界面!\n\n\n");
printf("请输入你的帐号:");scanf("%s",zhanghao2);printf("\n\n");
printf("请输入你的密码:");scanf("%s",mima3);printf("\n\n");
if((fpzc = fopen("帐号注册资料信息保存.txt","w+"))==NULL)
{
printf("\n\n打开失败!\n");
exit(0);
}
for(t=0;t<=1000;t++)
{
fscanf(fpzc,"%s",zhanghao3);
if((strcmp(zhanghao3,yonghu[t].zhanghao)==0)&&(strcmp(mima3,yonghu[t].mima)==0))
menu();
else printf("帐号密码输入错误!!\n");
system("pause");
denglu();
}
fclose(fpzc);
}
void jieshu(int zh)//借书函数
{
int i,xuanze5;
char cha[20];
printf("~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");
printf("请输入要搜索的书名或者编号:");
scanf("%s", cha);
for(i=0;i<100;i++)
{
if((strcmp(cha,shu[i].name)==0)||(strcmp(cha,shu[i].ID)==0))
{
printf("该图书的信息为:\n");
printf("书名:%s 作者:%s 编号:%s 数量:%s 单价:%s\n",shu[i].name,shu[i].zuozhe,shu[i].ID,shu[i].sl,shu[i].dj); 
break;
} 
}
printf("\n");
printf("是否要借这本书? 1.是 2.否");
scanf("%d",&xuanze5);
if(xuanze5==1)
{
printf("恭喜你借书成功\n\n");
}
else
printf("~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ \n");
}


void huanshu(int zh)//还书函数
{
int m,xuanze6;
char cha2[20];
printf("~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~\n");
printf("请输入要还的书名或者编号:");
scanf("%s", cha2);
for(m=0;m<100;m++)
{
if((strcmp(cha2,shu[m].name)==0)||(strcmp(cha2,shu[m].ID)==0))
{
printf("该图书的信息为:\n");
printf("书名:%s 作者:%s 编号:%s 数量:%s 单价:%s\n",shu[m].name,shu[m].zuozhe,shu[m].ID,shu[m].sl,shu[m].dj); 
break;
} 
}
printf("\n");
printf("是否要还这本书? 1.是 2.否");
scanf("%d",&xuanze6);
if(xuanze6==1)
{
printf("还书成功\n\n");
}
else
printf("~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ \n");
}
void xiugai()//修改图书信息函数
{
system("cls");
int q;
char ID[30];
char flag=0,t=0,mi=3,duan;
struct tushu xg[100];
struct tushu cunfang;
printf("\n\n\n请输入想修改的图书的编号\n\n\n");
scanf("%s",ID);
printf("\n");
if((fpFile=fopen("CC图书管理系统.txt","r"))==NULL)
{
printf("打开文件失败!\n");
exit(0);
}
while(!feof(fpFile))
{
fread(&cunfang,sizeof(struct student),1,fp);
if(!feof(fpFile))
{
xg[t]=cunfang; //把文件里的所有信息储存到数组xg里面
t++;
}
}
for(i=0;i<t;i++) //根据输入的编号,在数组xg里找到该图书i
{
if(strcmp(ID,xg[i].ID)==0) 
{
system("cls");
printf("\n\n\n图书的信息如下:\n\n");
printf("\n\n\n书名:%s,作者:%s,编号:%s,数量:%s,单价:%s\n\n",xg[i].name,xg[i].zuozhe,xg[i].ID,xg[i].sl,xg[i].dj);
printf("\n\n\n请选择你想修改的选项:\n\n");
printf("\n\n\n1.书名修改\n\n");
printf("\n\n\n2.作者修改\n\n");
printf("\n\n\n3.编号修改\n\n");
printf("\n\n\n4.数量修改\n\n");
printf("\n\n\n5.单价修改\n\n");
printf("\n\n\n");
scanf("%d",&q); 
printf("\n");
switch(q)
{
case 1: {
printf("\n\n\n请输入新的书名\n");
printf("\n\n\n");
scanf("%s",xg[i].name);
};break;
case 2: {
printf("\n\n\n请输入新的作者姓名\n");
printf("\n\n\n");
scanf("%s",xg[i].zuozhe);
};break;
case 3: {
printf("\n\n\n请输入新的编号\n");
printf("\n\n\n");
scanf("%s",xg[i].ID);
};break;
case 4: {
printf("\n\n\n请输入新的数量\n");
printf("\n\n\n");
scanf("%s",xg[i].sl);
};break;
case 5: {
printf("\n\n\n请输入单价\n");
printf("\n\n\n");
scanf("%s",xg[i].dj);
};break;
default:printf("输入超范围啦!请输入1-5的数字!谢谢!");
return xiugai();

}
printf("\n\n\n修改后的图书信息:\n\n");
printf("\n\n\n书名:%s,作者:%s,编号:%s,数量:%s,单价:%s\n\n",xg[i].name,xg[i].zuozhe,xg[i].ID,xg[i].sl,xg[i].dj);
}
}

fpFile=fopen("CC图书馆管理系统.txt","w");
fwrite(xg,sizeof(struct student),t,fp);
fclose(fp);
}
void shanchu() //删除图书信息函数
{
int w,judge,judge2;
char id;
system("cls");
printf("\n\n请输入需要删除的图书的编号!\n");
scanf("%s",id);
for(w=0;w<10000;w++)
if(strcmp(id,shu[w].ID)==0)
{
xianshi(id);

}
printf("\n\n确定要删除?\n\n\n 1.是 2.否\n");
printf("\n\n");
scanf("%d",&judge); 
if(judge==1)
{
for(i=id;i<1000;i++) 
{
strcpy(shu[i].name,shu[i+1].name);
strcpy(shu[i].zuozhe,shu[i+1].zuozhe);
strcpy(shu[i].ID,shu[i+1].ID);
strcpy(shu[i].sl,shu[i+1].sl);
strcpy(shu[i].dj,shu[i+1].dj);
}
}
printf("\n\n删除成功!\n");
printf("\n\n是否继续删除?\n\n\n 1.是 2.否\n");
printf("\n\n");
scanf("%d",&judge2);
if(judge2=1)
shanchu();
else menu();
}
void bianhaochashu()//按编号查书函数
{
char bianhao[10];
int y,u;
system("cls");
printf("请输入图书的五位数字编号:(例如00001)");
scanf("%f",&bianhao);
for(y=0;y<=10000;y++)
{
if(strcmp(bianhao,shu[y].ID)==0)
(printf("\n\n\n\%4s%4s%4s%4s%4s",shu[y].name,shu[y].zuozhe,shu[y].ID,shu[y].sl,shu[y].dj);
else printf("没有这本书!\n")
}
printf("\n\n\n\是否继续查询?\n 1:是 2:否\n");
scanf("%d",&u);
if(u=1)
bianhaochashu();
else
menu();
}


void shumingchashu()//按书名查书函数
{
char shuming[10];
int o,p;
system("cls");
printf("请输入图书的名字:(例如 简爱)");
scanf("%f",&shuming);
for(o=0;o<=10000;o++)
{
if(strcmp(shuming,shu[o].name)==0)
(printf("\n\n\n\%4s%4s%4s%4s%4s",shu[o].name,shu[o].zuozhe,shu[o].ID,shu[o].sl,shu[o].dj);
else printf("没有这本书!\n")
}
printf("\n\n\n\是否继续查询?\n 1:是 2:否\n");
scanf("%d",&p);
if(p=1)
shumingchashu();
else
menu();

}
void chashu()//查书函数(主界面)
{
int xuanze3;
system("cls");
printf("\n\n\n")
printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
printf(" ★★ 欢迎使用CC图书管理系统 ★★\n");
printf(" ★★ 图书查询 ★★\n");
printf(" ★★ 1.按书名查询 ★★\n");
printf(" ★★ 2.按编号查询 ★★\n");
printf(" ★★ 3.返回上级菜单 ★★\n");
printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
scanf("%d",xuanze3);
switch(xuanze3)
{
case 1:shumingchashu;break;
case 2:bianhaochashu;break;
case 3:guoke();break;
default:printf("expression error!\n")
}
chashu();
}

void xianshi(int k) //定义显示书籍信息函数
{

system("cls"); 
FILE *fp;
if((fp=fopen("CC图书馆管理系统.txt","r"))==NULL)
{
printf("打开文件失败!\n");
exit(0);
}
if(strcmp(k,shu[k].ID)==0)
{
printf("\n\n书名:%s作者%s编号%s数量%s单价%s",shu[k].name,shu[k].zuozhe,shu[k].ID,shu[k].sl,shu[k].dj);
printf("状态为:%d",k);
}
fclose(fp);
}
void tuichu()//退出CC图书馆管理系统
{
system("cls");
printf("\n\n\n");
printf("谢谢您的使用,再见!!!");

}
void guoke()//匆匆过客的界面
{
int xuanze2
system("cls");
printf("\n\n\n")
printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
printf(" ★★ 欢迎使用CC图书管理系统 ★★\n");
printf(" ★★ 匆匆过客 ★★\n");
printf(" ★★ 1.书籍查询 ★★\n");
printf(" ★★ 2.帐号注册 ★★\n");
printf(" ★★ 3.返回上级菜单 ★★\n");
printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
scanf("%d",&xuanze2);
switch(xuanze2)
{
case 1:shujichaxun;break;
case 2:zhuce;break;
case 3:menu();break;
default:printf("expression error!\n");
}
guoke();
}


void menu()//主菜单
{int xuanze1;
printf("\n\n\n")
printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
printf(" ★★ 欢迎使用CC图书管理系统 ★★\n");
printf(" ★★ 1:帐号注册 ★★\n");
printf(" ★★ 2:用户登陆 ★★\n");
printf(" ★★ 3:匆匆过客 ★★\n");
printf(" ★★ 4:新书添加 ★★\n");
printf(" ★★ 5:退出CC图书管理系统 ★★\n");
printf(" ★★★★★★★★★★★★★★★★★★★★★★★\n");
scanf("%d",&xuanze1); 
switch(xuanze)
{
case 1: zhuce() ;break;
case 2: denglu() ;break;
case 3: guoke() ;break;
case 4: tianjia();break;
case 5: tuichu() ;break;
default:printf("expression error!\n");
}
menu();
}
void main()
{
menu();
}
回复

使用道具 举报

发表于 2015-1-10 21:50:20 | 显示全部楼层
如果愿意付费学习这种中规模程序如何实现的话,可以加QQ 190896757 咨询
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 14:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表