ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:366.22KB ,
资源ID:19731906      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19731906.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C#程序设计课设报告Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C#程序设计课设报告Word下载.docx

1、3、图书管理系统程序1、浏览书籍信息2、修改书籍信息3、统计书记情况4、查询书的基本信息5、录入新书信息1、输入教师信息 2、查看教师信息 3、清空记录 4、退出程序 课程设计报告规范1、完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。2、完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。3、完成系统详细设计:包括采用C+语言定义相关的数据类型;写出各模块的类C+码算法;画出函数的调用关系图。4、调试分析、设计体会、测试数据:准备典

2、型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。5、关键源程序(带注释)6、其他1)设计正确,方案合理。2)界面友好,使用方便。3)程序精炼,结构清晰。4)设计报告5000字以上,含程序设计说明、系统的功能框图、流程图、源程序清单等。5)实际操作过程中遇到的问题及解决方法:设计总结及心得体会.6)上机演示。二、进度安排第 16 周 星期一 14时:00分星期二 14时:00分 星期四 14时:星期五 14时:第 17 周 星期一 14时:1 系统需求分析1.1系统设计目的与意义1.2系统功能需求

3、利用C+语言和access数据库的相关知识设计与开发一个图书管理系统的借书模块、还书模块和图书存储模块,具有读者编号、读者信息、书籍编号、书籍信息的输入功能;可以在数据库中查询和删除所保存的记录;在借书功能里,用户可以通过此功能是否借出检索的书籍,还书功能里,读者可以查看所接书籍信息,并具有退出该系统模块的功能。1.3输入输出要求本系统是一个图书信息管理系统,采用VC+6.0 编译器作为开发环境,这个环境是我们在学习的C+平台。输入数据类型主要是char、int、float等数据类型,输入内容包括:图书编号、图书名、读者编号、读者名等数据。用户在输入图书信息保证输入数据格式的正确性,系统不会自

4、动检测输入的数据是否正确可用。输出形式与输入形式类似,根据需要可以选择显示输入的各项内容,还可以修改、删除、查找、显示所有、保存等功能。2 总体设计2.1总体设计图本管理系统共分为五大功能:分别为借书功能、还书功能、图书维护、读者维护、退出系统,系统设置模块各功能性需求见下表所示由图2.1所示 图2.1总体设计图 2.2 各函数之间的调用关系该模块完成了图书管理系统中新增图书、查询图书、删除图书信息、借书、还书以及读者信息录入的功能,其中在图书维护模块的功能中,又可实现新增图书、更改图书信息、删除图书、查询图书、显示全部图书、删除全部图书的功能。同样在读者维护模块中也有类似的新增读者、更改读者

5、信息、删除读者、查询读者信息等功能。流程图如图2.2所示。1新增读者1. 更改读者信息2. 删除读者3. 查询读者4. 显示全部读者5. 删除全部读者6. 退出图2.2各函数之间的调用关系2.3 数据结构及数据库数据结构是指同一数据元素类中各数据元素之间存在的关系。数据结构分别为逻辑结构、存储结构和数据的运算。数据的逻辑结构是从具体问题抽象出来的数学模型,是描述数据元素及其关系的数学特性的,有时就把逻辑结构简称为数据结构。而数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。图书管理系统程序利用C+语言编写,定义多个类,数据保存到access数据库实现数据保存和查询。Acce

6、ss数据库中存储了输入的图书信息,读者信息以及图书的借阅情况。2.4 C#语言的简介C#语言是在C、C+和Java基础上重新构造的、语法与C+和Java都比较相似的基于。NET框架支持的一种完全面向对象的、类型安全的编程语言,也是。NET的首选编程语言。从开发效率来讲,C#为应用程序开发人员提供了快速的开发手段,但又不牺牲C+语言的特点和优点。从继承性来讲,C#在更高层次上重新实现了C和C+。从语法形式和易用性来讲,C#几乎综合了目前流行的所有高级语言的优点,提供了一种语法优雅、功能完善而又容易使用的外在表现形式。3 详细设计3.1 采用C+语言定义的相关数据类型C/C+ 数据类型C语言包含5

7、个基本数据类型: void 空类型、int 整型、float 浮点类型、 double 双精度浮点类型、 char 字符类型,在图书管理系统这个程序中用到了其中的大多数。同时还用类和对象的方法来定义多个类,在这之前,曾采用结构体的方法来做个,但后来放弃了,因为采用数组或者结构体的方法定义多个事件,那样将会非常繁琐,代码重复比较大,因此,为了简化这些连接操作,在开发时设计个可重用的类,把对数据库的操作都封装在这个类中,需要用到时生成对象调用便可。这样就避免了在出现错误时,为了去修改错误而产生的庞大的工作量。3.2各模块的类C码算法3.2.1采用类建立一个读者类,实现对读者信息的描述 根据课设要求

