find函数c语言 c语言find函数的使用方法
今天给各位分享find函数c语言的知识,其中也会对c语言find函数的使用方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
C语言编程
C++的行不?
等等,要菜单??就是说要支持MFC??
要是您不嫌弃,就先试试这个吧,手头上只有这个了。
#include<string>//字符串头文件
#include<fstream>//文件头文件
#include<iostream>//是指标准库中输入输出流的头文件using namespace std;//使用名字空间std
const int BMAX=50;//书最多个数
//图书管理模块
//图书类
class book
{
public:
int no;//图书编号
char name[20];//图书名称
int b_flag;//1为在架,2为借出
int b_del;//1为存在, 2为删除
public:
book(){}//构造函数
void setno(int n)
{
no=n;//图书编号取值
}
int getno()
{
return no;//返回图书编号值
}
void setname(char na[])
{
strcpy(name, na);//字符串复制
}
char* getname()
{
return name;//返回图书名称
}
void borbook()
{
b_flag=2;//借书标志
}
void delbook()
{
b_del=2;//删除标志
}
void addbook(int no,char na[])//增加图书功能
{
setno(no);
setname(na);
b_flag=1;
b_del=1;
}
}
;
//图书数据库类
class bdatabase
{
public:
book btarray[BMAX];//图书集合
int top;
public:
bdatabase()
{
book b;
top=-1;
fstream file("book.txt",ios::in);//打开文件
while(1)
{
file.read((char*)&b,sizeof(b));
if(!file) break;
top++;
btarray[top]= b;
}
file.close();//关闭文件
}
~bdatabase()//析构函数,将btarray[]写到book.txt文件中
{
fstream file("book.txt",ios::out);
for(int i=0;i<=top;i++)
{
if(btarray[i].b_del==1)
file.write((char*)&btarray[i],sizeof(btarray[i]));
}
file.close();
}
void addbooks()//往图书数据库中加图书
{
book bk;
int no;
char bname[20];
cout<<"请输入书号:";
cin>>no;
cout<<endl<<"请输入书名:";
cin>>bname;
cout<<endl;
bk.b_flag=1;
bk.addbook(no, bname);
top++;
btarray[top]=bk;
return;
}
int findbooks(int suffix)//查找图书,这个函数用于借书这书操作,suffix是数组下标
{
int no;
cout<<"请输入书号:";
cin>>no;
for(int i=0; i<=top; i++)
{
if(btarray[i].no==no&& btarray[i].b_del==1)
{
return i;
}
}
return-1;
}
int findbooks()//查找图书,这个函数用于图书维护
{
int no;
char value[6];
cout<<"请输入书号:";
cin>>no;
for(int i=0; i<=top; i++)
{
if(btarray[i].no==no&& btarray[i].b_del==1)
{
if(btarray[i].b_flag==1) strcpy(value,"在架");
if(btarray[i].b_flag==2) strcpy(value,"借出");
cout<<"书号:"<<btarray[i].no<<"书的名称:"<<btarray[i].name<<"图书状态:"<<value<<endl;
return i;
}
}
return-1;
}
void editbooks()//编辑图书
{
int cur;
cur= findbooks();
if(cur==-1)
{ cout<<"没有这本书"<<endl;
return;
}
cout<<"书号:"<<btarray[cur].no<<"书的名称:"<<btarray[cur].name<<endl;
cout<<"请修改数据:"<<endl;
cout<<endl<<"书的名称:";
cin>>btarray[cur].name;
return;
}
void delbooks()//删除图书
{
int cur;
cur= findbooks();
if(cur==-1)
{
return;
}
if(btarray[cur].b_flag==2)//删除时判断图书是否借出
{
cout<<"该图书已经借出,请在归还后再删除。"<<endl;
return;
}
btarray[cur].b_del=2;
return;
}
void listbooks()//显示全部图书
{
char value[6];
for(int i=0; i<=top; i++)
{
if(btarray[i].b_del==1)
{
if(btarray[i].b_flag==1) strcpy(value,"在架");
if(btarray[i].b_flag==2) strcpy(value,"借出");
cout<<"书号:"<<btarray[i].no<<"书的名称:"<<btarray[i].name<<"图书状态:"<<value<<endl;
}
}
return;
}
}
;
//读者管理模块
//读者类
class reader
{
public:
int no;
char name[20];
int r_del;//1存在,2删除
int r_bor;//1借过书,2没有借书
book brbook;
public:
void addreader(int id, char na[])//增加读者
{
no= id;
strcpy(name, na);
r_del=1;
}
void setbrbook(book bt)//设置借书标记
{
brbook= bt;
}
book getbrbook()
{
return brbook;//返回借书信息
}
};
//读者数据库类
class rdatabase
{
public:
reader rdarray[BMAX];
int top;
public:
rdatabase()
{
reader rd;
top=-1;
fstream file("reader.txt",ios::in);//打开文件
while(1)
{
file.read((char*)&rd,sizeof(rd));
if(!file) break;
top++;
rdarray[top]=rd;
}
file.close();//关闭文件
}
~rdatabase()//析构函数
{
fstream file("reader.txt",ios::out);
for(int i=0;i<=top;i++)
{
if(rdarray[i].r_del==1)
file.write((char*)&rdarray[i],sizeof(rdarray[i]));
}
file.close();
}
void addreaders()//添加读者
{
reader rd;
int no;
char rname[20];
cout<<"请输入学号:";
cin>>no;
cout<<endl<<"请输入姓名:";
cin>>rname;
cout<<endl;
rd.addreader(no, rname);
rd.r_bor=2;
top++;
rdarray[top]=rd;
return;
}
int findreaders(int suffix)//查找读者,这个函数用于借书还书操作。参数suffix是数组下标
{
int no;
cout<<"请输入学号:";
cin>>no;
for(int i=0; i<=top; i++)
{
if(rdarray[i].no==no&& rdarray[i].r_del==1)
{
return i;
}
}
return-1;
}
int findreaders()//查找读者,这个函数用于读者维护操作
{
int no;
char value[3];
cout<<"请输入学号:";
cin>>no;
for(int i=0; i<=top; i++)
{
if(rdarray[i].no==no&& rdarray[i].r_del==1)
{
if(rdarray[i].r_bor==1) strcpy(value,"借");
if(rdarray[i].r_bor==2) strcpy(value,"无");
cout<<"学号:"<<rdarray[i].no<<"姓名:"<<rdarray[i].name<<"是否借书:"<<value<<endl;
return i;
}
}
return-1;
}
void editreaders()//编辑读者信息
{
int cur;
cur= findreaders();
if(cur==-1)
{ cout<<"没有该学生"<<endl;
return;
}
cout<<"请修改数据:"<<endl;
cout<<endl<<"姓名:";
cin>>rdarray[cur].name;
return;
}
void delreaders()//删除读者,读者如果借书要还书后才能删除
{
int cur;
cur= findreaders();
if(cur==-1)
{
return;
}
if(rdarray[cur].r_bor==1)
{
cout<<"该用户借了图书,请还书后再删除"<<endl;
return;
}
rdarray[cur].r_del=2;
return;
}
void listreaders()//显示所有读者
{
char value[3];
for(int i=0; i<=top; i++)
{
if(rdarray[i].r_del==1)
{
if(rdarray[i].r_bor==1) strcpy(value,"借");
if(rdarray[i].r_bor==2) strcpy(value,"无");
cout<<"学号:"<<rdarray[i].no<<"姓名:"<<rdarray[i].name<<"是否借书:"<<value<<endl;
}
}
return;
}
}
;
void bookjiemain()//图书维护子菜单
{
cout<<"|---------------------|"<<endl;
cout<<"|图书维护|"<<endl;
cout<<"|(1)增加|"<<endl;
cout<<"|(2)更改|"<<endl;
cout<<"|(3)删除|"<<endl;
cout<<"|(4)查找|"<<endl;
cout<<"|(5)显示|"<<endl;
cout<<"|(6)返回上一层|"<<endl;
cout<<"|---------------------|"<<endl;
}
void readerjiemian()//读者维护子菜单
{
cout<<"|---------------------|"<<endl;
cout<<"|读者维护|"<<endl;
cout<<"|(1)增加|"<<endl;
cout<<"|(2)更改|"<<endl;
cout<<"|(3)删除|"<<endl;
cout<<"|(4)查找|"<<endl;
cout<<"|(5)显示|"<<endl;
cout<<"|(6)返回上一层|"<<endl;
cout<<"|---------------------|"<<endl;
}
void mainjiemian()//主界面
{
cout<<"***********************************************"<<endl;
cout<<"*图书管理系统*"<<endl;
cout<<"**"<<endl;
cout<<"*(1)借书*"<<endl;
cout<<"**"<<endl;
cout<<"*(2)还书*"<<endl;
cout<<"**"<<endl;
cout<<"*(3)图书管理*"<<endl;
cout<<"**"<<endl;
cout<<"*(4)用户管理*"<<endl;
cout<<"**"<<endl;
cout<<"*(0)退出*"<<endl;
cout<<"***********************************************"<<endl;
}
void borrowtoreturn(char br)
//借书还书函数.参数br用来判断是“借书”还是“还书”.1为“借书”,2为“还书”
{
int rdid=0;
int bkid=0;
int rsuffix, bsuffix;
bdatabase t_bd;
rdatabase t_rd;
if(br=='1')//借书
{
rsuffix=t_rd.findreaders(rdid);
bsuffix=t_bd.findbooks(bkid);
if(rsuffix==-1|| bsuffix==-1)
return;
if(t_bd.btarray[bsuffix].b_flag==2)
{
cout<<"图书已经借出,请选择其它图书"<<endl;
return;
}
if(t_rd.rdarray[rsuffix].r_bor==1)
{
cout<<"你已经借过图书,请先归还再借其它图书"<<endl;
return;
}
t_bd.btarray[bsuffix].b_flag=2;
t_rd.rdarray[rsuffix].r_bor=1;
t_rd.rdarray[rsuffix].brbook=t_bd.btarray[bsuffix];
return;
}
if(br=='2')
{
rsuffix=t_rd.findreaders(rdid);
bsuffix=t_bd.findbooks(bkid);
if(rsuffix==-1|| bsuffix==-1)
return;
if(t_rd.rdarray[rsuffix].brbook.no==t_bd.btarray[bsuffix].no)
{
t_bd.btarray[bsuffix].b_flag=1;
t_rd.rdarray[rsuffix].r_bor=2;
t_rd.rdarray[rsuffix].brbook=t_bd.btarray[bsuffix];
}
else
{
cout<<"请重新输入,读者借的图书号不正确"<<endl;
return;
}
return;
}
}
void booksmange()
{
char in;
bdatabase bd;
do{
bookjiemain();
cin>>in;
switch(in)
{
case'1':
bd.addbooks();
break;
case'2':
bd.editbooks();
break;
case'3':
bd.delbooks();
break;
case'4':
bd.findbooks();
break;
case'5':
bd.listbooks();
break;
case'6':
break;
default:cout<<"输入错误,请从新输入。"<<endl;;
}
}while(in!='6');
return;
}
void readersmange()
{
char in;
rdatabase bd;
do{
readerjiemian();
cin>>in;
switch(in)
{
case'1':
bd.addreaders();
break;
case'2':
bd.editreaders();
break;
case'3':
bd.delreaders();
break;
case'4':
bd.findreaders();
break;
case'5':
bd.listreaders();
break;
case'6':
break;
default:cout<<"输入错误,请从新输入。"<<endl;
}
}while(in!='6');
return;
}
int main(int argc, char* argv[])
{ char in;
do{
mainjiemian();
cin>>in;
switch(in)
{
case'1':
borrowtoreturn(in);
break;
case'2':
borrowtoreturn(in);
break;
case'3':
booksmange();
break;
case'4':
readersmange();
break;
case'0':
break;
default:cout<<"输入错误,请从新输入。"<<endl;
}
}while(in!='0');
return 0;
}
C语言高手请帮忙!!!
100分好诱人……我做吧,楼上说的对。好好学习……
回复1:(函数)
y=1 x>0
y= 0 x=0
y=-1 x<0
用if语句编程,输入x,输出y;
#include<stdio.h>
int main(void)
{
int x,y;
printf("\nInput x=");
scanf("%d",&x);
if(x>0) y=1;
else if(x==0) y=0;
else y=-1;
printf("y=%d\n",y);
getch();
return 0;
}
调试用例子:
输入:
x=10
输出:
y=1;
输入:
x=0
输出:
y=0
输入:
x=-1
输出:
y=-1
————————————————————
回复2:输入一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的大写字母;否则,原样输出。
#include<stdio.h>
void main(void)
{
char ch;
printf("\nInput a char:_\b");
ch=getchar();
ch>='A'&&ch<='Z'?printf("%c\n",ch+32):(ch>='a'&&ch<='z'?printf("%c\n",ch-32):printf("%c\n",ch));
getch();
}
__________________________________________
回复3:输入一个正整数n(1<n≤10),再输入n个整数,要求
⑴求这n个数的平均值和最大值。
⑵按逆序输出这n个数。
⑶将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。
#include<stdio.h>
#define N 10
main()
{
int array[N],n,i,max,min,temp;
float sum=0,ave;
printf("\nInput n=");
scanf("%d",&n);
printf("Input the n numbers of array:\n");
for(i=0;i<n;i++)
{
printf("array[%d]=",i);
scanf("%d",&array[i]);
}
printf("The array is:\n");
for(i=0;i<n;i++) printf("%d",array[i]);
max=min=array[0];
for(i=1;i<n;i++)
if(array[i]>max) max=array[i];
else if(array[i]<min) min=array[i];
for(i=0;i<n;i++) sum+=array[i];
ave=sum/n;
printf("\nThe max number is:%d,the average is%f\n",max,ave);
printf("Disorder the array is:\n");
for(i=n-1;i>=0;i--) printf("%d",array[i]);
printf("\nAfter exchange the array is:\n");
temp=max;max=array[n-1];array[n-1]=temp;
temp=min;min=array[0];array[0]=temp;
for(i=0;i<n;i++) printf("%d",array[i]);
getch();
}
__________________________________________________________
回复4:输入一个正整数n(1<n≤10),再输入n个整数,将它们从大到小排序后输出
#define N 10
main()
{
int i,j,min,tem,a[N],n;
printf("\nInput n=");
scanf("%d",&n);
printf("please input%d num:\n",n);
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\nBefore sort:");
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
for(i=0;i<n-1;i++)
{min=i;
for(j=i+1;j<n;j++)
if(a[min]>a[j]) min=j;
tem=a[i];
a[i]=a[min];
a[min]=tem;
}
printf("After sorted\n");
for(i=n-1;i>=0;i--)
printf("%5d",a[i]);
getch();
}
————————————————————————————————
回复5:(第一次没看见忘了……)也给你发消息里了,注意查收。
#include<stdio.h>
#include<string.h>
main()
{
int i,h=0;
char a[80],*pa=a,ch;
printf("\nInput string a:\n");
gets(a);
printf("Input char ch:\n");
ch=getchar();
for(i=0;i<80;i++)
if(*(pa+i)==ch) h++;
printf("%c appers%d times in the string a\n",ch,h);
puts(a);
getch();
}
——————————————————————————————
回复6:定义函数void sort(int a[],int n),用选择法对数组a中的元素排序。自己定义main函数,并在其中调用sort函数。
#include<stdio.h>
#define N 100
void sort(int a[N],int n);
main()
{
int n,a[N];
printf("\Input n=");
scanf("%d",&n);
sort(a,n);
getch();
}
void sort(int a[N],int n)
{
int i,j,min,tem;
printf("please input ten num:\n");
for(i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\n");
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
for(i=0;i<n-1;i++)
{min=i;
for(j=i+1;j<n;j++)
if(a[min]>a[j]) min=j;
tem=a[i];
a[i]=a[min];
a[min]=tem;
}
printf("After sorted:\n");
for(i=0;i<n;i++)
printf("%5d",a[i]);
}
c语言如何读取文件并输出
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。
2、例程:
#include<stdio.h>
int a;
char b,c[100];
int main(){
FILE* fp1= fopen("input.txt","r");//打开输入文件
FILE* fp2= fopen("output.txt","w");//打开输出文件
if(fp1==NULL|| fp2==NULL){//若打开文件失败则退出
puts("不能打开文件!");
rturn 0;
}
fscanf(fp1,"%d",&a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串
printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}
好了,文章到这里就结束啦,如果本次分享的find函数c语言和c语言find函数的使用方法问题对您有所帮助,还望关注下本站哦!