怎样将图书加入购物车的代码c语言
#include#include#include#include#defineMax2typedefstructbook//书的信息{charbook_num[10];//书号charbook_name[20];//书名charbook_writer[10];//作者intbook_xy;//书的剩余数量intbook_kc;//书的总数量structbook*next;}BK;typedefstructborrow//被借书的信息{charborrow_book_num[10];//借书书号charlimit_date[8];//借书归还日期}BO;typedefstructreader//读者信息{charreader_num[10];//读者号charreader_name[10];//读者姓名intright;//已借数量BOborrow[Max];//已借书信息structreader*next;}RD;BK*h_book;RD*h_reader;voidLogin();intMenu();voidInit();voidInit_book();voidMenu_select();voidInsert_New_Book();voidFind_Book();voidadd_reader();voidPrint_reader();voidPrint_book();voidBorrow_Book();voidReturn_Book();voidSave();voidSave_Book();voidSave_Reader();voidLoad();voidLoad_Reader();voidLoad_Book();voidLogin(){system(“cls”);printf(“\n\n\n\t\t\t欢迎使用图书管理系统\n”);printf(“\n\n\t\t本程序分析者秦义学号:200907014122\n\n\n\n\n\n\n”);//以前是设计者xxxxprintf(“\n\n\n\t\t按任意键进入系统”);getch();system(“cls”);}intMenu()/*主菜单*/{intdm;printf(“\n\t\t图书管理系统主菜单\n”);printf(“=================================================\n”);printf(“☆\t0—-退出系统☆\n”);printf(“☆\t1—-采编入库☆\n”);printf(“☆\t2—-登记读者☆\n”);printf(“☆\t3—-借阅登记☆\n”);printf(“☆\t4—还书管理☆\n”);printf(“☆\t5—查询图书信息☆\n”);printf(“☆\t6—-查询读者信息☆\n”);printf(“=================================================\n”);printf(“请选择相应的代码:”);for(;;){scanf(“%d”,dm);if(dm6)printf(“\n错误!请重新输入:”);elsebreak;}returndm;}voidMenu_select()/*主菜单选择函数*/{for(;;){switch(Menu())/*功能选择*/{case0:system(“cls”);Save();printf(“\n\n\t文件保存成功!\n”);printf(“\n\n\t欢迎下次使用本系统!\n”);getch();exit(0);case1:Insert_New_Book();break;case2:add_reader();break;case3:Borrow_Book();break;case4:Return_Book();break;case5:Print_book();break;case6:Print_reader();break;default:printf(“\n错误!”);exit(0);}}}voidInit()/*初始化*/{Init_book();}voidInit_book()/*初始化图书信息*/{BK*p0;printf(“\n图书初始化开始,请输入图书信息..\n包括编号.书名.数量..\n”);p0=(BK*)malloc(sizeof(BK));h_book=p0;printf(“\n请输入图书信息:\n”);printf(“图书编号:”);/*输入图书编号(唯一)*/scanf(“%s”,p0-book_num);printf(“图书名称:”);/*输入图书名称*/scanf(“%s”,p0-book_name);printf(“图书作者:”);/*输入图书作者*/scanf(“%s”,p0-book_writer);printf(“图书数量:”);/*输入图书数量*/scanf(“%d”,p0-book_kc);p0-book_xy=p0-book_kc;/*开始时图书现有量和库存量相等*/p0-next=NULL;printf(“\n图书信息初始化完毕!按任意键继续下一步操作..\n”);getch();system(“cls”);}voidInsert_New_Book()/*新书入库*/{BK*p,*p0,*p1;p=p1=h_book;printf(“\n新书入库模块\n”);printf(“\n请输入新书信息..\n包括书号.书名.数量..\n”);p0=(BK*)malloc(sizeof(BK));printf(“图书编号:”);scanf(“%s”,p0-book_num);while(strcmp(p0-book_num,p1-book_num)!=0p1-next!=NULL)p1=p1-next;if(strcmp(p0-book_num,p1-book_num)==0)/*此处分两种情况,若图书编号存在,则直接进库,只须输入书的数量*/{printf(“\n此编号图书已存在!!直接入库!\n”);printf(“图书数量:”);scanf(“%d”,p0-book_kc);p1-book_kc+=p0-book_kc;p1-book_xy+=p0-book_kc;}else/*若不存在,则需要输入其他的信息,然后在进行插入操作*/{printf(“图书名称:”);scanf(“%s”,p0-book_name);printf(“图书作者:”);scanf(“%s”,p0-book_writer);printf(“图书数量:”);scanf(“%d”,p0-book_kc);while(p-next){p=p-next;}if(h_book==NULL)h_book=p0;/*此处分两种情况,链表中没有数据,head直接指向p0处*/elsep-next=p0;/*此处分两种情况,链表中有数据,链表中最后元素的next指向p0处*/p0-next=NULL;p0-book_xy=p0-book_kc;}printf(“\n新书入库完毕!按任意键继续下一步操作..\n”);getch();system(“cls”);}voidadd_reader()/*添加读者*/{RD*p0;inti;printf(“\n读者初始化开始,请输入读者信息..\n包括书证号.姓名..\n”);p0=(RD*)malloc(sizeof(RD));/*申请新结点存储空间*/h_reader=p0;printf(“\n请输入读者的信息:\n”);printf(“读者书证号:”);scanf(“%s”,p0-reader_num);printf(“读者姓名:”);scanf(“%s”,p0-reader_name);p0-right=0;for(i=0;iborrow[i].borrow_book_num,”0″);/*所借图书直接置为0(即没有借书)*/strcpy(p0-borrow[i].limit_date,”0″);}p0-next=NULL;printf(“\n读者信息初始化完毕!按任意键继续下一步操作..\n”);getch();system(“cls”);}voidBorrow_Book()/*借书模块*/{BK*p0;RD*p1;charbo_num[10],rea_num[10],lim_date[8];inti;p0=h_book;p1=h_reader;printf(“\n借书模块\n”);printf(“\n请输入借书的读者书证号:”);scanf(“%s”,rea_num);while(p1-next!=NULLstrcmp(rea_num,p1-reader_num)!=0)//查找读者号{p1=p1-next;}if(p1-next==NULLstrcmp(rea_num,p1-reader_num)!=0){printf(“\n此读者编号不存在!按任意键返回..\n”);gotoEND;}printf(“\n请输入你要借的书的编号:”);scanf(“%s”,bo_num);while(strcmp(bo_num,p0-book_num)!=0p0-next!=NULL)//查找书号{p0=p0-next;}if(p0-next==NULLstrcmp(bo_num,p0-book_num)!=0){printf(“\n此图书编号不存在!按任意键返回..\n”);}elseif(p0-book_xyright=Max){printf(“\n不好意思,借书数目已满!不能借书!\n按任意键返回.”);}elseif(strcmp(p1-borrow[0].borrow_book_num,”0″)!=0){for(i=0;iborrow[i].borrow_book_num,bo_num)==0){printf(“\n抱歉!同一个读者不能同借两本相同的书!\n”);}elseif(strcmp(p1-borrow[i].borrow_book_num,”0″)==0){printf(“\n请输入你要归还图书的日期:”);scanf(“%s”,lim_date);strcpy(p1-borrow[p1-right++].borrow_book_num,bo_num);strcpy(p1-borrow[p1-right-1].limit_date,lim_date);p0-book_xy–;printf(“\n读者编号%s借书完毕!按任意键继续下步操作..”,p1-reader_num);}}}else{printf(“\n请输入你要归还图书的日期:”);scanf(“%s”,lim_date);strcpy(p1-borrow[p1-right++].borrow_book_num,bo_num);strcpy(p1-borrow[p1-right-1].limit_date,lim_date);p0-book_xy–;printf(“\n读者编号%s借书完毕!按任意键继续下步操作..”,p1-reader_num);}END:getch();system(“cls”);}voidReturn_Book()/*还书模块*/{BK*p;RD*q;inti,j,find=0;charreturn_book_num[10],return_reader_num[10];p=h_book;q=h_reader;printf(“\n还书模块\n”);printf(“\n请输入要还书的读者编号:”);scanf(“%s”,return_reader_num);while(q-next!=NULLstrcmp(return_reader_num,q-reader_num)!=0)q=q-next;if(q-next==NULLstrcmp(return_reader_num,q-reader_num)!=0){find=2;printf(“\n此读者编号不存在!按任意键返回..\n”);gotoend;}printf(“\n请输入读者还书的编号:”);scanf(“%s”,return_book_num);while(p-next!=NULLstrcmp(return_book_num,p-book_num)!=0)p=p-next;if(p-next==NULLstrcmp(return_book_num,p-book_num)!=0){find=2;printf(“\n错误!此图书编号不存在!按任意键返回..\n”);gotoend;}for(i=0;iborrow[i].borrow_book_num)==0)/*如果此读者借了此书*/{find=1;for(j=i;jborrow[j].borrow_book_num,q-borrow[j+1].borrow_book_num);strcpy(q-borrow[j].limit_date,q-borrow[j+1].limit_date);}strcpy(q-borrow[Max-1].borrow_book_num,”0″);strcpy(q-borrow[Max-1].limit_date,”0″);p-book_xy++;q-right–;printf(“\n编号%s的读者还书完毕!按任意键继续下步操作..”,return_reader_num);}if(find==0)printf(“\n错误!此读者未借此书!按任意键返回..\n”);end:getch();system(“cls”);}voidPrint_book()/*查询图书信息*/{BK*p;p=h_book;printf(“\n图书信息如下:\n\n”);printf(“图书编号\t图书名称\t图书作者\t现有\t\t库存\n”);while(p!=NULL){printf(“%s\t\t%s\t\t%s\t\t%d\t\t%d\n”,p-book_num,p-book_name,p-book_writer,p-book_xy,p-book_kc);p=p-next;}printf(“\n图书信息打印完毕!按任意键继续下一步操作..”);getch();system(“cls”);}voidPrint_reader()/*查询读者信息*/{RD*p;inti;p=h_reader;printf(“\n读者信息如下:\n\n”);printf(“读者书证号\t\t读者姓名\n”);printf(“\n”);while(p!=NULL){printf(“\t%s\t\t%s”,p-reader_num,p-reader_name);for(i=0;iborrow[i].borrow_book_num);printf(“\t\t%s”,p-borrow[i].limit_date);}printf(“\n”);p=p-next;}printf(“\n读者信息打印完毕!按任意键继续下一步操作..”);getch();system(“cls”);}//文件模块voidSave()/*保存信息*/{Save_Reader();Save_Book();}voidSave_Reader()/*保存读者信息*/{FILE*fp_reader;RD*p,*p0;p=h_reader;if((fp_reader=fopen(“Reader.txt”,”wb”))==NULL)/*创建文件,进行保存*/{printf(“\n文件保存失败!\n请重新启动本系统\n”);exit(0);}while(p!=NULL){if(fwrite(p,sizeof(RD),1,fp_reader)!=1)/*将链表中的信息写入文件中*/printf(“\n写入文件失败!\n请重新启动本系统!\n”);p0=p;p=p-next;free(p0);/*释放所有结点*/}h_reader=NULL;fclose(fp_reader);/*关闭文件*/}voidSave_Book()/*保存图书信息*/{FILE*fp_book;/*创建文件型指针*/BK*p,*p0;p=h_book;if((fp_book=fopen(“Book.txt”,”wb”))==NULL)/*创建文件,进行保存*/{printf(“\n文件保存失败!\n请重新启动本系统\n”);exit(0);}while(p!=NULL){if(fwrite(p,sizeof(BK),1,fp_book)!=1)/*将链表中的信息写入文件中*/printf(“\n写入文件失败!\n请重新启动本系统!\n”);p0=p;p=p-next;free(p0);}h_book=NULL;fclose(fp_book);/*关闭文件*/}voidLoad()/*加载信息*/{Load_Reader();Load_Book();}voidLoad_Reader()/*加载读者信息*/{RD*p1,*p2,*p3;FILE*fp;/*创建文件型指针*/fp=fopen(“book.txt”,”rb”);/*打开文件*/p1=(RD*)malloc(sizeof(RD));fread(p1,sizeof(RD),1,fp);h_reader=p3=p2=p1;while(!feof(fp))/*读出信息,重新链入链表*/{p1=(RD*)malloc(sizeof(RD));fread(p1,sizeof(RD),1,fp);p2-next=p1;p3=p2;p2=p1;}p3-next=NULL;free(p1);fclose(fp);/*关闭文件*/}voidLoad_Book()/*加载图书信息*/{BK*p1,*p2,*p3;FILE*fp;/*创建文件型指针*/fp=fopen(“Book.txt”,”rb”);/*打开文件*/p1=(BK*)malloc(sizeof(BK));fread(p1,sizeof(BK),1,fp);h_book=p3=p2=p1;while(!feof(fp))/*读出信息,重新链入链表*/{p1=(BK*)malloc(sizeof(BK));fread(p1,sizeof(BK),1,fp);p2-next=p1;p3=p2;p2=p1;}p3-next=NULL;free(p1);fclose(fp);/*关闭文件*/}voidmain(){FILE*fp_book,*fp_reader;/*创建文件型指针*/Login();if((fp_book=fopen(“Book.txt”,”rb”))==NULL||(fp_reader=fopen(“Reader.txt”,”rb”))==NULL){Init();}elseLoad();Menu_select();/*调用主菜单*/}
寻C语言高手!!!
#include iostream.h
#include iomanip.h
#include stdlib.h
typedef struct
{
int no;
char name[5];
int number;
}Data;
typedef struct node
{
Data inform;
struct node* next;
}LNode,*LinkList;
void Onit_LinkList(LinkList L);
LinkList Creat_LinkList(LinkList L);
void Print_LinkList(LNode* L);
LinkList Search_Data(int No,LinkList L);
LinkList In_Data(Data d,LinkList L);
void Out_Data(int No,int number,LinkList L);
LinkList Sort_LinkList(LinkList L);
LNode* Compare_NO(LinkList L);
LNode* Mix(LinkList L);
int main()
{
int option;
LNode* L;
L=(LNode*)malloc(sizeof(LNode));
Onit_LinkList(L);
do
{
cout”\n———————————-“
“请选择相应的操作”
“——————————\n”
“1………录入货物信息”endl
“2………查找货物并输出相应信息”endl
“3………加入货物”endl
“4………提取货物”endl
“5………输出货物信息”endl
“0………退出仓库管理系统”endl;
cinoption;
switch(option)
{
case 0:
break;
case 1: L=Creat_LinkList(L);
break;
case 2:
{
int n1;
LinkList L1;
L1=(LNode*)malloc(sizeof(LNode));
cout”\n键入0退出查找。\n”;
do
{
cout”\n输入要查找的货号:”;
cinn1;
if(n1==0)break;
L1=Search_Data(n1, L);
if(L1==NULL)
{
cout”\n找不到指定的货物!!!!\n”;
}
else
{
cout”————————————\n”
“货物代号”setw(15)
“货物名称”setw(15)
“货物数量”endl
L1-inform.nosetw(18)
L1-inform.namesetw(18)
L1-inform.numberendl;
}
}while(n1);
break;
}
case 3:
{
LinkList L1;
L1=(LNode*)malloc(sizeof(LNode));
cout”键入0退出加入货物。\n”;
do
{
Data d;
cout”\n输入加入的货号:”;
cind.no;
L1=Search_Data(d.no,L);
if(d.no==0)break;
if(L1!=NULL)
{
cout”\n仓库中已存在要加入的货物,\n”
“只需输入加入的数量:”;
cind.number;
}
else
{
cout”\n输入货物名称及数量:”;
cind.named.number;
}
L=In_Data(d,L);
}while(1);
break;
}
case 4:
{
LinkList L1;
L1=(LNode*)malloc(sizeof(LNode));
cout”\n键入0退出提取货物。\n”;
do
{
int No,number;
cout”\n输入要提取货号:”;
cinNo;
if(No==0)break;
L1=Search_Data(No,L);
if(L1==NULL)
{
cout”该货物信息不存在!!!\n”;
continue;
}
cout”————————————\n”
“货物代号”setw(15)
“货物名称”setw(15)
“货物数量”endl
L1-inform.nosetw(18)
L1-inform.namesetw(18)
L1-inform.numberendl;
cout”\n输入提取货物的数量:”;
cinnumber;
Out_Data( No,number,L);
}while(1);
break;
}
case 5:
{
Print_LinkList(L);
break;
}
default:
cout”无效操作!!”;
break;
}
}while(option);
return 0;
}
void Onit_LinkList(LinkList L)
{
L-next=NULL;
}
LinkList Creat_LinkList(LinkList L)
{
LNode *s,*r=L;
cout”键入0退出录入。\n”;
do
{
cout”\n输入货号:”;
s=(LNode*)malloc(sizeof(LNode));
cins-inform.no;
if(s-inform.no==0)
{
free(s);
break;
}
if(r-inform.no==s-inform.no)
{
cout”\n货号重复!!!!\n”;
continue;
}
cout”\n输入货物名称及数量:”;
cins-inform.name
s-inform.number;
r-next=s;
r=s;
}while(1);
if(r!=NULL)r-next=NULL;
L=Sort_LinkList(L);
return L;
}
void Print_LinkList(LNode* L)
{
LNode *r=L;
if(L-next==NULL)cout”仓库中无货物\n”;
else
{
cout”————————————\n”
“货物代号”setw(15)
“货物名称”setw(15)
“货物数量”endl;
do
{
r=r-next;
coutr-inform.nosetw(18)
r-inform.namesetw(18)
r-inform.number
endl;
}while(r-next!=NULL);
}
}
LinkList Search_Data(int No,LinkList L)
{
LinkList r;
r=L-next;
while(r!=NULL r-inform.no!=No)
r=r-next;
return r;
}
LinkList In_Data(Data d,LinkList L)
{
LinkList L1;
L1=(LNode*)malloc(sizeof(LNode));
L1=Search_Data(d.no,L);
if(L1==NULL)
{
LNode *r,*p,*s;
r=L-next;
s=L;
p=(LNode*)malloc(sizeof(LNode));
p-inform.no=d.no;
for(int i=0;i6;i++)
{
p-inform.name[i]=d.name[i];
}
p-inform.number=d.number;
while(r-inform.nod.no)r=r-next;
while(s-next!=r)s=s-next;
p-next=s-next;
s-next=p;
}
else
L1-inform.number +=d.number;
return L;
}
LinkList Sort_LinkList(LinkList L)
{
LinkList new_list;
LNode *r,*p,*mix;
new_list=(LNode*)malloc(sizeof(LNode));
new_list-next=NULL;
r=new_list;
mix=Mix(L);
do
{
p=(LNode*)malloc(sizeof(LNode));
p=Compare_NO(L);
r-next=p;
r=p;
}while(p-inform.nomix-inform.no);
if(r!=NULL)r-next=NULL;
L=new_list;
return L;
}
void Out_Data(int No,int number,LinkList L)
{
LinkList L1;
L1=(LNode*)malloc(sizeof(LNode));
L1=Search_Data(No,L);
if(L1-inform.number=number)
L1-inform.number-=number;
else
{
char p;
cout”\n该货物库存不足,是否提取(Y/N):”;
cinp;
if(p==’y’||p==’Y’)
{
cout”\n货物”L1-inform.nameendl
“提取了”L1-inform.number
“件,还需”number-L1-inform.number
“件才能满足您的要求~~”endl;
L1-inform.number=0;
}
}
}
LNode* Compare_NO(LinkList L)
{
LNode *r,*p,*s;
s=(LNode*)malloc(sizeof(LNode));
p=L-next;
if(p-next==NULL)return p;
r=p-next;
while(r!=NULL)
{
if(p-inform.nor-inform.no)p=r;
r=r-next;
}
*s=*p;
while(L-next!=p)L=L-next;
if(p-next==NULL)L-next=NULL;
else L-next=p-next;
free(p);
return s;
}
LNode* Mix(LinkList L)
{
LNode *r,*p,*s;
s=(LNode*)malloc(sizeof(LNode));
p=L-next;
if(p-next==NULL)return p;
r=p-next;
while(r!=NULL)
{
if(p-inform.nor-inform.no)p=r;
r=r-next;
}
return p;
}
看看能用不
为什么老是提示Syntax error, insert “}” to complete ClassBody
语句需要写在方法里面,不能直接写在类里面。
修改如下:
public class TestEqual {
double salary=100;
String name=”tom”;//此处没有错
void fun() {
if(salary100name.equals(“tom”)) {
System.out.println(salary);
} else {
System.out.println(salary);
}
}
}
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。
1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。
20世纪60年代,美国ATT公司贝尔实验室(ATT Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏——Space Travel。他背着老板,找到了台空闲的机器——PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为——UNIX。
1970年,美国贝尔实验室的 Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。
1971年,同样酷爱Space Travel的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。
1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了UNIX。此时,编程的乐趣使他们已经完全忘记了那个”Space Travel”,一门心思地投入到了UNIX和C语言的开发中。随着UNIX的发展,C语言自身也在不断地完善。直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承Thompson和Ritchie之手的代码。
C++语言代码在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用。C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行。而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。
1977年,Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
C语言继续发展,在1982年,很多有识之士和美国国家标准协会为了使这个语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。委员会由硬件厂商,编译器及其他软件工具生产商,软件设计师,顾问,学术界人士,C语言作者和应用程序员组成。1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159—1989,简称“C89”,不过人们也习惯称其为“ANSI C”。C89在1990年被国际标准组织ISO(International Organization for Standardization)一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被简称为“C90”。1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称“C99”。在2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899: 2011,简称为“C11”。