8、定义一个读者类,在类中,定义了读者的编号、姓名,建立数组来存储读者所借阅的书籍, 同时也建立多个成员函数像 addreade() 、borrowbook() 、disp()实现新增读者,存储读者借阅信息显示读者信息等功能 class Reader private: int tag; /删除标记 1:已删 0:未删 int no; /读者编号 char name10; /读者姓名 int borbookMaxbor; /所借图书 public: Reader() char *getname() return name; /获取姓名 int gettag() return tag; /获取删除标记

9、 int getno() return no; /获取读者编号 void setname(char na) /设置姓名 strcpy(name,na); void delbook() tag=1; /设置删除标记 1: 3.2.2建立读者数据库,保存读者个人信息并实现查询功能、删除 在读者数据库中,通过构造函数,将reader.txt(输入的读者个人信息)读到read数组中,通过clear()函数来删除所有读者信息,不过在删除前会先用for循环来对数据库中的数据进行遍历,来查找读者是否存在。通过在析构函数中,将read写到reader.txt文件中,进行读者库的维护class RDatabas

10、e private: int top; /读者记录指针 Reader readMaxr; /读者记录public: RDatabase() /构造函数,将reader.txt读到read中 Reader s; top=-1; fstream file(reader.txt,ios:in); /打开一个输入文件 while (1) file.read(char *)&s,sizeof(s); if (!file)break; top+; readtop=s; file.close(); /关闭 reader.txt 3.2.3建立图书类,实现对图书的描述,图书的编号,书名,借出,还入等同样根据课

11、程设计要求,定义一个图书类,用来存储书籍的编号、名称,以及是否借阅的信息,通过delbook()、addbook()、borrowbook()、retbook()等函数来实现对图书的删除、增加、是否借阅和还书信息的记录class Book /图书编号 char name20; /书名 int onshelf; /是否再架 1:再架 2:已借 Book() char *getname() return name; /获取姓名 int getno() return no; /获取图书编号 int gettag() return tag; /获取删除标3.2.4建立图书数据库,实现对图书的维护,查找

