买书打折用C语言怎么编程

买书打折用C语言怎么编程,第1张

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<<"输入错误,请从新输入:"

}

}

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存