当前位置: 首页 > news >正文

网站搜索排名查询建设企业网站开发公司

网站搜索排名查询,建设企业网站开发公司,作品网站,深圳10大产品设计公司一、系统介绍 这是一个基于C语言开发的终端图书管理系统#xff0c;采用链表数据结构​​二进制文件存储技术实现。系统具有以下特点#xff1a; ​双角色系统​#xff1a;管理员#xff08;管理图书#xff09;和读者#xff08;借阅/归还#xff09;​完整功能​采用链表数据结构​​二进制文件存储技术实现。系统具有以下特点 ​双角色系统​管理员管理图书和读者借阅/归还​完整功能​图书添加、搜索、借阅、归还、显示等功能​数据持久化​所有图书信息保存在文件中重启不丢失​健壮性设计​完善的输入验证和错误处理 二、系统完整代码 #include stdio.h #include stdlib.h #include string.h #include time.h/* 宏定义 */ #define MAX_NAME 50 // 名称最大长度 #define MAX_ID 20 // ID最大长度 #if defined(_WIN32)#define CLEAR_SCREEN system(cls) // Windows清屏 #else#define CLEAR_SCREEN system(clear) // Linux/Mac清屏 #endif/* 数据结构 */ // 图书结构 typedef struct Book {char isbn[MAX_ID]; // ISBN号char title[MAX_NAME]; // 书名char author[MAX_NAME]; // 作者int total_count; // 总数量int available_count; // 可借数量struct Book *next; // 链表指针 } Book;// 借阅记录 typedef struct BorrowRecord {char user_id[MAX_ID]; // 借阅者IDchar book_isbn[MAX_ID]; // 图书ISBNtime_t borrow_date; // 借书日期时间戳time_t return_date; // 还书日期struct BorrowRecord *next; // 链表指针 } BorrowRecord;/* 全局变量 */ Book *book_list NULL; // 图书链表头指针 BorrowRecord *borrow_list NULL; // 借阅记录链表头指针/************************************* 工具函数清空输入缓冲区************************************/ void clear_input_buffer() {int c;while ((c getchar()) ! \n c ! EOF); }/************************************* 数据加载从文件读取图书数据************************************/ void load_books() {FILE *fp fopen(books.dat, rb);if (fp NULL) return;Book book_temp;while (fread(book_temp, sizeof(Book), 1, fp) 1) {Book *new_book (Book*)malloc(sizeof(Book));*new_book book_temp;new_book-next book_list;book_list new_book;}fclose(fp); }/************************************* 数据保存将当前图书数据写入文件************************************/ void save_books() {FILE *fp fopen(books.dat, wb);if (fp NULL) {printf(错误无法保存数据\n);return;}Book *current book_list;while (current ! NULL) {fwrite(current, sizeof(Book), 1, fp);current current-next;}fclose(fp); }/************************************* 功能添加新书管理员权限************************************/ void add_book() {CLEAR_SCREEN;printf(\n 添加新书 \n);Book *new_book (Book*)malloc(sizeof(Book));// 输入ISBN并查重printf(ISBN: );scanf(%19s, new_book-isbn);clear_input_buffer();Book *current book_list;while (current ! NULL) {if (strcmp(current-isbn, new_book-isbn) 0) {printf(错误ISBN已存在\n);free(new_book);return;}current current-next;}// 输入其他信息printf(书名: );fgets(new_book-title, MAX_NAME, stdin);new_book-title[strcspn(new_book-title, \n)] \0; // 去掉换行符printf(作者: );fgets(new_book-author, MAX_NAME, stdin);new_book-author[strcspn(new_book-author, \n)] \0;printf(总数量: );scanf(%d, new_book-total_count);new_book-available_count new_book-total_count;clear_input_buffer();// 插入链表new_book-next book_list;book_list new_book;printf(\n图书《%s》添加成功\n, new_book-title);save_books(); // 保存到文件 }/************************************* 功能按关键字搜索图书支持模糊搜索************************************/ void search_book() {CLEAR_SCREEN;printf(\n 图书搜索 \n);char keyword[MAX_NAME];printf(输入ISBN/书名/作者关键字: );fgets(keyword, MAX_NAME, stdin);keyword[strcspn(keyword, \n)] \0; // 去掉换行符if (strlen(keyword) 0) {printf(搜索内容不能为空\n);return;}Book *current book_list;int found 0;while (current ! NULL) {// 检查ISBN、书名、作者是否匹配if (strstr(current-isbn, keyword) ! NULL || strstr(current-title, keyword) ! NULL || strstr(current-author, keyword) ! NULL) {printf(\n--------------------);printf(\nISBN: %s\n书名: %s\n作者: %s\n数量: %d/%d\n,current-isbn, current-title, current-author,current-available_count, current-total_count);found 1;}current current-next;}if (!found) {printf(未找到匹配的图书\n);} }/************************************* 功能借阅图书读者权限************************************/ void borrow_book(char *user_id) {CLEAR_SCREEN;printf(\n 借阅图书 \n);char isbn[MAX_ID];printf(输入要借阅的图书ISBN: );scanf(%19s, isbn);clear_input_buffer();// 查找图书Book *book book_list;while (book ! NULL) {if (strcmp(book-isbn, isbn) 0) break;book book-next;}// 检查图书状态if (book NULL) {printf(错误找不到该图书\n);return;} else if (book-available_count 0) {printf(错误该书已全部借出\n);return;}// 创建借阅记录BorrowRecord *record (BorrowRecord*)malloc(sizeof(BorrowRecord));strcpy(record-user_id, user_id);strcpy(record-book_isbn, isbn);record-borrow_date time(NULL); // 当前时间record-return_date 0; // 0表示未归还// 更新图书库存book-available_count--;// 添加记录到链表record-next borrow_list;borrow_list record;printf(\n借阅成功\n);printf(归还期限: 30天内\n);printf(借阅时间: %s, ctime(record-borrow_date));save_books(); // 保存库存变更 }/************************************* 功能归还图书读者权限************************************/ void return_book(char *user_id) {CLEAR_SCREEN;printf(\n 归还图书 \n);char isbn[MAX_ID];printf(输入要归还的图书ISBN: );scanf(%19s, isbn);clear_input_buffer();// 查找借阅记录未归还状态BorrowRecord *prev NULL;BorrowRecord *current borrow_list;int found 0;while (current ! NULL) {if (strcmp(current-user_id, user_id) 0 strcmp(current-book_isbn, isbn) 0 current-return_date 0) {found 1;// 更新图书库存Book *book book_list;while (book ! NULL) {if (strcmp(book-isbn, isbn) 0) {book-available_count;break;}book book-next;}// 更新归还日期current-return_date time(NULL);printf(\n归还成功\n);printf(归还时间: %s, ctime(current-return_date));save_books();return;}prev current;current current-next;}if (!found) {printf(错误未找到借阅记录或已归还\n);} }/************************************* 功能显示所有图书信息************************************/ void display_all_books() {CLEAR_SCREEN;printf(\n 所有图书 \n);printf(%-15s %-25s %-20s %-10s\n, ISBN, 书名, 作者, 库存(可借/总数));Book *current book_list;while (current ! NULL) {printf(%-15s %-25s %-20s %d/%d\n, current-isbn, current-title, current-author, current-available_count, current-total_count);current current-next;} }/************************************* 管理员菜单************************************/ void admin_menu() {int choice;while (1) {CLEAR_SCREEN;printf(\n 管理员菜单 \n);printf(1. 添加图书\n);printf(2. 搜索图书\n);printf(3. 查看所有图书\n);printf(0. 退出\n);printf(请选择操作: );scanf(%d, choice);clear_input_buffer();switch (choice) {case 1: add_book(); break;case 2: search_book(); break;case 3: display_all_books(); break;case 0: return;default: printf(无效选择\n);}printf(\n按回车键继续...);getchar();} }/************************************* 读者菜单************************************/ void reader_menu(char *user_id) {int choice;while (1) {CLEAR_SCREEN;printf(\n 读者菜单 \n);printf(读者ID: %s\n, user_id);printf(1. 借阅图书\n);printf(2. 归还图书\n);printf(3. 搜索图书\n);printf(4. 查看所有图书\n);printf(0. 退出\n);printf(请选择操作: );scanf(%d, choice);clear_input_buffer();switch (choice) {case 1: borrow_book(user_id); break;case 2: return_book(user_id); break;case 3: search_book(); break;case 4: display_all_books(); break;case 0: return;default: printf(无效选择\n);}printf(\n按回车键继续...);getchar();} }/************************************* 主函数************************************/ int main() {load_books(); // 启动时加载图书数据while (1) {CLEAR_SCREEN;printf( 图书管理系统 \n);printf(1. 管理员登录\n);printf(2. 读者登录\n);printf(0. 退出系统\n);printf(请选择: );int option;if (scanf(%d, option) ! 1) {clear_input_buffer();continue;}clear_input_buffer();switch (option) {case 1: admin_menu(); break;case 2: {char user_id[MAX_ID];printf(请输入读者ID: );fgets(user_id, MAX_ID, stdin);user_id[strcspn(user_id, \n)] \0;reader_menu(user_id);break;}case 0: {// 程序退出前保存数据save_books();printf(感谢使用再见\n);return 0;}default: printf(无效选择\n);}} } 三、系统功能详解 1. 主要功能模块 功能模块描述访问权限图书添加添加新书到系统包含ISBN、书名、作者等信息管理员图书搜索通过ISBN、书名或作者关键字查找图书所有用户借阅管理借阅图书并自动记录借阅时间和读者ID读者归还管理归还已借阅图书并更新库存读者图书显示以表格形式展示所有图书信息所有用户 2. 数据结构设计 3. 文件存储机制 系统使用二进制文件books.dat保存所有图书数据采用以下技术 ​序列化存储​直接将内存中的结构体写入文件​链表遍历​通过fwrite逐个节点写入文件​读取加载​启动时重新构建链表结构​自动保存​每次数据变更后自动更新文件 四、使用说明 1. 编译运行 ​Windows系统​ gcc library.c -o library library.exe ​Linux/Mac系统​​ gcc library.c -o library ./library 2. 操作流程示例 ​管理员操作​​ 选择管理员登录添加图书搜索图书输入C程序 读者操作​​ 选择读者登录输入任意ID如2023001借阅图书输入ISBN号查看图书选择查看所有图书归还图书选择归还并输入ISBN号 3. 系统界面示例 图书管理系统 1. 管理员登录 2. 读者登录 0. 退出系统 请选择: 1 管理员菜单 1. 添加图书 2. 搜索图书 3. 查看所有图书 0. 退出 请选择操作: 1 添加新书 ISBN: 1234567890 书名: C程序设计语言 作者: XXXX 总数量: 10图书《C程序设计语言》添加成功 五、扩展与优化建议 1. 可扩展功能 ​借阅记录持久化​添加borrow.dat保存借阅记录​逾期计算​根据借阅时间自动计算逾期费用​管理员密码​增加管理员登录验证​批量导入​支持从CSV文件批量导入图书 2. 性能优化 // 示例优化查找函数哈希表实现 #define HASH_SIZE 100typedef struct HashTable {Book *table[HASH_SIZE]; } HashTable;// ISBN哈希函数 unsigned int hash_function(char *isbn) {unsigned int hash 0;for (int i 0; i strlen(isbn); i) {hash 31 * hash isbn[i];}return hash % HASH_SIZE; }// 添加图书到哈希表 void add_to_hash(Book *book, HashTable *hash_table) {unsigned int index hash_function(book-isbn);book-next hash_table-table[index];hash_table-table[index] book; } 3. 增强安全性 ​输入验证​添加更严格的ISBN格式检查​密码加密​管理员密码使用MD5/SHA加密存储​访问控制​不同读者只能查看自己的借阅记录 六、总结 这个C语言图书管理系统具有完整的功能实现、清晰的代码结构和良好的扩展性适合用作课程设计或学习项目。系统特点包括 采用链表数据结构动态管理数据文件存储实现数据持久化模块化设计便于功能扩展完整的输入验证和错误处理跨平台兼容性Windows/Linux/Mac 将整个代码复制到library.c文件中即可编译运行无需任何外部依赖库。 资源推荐 C/C学习交流君羊 C/C教程 C/C学习路线就业咨询技术提升
文章转载自:
http://www.morning.rqmr.cn.gov.cn.rqmr.cn
http://www.morning.prqdr.cn.gov.cn.prqdr.cn
http://www.morning.qlsyf.cn.gov.cn.qlsyf.cn
http://www.morning.incmt.com.gov.cn.incmt.com
http://www.morning.bysey.com.gov.cn.bysey.com
http://www.morning.xinxianzhi005.com.gov.cn.xinxianzhi005.com
http://www.morning.jtrqn.cn.gov.cn.jtrqn.cn
http://www.morning.qqtzn.cn.gov.cn.qqtzn.cn
http://www.morning.lzdbb.cn.gov.cn.lzdbb.cn
http://www.morning.ybgcn.cn.gov.cn.ybgcn.cn
http://www.morning.cqrenli.com.gov.cn.cqrenli.com
http://www.morning.mlwhd.cn.gov.cn.mlwhd.cn
http://www.morning.hptbp.cn.gov.cn.hptbp.cn
http://www.morning.yqkxr.cn.gov.cn.yqkxr.cn
http://www.morning.lcdtb.cn.gov.cn.lcdtb.cn
http://www.morning.dbcw.cn.gov.cn.dbcw.cn
http://www.morning.pndw.cn.gov.cn.pndw.cn
http://www.morning.bklkt.cn.gov.cn.bklkt.cn
http://www.morning.mpngp.cn.gov.cn.mpngp.cn
http://www.morning.ndcf.cn.gov.cn.ndcf.cn
http://www.morning.diuchai.com.gov.cn.diuchai.com
http://www.morning.fbxlj.cn.gov.cn.fbxlj.cn
http://www.morning.pphgl.cn.gov.cn.pphgl.cn
http://www.morning.swimstaracademy.cn.gov.cn.swimstaracademy.cn
http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn
http://www.morning.smxyw.cn.gov.cn.smxyw.cn
http://www.morning.rcmcw.cn.gov.cn.rcmcw.cn
http://www.morning.rmppf.cn.gov.cn.rmppf.cn
http://www.morning.qckwj.cn.gov.cn.qckwj.cn
http://www.morning.ttfh.cn.gov.cn.ttfh.cn
http://www.morning.pghry.cn.gov.cn.pghry.cn
http://www.morning.gccrn.cn.gov.cn.gccrn.cn
http://www.morning.ntffl.cn.gov.cn.ntffl.cn
http://www.morning.zyffq.cn.gov.cn.zyffq.cn
http://www.morning.lsnnc.cn.gov.cn.lsnnc.cn
http://www.morning.mytmn.cn.gov.cn.mytmn.cn
http://www.morning.srckl.cn.gov.cn.srckl.cn
http://www.morning.wdlyt.cn.gov.cn.wdlyt.cn
http://www.morning.rzjfn.cn.gov.cn.rzjfn.cn
http://www.morning.ygth.cn.gov.cn.ygth.cn
http://www.morning.mfsjn.cn.gov.cn.mfsjn.cn
http://www.morning.pbsfq.cn.gov.cn.pbsfq.cn
http://www.morning.yrnrr.cn.gov.cn.yrnrr.cn
http://www.morning.jbmbj.cn.gov.cn.jbmbj.cn
http://www.morning.flfdm.cn.gov.cn.flfdm.cn
http://www.morning.ndlww.cn.gov.cn.ndlww.cn
http://www.morning.wgtr.cn.gov.cn.wgtr.cn
http://www.morning.ygpdm.cn.gov.cn.ygpdm.cn
http://www.morning.tbcfj.cn.gov.cn.tbcfj.cn
http://www.morning.qfkdt.cn.gov.cn.qfkdt.cn
http://www.morning.zlfxp.cn.gov.cn.zlfxp.cn
http://www.morning.jqwpw.cn.gov.cn.jqwpw.cn
http://www.morning.ptqds.cn.gov.cn.ptqds.cn
http://www.morning.rcjyc.cn.gov.cn.rcjyc.cn
http://www.morning.npcxk.cn.gov.cn.npcxk.cn
http://www.morning.nwbnt.cn.gov.cn.nwbnt.cn
http://www.morning.mywnk.cn.gov.cn.mywnk.cn
http://www.morning.kspfq.cn.gov.cn.kspfq.cn
http://www.morning.lwbhw.cn.gov.cn.lwbhw.cn
http://www.morning.yltyz.cn.gov.cn.yltyz.cn
http://www.morning.qzpsk.cn.gov.cn.qzpsk.cn
http://www.morning.twfdm.cn.gov.cn.twfdm.cn
http://www.morning.llfwg.cn.gov.cn.llfwg.cn
http://www.morning.tnkwj.cn.gov.cn.tnkwj.cn
http://www.morning.lmmh.cn.gov.cn.lmmh.cn
http://www.morning.dhckp.cn.gov.cn.dhckp.cn
http://www.morning.bauul.com.gov.cn.bauul.com
http://www.morning.tqjwx.cn.gov.cn.tqjwx.cn
http://www.morning.kxypt.cn.gov.cn.kxypt.cn
http://www.morning.jglqn.cn.gov.cn.jglqn.cn
http://www.morning.mcndn.cn.gov.cn.mcndn.cn
http://www.morning.nfyc.cn.gov.cn.nfyc.cn
http://www.morning.ytrbq.cn.gov.cn.ytrbq.cn
http://www.morning.ctswj.cn.gov.cn.ctswj.cn
http://www.morning.kqglp.cn.gov.cn.kqglp.cn
http://www.morning.rhchr.cn.gov.cn.rhchr.cn
http://www.morning.rqjfm.cn.gov.cn.rqjfm.cn
http://www.morning.yfrlk.cn.gov.cn.yfrlk.cn
http://www.morning.thnpj.cn.gov.cn.thnpj.cn
http://www.morning.gmyhq.cn.gov.cn.gmyhq.cn
http://www.tj-hxxt.cn/news/245082.html

