C语言课程设计图书管理系统_第1页
C语言课程设计图书管理系统_第2页
C语言课程设计图书管理系统_第3页
C语言课程设计图书管理系统_第4页
C语言课程设计图书管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 学号: 指导老师: 班级: 姓名: 前 言计算机科学技术的发展,不仅极大地促进了整个科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。因此,计算机教育在全国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。如今,高等教育的计算机教育发展十分迅速。十多年前,只有部分理工科专业开设计算机课程。今天,几乎所有高校的所有专业都开设了程度不同的计算机课程。人们已经认识到,计算机知识已成为当代知识分子知识结构中不可缺少的重要组成部分。而除了掌握计算机的基础知识和操作的基本能力外,掌握一门高级编程语言,并可以熟练运用它,已成为当代大学生综合能力必要组成。计算机技术发展如此迅猛,计

2、算机应用如此广泛,需要学习的东西愈来愈多,而我们的总学时是有限的。一般来说,计算机课程学习可以分为两部分:一部分是理论课程学习,一部分是上机应用实习。根据我们专业的性质和要求,则应侧重于上机操作运用。为此,学校特意在寒假最后一星期安排了C语言上机实习。 现将一星期的实习内容及结果分析分列如下: 课题图书信息管理系统要求 图书信息包括:登陆号,作者名,分类号,出版单位,出版时间,试试机已图书信息管理系统,使之能提供以下功能:(1)系统以菜单方式共作(2)图书信息录入功能(3)图书信息浏览功能(4)图书信息查询功能(5)图书信息的删除与修改:可选(本功能作出来了)思路:图书信息采用结构体结构存取,

3、信息包括登陆号,作者名,分类号,出版单位,出版时间等五项程序采用菜单形式,共包括五个模块(1) 添加模块(2) 浏览模块(3) 查找模块(4) 删除模块(5) 修改模块设计流程图如下; 模块图课题主函数修改数据浏览所有数据查找数据删除数据添加数据 各模块的详细流程图 添加数据函数流程图输入要填加的纪录个数K输入纪录的详细信息纪录是否输完毕 N 返回主菜单保存记录 Y浏览数据函数流程图 查找函数流程图主菜单开始 按作者名查找按ID查找按姓名查找输出记录格式 调用函数load(),计算记录个数n 开始显示记录判断记录是否全部显示? 开始输入要查找纪录的条件 N Y 用户是否继续浏览 与已知纪录中对

4、应相比较是 Y Y N N 返回主函数(mian)是否与所有的都比较完 N 是否找到要找的纪录 Y Y 显示 not find显示find 是否返回返回主函数(main) 修改函数流程图 开始 输入要修改纪录的名称 Y 选择要修改纪录的相应的项在已知的纪录中根据输入的相应的纪录输入纪录相应项的替代内容更改保存 是否继续更改 是否返回主函数 N Y 返回主函数 N 跳出程序删除函数流程图 返回主函数跳出程序是否返回主函数是否继续删除保存是否找到想要找的记录根据名称在所有纪录中查找你要删除的记录输入你想删除的记录的名称开始 Y N 显示 没有此书信息 Y 将后面的记录覆盖要删除的记录,后面的记录一

5、次覆盖前一纪录 是否所有纪录都被覆盖 N Y N Y 具体程序及结构分析#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 10 定义结构体struct library int num; char book_name30; char writer30; char sort_num3; char pub_company30; char pub_time30; char prise30;typedef struct library LIB;LIB libN;FILE *fp; 文件指

