当前位置:首页 >> 工学 >> C语言程序设计----图书信息管理系统

C语言程序设计----图书信息管理系统



《程序设计基础(C)》课程设计报告

图书信息管理系统
学 生 姓 名: 朱斌 学 班 号: 201211354 级: 电力工程与管理 1201 班

指 导 老 师: 邓伟华 日 期: 2013.07.05

兰州交通大学新能源与动力工程学院

C 语言程序设计

C 语言课程设计报告

一、设计目标................................................................................................................................... 1

二、总体设计................................................................................................................................... 2

三、详细设计................................................................................................................................... 3

五、分析及结论............................................................................................. 错误!未定义书签。

六、参考文献................................................................................................................................. 11

七、附录......................................................................................................................................... 11

源程序清单............................................................................................................................. 11

一、设计目标 第 1 页 共 29 页

C 语言程序设计
图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。 设计的图书信息管理系统,应当具备能提供以下功能: 1、系统以菜单方式工作 2、图书信息录入功能--输入 3、图书信息浏览功能--输出 4、图书信息查询功能--算法(查询方式:1 按书名查询.2.按作者名查询) 5、图书信息的删除与修改

二、总体设计 1.程序设计组成框图 图书信息 管理系统

系统登录 模块

菜单选择 模块

图书信息 录入模块

图书信息 浏览模块

图书信息 查询模块

图书信息 修改模块

