1 涉及的C语言知识
(1)输入
(2)加减乘除运算
(3)输出
2 一个小示例
#include<stdio.h>float get_discount(int x){
float output = 0
//当输入以0结尾时,不合法,返回0
if (x % 10 == 0)
穗漏 return output
//当输入为 85 时,代表85折,输出应为0.85
if (x > 10 && x < 100)
output = x / 100.0
//当输入为 7 时,代表7折,输出应为0.7
if (x < 10 && x >= 1)
output = x / 10.0
return output
}
int main(){
float count
int discount_str
puts("输入书的金额和打印情况(以空格为分割符,按回车结束):")
puts("(如输入的是20 7则表示20元的书打7折)")
scanf("%f %d", &count, &discount_str)
float discount_f = get_discount(discount_str)
if (discount_f == 0)
仔携 puts("输入的打折情况不合法.")
念族伏 else{
float result = count*discount_f
printf("打折后的金额为:%.2f\n", result)
}
getchar()
getchar()
return 0
}
3 运行情况
#include "stdio.h"#include "string.h"
#define N 1000
struct book
{char author[10]
char bkname[20]
float price
int num
}
int n
bkin(struct book bk[])
{
char ath[10],bknm[20]
float pr
int nm,i
clrscr()
printf("Input BookName BookAuthor Price Number:\n")
scanf("%s%s%f%d",ath,bknm,&pr,&nm)
for (i=0i<ni++)
if ( strcmp(bk[i].bkname,bknm)==0 ) break
if (i<n) bk[i].num+=nm
else
{
strcpy(bk[n].author,ath)
strcpy(bk[n].bkname,bknm)
bk[n].price=pr
bk[n].num = nm
n++
}
printf("Book In ok...\n"辩咐)
}
bksale(struct book bk[])
{
clrscr()
printf("Book Sale....\n")
}
bklist(struct book bk[])
{
int i
clrscr()
printf("Book List:\n\n")
printf("Author BookName Price BookNumber\n")
printf("------------------------------------------------------\n")
for (i=0i<ni++)
printf("%-10s %-20s %-10.2f %-5d\n",bk[i].author,
bk[i].bkname,bk[i].price,bk[i].num)
}
show()
{clrscr()
printf("\n\n\n\n\n"轮戚)
printf(" ----------------------------------------------------\n")
printf(" 1.BookIn\n")
printf(" 2.Booksale\n")
printf(" 3.BookList\n")
printf(" 4.Exit\n")
printf(" ----------------------------------------------------\腊灶陵n")
printf(" Please select 1.2.3.4:\n")
}
main()
{
struct book bk[N]
int select
strcpy(bk[0].author,"Tom")
strcpy(bk[0].bkname,"Bookname1")
bk[0].price=20.00
bk[0].num = 10
strcpy(bk[1].author,"Jerry")
strcpy(bk[1].bkname,"Bookname2")
bk[1].price=12.00
bk[1].num = 3
n=2
show()
scanf("%d",&select)
while(select != 4)
{ if (select == 1) bkin(bk)
if (select == 2) bksale(bk)
if (select == 3) bklist(bk)
getch()
show()
scanf("%d",&select)
}
}
#include#include
#include
#include
usingnamespace std
constint Maxr=100
constint Maxb=100
constint Maxbor=5
classReader
{
private:
inttag
intno
charname[10]
intborbook[Maxbor]
public:
Reader(){}
char*getname() {return name}
intgettag() {return tag}
intgetno() {return no}
voidsetname(char na[])
{
strcpy(name,na)
}
voiddelbook(){ tag=1}
voidaddreader(int n,char *na)
{
tag=0
no=n
strcpy(name,na)
for(inti=0i<Maxbori++)
borbook[i]=0
}
voidborrowbook(int bookid)
{
for(inti=0i<Maxbori++)
{
if (borbook[i]==0)
{
borbook[i]=bookid
return
}
}
}
intretbook(int bookid)
{
for(inti=0i<Maxbori++)
{
if(borbook[i]==bookid)
{
borbook[i]=0
return1
}
}
return0
}
voiddisp()
{
cout<<setw(5) <<no <<setw(10) <<name<<"借书编号埋知:["
for(inti=0i<裤颂Maxbori++)
if(borbook[i]!=0)
cout<<borbook[i] <<"|"
cout<<"]"<<endl
}
}
classRDatabase
{
private:
inttop
Readerread[Maxr]
public:
RDatabase()
{
Readers
top=-1
fstreamfile("reader.txt",ios::in)
while(1)
{
file.read((char*)&s,sizeof(s))
if(!file)break
top++
read[top]=s
}
file.close()
}
voidclear()
{
top=-1
}
intaddreader(int n,char *na)
{
Reader*p=query(n)
if(p==NULL)
{
top++
read[top].addreader(n,na)
return1
}
return0
}
Reader*query(int readerid)
{
for(int i=0i<=topi++)
if(read[i].getno()==readerid &&
read[i].gettag()==0)
{
return&read[i]
}
returnNULL
}
voiddisp()
{
for(int i=0i<=topi++)
read[i].disp()
}
voidreaderdata()
~RDatabase()
{
fstreamfile("reader.txt",ios::out)
for(int i=0i<=topi++)
if(read[i].gettag()==0)
file.write((char*)&read[i],sizeof(read[i]))
file.close()
}
}
voidRDatabase::readerdata()
{
charchoice
charrname[20]
intreaderid
Reader*r
while(choice!='0')
{
cout<<"******欢迎使用图书销售管理系统终极版******”<<endl
cin>>choice
switch(choice)
{
case'1':
cout<<"****** *** 作菜单******:"
cin>>readerid
cout<<"******收银员******"
cin>>rname
addreader(readerid,rname)
break
case'2':
cout<<"******管理员******:"
cin>>readerid
r=query(readerid)
if(r==NULL)
{
cout<<"弯纯消 ******顾客****** "<<endl
break
}
cout<<"输入新的姓名:"
cin>>rname
r->setname(rname)
break
case'3':
cout<<" 输入图书编号:"
cin>>readerid
r=query(readerid)
if(r==NULL)
{
cout<<" 该图书不存在"<<endl
break
}
r->delbook()
break
case'4':
cout<<"读入图书编号:"
cin>>readerid
r=query(readerid)
if(r==NULL)
{
cout<<"该图书不存在"<<endl
break
}
r->disp()
break
case'5':
disp()
break
case'6':
clear()
break
default:cout<<"输入错误,请从新输入:"break
}
}
}
classBook
{
private:
inttag
intno
charname[20]
intonshelf
public:
Book(){}
char*getname() { return name}
intgetno(){ return no}
intgettag(){ return tag}
voidsetname(char na[])
{
strcpy(name,na)
}
voiddelbook(){ tag=1}
voidaddbook(int n,char *na)
{
tag=0
no=n
strcpy(name,na)
onshelf=1
}
intborrowbook()
{
if(onshelf==1)
{
onshelf=0
return1
}
return0
}
voidretbook()
{
onshelf=1
}
voiddisp()
{
cout<<setw(6) <<no <<setw(18) <<name <<setw(10)
<<(onshelf==1?"缺货")<<endl
}
}
classBDatabase
{
private:
inttop
Bookbook[Maxb]
public:
BDatabase()
{
Bookb
top=-1
fstreamfile("book.txt",ios::in)
while(1)
{
file.read((char*)&b,sizeof(b))
if(!file) break
top++
book[top]=b
}
file.close()
}
voidclear()
{
top=-1
}
intaddbook(int n,char *na)
{
Book*p=query(n)
if(NULL==p)
{
top++
book[top].addbook(n,na)
return1
}
return0
}
Book*query(int bookid)
{
for(int i=0i<=topi++)
if(book[i].getno()==bookid &&book[i].gettag()==0)
{
return&book[i]
}
returnNULL
}
voidbookdata()
voiddisp()
{
for(int i=0i<=topi++)
if(book[i].gettag()==0)
book[i].disp()
}
~BDatabase()
{
fstreamfile("book.txt",ios::out)
for(int i=0i<=topi++)
if(book[i].gettag()==0)
file.write((char*)&book[i],sizeof(book[i]))
file.close()
}
}
voidBDatabase::bookdata()
{
charchoice
charbname[40]
intbookid
Book*b
while(choice!='0')
{
cout<<"\n\n\n\t\t\t图书维护"<<endl<<endl
cin>>choice
switch(choice)
{
case'1':
cout<<"输入图书编号:"<<endl
cin>>bookid
cout<<"输入图书书名:"<<endl
cin>>bname
addbook(bookid,bname)
break
case'2':
cout<<"输入图书编号:"<<endl
cin>>bookid
b=query(bookid)
if(b==NULL)
{
cout<<" 该图书缺货"<<endl
break
}
cout<<"输入新的书名:"<<endl
cin>>bname
b->setname(bname)
break
case'3':
cout<<" 读入图书编号:"<<endl
cin>>bookid
b=query(bookid)
if(b==NULL)
{
cout<<" 该图书缺货"<<endl
break
}
b->delbook()
break
case'4':
cout<<" 读入图书编号:"<<endl
cin>>bookid
b=query(bookid)
if(b==NULL)
{
cout<<" 该图书不存在"<<endl
break
}
b->disp()
break
case'5':
disp()
break
case'6':
clear()
break
default:cout<<"输入错误,请从新输入:"
}
}
}
voidmain()
{
charchoice
intbookid,readerid
RDatabaseReaderDB
Reader*r
BDatabaseBookDB
Book*b
while(choice!='0')
{
cout<<endl<<endl<<"\t\t\t 图书销售管理系统\n\n\n"
cin>>choice
switch(choice)
{
case'1':
cout<<" 买书图书编号:"
cin>>readerid
cout<<" 图书编号:"
cin>>bookid
r=ReaderDB.query(readerid)
if(NULL==r)
{
cout<<" 不存在该图书,不能买书"<<endl
break
}
b=BookDB.query(bookid)
if(b==NULL)
{
cout<<" 不存在该图书,不能买书"<<endl
break
}
if(b->borrowbook()==0)
{
cout<<" 该图书已售完,不能买书"<<endl
break
}
r->borrowbook(b->getno())
break
case'2':
cout<<"买书\n 图书编号:"
cin>>readerid
cout<<" 图书编号:"
cin>>bookid
r=ReaderDB.query(readerid)
if(r==NULL)
{
cout<<" 不存在该图书,不能买书"<<endl
break
}
b=BookDB.query(bookid)
if(b==NULL)
{
cout<<" 不存在该图书,不能买书"<<endl
break
}
b->retbook()
r->retbook(b->getno())
break
case'3':
BookDB.bookdata()
break
case'4':
ReaderDB.readerdata()
break
default:cout<<"输入错误,请从新输入:"
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)