图书馆管理系统-数据结构大作业.doc
《图书馆管理系统-数据结构大作业.doc》由会员分享,可在线阅读,更多相关《图书馆管理系统-数据结构大作业.doc(31页珍藏版)》请在咨信网上搜索。
封面 数据结构 课程设计报告 图书管理信息系统 二〇一三年十二月 本程序是图书管理信息系统的实现,具体功能包括读者注册、登录、新书增添、图书查询、图书搜索、借还书、读存盘等。 程序流程如下: 图书管理信息系统 注册 登陆 读者注册 管理员注册 读者登录 管理员登录 入库 退出系统 个人信息查询 还书 借书 任务分析: 1. 新书入库: 新到书籍入库包含几方面的操作:首先查询该书名的书籍在图书馆信息中是否已经存在,若存在,则增加可借数量和总库存量,若不存在,则新增加概述信息,从界面输入书籍的编号(0~999999的长整型)、书名(字符串类型)、作者名(字符串类型)、出版社信息(字符串类型)、出版日期(整型)、该书的现存量(整型)、该书的总量(整型)。输入该信息之后,将该节点插入到书籍信息链表中去。该节点的插入位置根据查找,找到合适的位置插入,这样可以保证整个数据都是有序的,方便查找。 2. 读者注册: 没有账号和密码读者和管理员都不能登录系统,系统默认第一个注册系统的是系统管理员,借阅号为1000,权限是1,并输入密码000000及基本信息,并将所借书信息区全部置零。不是第一个注册的读者,借阅号从1000往后顺延,自己设置密码,权限为0,其余信息与管理员相同,因此登陆之后,管理员可以看到“入库”菜单选项,普通读者不能看到该选项。 3. 借书: 书籍借阅主要涉及存书库和读者信息库的更新。用户首先登陆系统,通过3种查询方式查询该书是否存在,并判断该书的剩余数量是否大于零,最后查询该读者是否已经借满书籍。若以上条件都满足,则将该书编号存入该读者的借阅信息区,将该读者的可借书数量减1,该存书的可借数量减1。 4. 还书: 读者登录后按书名号来归还所借书籍,若书名号正确并且确认归还该书籍,则从读者的借书区删除该书籍,读者的可借书数量加1,将该书的可借数量增加1,然后返回。 5. 信息查询: 信息查询分为读者信息查询和书籍信息查询,读者信息查询是在读者登录之后,可以显示本人的基本信息以及借书状况(所借书的本数、可借书本数以及所借书的信息),还可查询书籍信息,可根据书籍的编号来查找书籍、根据书名来查找书籍、根据作者名来查询书籍。查询到该书籍后显示是否借阅该书籍。 算法设计: 1、 查找 查找分按书名查找、按作者查找和按书号查找。按书名查找是采用遍历线性链表的方式,从首元结点开始向下遍历,检查输入的书名和已存的书名是否匹配,如果匹配,则将该书籍的指针返回,然后查找结束。若直到最后也没找到,则返回空。按作者查找则根据输入的作者名,从书籍链表的首元结点开始遍历,检查记录中的读者信息和输入的是否匹配,若找到匹配的,则输出该书籍信息,然后继续向下遍历,直到链表尾部,查找结束。按书号查找则是根据建立的索引表来查找记录。 2、 读者信息存储 读者信息采用线性单链表存储,设置头结点,头结点不存储数据,初始化时头结点->next设置为空,然后每从文件中读取一组数据,则将该数据存入新开辟的空间,链接到读者信息链表中,再将该数据的next置空。 3、 图书信息存储 书籍信息存储采用单链表存储,设置头结点,头结点不存储数据,头结点的next为空,初始化时,从文件中读取一个格式化的数据,则将该数据存入新开辟的空间,并将该节点链接到链表中去,将next置空。 程序主要函数: 1. 增加图书:void insert(book *bhead);输入书号,判断是否合法,然后输入图书信息。 流程图如下 进入 输入书号 N 书号合法 输入书籍信息 Y Y 结束输入 N 继续输入 2. 借书:void borrow(reader *temp, book *Bhead);通过书号、书名、作者三种查找方式查询借书,借书成功后,该书的可借书量减1,读者借书量减1。 流程图如下: N 进入查找 按书名查找 按书号查找 按作者查找 进入 输入书名 继续借书 退出 输入书号 输入作者 未找到 找到 借书 找到 借书成功 Y N Y Y N 3. 还书:void return book(book *bhead,reader *temp);输入书号,查询是否存在,然后还书,该书的可借书量加1,读者借书量加1。 流程图如下: 进入还书 输入书号 存在 还书 还书成功 退出 Y N Y N 详细程序模块 1、 头文件定义 头文件library.h定义了3个结构体:书籍结构体、读者结构体和索引表结构体, 书籍结构体的定义如下: typedef struct READER{ long number;//借阅号 char name[15];//读者姓名 char sex;//读者性别 char password[16];//读者的密码 int residue;//读者的剩余可借书籍数量 long borrowed[10];//读者已经借阅的书籍编号 int limit;//读者权限 struct READER *next; }reader; 读者结构体的定义如下: typedef struct BOOK{ long number;//书籍编号 char name[30];//书名 char author[30];//作者 char press[30];//出版社信息 long presstime;//出版日期 int exist;//在库数量 int total;//总数量 struct BOOK *next; }book; 索引表结构体的定义如下: typedef struct KEY{ long key; book *adress; struct KEY *next; }keynode; 头文件还包含一些系统头文件的声明: #include"stdio.h" #include"string.h" #include"conio.h" #include"windows.h" 还有一些函数的声明,用#ifndef、#endif来包含,以免重复包含。 2、 插入模块 插入模块分为书籍入库、注册、登陆3大块,分3个函数,声明如下: void insert(book*bhead);//入库 void reg(reader*head);//注册 reader* login(reader*rhead,book*bhead);//登陆 这3个函数分别实现新书入库、读者注册、登陆等功能,入库功能只有管理员才能调用,其余函数均可以调用。 3、 读写模块 此模块主要实现向文件写入、读取数,主要是2个文件:reader.txt、book.txt,分为4个函数:读者读写函数,书籍读写函数。定义如下: book* Bload();//书籍链表读取 reader*Rload();//读者链表读入 void Bsave(book*Bhead);//书籍链表写入 void Rsave(reader*Rhead,book*bhead);//读者链表写入 读者和书籍链表的初始化就由读取函数完成,若文件为空则返回空指针,若不为空,则将文件里面的信息写入到链表中,每读出一个数据,分配一个空间,将该信息输入。 4、 查找模块 查找模块分书籍查找模块、读者查找模块,书籍查找模块分线性链表查询、遍历查询、索引表查询,读者查询直接遍历读者链表,查找该读者,若存在,返回指针,不存在则返回NULL。查找模块的定义如下: book*S_name(book*head,char name[]);//按书籍名查找函数 void S_author(book*head);//按作者查找 keynode*initindex(book*head);//初始化建立索引表 book*S_number(long num,book*bhead);//按书号查找 reader*S_reader(reader*rhead,long num);//查找读者 5、 显示模块 根据给出的节点指针,显示该节点所包含的信息,显示分为读者显示和书籍信息显示,读者信息显示包含书籍信息显示,以便显示读者所借书的信息。这两个函数的声明如下: void showR(reader*tr,book*bhead);//显示读者信息函数 void showB(book*p);//显示书籍信息函数 这个模块还有2个小函数,用于将存入的性别’F’、’M’转化成汉字,将存的权限“1”、“0”转化成“管理员”、“读者”输出,这两个函数的定义如下: char*sc(char p) { if(p=='F'||p=='f') return "女"; else return "男"; } char*lc(int i) { if(i==1) return "管理员"; else return "读者"; } 程序运行结果 1.登录界面: 2.入库界面: 3.借书界面: 4.还书界面: 5.个人信息查询界面: 体会 这次的大作业让我复习并实际运用本学期学的数据结构的有关知识,例如数据的存储、排序、调用、查找等,加深了对数据结构和C语言的理解,总的来说,收获颇丰。 代码 头文件library.h #ifndef LIBRARY_INCLUDE #define LIBRARY_INCLUDE #include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> #include<windows.h> #include<time.h> typedef struct BOOK{ long number; char name[30]; char author[30]; char press[30]; long presstime; int exist; int total; struct BOOK *next; }book; typedef struct KEY{ long key; book *adress; struct KEY *next; }keynode; typedef struct READER{ long number; char name[15]; char sex; char password[16]; int residue; long borrowed[10][2]; int limit; struct READER *next; }reader; char *lc(int i); char *sc(char p); void showR(reader *tr,book *bhead); void showB(book *p); book *S_name(book *head,char name[]); void S_author(book *head); keynode *initindex(book *head); void delkey(keynode *keyhead); book *S_number(long num,book *bhead); reader *S_reader(reader *rhead,long num); book *Bload(); reader *Rload(); void Bsave(book *Bhead); void Rsave(reader *Rhead,book *bhead); void insert(book *bhead); void reg(reader *head); reader *login(reader *rhead,book *bhead); void borrow(reader *temp,book *Bhead); void returnbook(book *bhead,reader *temp); void style(); void intpsd(char *psd); void menu(struct BOOK *Bhead,reader *Rhead); void menu2(reader *temp,reader *rhead,book *bhead); long backtime(); #endif 借还书文件borrow_return.cpp #include"library.h" void borrow(reader *temp,book *Bhead) { style(); long num; int i; char t,k,name[30]; book *Bbook; getch(); system("cls"); while(1) { printf("\n ┏━━━━━━━━━━┓ "); printf("\n█━━━━━━━━━━━┫ 借书 ┣━━━━━━━━━━━█"); printf("\n ┗━━━━━━━━━━┛ "); printf("\n请输入您要查找借阅书籍的方式:"); printf("\n 1、按书号查找\n"); printf("\n 2、按作者查找\n"); printf("\n 3、按书名查找\n"); printf("\n 4、返回主菜单\n"); t=getch(); switch(t) { case '1': { printf("\n请输入您要查找的书籍编号:"); scanf("%d",&num); if((Bbook=S_number(num,Bhead))!=NULL) { showB(Bbook); printf("\n请问你是否要借阅该书籍?Y/N"); k=getch(); if(k=='Y'||k=='y') goto borrow; else break; } else break; } case '2': { S_author(Bhead); break; } case '3': { printf("\n请输如您要查找的书籍名:"); scanf("%s",name); if((Bbook=S_name(Bhead,name))!=NULL) { showB(Bbook); printf("\n请问你是否要借阅该书籍?Y/N"); k=getch(); if(k=='Y'||k=='y') goto borrow; else break; } else continue; break; } default: return; borrow: if(Bbook!=NULL&&temp->residue>0&&Bbook->exist>0) { temp->residue--; Bbook->exist--; for(i=0;i<10;i++) { if(temp->borrowed[i][0]==0) { temp->borrowed[i][0]=Bbook->number; temp->borrowed[i][1]=backtime(); break; } } printf("\n 借阅成功!"); } else if(!(temp->residue>0)) printf("\n您只能借阅10本书籍!"); else if(!(Bbook->exist>0)) printf("\n该书没有库存,请借阅其他书籍!"); printf("\n您要继续借阅书籍吗?Y/N"); t=getch(); if(t=='y'||t=='Y') continue; else break; } } } void returnbook(book *bhead,reader *temp) { long num; int i,j=0; char t; book *p; printf("\n ┏━━━━━━━━━━┓ "); printf("\n█━━━━━━━━━━━┫ 还书 ┣━━━━━━━━━━━█"); printf("\n ┗━━━━━━━━━━┛ "); printf("\n\n请输入您所还书的编号:"); scanf("%d",&num); for(i=0;i<10;i++) { if(num==temp->borrowed[i][0]) j=1; } p=S_number(num,bhead); if(p!=NULL&&j==1) { printf("\n┌────┬──────┬───────┬────┬───────┐"); printf("\n│书本编号│ 书籍名称 │ 出版社名称 │出版时间│ 作者 │"); printf("\n├────┼──────┼───────┼────┼───────┤"); printf("\n│%8d│%12s│%14s│%8d│%14s│",p->number,p->name,p->press,p->presstime,p->author); printf("\n└────┴──────┴───────┴────┴───────┘\n"); printf("\n确认归还该书籍?Y/N"); t=getch(); if(t=='Y'||t=='y') { p->exist++; temp->residue++; for(i=0;i<10;i++) { if(temp->borrowed[i][0]==num) { temp->borrowed[i][0]=0; temp->borrowed[i][1]=0; break; } } } else return; } else { printf("\n编号有误,请仔细检查!"); } } 新书入库insert.cpp #include "library.h" void insert(book *bhead) { style(); long t; book *temp1,*temp,*temp2; temp1=bhead->next; printf("\n ┏━━━━━━━━━━┓ "); printf("\n█━━━━━━━━━━━┫ 入库 ┣━━━━━━━━━━━█"); printf("\n ┗━━━━━━━━━━┛ "); while(1) { printf("\n请输入您给定书的编号(6位以内的正整数):"); scanf("%d",&t); if(t<=0||t>999999) { printf("\n您的编号不在处理范围(1~999999)之内!"); fflush(stdin); continue; } else { temp2=S_number(t,bhead); if(temp2==NULL) { break; } else { temp2->total++; temp2->exist++; printf("\n编号为%d的书已存在,入库成功!",t); return; } } } temp=(book*)malloc(sizeof(book)); temp->number=t; printf("\n请输入书名:"); scanf("%s",temp->name); printf("\n请输入本书作者:"); scanf("%s",temp->author); printf("\n请输入本书出版社:"); scanf("%s",temp->press); printf("\n请输入本书出版时间:"); scanf("%d",&temp->presstime); temp->next=NULL; temp->total=1; temp->exist=1; if(bhead->next==NULL) bhead->next=temp; else { while(temp1->next!=NULL&&temp1->number<temp->number) temp1=temp1->next; temp->next=temp1->next; temp1->next=temp; } printf("\n ┏━━━━━━━━━━┓ "); printf("\n█━━━━━━━━━━━┫ 入库成功 ┣━━━━━━━━━━━█"); printf("\n ┗━━━━━━━━━━┛ "); } void reg(reader *head) { style(); long i=1000; int j; char t1[16],t2[16]; reader *temp=head->next; reader *p; p=new(reader); printf("\n ┏━━━━━━━━━━┓ "); printf("\n█━━━━━━━━━━━┫ 注册 ┣━━━━━━━━━━━█"); printf("\n ┗━━━━━━━━━━┛ "); printf("\n 请输入姓名:"); scanf("%s",p->name); fflush(stdin); while(1) { printf("\n 请输入性别:\n M:男性:\n F:女性:"); p->sex=getchar(); if(p->sex=='F'||p->sex=='f'||p->sex=='M'||p->sex=='m') break; else printf("\n 阁下既非男,又非女,莫非来自泰国?"); } while(1) { while(1) { printf("\n 请输入您的密码:"); intpsd(t1); if(strlen(t1)<=4) printf("\n 您设置的密码过于简单,请重新设置:"); else break; } printf("\n 请确认您的密码:"); intpsd(t2); if(strcmp(t1,t2)==0) { strcpy(p->password,t1); break; } else printf("\n 您两次输入的密码不一致!"); } p->residue=10; p->next=NULL; for(j=0;j<10;j++) { p->borrowed[j][0]=0; p->borrowed[j][1]=0; } if(temp==NULL) { p->number=i; head->next=p; p->limit=1; } else { ++i; while(temp->next!=NULL) { ++i; temp=temp->next; } p->number=i; p->limit=0; temp->next=p; } showR(p,NULL); } reader *login(reader *rhead,book *bhead) { long num; char pass[16]; int i=5; reader *reader; style(); printf("\n ┏━━━━━━━━━━┓ "); printf("\n█━━━━━━━━━━━┫ 登录 ┣━━━━━━━━━━━█"); printf("\n ┗━━━━━━━━━━┛ "); while(1) { printf("\n 请输入您的借阅证号:"); scanf("%d",&num); if((reader=S_reader(rhead,num))==NULL) { printf("\n 没有找到您所在编号的读者."); getch(); return NULL; } else break; } while(i>0) { printf("\n 请输入密码:"); intpsd(pass); if(strcmp(pass,reader->password)==0) return reader; else { printf("\n 密码错误"); return NULL; } } } 文件读、写load_save.cpp #include "library.h" book *Bload() { FILE *p; book *Bhead=(book*)malloc(sizeof(book)); book *temp,*temp1; Bhead->next=NULL; if((p=fopen("book.txt","r"))==NULL) { printf("\n打开文件book.txt失败,请检查..."); return Bhead; } else { fgetc(p); if(!feof(p)) { printf("\n非空"); rewind(p); temp=(book*)malloc(sizeof(book)); fscanf(p,"%14d%12s%18s%8d%14s%4d%4d\n",&temp->number,temp->name,temp->press,&temp->presstime,temp->author,&temp->total,&temp->exist); temp->next=NULL; Bhead->next=temp; } while(!feof(p)) { temp1=(book*)malloc(sizeof(book)); fscanf(p,"%14d%12s%18s%8d%14s%4d%4d\n",&temp1->number,temp1->name,temp1->press,&temp1->presstime,temp1->author,&temp1->total,&temp1->exist); temp1->next=NULL; temp->next=temp1; temp=temp->next; } printf("\n书籍信息读取成功..."); return Bhead; } } reader *Rload() { FILE *p; int i; reader *temp,*temp1; reader *Rhead=(reader*)malloc(sizeof(reader)); Rhead->next=NULL; if((p=fopen("reader.txt","r"))==NULL) { printf("\n打开文件reader.txt失败,请检查"); return Rhead; } else { fgetc(p); if(!feof(p)) { rewind(p); temp=(reader*)malloc(sizeof(reader)); fscanf(p,"%12d%10s%3c%8d%2d%12s",&temp->number,temp->name,&temp->sex,&temp->residue,&temp->limit,temp->password); for(i=0;i<10;i++) { fscanf(p,"%6d",&temp->borrowed[i][0]); fscanf(p,"%10d",&temp->borrowed[i][1]); } temp->next=NULL; Rhead->next=temp; } while(!feof(p)) { printf("\a"); temp1=(reader*)malloc(sizeof(reader)); fread(temp1,sizeof(reader),1,p); temp1->next=NULL; temp->next=temp1; temp=temp->next; } printf("\n读者信息读取成功..."); return Rhead; } } void Bsave(book *Bhead) { FILE *p; book *temp=Bhead->next; if(temp==NULL) return; else { if((p=fopen("book.txt","w"))==NULL) printf("\n打开book.txt失败..."); while(temp!=NULL) { showB(temp); fprintf(p,"%14d%12s%14s%8d%14s%4d%4d\n",temp->number,temp->name,temp->press,temp->presstime,temp->author,temp->total,temp->exist); temp=temp->next; } printf("\n存储书籍成功..."); } } void Rsave(reader *Rhead,book *Bhead) { FILE *p; int i; reader *temp=Rhead->next; if(temp==NULL) return; else { if((p=fopen("reader.txt","w"))==NULL) printf("\n打开reader.txt失败..."); while(temp!=NULL) { Sleep(1000); showR(temp,Bhead); fprintf(p,"%12d%10s%3c%8d%2d%12s",temp->number,temp->name,temp->sex,temp->residue,temp->limit,temp->password); for(i=0;i<10;i++) { fprintf(p,"%6d",temp->borrowed[i][0]); fprintf(p,"%10d",temp->borrowed[i][1]); } temp=temp->next; } printf("\n存储读者成功..."); } } 图书搜索search.cpp #include"library.h" book *S_name(b- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 数据结构 作业
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文