课程设计要用用C语言编写的图书管管理系统.doc
课程设计要用用C语言编写的图书管管理系统 高手们帮帮忙发到:990705217 谢谢啦 要求如下 20116-20 09:14 提问者:青石灬小巷 | 悬赏分:30 | 浏览次数:124次十、图书管理系统1、需求分析图书管理信息采用文件保存,因而要提供文件的输入输出操作;要实现对图书基本信息的查询,则要提供查找操作(提供按书名、作者名查询两种查询方式)和显示操作;要实现对撤销图书信息的删除则要提供文件记录的删除操作;办理借书或还书手续需要提供修改操作;另外还要提供键盘式选择菜单以实现功能选择。2、总体设计整个系统被设计为数据输入模块、数据查询模块、数据删除模块和数据修改模块。3、详细设计数据结构采用结构体,设计图书信息结构体:Struct bookManageInfo Char bookName20; /图书名称 Char bookCode20; /图书编号 Float price; /图书价格 Char author10; /作者 Int state; /存在状态,0代表可以出借,1代表已经借出 Char borrowerName10; /借书人姓名 Int sex; /借书人性别,0代表女,1代表男 Char stuNo10; /借书人学号bookMInfo;(1)数据输入模块把图书基本信息写入图书信息文件。(2)数据查询模块通过菜单选择查询方式,提供按书名查询和按作者名查询两种查询方式。采用基本查找算法即可。 (3)数据删除模块 通过菜单选择删除操作,由于C语言没有提供直接删除文件记录的函数,因而需要自己实现:读记录,判断是否要删除(与输入的要删除的记录比较),如果要删除,则舍弃;否则重新写入文件。 (4)数据修改模块 办理借书手续时,先要在文件中查找要借的书的存在状态,若可以出借,则允许借出,把借书人姓名、性别和学号添加到该书的记录中,并把存在状态改为已经借出;否则,显示“抱歉,该书已借出”。办理还书手续时,在文件中查找该书的记录,然后把存在状态改为允许出借,把借书人姓名、性别和学号删除。具体修改操作可以参考删除操作.20116-20 21:26 最佳答案 给个简单的框架参考吧 加油 祝早点完成include<stdio。h#include<string。h>include stdlib。hdefine N 10struct majors(主要结构)int num;char majorsname12;char teachername15;char class20;int a,b,c;double pjf;;void main()void shuru(struct majors stuN);void chuli(struct majors stuN);void xiugai(struct majors stuN);void shuchu(struct majors stuN);void paixu(struct majors stuN);void chaxun(struct majors stuN);void tongj(struct majors stuN);double pjf(struct majors stuN);void bjgkm(struct majors stuN);struct majors stuN; int i=0,j=0,p=0,u=0;char str70500;FILE *fp1,fp;if(fp=fopen("课程信息.txt",”r"))=NULL)printf("注意:为免出错,第一次使用本程序,请选1 手动输入课程信息. n");else for(i=1;i<=N;i+) if(i=1) fp=fopen("课程信息.txt”,”r”); fscanf(fp,”%d%s%ssddd",stui。num,stui.name,stui。teachername,stui.clas,stui。a,&stui。b,stui。c); if(1=N) fclose(fp); int choice;do for(i=0;i<18;i+) printf(”*”);printf(”主菜单");for(j=0;j<18;j+) printf("*”);printf("n"); printf(”请选择:1 课程信息输入 2课程信息修改与删除 3 课程信息查询 4 信息输出 5 退出n"); for(i=0;i<20;i+) printf(”*"); printf("*n”); scanf(”d",choice);switch(choice) case 1 : shuru(stu) ; break; case 2 : xiugai(stu) ; break; case 3 : chuli(stu) ; break; case 4 : shuchu(stu) ; break; case 5 : break; default : puts("error”); return; while(choice!=5);fp1=fopen("课程信息。txt","w”);for(i=1;i<=N;i+)fprintf(fp1,”d ”,stui.num);fprintf(fp1,”%s ",stui.name); fprintf(fp1,”%s ”,stui。teachername);fprintf(fp1,"s ",stui.clas);fprintf(fp1,"%d ”,stui.a);fprintf(fp1,"%d ”,stui。b);fprintf(fp1,”%d ",stui.c);fprintf(fp1,”n”);puts("信息已保存在“课程信息。txt”中 Thank you!!");fclose(fp1);void shuru(struct majors stuN)void chuli(struct majors stuN)void xiugai(struct majors stuN)void shuchu(struct majors stuN)void paixu(struct majors stuN)void chaxun(struct majors stuN)void tongj(struct majors stuN)/double pjf(struct majors stuN)/void bjgkm(struct majors stuN)追问你给的是管理课程信息的 我要的是图书馆管理的啊 谢谢啊回答自己修改下吧 结构很相似的.。附"删除操作“的代码参考:void sanchu(struct student stuN) int i,n,def,j=0,k=0,h=0,et=0; char mmm12; do if(et!=0) printf("请选择:1。继续 2。返回 n”); scanf(”%d",&def); if(def=2) break; printf(”请选择:1。删除单个 2。删除全部 3。返回n”); scanf("d",def); if(def=3) return; switch(def) case 1 : printf(”请选择删除方式:1。按姓名删除 2。按电话号码删除:n”); scanf(”%d",&i);if(i=2) printf(”请输入电话号码:”); scanf(”d”,&n); for(i=1;i<=N;i+) if(stui。num=n) break; else printf(”请输入联系人姓名:"); scanf(”%s",mmm); for(i=1;i<=N;i+) if(strcmp(stui.name,mmm)=0) break; if(i=N+1) printf(”未找到要删除的对象!n"); else printf(”已删除n"); for(i=i;i=N;i+) stui.num=stui+1。num;strcpy(stui.name,stui+1.name); strcpy(stui。youx,stui+1。youx); stui。a=stui+1。a; break; case 2 : for(j=1;j=N;j+) for(i=1;i<=N;i+) stui。num=stui+1。num; strcpy(stui。name,stui+1。name); strcpy(stui。youx,stui+1。youx); stui。a=stui+1.a; printf(”已全部删除n”); break ; default : break; while(def!=3);