版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计报告题目:图书登记管理程序需求分析:一:设计一个图书登记管理程序,其功能描述如下:1、管理功能:1.1录入某图书的信息(图书信息内容包括:ISBN号、书名、作者、出版社、出版日期、价格),即为添加该图书信息1.2给定图书ISBN编号,显示该图书信息1.2给定图书ISBN编号,修改该图书信息1.3给定图书ISBN编号,删除该图书信息2、检索功能:2.1给定某个字符串(关键字),查找并显示所有书名中包括该字符串的图书的信息2.2给定出版社名称,查找并显示该出版社的所有图书的信息2.3给定图书ISBN号,查找并显示该图书信息3、统计功能:3.1统计已登记的图书数量说明:该管理程序为图书
2、管理员所用,登录环节初设用户名为1,密码为1二、用况图图书登记管理系统用况图三、用况描述3.1用况名:管理图书信息 参与者:图书管理员 包含:包含用况添加图书信息、删除图书信息和修改图书信息 基本流:管理员选择管理界面菜单进入图书管理界面 后置条件:系统进入管理界面,3.2用况名:添加图书信息 包含:被用况管理图书信息所包含 基本流:管理员录入图书信息。包括ISBN号、书名、作者、出版社、出版日期、价格 前置条件:管理员成功进入了添加图书信息界面 后置条件:系统已成功保存录入的图书信息3.3用况名:删除图书信息 包含:被用况管理图书信息所包含 基本流:管理员输入ISBN号,系统则删除对应图书的
3、所有信息 前置条件:管理员输入正确的ISBN号 后置条件:系统删除了对应的图书信息3.4用况名:修改图书信息 包含:被用况管理图书信息所包含 基本流:管理员输入ISBN号,修改对应的图书的信息 前置条件:管理员输入正确的ISBN号 后置条件:系统已保存对应ISBN号图书修改后的信息3.5用户名:检索图书信息 参与者:图书管理员 基本流:管理员输入的图书名称关键字,系统根据所输入的关键字返回包含该字符的所有图书的信息,或者根据输入的出版社名称,返回该出版社出版的图书信息。管理员也可通过输入图书ISBN号,查询该图书信息 后置条件:返回图书信息或返回没有藏书信号3.6用户名:统计图书信息 参与者:
4、图书管理员 基本流:管理员选择书籍统计菜单,返回所有图书信息及图书数量 前置条件:进入统计图书界面 后置条件:返回图书数量四、函数描述1、addbook()/添加图书信息 FILE *fp; int i=0; char choice=y; fp=fopen(book.txt,a+); while(choice=y|choice=Y) p=(struct book*)malloc(sizeof(struct book); printf(请你输入第%d本书的ISBN编号n,+i); scanf(%s,p-bookISBN); printf(请你输入书名n); scanf(%s,p-bookname
5、); printf(请你输入书的作者n); scanf(%s,p-bookauthor); printf(请你输入出版社名称n); scanf(%s,p-bookpublisher); printf(请你输入出版日期n); scanf(%s,p-bookdate); printf(请你输入书的价格n); scanf(%s,p-bookprice); p-state=1; fwrite(p,sizeof(struct book),1,fp); printf(是否要输入下本书(Y/N)n); scanf(%s,&choice); fclose(fp); 2、delbook()/删除图书信息void
6、 delbook() /删除图书信息 FILE *fp,*fp2; int i; char bookISBN20,choice; fp=fopen(book.txt,r); fp2=fopen(bookl.txt,w); printf(请输入你要删除的图书ISBN号n); printf(如果你输入的图书ISBN号存在,系统自动删除该信息!如果不存在,系统不做任何改动n); scanf(%s,bookISBN); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookISBN,booki.bookISBN)!=0)
7、 fwrite(&booki,sizeof(struct book),1,fp2); fclose(fp); fclose(fp2); printf(是否真的要删除该书籍?删除后该书籍的所有信息将无法恢复(Y/N)n); scanf(%s,&choice); if(choice=y|choice=Y) fp=fopen(book.txt,w); fp2=fopen(bookl.txt,r); for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp); fclose
8、(fp); fclose(fp2); fp2=fopen(bookl.txt,w); fclose(fp2); printf(删除完毕,按任意键返回n); getch(); return; else printf(按任意键返回n); getch(); return; 3、changebook()/修改图书信息 FILE *fp,*fp2;char bookISBN20,choice; int i; fp=fopen(book.txt,r+); fp2=fopen(bookl.txt,w); p=(struct book*)malloc(sizeof(struct book); printf(请
9、你输入要修改的图书ISBN编号: ); scanf(%s,bookISBN); for(i=0;fread(p,sizeof(struct book),1,fp)!=0;i+) if(strcmp(p-bookISBN,bookISBN)!=0) fwrite(p,sizeof(struct book),1,fp2); else printf(你所要修改的书的资料如下,请选择你要修改的内容n); printf(ISBN号:%s 书名:%s 作者:%s 出版社:%s 出版日期:%s 价格:%sn,booki.bookISBN,booki.bookname,booki.bookauthor,boo
10、ki.bookpublisher,booki.bookdate,booki.bookprice); printf(1:修改书的ISBN号n); printf(2:修改书名n); printf(3:修改作者n); printf(4:修改出版社n); printf(5:修改出版日期n); printf(6:修改价格n); printf(请输入1-6:); scanf(%s,&choice); switch(choice) case 1: printf(请输入新的ISBN号n); scanf(%s,p-bookISBN); fwrite(p,sizeof(struct book),1,fp2); b
11、reak; case 2: printf(请输入新的书名n); scanf(%s,p-bookname); fwrite(p,sizeof(struct book),1,fp2); break; case 3: printf(请输入新的作者n); scanf(%s,p-bookauthor); fwrite(p,sizeof(struct book),1,fp2); break; case 4: printf(请输入新的出版社n); scanf(%s,p-bookpublisher); fwrite(p,sizeof(struct book),1,fp2); break; case 5: pr
12、intf(请输入新的出版日期n); scanf(%s,p-bookdate); fwrite(p,sizeof(struct book),1,fp2); break; case 6: printf(请输入新的价格n); scanf(%s,p-bookprice); fwrite(p,sizeof(struct book),1,fp2); break; default:printf(没有这样的操作);break; fclose(fp2); fp=fopen(book.txt,w); fp2=fopen(bookl.txt,r); for(i=0;fread(p,sizeof(struct boo
13、k),1,fp2)!=0;i+) fwrite(p,sizeof(struct book),1,fp); fclose(fp); fclose(fp2); printf(修改成功!n);getchar();printf(按任意键返回n); getchar(); 4、findbook()/按图书ISBN编号查询 FILE *fp; int i;char bookISBN20; p=(struct book*)malloc(sizeof(struct book);fp=fopen(book.txt,r); if(fp=NULL) putchar(n);printf(这个系统还没有书籍信息,请先添加
14、书籍信息n);printf( 按任意键返回n);getch();return;putchar(n);printf( 请输入你要查找的图书ISBN编号: ); scanf(%s,bookISBN); putchar(n);for(i=0;fread(p,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookISBN,p-bookISBN)=0) if(p-state=1) printf(这本书的详细资料是:图书ISBN编号:%s 书名:%s 作者:%s 出版社:%s 出版日期:%s 价格:%s 此书现在无人借阅n 按任意键返回n,p-bookISBN,p-
15、bookname,p-bookauthor,p-bookpublisher,p-bookdate,p-bookprice); else printf(这本书已经有人借出,按任意键返回n);fclose(fp);return ; fclose(fp); getch(); return; printf(没有你要查询的书籍,按任意键返回n); fclose(fp); getch();return; 5、findbook1()/根据出版社名称查询书目 FILE *fp; char bookpublisher20; int i;int count1=0;/标记存在要查找的书目数量,如果count1为0,
16、即没有要查询的书籍,则退出fp=fopen(book.txt,r); if(fp=NULL) printf(这个系统还没有书籍信息,请先添加书籍信息n);printf( 按任意键返回n);getch();return;printf(请输入你要查找的出版社名称: ); scanf(%s,bookpublisher); putchar(n);p=(struct book*)malloc(sizeof(struct book);for(i=0;fread(p,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookpublisher,p-bookpublishe
17、r)=0) count1+; printf(这本书的详细资料是:图书ISBN编号:%s 书名:%s 作者:%s 出版社:%s 出版日期:%s 价格:%s 此书现在无人借阅nn,p-bookISBN,p-bookname,p-bookauthor,p-bookpublisher,p-bookdate,p-bookprice); if(count1=0)printf(没有你要查询的书籍,按任意键返回n); elseprintf(按任意键返回n);fclose(fp); getch();return; 6、findbook2()/根据关键字查找图书 FILE *fp; char bookname20
18、; int i;int count=0;p=(struct book*)malloc(sizeof(struct book);fp=fopen(book.txt,r); if(fp=NULL) printf(这个系统还没有书籍信息,请先添加书籍信息n);printf( 按任意键返回n);getch();return;printf(请输入你要查找的关键字: ); scanf(%s,&bookname); putchar(n);for(i=0;fread(p,sizeof(struct book),1,fp)!=0;i+) char *a=strstr(p-bookname,bookname);
19、if(a!=NULL) count+; if(p-state=1) printf(这本书的详细资料是:图书ISBN编号:%s 书名:%s 作者:%s 出版社:%s 出版日期:%s 价格:%s 此书现在无人借阅nn ,p-bookISBN,p-bookname,p-bookauthor,p-bookpublisher,p-bookdate,p-bookprice); else printf(这本书已经有人借出n);fclose(fp);return; if(count=0)printf(没有你要查询的书籍,按任意键返回n); else printf(按任意键返回n);fclose(fp); ge
20、tch();return; 7、bookcount()/统计已登记图书数量并显示其图书信息 FILE *fp; int i,n=0; system(cls);printf(【统计图书数量】nn);fp=fopen(book.txt,r); if(fp=NULL) printf(这个系统还没有书籍信息,请先添加书籍信息n);printf( 按任意键返回上一级n);getch();return;for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) if(strlen(booki.bookISBN)!=0|strlen(booki.booknam
21、e)!=0|strlen(booki.bookauthor)!=0|strlen(booki.bookpublisher)!=0|strlen(booki.bookdate)!=0|strlen(booki.bookprice)!=0) printf(第%d本书:n,i+1); printf(nn,booki.bookISBN,booki.bookname,booki.bookauthor,booki.bookpublisher,booki.bookdate,booki.bookprice,booki.state); n=n+1; fclose(fp); printf(n);printf(统计
22、:目前共有 %d 本书(状态0指借出,1指在馆)nn,n); printf(按任意键返回上一级菜单n); getch();return;五、测试结果:5.1进入管理程序界面:5.2选择菜单2,进入管理界面,选择菜单1,添加图书5.3返回管理界面,选择菜单4,统计图书数量:(如下图,目前共3本)5.4返回管理界面,选择菜单2,删除图书信息:(如删除ISBN号为123的图书)进入统计界面,查看删除结果:(如图,ISBN号为123的书目已被删除)5.5返回管理界面,选择菜单3,修改图书信息:(例如选择ISBN号为234的图书,修改价格,原价为27元,新价格为30元)进入统计界面,查看修改后的信息:5
23、.6返回管理程序,进入图书检索界面5.7选择菜单1,按图书ISBN编号查询,如图:5.8选择菜单2,根据出版社名称查询:5.9选择菜单3,根据书目关键字查询书目:测试完毕,退出程序!六、个人总结 这个图书登记管理程序,我主要是用链表和文件的操作实现的,这不是一个图书馆管理系统,所以我觉得不需要读者借阅那部分,但是我有用一个变量state表明是否在馆,当然这个可有可无。一开始做的时候就先进行需求分析以及画用例图,所以思路比较清晰,很快就有了大致的框架,只是在实现功能的时候,关键字匹配用strstr函数的时候出现错误,后来通过请教同学方能解决,基本功能实现之后,就开始设计界面。总得来说,整个设计过
24、程中,让我更深地体会到实践的重要性,不尝试怎么知道能不能成功?未来还会遇到更多这样的体验机会,我想我会比以前更加重视培养自己的耐心,冷静地面对问题,耐心地调试运行以及修改错误。七:源代码:#include#include #include #include #include void search_system();/查询界面void manage_system();/管理界面void addbook();/添加图书信息void delbook();/删除图书信息void changebook();/修改图书信息void bookcount();/统计图书数量void findbook();/
25、按图书ISBN编号查询void findbook1();/根据出版社名称查询书目void findbook2();/根据关键字查询书目struct book/定义一个struct book类型的结构体数组,并定义一个指针变量p,它指向struct book结构体类型 char bookISBN20; char bookname20; char bookauthor20; char bookpublisher20;char bookdate20;char bookprice10;int state; book1000,*p;void main() char ch1; do system(cls)
26、; printf( 欢迎使用图书登记管理程序nn); printf( 请选择需要操作的类型nn); printf( |n); printf( |-1:-|n); printf( |-2:-|n); printf( |-0:-|n); printf( |nn); printf( 请输入0-2,其他输入非法!nn); printf( 选择菜单: ); scanf(%s,&ch1); putchar(n); switch(ch1) case 1:search_system();break; case 2:manage_system();break; case 0:break; default:pri
27、ntf(输入无效,按任意键返回);getch();break; while(ch1!=0); void search_system()/查询控制界面 char ch2;do system(cls); printf( -欢迎进入图书检索界面!-nn); printf( |n); printf( |-1:-|n); printf( |-2:-|n); printf( |-3:-|n); printf( |-0:-|n); printf( |nn); printf( 请输入0-2,其他输入非法!nn); printf( 选择菜单: ); scanf(%s,&ch2); putchar(n); swi
28、tch(ch2) case 1:findbook();break; case 2:findbook1();break; case 3:findbook2();break; case 0:break; default:printf(输入无效,按任意键返回);getch();break; while(ch2!=0); void manage_system()/管理控制界面char ch3; do system(cls); printf( *书目信息管理*n);printf( |n); printf( |-1:-|n); printf( |-2:-|n); printf( |-3:-|n); pri
29、ntf( |-4:-|n); printf( | |n); printf( |-0:-|n); printf( |n); printf( 请输入0-4,其他输入非法!nn); printf( 选择菜单: ); scanf(%s,&ch3); putchar(n); switch(ch3) case 1:addbook();break; case 2:delbook();break; case 3:changebook();break; case 4:bookcount();break; case 0:break; default:printf(无此操作,按任意键返回);getch();brea
30、k; while(ch3!=0); void addbook() /添加图书信息 FILE *fp; /定义一个FILE结构体变量,fp指向这个FILE结构体变量int i=0; char choice=y; fp=fopen(book.txt,a+);/打开一个book.txt指向的文件,文件操作方式为读写操作(a+),即为读写打开一个字符文件,进行追加 while(choice=y|choice=Y) /输入Y则判断是否进行添加图书信息 p=(struct book*)malloc(sizeof(struct book);/开辟一个结点,malloc返回的指针转换为指向struct boo
31、k类型数据的指针 printf( 请你输入第%d本书的ISBN编号: ,+i); scanf(%s,p-bookISBN); /输入第一成员 putchar(n); printf( 请你输入书名: ); scanf(%s,p-bookname); putchar(n); printf( 请你输入书的作者: ); scanf(%s,p-bookauthor); putchar(n); printf( 请你输入出版社名称: ); scanf(%s,p-bookpublisher); putchar(n); printf( 请你输入出版日期: ); scanf(%s,p-bookdate); put
32、char(n); printf( 请你输入书的价格: ); scanf(%s,p-bookprice); putchar(n); p-state=1; fwrite(p,sizeof(struct book),1,fp); /从p所代表的数组起始地址开始,输出长度为sizeof(struct book)的一个数据项,将它们写入由fp指定的文件中 printf( 是否要输入下本书(Y/N): ); scanf(%s,&choice); putchar(n); fclose(fp); /关闭文件void delbook() /删除图书信息 FILE *fp,*fp2; int i; char bo
33、okISBN20,choice; fp=fopen(book.txt,r);/打开fp指定的文件book.txt,文件操作为只读方式 fp2=fopen(bookl.txt,w); /打开fp2指定的文件book1.txt,文件操作为只写方式 printf(请输入你要删除的图书ISBN号n); printf(如果你输入的图书ISBN号存在,系统自动删除该信息!如果不存在,系统不做任何改动n); scanf(%s,bookISBN); for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+) /每次读一个数据项 if(strcmp(bookISB
34、N,booki.bookISBN)!=0) /比较字符串,判断是不是要删除的bookISBN fwrite(&booki,sizeof(struct book),1,fp2); /不是则写进fp2指定的文件中 fclose(fp); /关闭文件fclose(fp2);/关闭文件printf(是否真的要删除该书籍?删除后该书籍的所有信息将无法恢复(Y/N)n); scanf(%s,&choice); if(choice=y|choice=Y) /如果确定要删除此书,则将不包含要删除书目的文件全部更换到fp指定的文件中 fp=fopen(book.txt,w); fp2=fopen(bookl.t
35、xt,r); for(i=0;fread(&booki,sizeof(struct book),1,fp2)!=0;i+) fwrite(&booki,sizeof(struct book),1,fp); fclose(fp); fclose(fp2); fp2=fopen(bookl.txt,w); fclose(fp2); printf(删除完毕,按任意键返回n); getch(); return; else printf(按任意键返回n); getch(); return; void changebook() /修改图书信息 FILE *fp,*fp2;char bookISBN20,c
36、hoice; int i; fp=fopen(book.txt,r+);/读写方式打开 fp2=fopen(bookl.txt,w); /只写方式打开 p=(struct book*)malloc(sizeof(struct book); printf(请你输入要修改的图书ISBN编号: ); scanf(%s,bookISBN); for(i=0;fread(p,sizeof(struct book),1,fp)!=0;i+) /循环,将不需要修改的数据项写入fp2指定的文件中,修改后的也写进去,避免顺序错乱 if(strcmp(p-bookISBN,bookISBN)!=0) fwrite
37、(p,sizeof(struct book),1,fp2); /将不需要修改的书写入fp2指定的文件中 else printf(你所要修改的书的资料如下,请选择你要修改的内容n); printf(ISBN号:%s 书名:%s 作者:%s 出版社:%s 出版日期:%s 价格:%sn,booki.bookISBN,booki.bookname,booki.bookauthor,booki.bookpublisher,booki.bookdate,booki.bookprice); printf(1:修改书的ISBN号n); printf(2:修改书名n); printf(3:修改作者n); pri
38、ntf(4:修改出版社n); printf(5:修改出版日期n); printf(6:修改价格n); printf(请输入1-6:); scanf(%s,&choice); switch(choice) case 1: printf(请输入新的ISBN号n); scanf(%s,p-bookISBN); fwrite(p,sizeof(struct book),1,fp2); /修改后的数据项写入fp2指定的文件中 break; case 2: printf(请输入新的书名n); scanf(%s,p-bookname); fwrite(p,sizeof(struct book),1,fp2)
39、; break; case 3: printf(请输入新的作者n); scanf(%s,p-bookauthor); fwrite(p,sizeof(struct book),1,fp2); break; case 4: printf(请输入新的出版社n); scanf(%s,p-bookpublisher); fwrite(p,sizeof(struct book),1,fp2); break; case 5: printf(请输入新的出版日期n); scanf(%s,p-bookdate); fwrite(p,sizeof(struct book),1,fp2); break; case
40、6: printf(请输入新的价格n); scanf(%s,p-bookprice); fwrite(p,sizeof(struct book),1,fp2); break; default:printf(没有这样的操作);break; fclose(fp2); /关闭文件fp=fopen(book.txt,w); fp2=fopen(bookl.txt,r); for(i=0;fread(p,sizeof(struct book),1,fp2)!=0;i+) /将bookl.txt中的数据写入并覆盖book.txt中的数据 fwrite(p,sizeof(struct book),1,fp)
41、; fclose(fp); fclose(fp2); printf(修改成功!n);getchar();printf(按任意键返回n); getchar(); void bookcount() FILE *fp; int i,n=0; system(cls);printf(【统计图书数量】nn);fp=fopen(book.txt,r); if(fp=NULL) printf(这个系统还没有书籍信息,请先添加书籍信息n);printf( 按任意键返回上一级n);getch();return;for(i=0;fread(&booki,sizeof(struct book),1,fp)!=0;i+
42、) if(strlen(booki.bookISBN)!=0|strlen(booki.bookname)!=0|strlen(booki.bookauthor)!=0|strlen(booki.bookpublisher)!=0|strlen(booki.bookdate)!=0|strlen(booki.bookprice)!=0) printf(第%d本书:n,i+1); printf(nn,booki.bookISBN,booki.bookname,booki.bookauthor,booki.bookpublisher,booki.bookdate,booki.bookprice,b
43、ooki.state); n=n+1; fclose(fp); printf(n);printf(统计:目前共有 %d 本书(状态0指借出,1指在馆)nn,n); printf(按任意键返回上一级菜单n); getch();return;void findbook()/按图书ISBN编号查询 FILE *fp; int i;char bookISBN20; p=(struct book*)malloc(sizeof(struct book);fp=fopen(book.txt,r); if(fp=NULL) putchar(n);printf(这个系统还没有书籍信息,请先添加书籍信息n);pr
44、intf( 按任意键返回n);getch();return;putchar(n);printf( 请输入你要查找的图书ISBN编号: ); scanf(%s,bookISBN); putchar(n);for(i=0;fread(p,sizeof(struct book),1,fp)!=0;i+) if(strcmp(bookISBN,p-bookISBN)=0) if(p-state=1) printf(这本书的详细资料是:图书ISBN编号:%s 书名:%s 作者:%s 出版社:%s 出版日期:%s 价格:%s 此书现在无人借阅n 按任意键返回n,p-bookISBN,p-bookname,p-bookauthor,p-bookpublisher,p-bookdate,p-bookprice); else printf(这本书已经有人借出,按任意
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国网黑龙江省电力校园招聘(提前批)笔试模拟试题浓缩500题完整答案详解
- 2026秋季国家管网集团山东分公司高校毕业生招聘笔试备考题库(浓缩500题)带答案详解(a卷)
- 2026国网海南省电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题附答案详解(能力提升)
- 2026秋季国家管网集团山东分公司高校毕业生招聘笔试模拟试题(浓缩500题)附参考答案详解(a卷)
- 2026国家管网集团高校毕业生招聘笔试模拟试题(浓缩500题)及答案详解1套
- 2026秋季国家管网集团建设项目管理公司高校毕业生招聘考试备考试题(浓缩500题)及参考答案详解(轻巧夺冠)
- 国家管网集团湖南公司2026届秋季高校毕业生招聘考试备考题库(浓缩500题)及参考答案详解(达标题)
- 2026秋季国家管网集团西部管道公司高校毕业生招聘考试参考题库(浓缩500题)完整参考答案详解
- 2026国网海南省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题含答案详解(突破训练)
- 2026国家管网集团高校毕业生招聘考试备考题库(浓缩500题)及答案详解【夺冠系列】
- 2025年乡村振兴战略技能知识考试题与答案
- 《中小学教育惩戒规则(试行)》课件
- 2024年天津自然博物馆招聘制社会化工作人员考试真题
- 淋巴瘤PET-CT及PET-MR显像临床应用指南(2025版)解读课件
- 软件外包项目管理制度
- 护工服务的流程与质量管理
- 2025年护理文书书写规范
- 预防出生缺陷健康知识讲座
- 中国妊娠期糖尿病母儿共同管理指南2024版解读
- 《英文介绍杭州》课件
- 《理财为什么买黄金》课件
评论
0/150
提交评论