C语言程序设计基础课程设计.pdf

上传人:赵** 文档编号:60814190 上传时间:2022-11-18 格式:PDF 页数:25 大小:853.14KB
返回 下载 相关 举报
C语言程序设计基础课程设计.pdf_第1页
第1页 / 共25页
C语言程序设计基础课程设计.pdf_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《C语言程序设计基础课程设计.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计基础课程设计.pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、武汉工商学院武汉工商学院信息工程学院信息工程学院项目名称:图书信息管理系统201623 日学生姓名:学号:袁智琴 1540102315 计科实验班胡成松年 3 月班级:指导教师:1/1目录1.实验的目的和意义.11.1 目的.11.2 意义.12系统功能的描述.22.1 实验功能设计.22.2 实验功能描述.23系统存储结构设计与描述.5N=(i-1);4系统功能实现与算法描述.54.1 信息查询功能.64.2 信息排序功能.64.3 图书信息删除功能.74.4 图书信息修改功能.85系统性能测试.105.1 菜单函数的功能测试.105.2 录入函数的功能测试.105.3 浏览函数的功能测试.

2、115.4 查询函数的功能测试.125.5 排序函数的功能测试.135.6 修改函数的功能实现.145.7 删除函数的功能测试.145.8 添加图书信息功能测试.155.9 结束函数的功能测试.166设计小结.17致谢.18参考文献.19附录.201/11.实验的目的和意义1.1 目的随着人们生活水平的日益提高,人们对文化的需求也越来越大。在人们的业余生活中,越来越多的人乐于享受文字给生活带来的乐趣。而图书也是学生的学习过程中必不可少的。而本项目旨在研发一个图书馆的管理系统,实现图书馆的信息化管理。在方便读者查询借阅图书的同时,方便图书管理员对图书进行管理。对于用户来说,操作简便易行,本系统提

3、供了按照 isbn,书名,作者,出版单位,出版年份,价格 6 种方式的查询书目操作。本系统提供添加书目,删除书目,编辑书目信息等操作,方便后台管理员对所有图书进行管理。1.2 意义随着社会的发展,传统的图书管理方式已不再符合现代社会需求,相比传统繁琐复杂的图书借出与还入方式,用简单的 C 语言程序代码编写的图书管理系统就可以更简单的实现图书信息录入,修改,删除,查询和浏览以及保存等功能,让用户使用是更易上手,使得复杂且大量的图书管理操作更容易使用。1/12系统功能的描述图书管理系统具有图书信息的录入保存,信息导入,浏览,查询和图书信息的排序,删除等功能。2.1 实验功能设计图书信息管理系统开发

4、图书信息包括:书名、作者名、ISBN 号、出版单位、出版年份、价格等。试设计一个图书信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作;(2)图书信息录入功能(图书信息用文件保存);(3)图书信息浏览功能;(4)查询和排序功能:(至少一种查询方式)1)按书名查询;2)按作者名查询;3)按出版社查询;4)按出版年份查询。(5)修改图书信息:对某图书信息进行修改(6)删除图书:将某图书的信息删除(7)退出根据题目所给问题,要求所编程序要实现以下功能:图书信息录入模块的实现;系统中文件的保存和读写功能的实现;图书信息的浏览;图书信息的查询。分为按图书书名查询,按作者名查询,按isbn 编号查

5、询以及按出版单位查询。图书信息按年份排序,修改的功能。对某本图书的删除功能以及退出功能。系统菜单的的设计。对程序的设计和检测的功能。2.2 实验功能描述程序运行以后就会显示菜单界面:图书管理系统:1.图书信息录入 2.图书信息浏览 3.图书信息查询图书信息排序 5.修改图书信息 6.删除图书 7.退出系统如下是功能模块:图 2-1 功能模块图1/1 4.(1)图书信息录入进入系统后会显示菜单界面,选择图书信息录入功能后会出现请输入需要录入信息的图书数量,从键盘输入需录入信息的图书数量后就开始录入图书信息,录入结束后会自动保存入已创建的文件里,然后会出现提示:返回主菜单请选择1,退出请选择 0,

6、根据提示选择退出系统或返回主菜单。(2)图书信息浏览功能进入系统后会显示菜单界面,根据菜单选择 2 图书信息浏览功能,然后就会依次显示出图书的书名,作者名,isbn 编号,出版单位,出版年份和图书价格,若先前已经录入过图书信息则会依次显示出图书信息,若未录入过则会显示空白,结束后会出现返回主菜单或退出选项,根据提示进行退出或返回主菜单操作。(3)图书信息查询功能进入主菜单后选择 3 信息查询功能,然后界面上会显示查询方式:1 按书名查询2 按作者名查询 3 按 isbn 编号查询 4 按出版单位查询,根据选项选择查询方式。若已找到此图书就会显示此图书的书名,作者名,isbn 编号,出版单位,出