设计: 朱斌 2.程序流程图
`

设计: 周勇

设计: 闫鹏

设计: 张旭东

设计: 杨国峥

设计: 王文模

第 2 页 共 29 页

C 语言程序设计 三、详细设计 1、系统登录模块(f1()) ——本函数由 朱 斌 设计

1)函数的功能: 验证管理员信息,进入菜单功能界面 2)函数的入口: 从 main()的 switch()结构中进入,即 choice 的值为 1 时进入函数,然 后提示用户通过键盘对输入管理员账户及密码。 3)函数调用关系:被主函数调用。由 switch()开关结构中进入,并在文中无返回值的空值 void 函数。 4)函数的出口: 当验证失败, 提示重新输入。 当验证成功, 通过“ENTER”键, 跳出 switch() 开关函数,进入菜单功能模块,继续执行选择结构。

程序流程图:

图书登录系统界面 2.菜单功 能 选择模块(f2()) ——本函数由 周 勇 设计

1) 函数功能: 主要作用是提示用户操作, 体现模块化思想, 主要是显示出菜单让用户选择要进行的任务。

第 3 页 共 29 页

C 语言程序设计
2)函数入口:从主函数 void 中的 adm_servelist()进入函数,这是直接被主函数 void()调用的。 3)函数调用关系:被主函数调用。并在文中无返回值的空值 void 函数。 4)函数的出口:执行完所有的 printf()函数后自动退出该函数。

图书管理 系统

添加图书

删除图书

信息浏览

信息查询

修改图书

创建图书

退出管理 系统

开始

输入 n,判断 是否 0—6? Y

N

输入 n,调用各个模块的 函数

结束 主函数的流程图

菜单界面 3.修改与删除模块(f3())
图书删除

——本函数由 王文模 设计

第 4 页 共 29 页

C 语言程序设计
1)函数功能:利用 while 循环和 if 语句和 scanf getchar search change del 函数,完成对图书信息(分类 名 出版单位 出版时间 价格)的修改和删除 2)函数入口:从主函数 main()中的 system("cls"); /*清屏命令*/menu(); /*菜单函数提示用户怎样选择*/进入函 数,这是直接被主函数 main()调用的。 3)调用关系:void change(int x)是改变图书信息,它里面又调用了 book_search(); 4)函数出口:执行完所有的 printf()函数后自动退出该函数。 程序框架图

图书修改
该模块实现按照用户需求,将需要修改的图书名输入,进行 for 循环查找是否有此书,若无,则显示未找到, 退出,若有,则显示输入新的图书信息,开始输入修改的信息,进行 for 循环开始录入,替换原文件信息结 束显示“修改成功”

图书修改界面

第 5 页 共 29 页

C 语言程序设计 图书删除界面
4.图书信息浏览(f4())

——本函数由 张旭东 设计

1)函数的功能:

显示图书的信息(编号·价格·作者·出版单位·出版时间·类别)

2)函数的入口: 从主函数 main()中的 system("cls"); /*清屏命令*/menu(); /*菜单函数提示用户怎样 选择04信息浏览/进入函数,这是直接被主函数 main()调用的。

3)函数调用关系:被主函数调用。并在文中无返回值的空值 void 函数。 4)函数的出口:执行完所有的 printf()函数后自动退出该函数。

框架图

图书浏览流程图

第 6 页 共 29 页

C 语言程序设计

图书浏览

5. 图书查询
1)函数的功能:

——本函数由杨国峥设计
按着书名查询与作者名查询,输出排序结果。

2)函数的入口: 程序从 main()的 while()开关结构中进入,即 choice 的值为 4 时进入该函数,开始进入该 函数, 进入函数后, 首先打开文件, 然后利用 “printf ” () 选择按书名查询与作者名查询, flag=1 或 flag=2 若 则有此书。若 flag=0 则无此书,并退出查询。 3)函数调用关系:被主函数调用。由 while()开关结构中进入,并在文中无返回值的空值 void 函数。 4)函数的出口: 当输出查询结果用 printf()标准输出到屏幕上,然后结束该函数,而执行主函数 main()

中“break;”跳出 while()开关函数,继续执行 if 选择结构。

图书信息查询

按书名查询(1)

EXIT(0)

按作者名查询(2)

04 信息查询
输入 a,判断 a 是否为 0~2?

a=0,退出回到主菜单

a=1,则调用 search-by-name 按书名 查询

a=2,则调用 search-by-writer 按 作者名查询

输入书名,若有此书则输出此书信息,若 没有,则输出 file open error!!

输入作者名,若有此书则输出此书 信息若没有,则输出 file open error

没有,则输出 file open error!!

第 7 页 共 29 页

C 语言程序设计

按图书名查询

按作者名查询 6.输入模块
图书名、作者名、出版社、类别、出版时间、价格) 。 2) 函数的入口:从主函数 main()中的 system("cls"); /*清屏命令*/menu(); /*菜单函数提示用户怎样选择*/进 入函数,这是直接被主函数 main()调用的。 3) 函数调用关系:被主函数调用。并在文中无返回值的空值 void 函数。 4) 函数的出口: :执行完所有的 printf()函数后自动退出该函数。 程序框架图:

——本函数由 闫 鹏 设计

1) 函数的功能:利用 for 循环语句和 scanf、gets、getchar 函数完成对结构数组的输入,存放图书信息(图书编号、

录入 数据
请输入 图书编 号 请输入 图书名 请输入 作者名 请输入 出版社 请输入 类别 请输入 出版时 请输入 价格

间第 8 页 共 29 页

C 语言程序设计

图书信息输入
四、调试与测试 调试方法:打开 Microsoft Visual C++ 6.0,先将各个功能函数的的内容清空,只保留主函数 main(),然后编译检验 main()函数中是否有错,如果没有错误,再连接、运行。确认 main() 函数一切无误后,然后加入功能函数 menu()函数与 f1()函数,由于 menu()函数比较简单,所 以与 f1()函数一起进行调试,f1()函数中主要注意读取文件,与写入文件,这都是二进制的 形式。若 menu()函数与 f1()函数编译、连接、运行没问题,继续加入 f2()函数,就这样的方 法依次检查调试 f3()函数、f4()函数。当所有的功能函数都加上且正确无误时,就可以进入 下一个环节—程序的测试。 测试方法: 运行程序,然后进入销售管理系统的界面,在这里需要做的就是把自己当成一 个公司的程序使用者,来对该程序进行使用,看该程序有哪些方面用着不够爽,把这些问题 依次整理出来,再对源程序进行修改,在这个过程中也需要对程序进行调试,不过不必将各 个功能函数的的内容清空再进行如上述的调试方法, 而是, 改一部份运行一次, 看是否有无。 如 f1()函数有误,则先修改 f1()函数,一块一块的进行修改,就是遵循 C 语言的模块化 设计原理,若所有的都改过来了,且运行无误,那就大功告成了。 在调试中遇到的问题: 在调试过程中, 我们遇到诸多小问题, 但都在我们共同讨论后解决了。 1、问题:标点符号在输入的时候,使用的是中文输入法,这种错误一般都难以发现,让修

第 9 页 共 29 页

C 语言程序设计
改的时候找不到目标。 解决方法:用“替换” 。如果程序中的 error 很多,不管 error 是什么,先将标点替换成英文 的标点。 2、问题:调试时,有的时候编译后没什么问题,就是在点击连接 link 时出现了错误。而且, 这种错误让我们不知道怎么修改。但是我们的程序的确正确。 解决方法: 将源程序保存 (save)然后关掉 Microsoft Visual C++ 6.0, , 重新启动 Microsoft Visual C++ 6.0, 五、分析及结论 A、在设计中我们实现了设计目标的所有内容 即:1、系统以菜单方式工作 2、图书信息录入功能--输入 3、图书信息浏览功能--输出 4、图书信息查询功能--算法(查询方式:1按书名查询.2.按作者名查询) 5、图书信息的删除与修改 B、其中遇到了以下问题: 不能清晰的建立设计模块,不会修改出现的错误等等。 解决方案:向同学寻求帮助,向他们学习,最终通过自己努力建立了模块。不可避免地程序 中肯定依然存在者某些问题在应用中不断提高自己的能力,攻克遇到的困难。 C、该程序的不足:函数较复杂,界面不美观。 D、实践心得 经过一个多星期的编译原理课程设计,在我们一组的共同的努力下,顺利完成该课程设 计。 通过该课程设计, 掌握了编译程序工作的基本过程及其各阶段的基本任务, 熟悉了编译 程序总流程框图, 了解了编译程序的生成过程及其相关的技术, 对课本上的知识也有了更深 的理解。老师常说,课本上的知识是机械的,表面的,要学会去运用,要举一反三。现在终 于深刻的了解了这句话。经过这次的课程设计,发现书本上很深奥的知识变的更为简单,同 样,对 C 程序原理也了有更深的理解。知道和理解了该理论在计算机中是怎样执行的, 对 该理论在实践中的应用有深刻的理解 。 通过该课程设计, 把死板的课本知识变得生动有趣, 激发了学习的积极性。 能够把课堂上学的知识通过自己设计的程序表示出来, 加深了对理论 知识的理解。 课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意指针,将不必要的 命令去除。除了课堂外,课程设计是最能学到东西的,最考验人的。在做课程设计的这段时

第 10 页 共 29 页

C 语言程序设计
间,时刻都感到自己学的知识有多么的贫瘠。经过这次课程设计,让我们对 C++这门语言有 了更深的认识,操作能力有了提高要想是写出的代码能运行,需要耐心细心,毅力以及充沛 的体力。只有经过多次编辑,多次编译,再多次运行,才能编写出更好的程序,有时候需要 多次的更正才能达到所要的运行结果。 在编写本程序时, 在网上寻找的参考程序起到了很大 的启发与参考作用。

六、参考文献
1、 语言程序设计.谭浩强版》 《C 2、 语言上机指导》 《C 3、 《Microsoft Visual C++ 6.0 指南》 4、附:在编写本程序时,在网上寻找的参考程序起到了很大的启发与参考作用。

七、附录 源程序清单

源程序清单
#include<stdio.h> #include<stdlib.h> #include<string.h> struct book{//声明 BOOK 类的所有变量 int num; char bname[50]; char wname[20]; char press[50]; char sort[50]; int time; float price; struct book *next; }; struct book *creatbook();//创建链表 struct book *addbook(struct book *head);//添加图书

第 11 页 共 29 页

C 语言程序设计
int yanzheng(struct book *head,int m);//验证新添加的图书编码是否已存在 void deletebook(struct book *head);//删除图书 void fprint(struct book *head);//将链表写入文件 struct book *load();//从文件中读取信息并建成链表 void print_book(struct book *head);//将链表信息输出 void chaxun(struct book *head);//查询图书信息 void wname_chaxun(struct book *head);//按作者名查询图书 void bname_chaxun(struct book *head);//按图书名查询图书 void xiugai(struct book *head);//修改图书信息 int main() { int choice,n,x,y=1,c,c1=317;//choice 选择进入哪项功能:对图书的增删改查 char a,d,b[10],b1[10]="317"; struct book *head=NULL;//声明一个新的 book 类 while(y)//实现 登录 退出系统 这两个选项 在输入口令错误时产生的循环 { system("cls");//清屏 printf("|=========================================|\n"); printf("| printf("| 欢迎进入 兰州交通大学图书管理系统 |\n"); |\n");

——本代码由 小 组 设计

printf("|========================================|\n"); printf("|| 请输入选项(0--1) ||\n");

printf("|========================================|\n"); printf("| printf("| 1-用户登录 0-退出系统 请输入您的选择:"); |\n"); |\n");

printf("|=======================================|\n\n"); printf("

scanf("%d",&n);//读取选项 0/1 printf("\n"); getchar();//从 stdio 流中读字符 switch(n){//进入选择 case 0: y=0; break; case 1: printf(" 请输入您的用户名:"); gets(b);//获取输入的字符 将字符赋值为 b

第 12 页 共 29 页

C 语言程序设计
printf("\n"); printf(" 请输入您的密码:");

scanf("%d",&c); printf("\n"); if(strcmp(b,b1)!=0||c!=c1){//strcmp 比较功能 b1 c1 之前赋值为 317 317 只要刚输入 的 b 与 c 存在不等于 317 printf(" scanf("%c",&d); getchar(); system("cls"); } else{ printf(" scanf("%c",&d); getchar(); x=1; while(x){ system("cls"); printf(" printf(" printf(" ---------------------------兰州交通大学图书信息管理系统 ---------------------------请输入选项(0--6) 验证通过!请按 Enter 键进入!\n"); 验证失败,请重新输入!\n");

——本代码由 朱 斌 设计
\n"); \n"); \n");

printf("***********************************\n"); printf("|| ||\n");

printf("***********************************\n"); printf("|| 1-添加图书 printf("|| 3-信息浏览 printf("|| 5-修改图书 printf("|| 0-退出系统 2-删除图书 ||\n\n"); 4-信息查询 ||\n\n"); 6-创建图书 ||\n\n"); ||\n");

printf("******************************************\n"); printf("请输入所选择的序号:"); scanf("%d",&choice); getchar(); system("cls"); switch(choice)//选择进入哪项功能:对图书的增删改查 { case 0: x=0;break;

第 13 页 共 29 页

C 语言程序设计
case 1: head=load();//链头尾节点一致相同 即文件为空 if(head==NULL){ printf("文件为空,请先录入数据!\n"); getchar(); break; } else{ head=addbook(head);//链表的表头与新加入的内容相同 即添加成功 printf("添加成功!\n"); printf("是否将新信息保存到文件?(y/n)\n"); scanf("%c",&a); getchar(); switch(a){ case 'n': break; case 'y': fprint(head); printf("保存成功!\n"); getchar(); break; } break; } case 2: head=load();//链头尾节点一致 即文件为空 if(head==NULL){ printf("文件为空,请先录入数据!\n"); getchar(); break; } else{ deletebook(head);//执行删除 getchar(); break; } break;

第 14 页 共 29 页

C 语言程序设计
case 3: head=load(); if(head==NULL){//链头尾节点一致 即文件为空 printf("文件为空,请先录入数据!\n"); getchar(); break; } else{ print_book(head);//执行浏览 getchar(); break; } case 4: head=load(); if(head==NULL){//链头尾节点一致 即文件为空 printf("文件为空,请先录入数据!\n"); getchar(); break; } else{ chaxun(head);//执行查询 getchar(); } break; case 5: head=load(); if(head==NULL){//链头尾节点一致 即文件为空 printf("文件为空,请先录入数据!\n"); getchar(); break; } else{ xiugai(head);//执行修改 getchar(); break; } break;

第 15 页 共 29 页

C 语言程序设计
case 6: printf("注意:输入图书编码为 0 时结束!\n"); head=creatbook();//找到相同信息 询问是否替换 printf("是否将输入的信息保存到文件以覆盖文件中已存在的信 息?(y/n)\n"); getchar(); scanf("%c",&a); getchar(); switch(a){ case 'n': break; case 'y': fprint(head);//将链表写入文件 printf("保存成功!\n"); getchar(); break; } break; default: printf("您的输入有误,请重新输入!\n"); getchar(); break; } } } break; default: printf(" getchar(); break; } } } //录入数据并形成链表 struct book *creatbook() { struct book *head,*tail,*p;//声明数据链表 您的输入有误! 请重新输入!\n");

——本代码由 周 勇和王文模 设计

第 16 页 共 29 页

C 语言程序设计
int num,time,n; char bname[50],wname[20],press[50],sort[50]; float price; int size=sizeof(struct book); head=tail=NULL; printf("请输入图书编号:"); scanf("%d",&num); printf("请输入图书名:"); scanf("%s",bname); getchar(); printf("请输入作者名:"); scanf("%s",wname); getchar(); printf("请输入出版社:"); scanf("%s",press); getchar(); printf("请输入类别:"); scanf("%s",sort); getchar(); printf("请输入出版时间:"); scanf("%d",&time); getchar(); printf("请输入价格:"); scanf("%f",&price); getchar(); while(1){ p=(struct book *)malloc(size); p->num=num; strcpy(p->bname,bname);//赋值 把后者复制给前者 strcpy(p->wname,wname);//赋值 把后者复制给前者 strcpy(p->press,press);//赋值 把后者复制给前者 strcpy(p->sort,sort);//赋值 把后者复制给前者 p->time=time; p->price=price; p->next=NULL; if(head==NULL) head=p; 从键盘中输入一个值

第 17 页 共 29 页

C 语言程序设计
else tail->next=p;//赋值 将地址付给下一个 形成链 tail=p; do{ printf("请输入图书编号:"); scanf("%d",&num); n=yanzheng(head,num);//验证添加的图书编号是否已存在 if(n==0) break; else printf("您输入的编号已存在,请重新输入!\n"); }while(1); if(num==0) break; else { printf("请输入图书名:"); scanf("%s",bname); getchar(); printf("请输入作者名:"); scanf("%s",wname); getchar(); printf("请输入出版社:"); scanf("%s",press); getchar(); printf("请输入类别:"); scanf("%s",sort); getchar(); printf("请输入出版时间:"); scanf("%d",&time); getchar(); printf("请输入价格:"); scanf("%f",&price); getchar(); } } return head;

第 18 页 共 29 页

C 语言程序设计
} int yanzheng(struct book *head,int m) { struct book *p; p=head; while(p!=NULL){ if(p->num==m) break; p=p->next; } if(p==NULL) return 0; else return 1; } //将新链表写入文件中 void fprint(struct book *head) { FILE *fp; char ch='1'; struct book *p1; if((fp=fopen("f1.txt","w"))==NULL){//字符 IO 流 printf("File open error!\n"); exit(0); } fputc(ch,fp);//将字符 ch 写到文件指针 fp 所指向的文件的当前写指针的位置 for(p1=head;p1;p1=p1->next){//依次写入 fprintf(fp,"%d %s %s %s %s %d %f\n",p1->num,p1->bname,p1->wname,p1->press,p1->sort ,p1->time,p1->price); } fclose(fp);//关闭 释放内存 } //从文件中读取图书信息 struct book *load() { FILE *fp; char ch;

——本代码由 闫 鹏 设计

第 19 页 共 29 页

C 语言程序设计
struct book *head,*tail,*p1; head=tail=NULL;//链表初始化 if((fp=fopen("f1.txt","r"))==NULL){ printf("File open error!\n"); exit(0); } ch=fgetc(fp);//意为从文件指针 fp 指向的文件中读取一个字符 读取一个字节后 光标位 置后移一个字节 if(ch=='1') { while(!feof(fp)){//检测 fp 流上的文件结束符 p1=(struct book *)malloc(sizeof(struct book)); fscanf(fp,"%d%s%s%s%s%d%f\n",&p1->num,p1->bname,p1->wname,p1->press,p1->sort,&p1-> time,&p1->price); if(head==NULL) head=p1; else tail->next=p1; tail=p1; } tail->next=NULL; fclose(fp); return head; } else return NULL; } //将整个链表的信息输出 void print_book(struct book *head) { struct book *ptr; if(head==NULL){ printf("\n 没有信息!\n"); return; } printf(" 图书信息列表如下\n");

printf("====================================================\n");

第 20 页 共 29 页

C 语言程序设计
printf(" 编号 图书名 作者名 出版社 类别 出版时间 价格\n");

for(ptr=head;ptr;ptr=ptr->next)//依次输出

printf("

%d

%s

%s

%s

%s

%d

%.2f\n",ptr->num,ptr->bname,ptr->wna

me,ptr->press,ptr->sort,ptr->time,ptr->price); printf("==================================================\n"); } //删除图书信息 void deletebook(struct book *head) { int a; char b,ch='1'; struct book *p1,*p2; FILE *fp; printf("请输入要删除的图书编号:"); scanf("%d",&a); p1=head; if(p1->num==a&&p1->next==NULL){//当文件中只有一组数据 printf("是否清空文件!(y/n)\n"); getchar(); scanf("%c",&b); getchar(); switch(b){ case 'n': break; case 'y': if((fp=fopen("f1.txt","w"))==NULL){//重新写入 printf("File open error!\n"); exit(0); } fclose(fp); printf("文件已清空!\n"); } } else{ while(p1->num!=a&&p1->next!=NULL){//当文件中不只有一组数据 p2=p1;

——本代码由 张旭东 设计

第 21 页 共 29 页

C 语言程序设计
p1=p1->next; } if(p1->next==NULL){ if(p1->num==a){ p2->next=NULL; printf("是否确定从文件中彻底删除该图书?(y/n)\n"); getchar(); scanf("%c",&b); switch(b){ case 'n': break; case 'y': fprint(head); printf("删除成功!\n"); getchar(); break; } }

else{ printf("没有找到要删除的数据!\n"); getchar(); } } else if(p1==head){ head=p1->next; printf("是否确定从文件中彻底删除该图书?(y/n)\n"); getchar(); scanf("%c",&b); switch(b){ case 'n': break; case 'y': fprint(head); printf("删除成功!\n"); getchar(); break;

第 22 页 共 29 页

C 语言程序设计
} } else{ p2->next=p1->next; printf("是否确定从文件中彻底删除该图书?(y/n)\n"); getchar(); scanf("%c",&b); switch(b){ case 'n': break; case 'y': fprint(head); printf("删除成功!\n"); getchar(); break; } } } } //图书查询 void chaxun(struct book *head) { int a; printf(" printf(" printf(" ----------------------------\n"); 兰州交通大学图书信息管理系统\n"); ----------------------------\n\n"); 请输入选项(0--2)

——本代码由 王文模 设计

printf("==============================================\n"); printf("|| ||\n");

printf("==============================================\n"); printf("|| printf("|| printf("|| 1-按图书名查询 2-按作者名查询 0-退出查询 ||\n"); ||\n"); ||\n");

printf("===============================================\n"); printf("请输入所选择的编号:"); scanf("%d",&a); getchar(); switch(a){

第 23 页 共 29 页

C 语言程序设计
case 0: break; case 1: bname_chaxun(head);//进入按照书名查询 break; case 2: wname_chaxun(head);//进入按照作者查询 break; default: printf("您的输入有误!\n"); break; } } //按图书名查询图书信息 void bname_chaxun(struct book *head) { char a[50]; int flag=0; struct book *p; printf("请选择您要查询的图书名:"); gets(a); p=head; while(p!=NULL){ if(strcmp(p->bname,a)==0){//比较 如果输入的 a 与已有信息存在有相符的 进入循 环 flag=1; break; } p=p->next; } if(flag==0){//如果输入的 a 与已有信息没有相符的 flag 的值不改变 printf("没有找到该图书名的图书!\n");

} else{ printf(" 你所查询的图书信息如下\n");

printf("========================================================\n");

第 24 页 共 29 页

C 语言程序设计
printf(" ** **\n"); while(p!=NULL){ if(strcmp(p->bname,a)==0){ printf("** %d %s %s %s %s %d %.2f**\n",p->num,p->bname,p->wname,p->p 编号 图书名 作者名 出版社 类别 出版时间 价格

ress,p->sort,p->time,p->price); } p=p->next; } printf("=======================================================\n"); } } //修改图书信息 void xiugai(struct book *head) { int a,b; char c; struct book *p; printf("请输入要修改的图书编号:"); scanf("%d",&a); p=head; while(p!=NULL){ if(p->num==a) break; p=p->next; } if(p==NULL){ printf("没有找到该编号的图书!\n"); getchar(); } else{ printf("================================================\n"); printf("**1-编号 printf("**4-出版社 printf("** 7-价格 2-图书名 5-类别 8-修改全部 3-作者名 **\n");

——本代码由 杨国峥 设计

6-出版时间 **\n"); 0-放弃修改 **\n");

printf("===================================================\n"); printf("请选择你要修改的信息编号:");

第 25 页 共 29 页

C 语言程序设计
scanf("%d",&b); getchar(); switch(b){ case 1: printf("请输入新编号:"); scanf("%d",&p->num); printf("修改成功!\n"); getchar(); break; case 2: printf("请输入新图书名:"); gets(p->bname); printf("修改成功!\n"); break; case 3: printf("请输入新作者名:"); gets(p->wname); printf("修改成功!\n"); break; case 4: printf("请输入新出版社:"); gets(p->press); printf("修改成功!\n"); break; case 5: printf("请输入新类别:"); gets(p->sort); printf("修改成功!\n"); break; case 6: printf("请输入新出版时间:"); scanf("%d",&p->time); printf("修改成功!\n"); getchar(); break; case 7: printf("请输入新价格:");

第 26 页 共 29 页

C 语言程序设计
scanf("%f",&p->price); printf("修改成功!\n"); getchar(); break; case 8: printf("请输入新图书编号:"); scanf("%d",&p->num); printf("请输入新图书名:"); scanf("%s",p->bname); getchar(); printf("请输入新作者名:"); scanf("%s",p->wname); getchar(); printf("请输入新出版社:"); scanf("%s",p->press); getchar(); printf("请输入新类别:"); scanf("%s",p->sort); getchar(); printf("请输入新出版时间:"); scanf("%d",&p->time); getchar(); printf("请输入新价格:"); scanf("%f",&p->price); getchar(); printf("修改成功!\n"); getchar(); break; case 0: break; default : printf("您的输入有误!\n"); break; } printf("是否将修改后的信息保存到文件中?(y/n)\n"); scanf("%c",&c); getchar();

第 27 页 共 29 页

C 语言程序设计
switch(c){ case 'n': break; case 'y': fprint(head); printf("保存成功!\n"); getchar(); break; }

} }

——本代码由 王文模 设计

第 28 页 共 29 页


更多相关文档:

C语言课程设计_图书信息管理系统

C语言课程设计_图书信息管理系统_工学_高等教育_教育专区。院系: 姓名: 学号: 班号: 指导教师: 日期:2010 年 9 月 题目:图书信息管理系统一、需求分析: 1...

c语言程序设计 图书信息管理系统

c语言程序设计 图书信息管理系统_IT/计算机_专业资料。c语言程序设计 图书信息管理系统实验题目:图书管理系统 实验题目 图书管理系统 图书一、 实验目的 1. 熟悉 c...

c语言程序设计报告 图书管理系统

c语言程序设计报告 图书管理系统_理学_高等教育_教育专区。中国地质大学 本科生...("请输入相关信息:\n"); for(i=1;i<=n;i++) { printf("图书名称:"...

大一C语言课程设计图书信息管理系统

大一C语言课程设计图书信息管理系统_电脑基础知识_IT/计算机_专业资料。大一C语言课程设计,图书信息管理系统,具有功能:系统以菜单方式工作 ...

c语言图书信息管理系统课程设计报告

18 II 高级语言程序设计课程设计报告 图书信息管理系统 1 课程设计目的与要求图书信息存放在文件中,提供文件的输入、输出等操作;要实现浏览功能; 查询和排序功能要求...

C语言课程设计图书管理系统

C 语言课程设计 语言课程设计 姓名: 姓名:郭献安 班级:054101-13 班级:054101学号: 学号:20101001871 图书管理系统》 《图书管理系统》目录 题目要求及能实现的...

C语言课程设计---图书信息管理系统报告

课程设计报告 课程名称 课题名称 C 语言程序设计 图书信息管理系统 专班学姓 业级号名 机械电子 1101 班 指导教师 2012 年 12 月 19 日 湖南工程学院 课程设...

C语言课程设计图书馆管理系统程序代码

C语言课程设计图书馆管理系统程序代码_理学_高等教育_教育专区。C语言课程设计图书馆管理系统程序代码 #include<stdio.h> #include<windows.h> #include<string.h>...

c语言课程设计图书信息管理系统

学生课程设计报告 课程名称: C 程序设计语言 选题名称: 图书信息管理系统 年专学姓级: 2011 业:信息管理与信息系统 号: 名: 指导教师: 完成地点:管理学院综合...

图书信息管理系统 C语言程序设计

设计主要研究的是用 C 语言开发图书馆管理功能,其具体体现在图书的检索、查询、 录入功能,更要优化了图书馆管理系统设计管理信息系统的设计与开发是一项系统...
更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com