急求可用c++6.0输出的图书管理系统的课程设计

我们专业有课程设计这门c语言的后续课,需要做一个关于图书管理系统的程序设计。具体要求是这样的:功能描述:1.新进图书基本信息的输入。2.图书基本信息的查询。3.对撤消图书... 我们专业有课程设计这门c语言的后续课,需要做一个关于图书管理系统的程序设计。具体要求是这样的:
功能描述:
1.新进图书基本信息的输入。
2.图书基本信息的查询。
3.对撤消图书信息的删除。
4.为借书人办理注册。
5.办理借书手续(非注册会员不能借书)。
6.办理还书手续
信息描述:有关该系统基本信息的描述,如:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等
需要注意的是我们用的是c++6.0,别的不行。若有厉害的前辈级的大哥大姐,可不可以帮忙编一下啊,谢谢啊,希望在3天内能有消息。
题目中必须要运用到所学的如下知识:
(1) 数组、结构体或共用体
(2) 指针
(3) 选择结构程序设计、循环结构程序设计
(4) 自定义函数及其调用
(5) 简单的文件操作
展开
 我来答
百度网友2dff4fec8
2009-08-28 · TA获得超过180个赞
知道答主
回答量:38
采纳率:0%
帮助的人:27.9万
展开全部
我在我的电脑运行通过,这个程序是我们的一个作业,可能是你机子的问题
#include<iostream>
using namespace std;
struct book{
int number;
char name[20];
char addr[30];
char writer[12];
double price;
struct book *next;
};

typedef struct book node;
typedef node *link;

void printstart(){
cout<<"------------------------------------\n";
}

void Wrong(){
cout<<"\n=====>提示:输入错误!\n";
}

void Nofind(){
cout<<"\n=====>提示:没有找到相应书籍!\n";
}

void printc(){
cout<<" 编号\t书名\t出版社\t作者\t价格\n";
}

link inserte_link1(link head){
int number;
char *na=new char[12];
char *ad=new char[30];
char *writer=new char[12];
double price;
link pPre,p2,pBac;
cout<<"请输入";
printc();
cin>>number>>na>>ad>>writer>>price;
p2=new node;
p2->number=number;
strcpy(p2->name,na);
strcpy(p2->addr,ad);
strcpy(p2->writer,writer);
p2->price=price;
p2->next=NULL;
delete na;
if(p2->number>head->number){
p2->next=head;
head=p2;
return head;
}
else{
pPre=head;
pBac=pPre->next;
while(1){
if(p2->number>pBac->number&&p2->number<pPre->number){
p2->next=pBac;
pPre->next=p2;
return head;
}
else{
pPre=pBac;
pBac=pBac->next;
}
}
}
}

link create_link(link head){
head=new node;
head->number=-1;
head->next=NULL;
int m,i;
cout<<"请输入本次所创建的图书数:\n";
cin>>m;
for(i=0;i<m;i++)
head=inserte_link1(head);
return head;
}
int print_link(link head){
link p1;
p1=head;
if(p1->next==NULL){
printstart();
cout<<"此成绩表为空!\n";
printstart();
return 0;
}
printc();
while(p1->next){
cout<<p1->number<<'\t'<<p1->name<<'\t'<<p1->addr<<'\t'<<p1->writer<<'\t'<<p1->price<<endl;
p1=p1->next;
}
printstart();
return 0;
}
void menu(){
printf("\n\n\n");
printf("\t1载入书籍信息\t\t\t\t2删除书籍信息\n\n");
printf("\t3全显书籍信息\t\t\t\t4修改书籍信息\n\n");
printf("\t0退出系统\n\n");
printf("%*****************************************%");
printf("\n");
}
link delete_link(link head){
if(head==NULL){
cout<<"///////////////////////////\n";
cout<<"此成绩表为空!\n";
cout<<"///////////////////////////\n";
return NULL;
}
link p1,p2;
int num;
cout<<"请输入所要删除书籍的号码:\n";
cin>>num;
while(head!=NULL&&head->number==num){//所删除的在链头
p2=head;
head=head->next;
delete p2;
cout<<"已删除!\n";
}
p1=head;
p2=head->next;
while(p2!=NULL){
if(p2->number==num){
p1->next=p2->next;
delete p2;
cout<<"已删除!\n";
return head;
}
else
p1=p2;
p2=p1->next;
}
Nofind();
return head;
}
link modify_link(link head){
int num,number;
char *na=new char[20];
char *ad=new char[30];
char *writer=new char[12];
double price;
link p1;
p1=head;
cout<<"请输入要修改书籍的号码:\n";
cin>>num;
while(p1->next!=NULL){
if(p1->number==num){
cout<<"此书籍的信息为:\n";
printc();
cout<<p1->number<<'\t'<<p1->name<<'\t'<<p1->addr<<'\t'<<p1->writer<<'\t'<<p1->price<<endl;
cout<<"请输入";
printc();
cin>>number>>na>>ad>>writer>>price;
p1->number=number;
strcpy(p1->name,na);
strcpy(p1->addr,ad);
strcpy(p1->writer,writer);
p1->price=price;
cout<<"修改成功!\n";
return head;
}
p1=p1->next;
}
Nofind();
return head;
}
void main(){
int t;
link head=NULL;
int choice;
do{
menu();
cout<<"请输入操作的序号!\n";
cin>>choice;
switch(choice){
case 1:
head=create_link(head);
break;
case 2:
head=delete_link(head);
break;
case 3:
t=print_link(head);
break;
case 4:
head=modify_link(head);
break;
case 0:
cout<<"谢谢使用!\n";
exit(0);
default:
Wrong();
break;
}
}while(1);
}
百度网友e1b9539c0c
2009-08-26 · TA获得超过734个赞
知道大有可为答主
回答量:2241
采纳率:33%
帮助的人:802万
展开全部
可以联系看ID
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式