7、版年份和价格;若未找到此图书,界面会显示未找到此图书的相关信息。若要继续修改请按y否则请按n。结束后会显示返回主菜单和退出系统选项,根据选项进行退出或返回主菜单操作。(4)图书排序功能进入主菜单后选择 4 图书信息排序功能,菜单界面显示排序方式(从小到大):1按作者名排序 2 按 isbn 编号查询 3 按出版年份查询,选择排序方式后开始排序操作,完成后显示出排序后所有的图书信息。结束后会显示返回主菜单和退出系统选项,根据选项进行退出或返回主菜单操作。(5)修改图书信息功能 进入主菜单后选择 5 图书信息修改功能,菜单界面会显示“请输入你要修改的图书的书名或 isbn 编号”,若在已录入的图书

8、信息中找到此图书,则会显示“已找到此图书的相关信息!”,若未找到则会显示“未找到此书的相关信息!”然后显示此书的书名,作者名,isbn 编号,出版单位,出版年份,价格信息。在完成此操作后界面会显示出一个选项菜单,根据选项选择需要修改的图书信息后根据提示输入修改后的图书信息,在完成修改后,会输出修改后的全部的图书信息。若要继续修改请按 y,结束修改请按 n.结束后根据提示选择返回主菜单或者退出。(6)删除图书功能进入主菜单候选择 6 删除图书功能,运行界面会显示出删除前已录入的所有图书信息,根据提示输入需要被删除的图书书名,若找到此图书则显示已找到此书的相关信息并输出其所有信息,若未找到则显示未

9、找到此书的相关信息。完成删除操作后,显示出删除后所有图书信息。结束后根据提示选择退出系统或返回主菜单。添加图书信息功能进入主菜单后选择信息添加功能,然后输入需要添加信息的图书数量,选择后依次输入图书的信息。结束后若要继续添加请按y,否则请按n。结束后若要返回主菜单请按y,退出系统请按任意键。(7)退出系统功能选择退出系统后,运行界面显示出“谢谢使用!”后退出系统。1/13系统存储结构设计与描述1)系统需要存储的信息包含图书书名、图书作者名、isbn 编号、出版单位、出版年份、图书价格,其中图书书名、图书作者名、isbn 编号、出版单位信息均使用字符数组类型存放,出版年份信息使用 int 类型存

10、放,图书价格信息使用 float 类型存放;2)系统设计的结构体定义如下:struct bookchar shuming20;/图书书名char name20;/图书作者名char isbn20;/图书 isbn 编号char chubandanwei20;/出版单位int year;/出版年份float prize;/图书价格stuM;系统定义了一个 M,己可录入的最大的信息量。#define M 100003)保存函数 save()将已录入的所有图书信息从内存保存到硬盘中保存在book.txt 文本里。for(i=0;iN;i+)fwrite(&stui,sizeof(struct boo

