
课程报告课程名称: 程序设计实践班: 学生姓名: 学生身份: Yan Juan老师: 学期: 2011-2012第二学期课程报告任务书1书名书信息管理系统开发书信息管理系统,书信息包括: 书号,书名,作者,出版者,类别,出版时间,价格和其他基本信息(也可以根据自己的情况进行扩展,例如是否借出,清点等). 它可以提供以下基本功能: (1)图书信息输入功能(将图书信息与文件一起保存)-输入? (2)图书信息浏览功能-输出主要内容(3)查询功能(至少一种查询方法),排序功能(至少一种排序方法): ①按书名查询②按作者姓名查询③按价格分类④按出版时间分类等. (4)图书信息的删除和修改扩展功能: 您可以按照自己的程度扩展. 例如(1)简单的权限处理(2)报告打印功能(3)即使您根据自己的情况,也可以添加并将其扩展到图书借阅系统. (4)模糊查询(5)综合查询(6)统计功能,例如统计局特定类别的图书信息或筛选出少于指定数量的图书信息等. 简而言之,您可以执行分析功能根据您的需要. 1.提交材料应包括: (1)系统源代码(2)课程报告2.整个设计过程的特定要求(1)需求分析任务要求要求学生分析案例系统,设计要完成的功能,改进每个模块(2)设计过程中要求学生进一步弄清每个模块的调用关系,并进一步改进模块的功能细节(函数名称,参数,返回值等). (3)实施过程中需要学生进行开发良好的编码习惯,并完成每个模块的测试,最后完成整个系统的测试; (4)总结阶段按要求完成系统设计和实施报告,并进行总结和辩护.

报告撰写状态(30分)内容标准化程度程序测试20分5分5分系统完成状态(30分)响应状态(40分)基本功能扩展功能自述文件状态响应状态20分10分10分30分总分评估分数评估的教师: 21需求分析随着当今社会的发展,信息化水平逐渐提高,对图书馆管理也提出了新的要求. 因此,有必要编写一个信息管理系统. 为了满足图书馆管理的要求,计算机技术可以为图书馆管理人员和读者提供借阅和归还图书的便利. 使用C语言编写图书馆管理系统. 该系统主要实现图书信息管理功能. 通过该系统,可以管理和维护图书馆的图书馆信息. 它实现了图书馆管理的一般功能,包括查询,添加,删除和修改图书信息. 设计的系统在菜单模式下工作,为用户提供清晰的使用提示,根据用户的选择执行各种处理,并尽可能与该过程中用户使用期间可能发生的异常情况兼容. 书籍信息包括序列号,书名,作者,出版者,出版日期,价格,库存数量等. 书籍信息的输入和显示具有某种标准格式. 输入的书籍信息以文件形式保存,并且可以对其执行基本操作,例如浏览,查询,修改和删除. 整个程序执行一个链表操作,并且图书信息的操作是一个接一个地执行的. 一本书信息的更改不应影响其他图书记录.

2总结设计1,设计指出: (1)除主要功能外,整个系统还具有各种功能子功能,利用无限循环语句while()和选择语句swithch()来实现每个子功能-function Call,系统根据输入的数字选项调用相应的功能c语言编写图书管理系统,以实现相应的功能. 主要实现图书密码的设置,输入,存储,查询,添加,删除,修改,分类等功能. (2)void Main_menu();这是一个指针函数,主要实现链接列表的创建,并在创建过程中将文件中的信息从文件读取到链接列表中,以进行后面的其他功能的操作. (3)void mainFind(),void Delete(),void change(),write(),struct node * read(),void Sorting_order(),#define S 123,#define A 63456的六个功能图书馆管理系统的功能. void Delete(),void change(),void write(),struct node * read(),在这里您可以选择删除,修改,保存,阅读书籍,排序等操作. void mainFind();是查询系统菜单,您可以在其中选择按书名,编号,作者等查询书.