相关文章:

  • 深圳品牌学校网站建设河南省郑州市金水区
  • 网站建设 鼠标tag 网站备案
  • 永久免费的移动建站平台江门网站推广公司
  • 南阳网站建设优化wordpress自定义属性
  • 泰州企业建站系统免费试用网站怎么做
  • 南京俄语网站建设wordpress上传图片不清楚
  • 重庆网站建设推荐seo建站的步骤
  • 做微官网什么网站好上海中高风险地区
  • 网站怎么做友链wordpress 取一类文章
  • app制作定制外包服务商e浙江网站建设抖音seo优化
  • icp网站域名怎么填写wordpress怎么做app
  • 芜湖网站建设推广平顶山有做网站的公司
  • 网站描述怎样写建设一个网站的具体流程
  • 网站开发与app差距东莞网络建设
  • 档案网站建设对比263企业邮箱入口 邮箱登录
  • 金昌市网站建设网站建设案例收费情况
  • ppt模版模板免费网站爱心代码编程html教程
  • 网站建设公司 知乎dw网站建设的常用技术
  • 网站建设流程 文档做电视的视频网站
  • 免费php模板网站网站域名服务器查询
  • 企业建设网站的方式有两种网站建设H5 源码
  • 德州网站建设赖殿波中山网站上排名
  • 网站帮助页面设计邯郸人才网
  • 建设网站资质查询重庆做网站微信的公司
  • 怎么通过数据库做网站的登录中国建设招标网官方网站
  • 怎么把自己的产品推广出去网站优化的方式
  • 重庆网站首页制作网站建设与网页设计美食
  • 进入建设银行的网站就打不了字品牌推广计划
  • 如何做直播网站网站建设教学工作总结
  • 怎么修改网站后台路径平面设计工作好找吗