11、k),1,fp);fclose(fp);4)导入函数 load()将图书信息从硬盘导入到内存中以进行其他操作。while(!feof(fp)fread(&stui,sizeof(struct book),1,fp);i+;fclose(fp);N=(i-1);1/14系统功能实现与算法描述4.1 信息查询功能运用 for 循环,若找到此书的相关信息就显示已经在到相关图书并输出该图书的相关信息,若未找到就能继续查找直到循环结束,若循环结束后还未找到相关图书就显示未找到相关图书。结束后选择是否继续修改。开始输入ch1,Load();i=0iN?YN未找到该图书相关信息Load();Ni+Strcm

12、p(stui.shuming,ch1)=0?Y已找到此图书,输出图书信息结束图 4-1查询流程图4.2 信息排序功能定义一个结构体中间变量,用冒泡排序两层for 循环,第二层循环内加 if 判断语句,若顺序相反(从小到大排序)就进行变量之间的交换。1/1开始structbooktempi=0;j=0NiN?YNJ0?i+NYStmp=stuj;Stuj=stujj+1;Stuj+1=stmp;j+图 4-2排序流程图4.3 图书信息删除功能先查找要删除的图书信息,若找到后选择是否进行删除操作,若进行删除操作就用后一本图书的信息覆盖前一本图书信息,若不进行删除就退出,若未找到也退出程序。1/1开

13、始输入 chi=0未找到该图书的相关信息NiN?YStrcmp(ch,stui.shuming)=0?;YNi+n=i找到需要删除的图书信息Ch1=y?YN输入 ch1NnN-1?YStun=stun+1;Save(N-1);删除后所有图书信息结束i+图 4-3删除流程图4.4 图书信息修改功能先找到要修改的图书信息,然后选择要修改的图书信息类型,修改后进行保存,若要继续修改就按 Y 否则就按 N 结束。1/1开始输入要修改图书的书名或isbn编号,ch20Load();i=0NiNYstrcmp(stui.shuming,ch1)=0|strcmp(stui.isbn,ch1)=0Ni+Y已

14、找到此书的相关信息结束选择要修改的信息类型输入修改后的图书信息ch120Strcpy(ch,ch1);Save();输入 ch2NYCh2=Y 图 4-4修改流程图1/15系统性能测试5.1 菜单函数的功能测试进入系统后显示菜单。图 5-1 菜单功能测试图5.2 录入函数的功能测试显示菜单后选择 1 图书信息录入功能,输入需要录入信息的图书数量,然后进行图书信息的录入。如图5-2 所示5.3 浏 览 函数的功能测试显示菜单后选则 2 图书信息浏览功能,输出先前已经录入的图书信息。1/1图 5-3 浏览功能测试图5.4 查询函数的功能测试显示菜单后选择图书信息查询功能,然后在四种查询方式中任选一

15、种方式并输入序号,然后输入与序号对应的要查询的图书信息,若找到此图书会显示已找到此图书并输出该图书的相关信息,若未找到提示输入错误。结束后若要继续查询请按y,否则请按n。如图 5-4-1 示找到图书信息。图 5-4 查询功能测试图如图 5-5 示若输入错误则显示未找到相关书籍。1/1图 5-5 查询错误提示5.5 排序函数的功能测试显示菜单后选择图书信息排序功能。然后在按作者名排序,按isbn 编号排序,按出版年份排序这三种排序方式中任选一种,然后输出排序后的所有图书信息(按从小到大的顺序)。图 5-6 排序功能测试图5.6 修改函数的功能实现显示菜单后选择图书信息修改功能,输入你要修改的图书

16、的书名或isbn 编号,若找到此书则显示已找到此书的相关信息并输出该图书的所有信息,否则则显示未找到此术的相关信息!然后选择修改图书信息的类型,在输入修改后的图书信息,修改完成后输出所有的图书信息。若要继续修改请按y,结束修改请按n。如图所示1/1图 5-7 修改功能测试图5.7 删除函数的功能测试显示菜单后选择图书信息删除功能,输出删除前所有的图书信息,然后输入需要删除信息的图书书名,若找到此书则显示已找到此书的相关信息,否则就显示未找到。若确认删除就按 Y 否则就按 N,删除完成后显示删除后所有的图书信息!如图5-7-1 所示图 5-8 删除功能测试图1/1若输入错误则会提示,输入有误。如

17、下图所示图 5-9 删除错误提示5.8 添加图书信息功能测试显示菜单后选择图书信息添加功能,输入需要添加信息的图书数量,然后依次添加入信息。如下图所示图 510 信息添加功能测试5.9 结束函数的功能测试显示菜单后选择退出功能,显示“谢谢使用!”。1/1图 5-10 修改功能测试图6设计小结用 c 语言编写的图书管理系统实现了图书信息的录入保存,导入浏览,查询,排序,删除,修改等功能,是图书管理操作的方便快捷化,是复杂的工作变得简单。在编写图书管理系统代码的过程中,我遇到了很多问题:1 保存和导入函数的运用上存在很多问题,首先是对保存和导入函数的用法和理解含糊不清,其次就对何时需要调用保存和导

18、入函数不太清楚。在查阅一些书籍和案例后,清楚了如何使用保存和导入函数。2 对结构体变量定义和结构体之间的信息交换不太熟悉,例如在对图书信息进行排序的过程中需要对整个结构体的信息进行交换,需定义一个新的有相同结的构体类型名的结构体变量才能进行结构体信息之间的交换。且交换的顺序十分重要。在请教老师后和查阅相关书籍后,加深了我对结构体的认识和理解。3 对于一些细节上的问题不够细心。例如一条语句后的分号,定义的变量类型,变量的使用,函数调用中实参和形参的类型等。通过一次又一次对程序的测试,最后解决了这些细节上的问题。这次的课程设计巩固了我对 c 语言课程学习,加深了我对一些程序算法的理解。并认识到程序

19、设计并不只是对程序代码设计能力的检测,更是对程序报告编写能力考验。1/1致谢本次的课程设计实验中我遇到很到问题,不管是细节问题还是一些算法问题都让我耗费了一定的时间。在解决问题的过程中,周围的老师和同学都给与了我很大的帮助。通过老师和同学的指导和帮助一些知识点薄弱的地方都得到了加强。非常感谢老师和同学的帮助,让我能够准确完成课程设计报告。通过这次课程设计实验我了解到团队合作的重要性,不论是在以后的学习中还是将来的工作中我都会谨记图解合作和不耻下问的重要性。1/1参考文献1胡成松,黄玉兰,李文红.C 语言程序设计M.北京:机械工业出版社,2015.82周红,苏晓光.C 语言程序设计实用教程M.北

20、京:人民邮电出版社,2013.113王新,孙雷.C 语言课程设计M.北京:清华大学出版社,2016:142-1471/1附录#include#include#include int mean();void save(int);void load();void input();void look();void search();void paixu();void xiugai();void shuming1(char ch20);void name1(char ch20);void isbn1(char ch20);void cbdw(char ch20);void year1(int a);v

21、oid prize1(float a);void back();void add();void xuanxiang();#define M 10000int N=0;struct bookchar shuming20;/图书书名char name20;/图书作者名char isbn20;/图书 isbn 编号char chubandanwei20;/出版单位int year;/出版年份float prize;/图书价格stuM;int mean()int choose;printf(-图书管理系统-n);printf(=n);printf(t(1)图书信息录入n);printf(t(2)图书信

22、息浏览n);printf(t(3)图书信息查询n);printf(t(4)图书信息排序n);printf(t(5)修改图书信息n);printf(t(6)删除图书信息n);printf(t(7)添加图书信息n);printf(t(8)退出程序n);printf(=n);printf(请输入你的选择:t);scanf(%d,&choose);1/1printf(n);return choose;void save(int N)FILE*fp;int i;if(fp=fopen(book.txt,wb)=NULL)printf(cannot open file n);return;for(i=0;

23、iN;i+)fwrite(&stui,sizeof(struct book),1,fp);fclose(fp);void load()FILE*fp;int i=0;if(fp=fopen(book.txt,rb)=NULL)printf(cannot open infilen);exit(0);while(!feof(fp)fread(&stui,sizeof(struct book),1,fp);i+;fclose(fp);N=(i-1);void input()int i;printf(请输入需要录入信息的图书数量:t);scanf(%d,&N);printf(n);for(i=0;iN

24、;i+)printf(请输入第%d 本图书的书名:,i+1);scanf(%s,stui.shuming);printf(请输入第%d 本图书的作者名:,i+1);scanf(%s,stui.name);printf(请输入第%d 本图书的 isbn 编号:,i+1);scanf(%s,&stui.isbn);printf(请输入第%d 本图书的出版单位:,i+1);scanf(%s,stui.chubandanwei);printf(请输入第%d 本图书的出版年份:,i+1);scanf(%d,&stui.year);printf(请输入第%d 本图书的价格:,i+1);scanf(%f,&

25、stui.prize);1/1printf(n);save(N);void look()int i;load();printf(书名t 作者名tisbn 编号t 出版单位t 出版年份t 价格n);for(i=0;iN;i+)printf(%st%st%stt%stt%dtt%.2fn,stui.shuming,stui.name,stui.isbn,stui.chubandanwei,stui.year,stui.prize);void search()int i,a,flog=0;printf(查询方式:nt1.按书名查询tt2.按作者名查询nt3.按 isbn 编号查询t4.按出版单位查询

26、n);printf(n 请输入查询方式:);scanf(%d,&a);switch(a)case 1:char ch120;printf(请输入需要查找的书名:);scanf(%s,ch1);printf(n);load();for(i=0;iN;i+)if(strcmp(stui.shuming,ch1)=0)printf(已找到相关图书!n);printf(书名t 作者名tisbn 编号t 出版单位t 出版年份t 价格n);printf(%st%st%stt%stt%dtt%.2fn,stui.shuming,stui.name,stui.isbn,stui.chubandanwei,st

27、ui.year,stui.prize);flog=1;break;case 2:char ch220;printf(请输入需要查找的作者名:);scanf(%s,ch2);printf(n);load();for(i=0;iN;i+)if(strcmp(stui.name,ch2)=0)printf(已找到相关图书!n);printf(n 书名t 作者名tisbn 编号t 出版单位t 出版年份t 价格n);printf(%st%st%stt%st%dtt%.2fn,stui.shuming,stui.name,stui.isbn,stui.chubandanwei,stui.year,stui

28、.prize);1/1flog=1;break;case 3:char ch320;printf(请输入需要查找的 isbn 编号:);scanf(%s,ch3);printf(n);load();for(i=0;iN;i+)if(strcmp(stui.isbn,ch3)=0)printf(已找到相关图书!n);printf(n 书名t 作者名tisbn 编号t 出版单位t 出版年份t 价格n);printf(%st%st%stt%st%dtt%.2fn,stui.shuming,stui.name,stui.isbn,stui.chubandanwei,stui.year,stui.pri

29、ze);flog=1;break;case 4:char ch420;printf(请输入需要查找的出版单位:);scanf(%s,ch4);printf(n);load();for(i=0;iN;i+)if(strcmp(stui.chubandanwei,ch4)=0)printf(已找到相关图书!n);printf(n 书名t 作者名tisbn 编号t 出版单位t 出版年份t 价格n);printf(%st%st%stt%st%dtt%.2fn,stui.shuming,stui.name,stui.isbn,stui.chubandanwei,stui.year,stui.prize)

30、;flog=1;break;if(flog=0)printf(未找到该作者的相关图书!n);void paixu()int i,j,n;struct book temp;/temp为结构体变量printf(n 排序方式(从小到大):nt1.按作者名排序2.按 isbn 编号排序3.按出版年份排序n);printf(n 请输入你的选择:);scanf(%d,&n);switch(n)case 1:load();for(i=0;iN;i+)for(j=0;j0)1/1temp=stuj;stuj=stuj+1;stuj+1=temp;printf(排序后的所有图书信息为:n);for(i=0;iN

31、;i+)printf(%st%st%stt%st%dtt%.2fn,stui.shuming,stui.name,stui.isbn,stui.chubandanwei,stui.year,stui.prize);break;case 2:load();for(i=0;iN;i+)for(j=0;j0)temp=stuj;stuj=stuj+1;stuj+1=temp;printf(排序后的所有图书信息为:n);for(i=0;iN;i+)printf(%st%st%stt%st%dtt%.2fn,stui.shuming,stui.name,stui.isbn,stui.chubandanw

32、ei,stui.year,stui.prize);break;case 3:load();for(i=0;iN;i+)for(j=0;jstuj+1.year)temp=stuj;stuj=stuj+1;stuj+1=temp;printf(排序后的所有图书信息为:n);for(i=0;iN;i+)printf(%st%st%stt%st%dtt%.2fn,stui.shuming,stui.name,stui.isbn,stui.chubandanwei,stui.year,stui.prize);break;void xiugai()int i,j,flog=0;char ch120,ch

33、;printf(请输入你要修改的书籍的 isbn 编号:t);scanf(%s,ch1);printf(n);load();for(i=0;iN;i+)if(strcmp(stui.isbn,ch1)=0)printf(*n);printf(已找到该图书的相关信息!n);1/1flog=1;printf(n 书名t 作者名tisbn 编号t 出版单位t 出版年份t 价格n);printf(%st%st%stt%stt%dtt%.2fn,stui.shuming,stui.name,stui.isbn,stui.chubandanwei,stui.year,stui.prize);printf(

34、n 请选择你要修改的图书信息:n1.书名t2.作者名t3.isbn 编号t4.出版单位t5.出版年份t6.价格n);printf(*n);scanf(%d,&j);switch(j)case 1:shuming1(stui.shuming);break;case 2:name1(stui.name);break;case 5:year1(stui.year);break;case 6:prize1(stui.prize);break;case 3:isbn1(stui.isbn);break;case 4:cbdw(stui.chubandanwei);break;default:printf

35、(输入错误n);break;if(flog=0)printf(未找到该图书的相关信息!n);printf(n 继续修改请按 y,结束请按 n,请输入你的选择:scanf(%s,ch);if(ch=y|ch=Y)xiugai();void shuming1(char ch20)char ch120;printf(请输入修改后的书名:n);scanf(%s,ch1);strcpy(ch,ch1);save(N);look();void name1(char ch20)char ch120;printf(请输入修改后的作者名:n);scanf(%s,ch1);strcpy(ch,ch1);save(N);look();void isbn1(char ch20)char ch120;printf(请输入修改后的 isbn 编号:n);scanf(%s,ch1);strcpy(ch,ch1);save(N);look();void cbdw(char ch20)char ch120;printf(请输入修改后的出版单位:n);1/1);scanf(%s,ch1);strcpy(ch,ch1);save(N);1/1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