6、针int all=0;int menu(void);void input(void);void output(void);void save(void);void del(void);void search(void);void xiugai(void);main() for(;) switch(menu() 用switch选择结构做出主菜单的基本功能 case 1:input();break; case 2:output();break; case 3:save();break; case 4:search();break; case 5:xiugai();break; case 6:del

7、();break; case 0:exit(1);break; int menu(void) char m3; int n; system("color 2"); 设计屏幕输出效果 printf("tt C语言课程设计n"); printf("tt052081班 黎志伟 20081001034n"); printf("tt欢迎来到图书信息管理系统n"); printf("tt 1:输入n"); printf("tt 2:输出n"); printf("tt 3:保存n

8、"); printf("tt 4:查找n"); printf("tt 5:修改n"); printf("tt 6:删除n"); printf("tt 0:退出n"); printf("tt 请选择一项操作(0-6):n"); scanf("%s",m); n=atoi(m); return(n); 输入模块void input(void) 定义无返回值的输入函数 int i; char m3; for(i=all;i<N;i+) all+; printf(&q

9、uot;请输入相关信息:n"); printf("tt登陆号:n"); scanf("%d",&libi.num); printf("tt书名:n"); scanf("%s",libi.book_name); printf("tt作者名:n"); scanf("%s",libi.writer); printf("tt分类号:n"); scanf("%s",libi.sort_num); printf("tt出

10、版单位:n"); scanf("%s",libi.pub_company); printf("tt出版时间:n"); scanf("%s",libi.pub_time); printf("tt价格:n"); scanf("%s",libi.prise);a: printf("tt是/否继续此操作?n"); printf("tt1:是n"); printf("tt2:否n"); scanf("%s",m);

11、if(atoi(m)=1) continue; else if(atoi(m)=2) return; else printf("tt出现错误!n"); goto a; 解释goto算法:goto a指返回程序中有a标记的地方输出即浏览模块void output(void) 定义无返回值的输出浏览函数 int i; for(i=0;i<all;i+) printf("登陆号:tt%dn",libi.num); printf("%stt书名%stt作者名%s分类号n",libi.book_name,libi.writer,libi.

12、sort_num); printf("%stt出版单位%stt出版时间%s价格n",libi.pub_company,libi.pub_time,libi.prise); 保存模块void save(void) 定义无返回值的保存函数 int i;if(fp=fopen("file.c","wb")=NULL) printf("不能打开此文件"); exit(1); for(i=0;i<all;i+) if(fwrite(&libi,sizeof(LIB),1,fp)!=1) printf("

13、;can not write!"); exit(1); fclose(fp); 查询模块void search(void) 定义无返回值的查询函数 int i,flag; char m3; char name30; printf("tt请选择您要查询的方式:n"); printf("tt1:书名!n"); printf("tt2:作者!n"); scanf("%s",m); i=atoi(m); switch(i) case 1: printf("tt请输入书名:n"); scanf(

14、"%s",name); flag=0; for(i=0;i<N;i+) if(strcmp(name,libi.book_name)=0) printf("登陆号:tt%dn",libi.num); printf("书名:%stt作者名:%stt分类号:%sn",libi.book_name,libi.writer,libi.sort_num); printf("出版单位:%stt出版时间:%stt价格:%sn",libi.pub_company,libi.pub_time,libi.prise); flag

15、=1;break; if(flag=0) printf("tt没有找到此书n"); case 2: printf("tt请输入作者名:n"); scanf("%s",name); flag=0; for(i=0;i<N;i+) if(strcmp(name,libi.writer)=0) printf("登陆号:tt%dn",libi.num); printf("书名:%stt作者名:%stt分类号:%sn",libi.book_name,libi.writer,libi.sort_num

16、); printf("出版单位:%stt出版时间:%stt价格:%sn",libi.pub_company,libi.pub_time,libi.prise); flag=1;break; if(flag=0) printf("tt不能找到此作者!n"); 修改模块void xiugai(void) 定义无返回值的修改函数 int i,flag; char name30,n3; printf("tt请选择要修改的书名 :n"); scanf("%s",name); flag=0; for(i=0;i<N;i+

17、) if(strcmp(name,libi.book_name)=0) printf("登陆号:tt%dn",libi.num); printf("书名:%stt作者名:%stt分类号:%sn",libi.book_name,libi.writer,libi.sort_num); printf("出版单位:%stt出版时间:%stt价格:%sn",libi.pub_company,libi.pub_time,libi.prise); printf("tt请输入要修改的信息:n"); printf("tt登

18、陆号:n"); scanf("%d",&libi.num); printf("tt书名:n"); scanf("%s",libi.book_name); printf("tt作者名:n"); scanf("%s",libi.writer); printf("tt分类号:n"); scanf("%s",libi.sort_num); printf("tt出版单位:n"); scanf("%s",lib

19、i.pub_company); printf("tt出版时间:n"); scanf("%s",libi.pub_time); printf("tt价格:n"); scanf("%s",libi.prise); flag=1;break; if(flag=0) printf("tt没有找到要修改的这本书!n");删除模块void del(void) 定义无返回值的删除函数 int i,j,flag; char name30; printf("tt请输入要删除的书名:n"); s

20、canf("%s",name); flag=0; for(i=0;i<N;i+) if(strcmp(name,libi.book_name)=0) printf("登陆号:tt%dn",libi.num); printf("书名:%stt作者名:%stt分类号:%sn",libi.book_name,libi.writer,libi.sort_num); printf("出版单位:%stt出版时间:%stt价格:%sn",libi.pub_company,libi.pub_time,libi.prise); for(j=N;j>i;j-) libj-1.num=libj.num; strcpy(libj-1.book_name,libj.book_name); strcpy(libj-1.writer,libj.writer); strcpy(libj-1.sort_num,libj.sort_num); strcpy(libj-1.pub_company,libj.pub_company); strcpy(libj-1.pub_time,libj.pub_time); strcpy(libj-1.prise,libj.prise); flag=1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论