#define S 123,#define A 123456分别是学生登录密码和管理员登录密码. (4)void Print();此功能是遍历书籍,浏览所有书籍. (5)void Find_booknumber(),void Find_bookname(),void Find_author(),void Find_press();这三个函数是查询书本信息的函数,void Find_booknumber();按书号查询;通过书名Query无效的Find_bookname(),无效的Find_author();按作者查询,无效Find_press(); 3按查找. (6)void Sorting_booknumber(),按书号排序. void Sorting_price(),按价格排序. void Sorting_publication_date(),按发布日期排序. void Sorting_number(),按集合数排序. 3.实施说明: 该实用的小型图书馆管理程序是通过链表操作完成的,并实现了输入和保存文件信息的功能. 实现了图书管理的基本功能,包括图书的录入,存储,查询,添加,删除,修改和排序功能.

搜索时,您可以按书名,序列号,作者等进行搜索,找到后将其全部信息输出. 添加书籍信息后,还添加了链接列表排序操作,并输出了整个链接列表,以方便用户检查信息. 系统中的主要数据结构是书籍的信息,包括书号,书名,作者,出版者,出版时间,价格,藏书数量等. 在处理过程中,每个项目都可以被视为书本的不同属性. 书. 3详细设计1-1定义变量struct node {int book_number; //图书编号char book_name [25]; //书名char按[50]; //按char作者[20]; //作者int price; //价格为char Publication_date [20]; //发布日期int编号; //集合数struct节点* next;}; struct node * head = NULL; //在这里定义一个全局变量head,其他函数不需要返回head;但是这样做时,程序中函数的可用性不是太高int Total = 0; //记录总书数1-2函数定义void Creat(); //输入书籍信息struct节点*插入(struct节点* p,struct节点* head0); //插入书籍信息作废Delete(); //删除书籍信息4. void change(); //修改图书信息作废write(); //保存书籍信息struct node * read(); //阅读书籍信息作废修改(结构节点* p); //辅助修改选项void Print(); //遍历书籍信息void Print_by_one(结构节点* p); //单项遍历void Main_menu(); //登录界面无效Administrator_menu0(); //首次进入系统管理员菜单void Administrator_menu1(); // n次进入系统管理员菜单void Student_menu(); //学生菜单void mainFind(); //查找菜单void Find(); //准确地找到无效的书Find0(); //模糊查找书籍int str(char a [],char b []); //模糊搜索函数void Find_booknumber(); //按书号搜索void Find_booknumber0(); //通过书号进行模糊搜索void Find_bookname(); //按书名搜索void Find_bookname0(); //根据书名进行模糊搜索void Find_author(); //按作者进行重点搜索void Find_author0(); //作者的模糊搜索void Find_press(); //通过发布者进行焦点搜索void Find_press0(); //按发布方式进行社交模糊搜索char * transform(char str [],int void Sorting_order(); // Sort void Sorting_help(struct node * p1,struct node * p2); //辅助排序void Sorting_booknumber(); / /按书号排序void Sorting_price(); //按价格排序void Sorting_publication_date(); //按出版日期排序void sorting_number(); //按馆藏数量排序#define S 123 //学生密码#define A 123456 / /管理员密码5n); //将整数转换为字符并存储在字符数组中以返回int T = 0; //选择菜单1-3信息输入void Creat()//输入书籍信息{struct node * tail,* p; int book_number; //书号char选择; printf(“此操作将清除库中的所有书目信息!\ n”); printf(“ \ n \ t \ t \ t是否要继续操作?(Y / N)\ n”);而(1){printf(“请选择: ”); if(scanf(“%c”,&choice)){getchar(); if(选择=='Y'||选择=='y'){system(“ cls”); break;} else if(选择=='N'||选择=='n'){system(“ cls”); return;}其他{printf(“请根据需要输入!\ n”);继续;}}其他{6printf(“输入的内容不是字母,请根据需要重新输入!\ N”);继续;}} printf(“ \ t \ t \ t提示: 请输入要输入的数据,并在书号为数字'0'时结束!\ N \ n”); printf(“请输入书号: ”); scanf(“%d”,&book_number); getchar(); //吸收回车符,清除缓冲区,以便正常的屏幕清除操作可以在(book_number!= 0){p =(struct node *)malloc(sizeof(struct node));时正常执行. printf(“请输入书名: ”); scanf(“%s”,p-> book_name); getchar(); printf(“请输入作者: ”); scanf(“%s”,p->作者); getchar(); printf(“请输入发布者: ”); scanf(“%s”,p->按); getchar(); printf(“请输入价格: ”); scanf(“%d”,&p->价格); getchar(); printf(“请输入发布时间: ”); scanf(“%s”,p-> publication_date); getchar(); printf(“请输入集合数: ”); scanf(“%d”,&p->数字); getchar(); putchar('\ n'); p-> book_number = book_number; p-> next = NULL; if(head == NULL){head = tail = p;} else7 {tail-> next = p; tail = p;}总计++; printf(“请输入书号: ”); scanf(“%d”,&book_number);} printf(“ \ t \ t \ t \ t图书信息输入成功!\ n \ n”);} 1-4按编号查询void Find_booknumber()//查找依据图书编号{int book_number;结构节点* p1,* p2; printf(“请输入您要查找的书号: ”); scanf(“%d”,&book_number); printf(“ \ t \ t \ n您要查找的书是: \ n”); printf(“ \ t \ t ------------ ------------------------------- --------------------\ n“); printf(“ \ t \ t |书号|标题|作者|出版商|价格|出版时间|馆藏数量| \ n”); printf(“ \ t \ t ------ ------------------------------------- ------------- ------- \ n“); if(head-> book_number == book_number){Print_by_one(头);} p1 =头; p2 = head-> next; while(p2!= NULL){if(p2-> book_number == book_number){8Print_by_one(p2); p1 = p2; p2 = p2-> next;}否则{p1 = p2; p2 = p2-> next;}}} 1-5按发布时间排序void Sorting_publication_date()//按发布日期排序{结构节点* p1,* p2,* p3,* p4,* p5,* p6,* p7 ; int x = 1; for(p1 = head; p1-> next!= NULL; p4 = p1,p1 = p1-> next){p3 = p1;对于(p2 = p1-> nextc语言编写图书管理系统,p5 = p7 = p2; p2!= NULL; p7 = p2,p2 = p2-> next){if(strcmp(p3-> publication_date,p2-> publication_ date)> 0) {p3 = p2; p5 = p7;}} if(p3!= p1){if(x && p1 == head){9p6 = p1-> next; p1->下一步= p3->下一步; p3-> next = p6; p5->下一个= p1;头= p3; p1 = p3; x = 0;}否则{p6 = p1->接下来; p1->下一步= p3->下一步; p3-> next = p6; p4-> next = p3; p5->下一个= p1; p1 = p3;}}}} 4调试分析问题1: 函数是否返回函数值,以及如何返回指针?答: 对于以void开头的函数,没有返回值,可以直接在程序中调用它们.
具有指针返回值的函数,直接返回指针名称. 问题2: 在使用变量之前如何初始化指针变量和常规变量?答: 在使用通用变量之前,请忘记初始化,例如: 在下面的程序循环中定义n,n没有初始值,这会导致乱码. 指针变量* p,在不同情况下,应将p的值分配为NULL或head. 问题3: 如何区分指针之间的传输分配顺序?最终的返回值是哪一个?答: 指针的传输分配是从分配号的右端到分配号的左端. 例如: p = head,表示指针p指向头部位置. 最终的返回值应该是分配编号左端的指针. 105测试结果登录系统图书搜索11图书信息输入12按价格排序13浏览图书信息146经验总结在本学期的实践中,通过编写此图书管理系统,我意识到了c语言学习的实用性. 将理论与实践相结合,并使用先进的计算机工具来改善人们的生活. 首先必须从全局出发考虑C语言程序的编写,编写整个程序的思想应写在草稿上. 这将帮助您自己编写程序,并且在编写时需要完善注释以帮助其他人理解程序. 理论上编写的程序没有错,但是上述机器的问题一直存在. 即使某些教科书的复制没有改变,也无法获得正确的结果. 有时程序会一遍又一遍地更改,但它不能成功,编程很无聊,看似简单的程序问题,但在调试过程中经常会出错. 经过反复修订,结果是正确的,此时所有的无聊都显得如此微弱,一切都值得. 开发一个系统,最重要的是要谨慎,综合考虑,结合现实,并充分考虑客户的需求和实际意义. 无论使用哪种系统,它在实际应用中仅具有实际意义. 因此,C语言程序的实用性非常强,将来我们将更加努力地研究该编程语言. 15
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-218947-1.html
为何南方食品要赔付当事人两包芝麻糊
毕竟是有后台的公司