旅游网站系统设计,制作网站大概多少钱,五金公司网站模板,苏州关键词优化seo之前参照网上的资料用链表实现了图书管理系统#xff0c;包括简单的增删改查功能以及借书还书功能#xff0c;我是VC6.0下写的一个控制台程序#xff0c;格式参照的网上的。在动手编码之前#xff0c;你需要理清自己的思路。首先#xff0c;需要确定图书馆里系统中主要有那…之前参照网上的资料用链表实现了图书管理系统包括简单的增删改查功能以及借书还书功能我是VC6.0下写的一个控制台程序格式参照的网上的。在动手编码之前你需要理清自己的思路。首先需要确定图书馆里系统中主要有那几个对象这里我写了学生对象和图书对象。不妨在纸上写出或画出它们主要包括哪些属性以及其可能的对应关系这里根据不同人的要求会有所不同。清楚这些之后就可以设计学生和图书的数据结构比如这里我用的结构体存储其信息。然后就需要考虑我想要哪些功能除了基本的增删改查之外我还想要哪些功能比如借书、还书我怎么表示这之间的关系可以通过图书的属性来记录该书的状态及是否被借走谁借了。主要就是这个思路图书的增删改查是通过链表实现的当然也可以用数组实现只不过那会浪费较多的空间。// MyLibManSys.cpp : Defines the entry point for the console application.//#include stdafx.h#include iostreamstruct book{int id;char title[20];char author[20];double price;char state[20];int student_id;char student_name[20];struct book* next;};struct student{int id;char name[20];char sex[10];char borrow_book[30];struct student* next;};void Print_Book(struct book *head_book);void Print_Student(struct student *head_student);struct book *Create_New_Book();/*创建新的图书库*/struct student *Create_New_Student();/*创建新的学生库*/struct book *Insert_Book(struct book *head_book,struct book *new_book);/*增加图书逐个添加*///void Insert_Book(struct book *head_book,struct book *new_book);/*增加图书逐个添加*///函数的参数是一个指针时不要在函数体内部改变指针所指的地址那样毫无作用需要修改的只能是指针所指向的内容。即应把指针当作常量struct student *Insert_Student(struct student *head_student,struct student *new_student);/*增加学生逐个添加*/struct book *Search_Book_ById(int id,struct book *head_book);struct book *Search_Book_ByTitle(char *title,struct book *head_book);struct book *Search_Book_ByPrice(double price_h,double price_l,struct book *head_book);//bool Delete_Book(int id,book* head_book);struct book* Delete_Book(int id,book* head_book);struct student *Search_Student(int id,struct student *head_student);struct student* Delete_Student(int id,student* head_student);void Lent_Book(int id,int student_id,struct book *head_book,struct student *head_student);void Back_Book(int id,int student_id,struct book *head_book,struct student *head_student);int main(){struct book* head_book,*p_book;struct student* head_student, *p_student;int choice, f, id, student_id;int m 1;char name[20],sex[10];char title[20];double price_h,price_l,price;char author[20];int size_booksizeof(struct book);int size_studentsizeof(struct student);printf(\n欢迎您第一次进入图书管理系统!\n\n);printf(-----[向导]-----[新建图书库]\n\n);printf(注意:当输入图书编号为0时,进入下一步.\n\n);head_bookCreate_New_Book();system(cls);//Print_Book(head_book);printf(\n欢迎您第一次进入图书管理系统!\n\n);printf(-----[向导]-----[新建会员库]\n\n);printf(注意:当输入会员学号为0时,进入主菜单.\n\n);head_studentCreate_New_Student();system(cls);//Print_Student(head_student);do{printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);printf(\n);printf(\t\t\t[1]:借书办理\t);printf( [6]:还书办理\n);printf(\n);printf(\t\t\t[2]:查询图书\t);printf( [7]:查询学生\n);printf(\t\t\t[3]:添加图书\t);printf( [8]:添加学生\n);printf(\t\t\t[4]:删除图书\t);printf( [9]:删除学生\n);printf(\t\t\t[5]:遍历图书\t);printf([10]:遍历学生\n\n);printf(\t\t\t〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n\n);printf(\t\t\t0:退出\n\n);printf(请选择0~10:);scanf(%d,choice);switch(choice){case 0:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);printf(\n谢谢您的使用!\n\n);break;case 1:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);printf(输入借出图书编号:\n);scanf(%d,id);printf(输入借入学生学号\n);scanf(%d,student_id);Lent_Book(id,student_id,head_book,head_student);break;case 2:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);printf(1.按编号查询\n\n);printf(2.按名称查询\n\n);printf(3.按价格区间查询\n\n);printf(0.返回主菜单\n\n);printf(请选择:);scanf(%d,f);if(f1){printf(请输入查询图书编号:);scanf(%d,id);printf(相关信息如下:\n\n);head_bookSearch_Book_ById(id,head_book);break;}else if(f2){getchar();printf(请输入查询图书名称:);gets(title);printf(相关信息如下:\n\n);head_bookSearch_Book_ByTitle(title,head_book);break;}else if(f3){printf(请输入最高价格:);scanf(%lf,price_h);printf(请输入最低价格:);scanf(%lf,price_l);printf(相关信息如下:\n\n);head_bookSearch_Book_ByPrice(price_h,price_l,head_book);break;}else if(f0){break;}break;case 3:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);printf(请输入图书编号:);scanf(%d,id);printf(请输入图书名称:);scanf(%s,title);printf(请输入作者名字:);scanf(%s,author);printf(请输入单价:);scanf(%lf,price);printf(\n);struct book *ptr_b;for(ptr_bhead_book;ptr_b;ptr_bptr_b-next){if(ptr_b-idid){printf(此编号图书已存在\n);m0;break;}}if(m){p_book(struct book *)malloc(size_book);strcpy(p_book-title,title);p_book-idid;p_book-priceprice;p_book-student_id-1;strcpy(p_book-author,author);strcpy(p_book-state,存在);strcpy(p_book-student_name,待定);// head_bookInsert_Book(head_book,p_book);Insert_Book(head_book,p_book);printf(\n添加图书成功!\n\n);}break;case 4:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);printf(输入删除图书编号:\n);scanf(%d,id);/*if(Delete_Book(id,head_book)){printf(\n删除图书成功!\n\n);}else{printf(删除失败);}*/head_book Delete_Book(id,head_book);break;case 5:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);Print_Book(head_book);break;case 6:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);printf(输入归还图书编号:\n);scanf(%d,id);printf(输入归还学生学号\n);scanf(%d,student_id);Back_Book(id,student_id,head_book,head_student);break;case 7:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);printf(请输入查询学生学号:);scanf(%d,id);printf(相关信息如下:\n\n);head_studentSearch_Student(id,head_student);break;case 8:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);printf(请输入学生编号:);scanf(%d,id);printf(请输入学生姓名:);scanf(%s,name);printf(请输入学生性别:);scanf(%s,sex);printf(\n);struct student *ptr_s;for(ptr_shead_student;ptr_s;ptr_sptr_s-next){if(ptr_s-idid){printf(此学号学生已存在\n);m0;break;}}if(m){p_student(struct student *)malloc(size_student);p_student-idid;strcpy(p_student-name,name);strcpy(p_student-sex,sex);strcpy(p_student-borrow_book,无);head_studentInsert_Student(head_student,p_student);printf(\n添加学生成功!\n\n);}break;case 9:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);printf(输入删除学生学号:\n);scanf(%d,id);head_student Delete_Student(id,head_student);break;case 10:system(cls);printf(\n\t\t\t〓〓〓〓〓图书管理系统〓〓〓〓〓\n\n);Print_Student(head_student);}}while(choice!0);return 0;}struct book *Create_New_Book(){struct book *head_book,*p_book;int id, tag;double price;char title[20],author[20];int size_booksizeof(struct book);head_bookNULL;printf(请输入图书编号:);scanf(%d,id);printf(请输入图书名称:);scanf(%s,title);printf(请输入作者名字:);scanf(%s,author);printf(请输入单价:);scanf(%lf,price);printf(\n);while(true){p_book(struct book *)malloc(size_book);strcpy(p_book-title,title);p_book-idid;p_book-priceprice;p_book-student_id-1;strcpy(p_book-author,author);strcpy(p_book-state,存在);strcpy(p_book-student_name,待定);head_bookInsert_Book(head_book,p_book);printf(是否继续继续输入1退出按任意键\n);scanf(%d,tag);if(tag!1){break;}printf(请输入图书编号:);scanf(%d,id);printf(请输入图书名称:);scanf(%s,title);printf(请输入作者名字:);scanf(%s,author);printf(请输入单价:);scanf(%lf,price);printf(\n);}return head_book;}struct student *Create_New_Student(){struct student *head_student,*p_student;int id, tag;char sex[10];char name[20];int size_studentsizeof(struct student);head_studentNULL;printf(请输入学生编号:);scanf(%d,id);printf(请输入学生姓名:);scanf(%s,name);printf(请输入学生性别:);scanf(%s,sex);printf(\n);while(true){p_student(struct student *)malloc(size_student);p_student-idid;strcpy(p_student-name,name);strcpy(p_student-sex,sex);strcpy(p_student-borrow_book,无);head_studentInsert_Student(head_student,p_student);printf(是否继续继续输入1退出按任意键\n);scanf(%d,tag);if(tag!1){break;}printf(请输入学生编号:);scanf(%d,id);printf(请输入学生姓名:);scanf(%s,name);printf(请输入学生性别:);scanf(%s,sex);printf(\n);}return head_student;}struct book *Insert_Book(struct book *head_book,struct book *new_book){struct book *p,*q;pqhead_book;if(head_bookNULL){ //单向链表为空的情况head_booknew_book;new_book-next NULL;}else{while((new_book-idp-id)(p-next!NULL)){q p;p p-next;}if(new_book-idp-id){new_book-nextp;if(head_bookp)head_booknew_book;elseq-next new_book;}else{p-nextnew_book;new_book-nextNULL;}}return head_book;};struct student *Insert_Student(struct student *head_student,struct student *new_student){struct student *p,*q;pqhead_student;if(head_studentNULL){ //单向链表为空的情况head_studentnew_student;new_student-next NULL;}else{while((new_student-idp-id)(p-next!NULL)){q p;p p-next;}if(new_student-idp-id){new_student-nextp;if(head_studentp)head_studentnew_student;elseq-next new_student;}else{p-nextnew_student;new_student-nextNULL;}}return head_student;}struct book *Search_Book_ById(int id,struct book *head_book){struct book *ptr_book head_book;int flag0;while(ptr_book!NULL){if(ptr_book-idid){printf(图书编号:%d\n,ptr_book-id);printf(图书名称:%s\n,ptr_book-title);printf(图书单价:%.2lf\n,ptr_book-price);printf(图书作者:%s\n,ptr_book-author);printf(存在状态:%s\n,ptr_book-state);printf(借书人姓名:%s\n,ptr_book-student_name);printf(学号:%d\n,ptr_book-student_id);printf(\n);flag;}if(flag0){break;}ptr_book ptr_book-next;}if(flag0){printf(暂无此图书信息!\n\n);}return head_book;};struct book *Search_Book_ByTitle(char *title,struct book *head_book){struct book *ptr_book head_book;int flag0;while(ptr_book!NULL){if(strcmp(ptr_book-title,title)0){printf(图书编号:%d\n,ptr_book-id);printf(图书名称:%s\n,ptr_book-title);printf(图书单价:%.2lf\n,ptr_book-price);printf(图书作者:%s\n,ptr_book-author);printf(存在状态:%s\n,ptr_book-state);printf(借书人姓名:%s\n,ptr_book-student_name);printf(学号:%d\n,ptr_book-student_id);printf(\n);flag;}if(flag0){break;}ptr_book ptr_book-next;}if(flag0){printf(暂无此图书信息!\n\n);}return head_book;};struct book *Search_Book_ByPrice(double price_h,double price_l,struct book *head_book){struct book *ptr_book head_book;int flag0;while(ptr_book!NULL){if(ptr_book-priceprice_lptr_book-priceprice_h){printf(图书编号:%d\n,ptr_book-id);printf(图书名称:%s\n,ptr_book-title);printf(图书单价:%.2lf\n,ptr_book-price);printf(图书作者:%s\n,ptr_book-author);printf(存在状态:%s\n,ptr_book-state);printf(借书人姓名:%s\n,ptr_book-student_name);printf(学号:%d\n,ptr_book-student_id);printf(\n);flag;}ptr_book ptr_book-next;}if(flag0){printf(暂无此图书信息!\n\n);}return head_book;}/*bool Delete_Book(int id,book* head_book){bool flagtrue;struct book *p,*q;pqhead_book;if(p-ididp-nextNULL){head_bookNULL;}while(p-id!idp-next!NULL){qp;pp-next;}if(p-idid){if(phead_book){head_bookp-next;}else{q-nextp-next;}free(p);}else{flagfalse;printf(找不到该书);}return flag;};*/struct book* Delete_Book(int id,book* head_book){bool flagtrue;struct book *p,*q;pqhead_book;while(p-id!idp-next!NULL){qp;pp-next;}if(p-idid){if(phead_book){head_bookp-next;}else{q-nextp-next;}free(p);printf(删除成功\n);}else{flagfalse;printf(找不到该书);}return head_book;};struct student* Delete_Student(int id,student* head_student){bool flagtrue;struct student *p,*q;pqhead_student;while(p-id!idp-next!NULL){qp;pp-next;}if(p-idid){if(phead_student){head_studentp-next;}else{q-nextp-next;}free(p);printf(删除成功\n);}else{flagfalse;printf(找不到该学生);}return head_student;};struct student *Search_Student(int id,struct student *head_student){struct student *ptr_student head_student;int flag0;while(ptr_student!NULL){if(ptr_student-idid){printf(学号:%d\n,ptr_student-id);printf(姓名:%s\n,ptr_student-name);printf(性别:%s\n,ptr_student-sex);printf(借书:%s\n,ptr_student-borrow_book);printf(\n);flag;}if(flag0){break;}ptr_student ptr_student-next;}if(flag0){printf(暂无此学生信息!\n\n);}return head_student;};void Lent_Book(int id,int student_id,struct book *head_book,struct student *head_student){struct book* phead_book;struct student* qhead_student;if(pNULL||qNULL){printf(书本或学生不存在\n);return;}while(p!NULLq!NULL){if(p-id!id){pp-next;}if(q-id!student_id){qq-next;}if(p-ididq-idstudent_id){break;}}if(pNULL||qNULL){printf(书本或学生不存在\n);return;}else{if(strcmp(p-state,存在)!0){printf(书已借出!抱歉!);return;}else{p-student_idstudent_id;strcpy(p-student_name,q-name);strcpy(q-borrow_book,p-title);strcpy(p-state,已借出);printf(已成功借出!/n);}}};void Back_Book(int id,int student_id,struct book *head_book,struct student *head_student){struct book* phead_book;struct student* qhead_student;if(pNULL||qNULL){printf(书本或学生不存在\n);return;}while(p!NULLq!NULL){if(p-id!id){pp-next;}if(q-id!student_id){qq-next;}if(p-ididq-idstudent_id){break;}}if(pNULL||qNULL){printf(书本或学生不存在\n);return;}else{if(strcmp(p-state,存在)0){printf(书未借出!抱歉!);return;}else{p-student_id-1;strcpy(p-student_name,待定);strcpy(q-borrow_book,无);strcpy(p-state,存在);printf(已成功归还!/n);}}};void Print_Book(struct book *head_book){struct book* phead_book;if(pNULL){printf(\n无记录\n\n);return;}printf(\n图书编号\t图书名称\t图书单价\t图书作者\n\n);while (p!NULL){printf(%d\t\t%s\t\t%.2lf\t\t%s\n\n,p-id,p-title,p-price,p-author);p p-next;}}void Print_Student(struct student *head_student){struct student* phead_student;if(pNULL){printf(\n无记录\n\n);return;}printf(\n学生姓名\t学生性别\t学生学号\n\n);while (p!NULL){printf(%s\t\t%s\t\t%d\n,p-name,p-sex,p-id);p p-next;}}代码可以直接运行这里我都是在控制台上直接显示的如果想从文件读取和向文件写入学生和图书信息只需要把相应的printf和scanf部分改为文件操作。这个是很久之前写的详细的函数以及功能讲解这里就不介绍了。欢迎大家讨论和指导。以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。