12、,删除等同样在图书数据库中,也是通过构造函数,将reader.txt(输入的图书信息)读到read数组中,通过clear()函数来删除所有图书信息,不过在删除前会先用for循环来对数据库中的数据进行遍历,来查找图书是否存在。通过在析构函数中,将read写到reader.txt文件中,进行图书库的维护class BDatabase /图书记录指针 Book bookMaxb; /图书记录 BDatabase()/构造函数,将book.txt读到book中 Book b; top=-1; fstream file(book.txt while (1) file.read(char *)&b,siz

13、eof(b); if (!file) break; top+; booktop=b; file.close();3.2.5系统目录的设置 根据课程设计的要求,系统目录设置为五个模块,第一个模块,借书模块;第二个模块,还书模块;第三个模块,图书维护模块;第四个模块,读者维护模块;第五个模块,退出系统。这五个模块简明而有效地实现了图书管理、读者管理、借阅功能,同时也实现了界面友好。cout endlttt欢迎使用图书管理系统n; cout choice;4系统调试与结果4.1程序运行结果 程序开始的主界面,分为借书还书,图书维护,读者维护。在程序开始执行时要先选择3图书维护,然后选择4进行读者维护

14、 图4.1.1主界面进行图书维护、新增图书,按要求输入图书编号,图书名 图4.1.2新增图书输入5可以显示所增加的书籍 图4.1.3显示所增书籍输入2按要求即可修改书籍信息 图4.1.4更改图书信息其他操作均按照界面中的要求来运行,对于读者系统的操作也同图书系统一样 图4.1.5新增读者借书只需输入读者编码和图书编码 图4.1.6借书模块在借了书后,图书管理系统中将会记录借阅信息 图4.1.7借阅记录同样还书的方式也与借书一样 图4.1.8还书模块 图4.1.9还书后图书属性4.2调试中出现的问题(1)在开始程序运行的时候,输入读者编号输入的是字母结果导致程序死循环,后来经过多次运行发现在读者

15、编号不能用字母,只能用数字,因为我最初定义读者编号时是定义的整形。(2)由于刚开始时出现了输入读者编号出现死循环的错误,我又试了一下,同样在图书管理模块中图书编号也必须是输入数字才能运行。还有为了更好的使用循环,设计了for语句,结果不能执行,最后无奈只能使用函数系统另加函数,在主函数里调用。(3)上机操作调试程序额的时候,发现了许多由于自己的粗心写错了单词,比如void写成了viod,还有粗心将private写成了privacy,调试的时候总是出现错误,后面一看才知道是自己的粗心造成的呀,还有就是有时候少些了分号或只打了半边括号,定义图书的时候忘了一项书号,结果最后无法输入,在打开文件的时候

16、fp写错,经过很多的调试没成功,这也是个粗心错误。作为一个学计算机的,这种错误以后得避免才行,不然小粗心会造成自己以后编程中的大问题!(4)由于该系统程序的开发过程比较细致和复杂,需用到的各方面的知识都比较多,而初学者对学习特别是其中指针、数组和链表及输入流与输出流等比较陌生,且难以灵活运用,因而我们团队在整个开发过程经历一段很长的时间,且难以让其一次性地准确地调试和运行。(5)由于在程序中大量的使用switch语句,有时候输入相应的指令却没有得到需要的结果,是因为在写case时没有写break语句,导致程序运行后得不到想要的结果。至于少加“;”的问题就不列举了5 使用说明 (1)运行程序到系

17、统界面,先输入3进行图书维护或者输入4读者维护,然后按界面要求输入1新增图书和新增读者。一定要先输入图书信息和读者信息才能够进行借书、还书等其他操作。(2)如果需要更改、删除图书信息或者读者信息,可以在图书维护和读者维护中操作。(3)按0返回系统界面,之后可按需求进行借书还书操作,借书还书只需要记得图书编号和读者自身编号即可,图书编号与读者编号都可在图书维护和读者维护中查询到。(4)如果不记得自身的读者编号,可以在读者维护模块中通过姓名查询的方式查询到,同样,不记得要借的书籍的图书编号,也可以在图书维护模块中通过图书名的方式查询到。同时,在图书维护模块中的显示功能里,可以了解到存储在数据库中的

18、所有书籍和他们的编号。6 心得体会 通过这次课程设计,我深刻体会到这门课程并不是轻而易举就可也学好的,学习这门课程不仅需要细心严谨的态度,还需要充分发挥我们的想象力,让理论和实践充分的结合在一起,才能达到事半功倍的效果。细节决定成败这句话在程序设计中最恰当不过了,因为一个小小的错误代码就可以使你的整个的程序无法进行,有时候绞尽脑汁也没能找出错误所在,只好老老实实的从新进行编写工作。所以课程不仅理论性强,实际操作性更强,没有一个好的心态很难学好这门课程。我们学习的不仅是科学的方法,还包括用什么样的态度去对待这门课程,并且让自理论性和实践性在自身得到充分的发挥,用细心严谨的态度去认识事物。在课程设

19、计过程中,我们每个人选择一个课题,认真研究,根据课堂讲授内容,借助书本,自己动手实践。这样不但有助于我们消化课堂所讲解的内容,还可以增强我们的独立思考能力和动手能力;通过编写实验代码和调试运行,我们可以逐步积累调试C#程序的经验并逐渐培养我们的编程能力、用计算机解决实际问题的能力。通过这次课程设计使我充分的了解了对类和对象中基本原理的应用,知道了类对象的定义关系方法,同时也学会了编写简单的带有成员函数的程序。虽然此次的程序不是很完备,但是总体还是一个比较能体现类和对象知识点能力的程序,当然只是相对于我这个初学者来说。通过这次的C#课程设计,我也深刻了解到这门学问的博大精深,要积极进取,不断学习

20、,不断积累知识。同时也认识到自己的不足和缺点,做什么事都需要细心和耐心,并坚持下去,这样才还有一个比较满意的成果. 实践出真知,通过亲自动手,使我们掌握的知识不再是纸上谈兵。课程设计是一个把需求分析、程序编写、程序调试、撰写报告结合为一体的过程。在这个过程中,不仅锻炼了我们缜密的思维和坚持不解的毅力,更磨练了一个队伍的团结互助的精神。只有通过大家一起努力才能将课程设计的所有环节都顺利的完成。另外程序设计中我们遇到问题并解决问题的过程,使得我们独自探索并解决问题的能力了有了一个提高,这有利于我们以后的学习。同时这整一个过程,也使我们对程序编写的整个过程有了一个统筹全局的思想,因为需求分析、程序编

21、写、程序调试、撰写报告这些过程是环环相扣的,绝对不可能独立进行。课程设计是一个重要的教学环节。我们在一般情况下都能够重视实验环节,但是容易忽略实验的总结,忽略实验报告的撰写。通过这次实验让我们明白:作为一名大学生必须严格训练分析总结能力、书面表达能力。需要逐步培养书写科学实验报告以及科技论文的能力。只有这样,我们的综合素质才会有好的提高。7附录7.1源代码#include iomanipstringfstream /输入/输出文件流类using namespace std;const int Maxr=100; /最多的读者const int Maxb=100; /最多的图书const int

22、 Maxbor=5; /每位读者最多借五本书 void addreader(int n,char *na) /增加读者 tag=0; no=n; for(int i=0;iMaxbor;i+) borbooki=0; void borrowbook(int bookid) /借书操作 if (borbooki=0) borbooki=bookid; return; int retbook(int bookid)/还书操作 if(borbooki=bookid) return 1; return 0; void disp() /读出读者信息 cout setw(5) no setw(10) name借书编号: if(borbooki!=0) cout borbooki |endl; void clear() /删除所有读者信息 int addreader(int n,char *na) /添加读者时先查找是否存在 Reader *p=query(n); if (p=NULL) top+; readtop.addreader(n,na); return 1; Reader *query(int readerid) /按编号查找

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1