操作系统课设范文
操作系统课设范文(精选8篇)
操作系统课设 第1篇
一、操作系统课程设计要求:
1.每个学生从以下给定题目中选做至少一项,也可以针对操作系统课程实验已完成的题目进行扩充完善; 2.设计周周末向各班学习委员交源程序、设计报告的电子版和打印版; 3.编程工具不限
二、操作系统课程设计题目:(在以下题目中任选一个题目进行设计)
1.进程同步问题(信号量机制)(任选其一)1)生产者消费者问题 2)哲学家进餐问题 3)读者-写者问题 4)吃水果问题 5)售票员售票问题
2.进程(作业)调度算法(任选其中三种算法)1)先来先服务算法 2)短进程(作业)优先算法 3)优先数优先算法 4)最高响应比优先算法 5)时间片轮转调度算法
3.实时调度算法 1)最早截止时间优先 2)最低松弛度优选 4.银行家算法(死锁避免)
5.动态分区分配算法(连续存储器管理方式)
首次适应算法、循环首次适应算法、最佳适应算法、最差适应算法 6.页面置换算法
最佳置换算法OPT、先进先出算法FIFO、最近最久未使用算法LRU 7.磁盘调度算法
先来先服务算法、最短寻道时间优先算法、扫描算法(电梯调度算法)8.缓冲池管理
三、操作系统课程设计任务书
封皮
指导教师评语
第一部分:需求分析(课题描述、课题目的、理论依据)第二部分:概要设计(设计方法、技术、运行环境等)第三部分:详细设计(流程图、程序主要代码)
第四部分:运行结果及分析(运行结果(可以截图)、结果详细分析)第五部分:总结和心得 参考文献: 附录:程序源代码
注:程序详细代码附在电子版中即可,打印版可不打印。
课程设计时间:2018年1月1日——2018年1月5日
操作系统课设 第2篇
这学期开设的数字信号处理课程是信号与系统课程的延续,带着对信号与系统学习的兴趣,我满怀信心的开始了对数字信号处理这门课程的学习。
因为对信号与系统这门课程学习的还算透彻,,所以以为数字信号处理这门课程也应该不在话下,但事实上并非如此。信号与系统相对来说更倾向于对数学理论及公式的学习,需要理解的部分也较浅显易懂,计算也较简单,只是简单的接触并学习了一些信号的基本知识。而数字信号处理是信号知识的深化学习,既重理论又重实践,理解起来也相当困难,特别是对于一些以前没接触过的概念,学习起来真有点寸步难行。
课程设计在刚接触的时候感觉很难,但我们并没有被困难所吓倒。我们组的成员积极的复习课本上与用窗函数设计FIR低通滤波器的相关知识,又从图书馆借来有关Matlab语言及函数库的书籍,从中收获了不少知识,模糊的实验步骤渐渐清晰起来。为了使设计的实验更严谨完美,一周的时间我都充分的利用了起来,不仅是FIR滤波器的知识,也将课本复习了一遍,这不仅仅加强了我们对FIR滤波器知识的理解,也使后来的考试变得更有自信。
操作系统课设 第3篇
《计算机操作系统》几乎是所有计算机相关专业的必修课程。由于计算机操作系统本身的透明性和抽象性使得本门课程偏重于理论教学, 其内容抽象难懂。在学习本门课程时, 大部分学生都反映抓不到关键点和重点, 无法将其中的理论知识与操作系统的具体工作原理结合起来, 因此教与学的效果不是很理想。即使学生在考试时可以取得很好的成绩, 但还是没有真正的掌握操作系统的内部工作状况, 在日后的工作中更不可能从事有关计算机操作系统的研究。
针对以上情况, 本文旨在以操作系统原理知识为基础, 通过图像化的、动态的演示来展现进程管理过程, 从而帮助学生加深对相关理论知识的掌握。
2 开发技术简介
本系统以VS2010为开发平台, 以C#为开发语言进行设计。VS2010能够用来创建微软平台下的Windows应用程序和网络应用程序, 也可以用来创建Office插件、网络服务和智能设备应用程序。VS2010支持C#、C++、VB, 而且它可以自定义开始页, 新功能主要包括C#4.0中的动态编程和动态类型、使用VS2010的特性支持TDD、多显示器支持以及支持Office等。
C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#由C语言和C++派生而来, 继承了其强大的性能, 同时又以.NET框架类库作为基础, 拥有类似Visual Basic的快速开发能力。C#4.0新增dynamic关键字, 提供动态编程 (dynamicprogramming) , , 把既有的静态对象标记为动态对象, 类似javascript, Python或Ruby。
3 设计思路
整个系统设计计划将作为计算机操作系统的五大核心功能之一的进程管理部分, 划分为进程的控制, 进程调度, 进程间的同步, 进程间的通信以及死锁的避免五个子模块, 并以不同的界面模块进行模拟, 在每个功能模块的模拟中, 学生可以通过直观的、动态的实例获得系统有关执行情况, 并且学生可以自己输入参数进行特定条件下的系统执行情况的模拟。。本系统的框架结构见图1所示。
4 系统实现
4.1 进程控制模块的设计
操作系统中最核心的概念是进程, 在使用多道程序设计的系统中, , 进程是独立运行和资源分配的基本单位。进程的控制是进程管理中的基本功能之一。它用于创建新的进程, 终止已经完成的进程, 或是终止因某事件的出现而导致其无法执行下去的进程, 还可以负责进程间状态的相互转换。
进程控制模块主要实现进程的创建与注销及进程基本的三态转换, , 以帮助学生对这部分内容建立起整体的概念。进程的三种状态及其转换关系见图2所示。
本模块实现了创建进程、阻塞进程、撤销进程和唤醒进程, 用户可以选择进程调度算法来控制进程运行的先后顺序。进程控制机制模块流程如图3所示。
进程运行时, 用户需要先进行初始化才能创建进程和模拟进程控制。设计界面如图4所示。
静止就绪激活进入活动就绪的相关代码:
4.2 进程同步模块的设计
进程同步是指并发执行的进程由于直接制约关系而需要相互等待、相互合作, 从而实现每个进程按照相互协调的步伐向前推进。
最典型的进程之间的同步问题之一是生产者和消费者问题。它描述了生产者线程向消费者线程提供产品, 两类线程共享一个由n个缓冲区组成的有界缓冲池, 生产者进程向空缓冲区中放入已经生产的产品, 消费者进程从放有数据的缓冲区中取得产品并消费掉。假定生产者线程和消费者线程是可以同时进行, 只要缓冲区没有满, 生产者线程就可以把产品发到缓冲区;只要缓冲池不为空, 消费者线程便可以从缓冲区中取出产品。但禁止生产者线程向已经装满的缓冲区中再存放产品, 也禁止消费者线程从空的缓冲区中取出产品。生产者与消费者模块流程如图5所示。
点击开始生产按钮生产者就开始生产, 等到缓冲池里装满产品生产者停止生产, 点击开始消费消费者开始消费, 等到缓冲池为空时消费者停止消费。设计界面如图6所示。
5 结论
本系统以VS2010为设计平台, 结合C#开发语言, 实现了可视化的进程管理模拟系统, 达到了较好的演示效果。本系统的开发可以在一定程度上提高操作系统的教学效果和教学质量, 也有助于学生理解操作系统中进程管理功能的实现原理和实现技术。
摘要:以进程管理原理知识为基础, 利用MicrosoftVisualStudio2010开发平台, 采用C#开发语言设计一款模拟演示系统, 包括进程管理模块、进程调度模块、进程同步模块、进程通信模块以及死锁的避免模块。该系统以图形界面方式实现了进程管理执行过程的直观可视化, 帮助学生加深对理论知识的理解与掌握。
关键词:进程管理,模拟演示系统,Micro soft Visual Studio2010,C#
参考文献
[1]汤小丹, 梁红兵, 哲凤屏, 汤子瀛.计算机操作系统[M].第3版.西安:西安电子科技大学出版社, 2007.
[2]斯托林斯.操作系统精髓与设计原理[M].北京:电子工业出版社, 2012.
[3]张琼声, 蒋玉新, 李春华, 刘童璇.进程管理演示系统的设计与实现[J].计算机教育, 2009:144-148.
因课设练,情动辞发 第4篇
[关键词]因课设练 情动辞发 习作
[中图分类号] G623.2 [文献标识码] A [文章编号] 1007-9068(2015)28-085
苏教版六年级上册“习作二”要求写一篇记叙文,表达自己对爸爸妈妈的爱。习作要求,特别提到了要学生先想一想爸爸妈妈平日是怎么爱自己的,再向爸爸妈妈说出(或写出)“我爱你”,注意观察爸爸妈妈的反应。这个要求既包含着主题、内容方面的提示,又带有观察、体验方法的指导,可以说,如果能完全按照习作要求去做,要写出一篇好作文并不难。在习作前,我带领学生认真阅读了习作要求后,布置他们先为父母做件事,再表达爱。结果,我一看,好作文寥寥无几,有的语言干瘪,言之无物;有的激情泛滥,描写失真;有的准备不足,情节简单;有的情节雷同,毫无新意……
反思失败的习作教学过程,我认为,学生要写好这篇作文,不光要观察细致,还应具有较强的书面表达能力,能够抓住动作、语言、神态、心理活动等描写人物。然而,班中仍有部分学生欠缺把作文写生动、写具体的能力。如果只凭习作前老师三言两语的简单提示,是很难写出好作文的。另外,我通过调查了解到,还有一部分学生敷衍了事,他们并没有真正为父母做事,也没有“言爱”,自然没有真切的情感体验,当然就更写不出好作文了。
巧的是,第二年,学校仍然安排我教六年级。有了上次失败的经验,我进行了一些新的尝试,取得了较好的教学效果。
一、因“课”制宜巧练笔
新学期一开始,把整册书全部通读一遍后,我发现苏教版六年级上册第二单元共有4篇课文:《负荆请罪》《最后的姿势》《船长》和《爱之链》。这4篇课文除了主题一致外,还都记叙了感人至深的故事情节,塑造了个性鲜明的人物形象,尤其是人物的描写细致生动而又各具特色。由此看来,4篇课文都可以拿来作为练笔的例文。
基于这种考量,我把整个单元的课文进行了统筹安排。
首先借助《负荆请罪》一文,设计分角色朗读和课本剧表演的环节,通过对剧本这种文体的感悟,使学生体会到语言、动作、神态描写是表现人物性格特点的主要方法,语言描写要与人物身份、年龄以及性格等相符合。
然后,根据课文的不同特点,设计了3次练笔。《最后的姿势》一课,谭千秋老师奋不顾身护住学生的动作描写,用词准确。我利用课间组织学生观察,要求最少用上十个动词,描写同学活动的过程。《船长》一文中,简短的对话表现了危急关头哈尔威船长沉着镇定的品质,且四种形式的提示语(提示语在前、提示语在后、提示语在中间、无提示语)都有,是对话描写的好教材。学完课文后,我布置学生晚上回家主动请求帮家长干活儿,并把对话记录下来,注意四种提示语形式都要用上。《爱之链》对乔依帮老妇人修车的过程描写得细致感人,特别是动作、神态描写,更是令不畏严寒、热心助人的失业青年的形象跃然纸上。结合班级中开展的大扫除活动,我让学生留心观察同学的劳动过程,并写下来。
三次练笔,各有侧重,分别从动作、语言、神态三方面进行专题训练,使学生对怎样观察,怎样进行细致描写,有较为深刻的习作体验。在这个过程中,教师的引导特别重要。比如,最初描写劳动过程时,学生只能写出“××弯着腰,低着头,认真地扫地”这样简单的句子。课堂上,我播放录制的大扫除视频,引导学生关注细节,用上恰当的动词把人物一连串的行动说具体;观察表情的变化,揣摩内心活动。在这样的反复练习中,学生耳濡目染,进而学会了如何观察人物的举手投足、一颦一笑。最后,就连作文最差的学生也能较为具体地描写人物的言谈举止,可见教师的指导的确具有不可替代的作用。
除了指导观察,我还注重及时讲评和交流。赏识会令人产生快乐的情绪,也许一个闪光点的发现与鼓励,能给某个学生的习作带来生机与转机。我把学生习作中的精彩句段编辑打印成班级小报,人手一份,认真阅读,圈画出好词佳句。在高声朗读、热烈讨论的过程中,习作中的优点被放大,被聚焦,学生体会到习作的快乐,找到习作的信心。事实证明,“伙伴语言”更易于模仿和学习。讲评后的修改,可以达到采众家之长,补一己之短的目的。
二、加强沟通诉真情
“习作二”面临的另一个难题就是学生羞于向父母表达爱,爱在心中口难开。还有部分家长不配合,没有出现学生期待的那种感动、激动等热泪盈眶的场面,因此就在现实的基础上进行了不切实际的“艺术加工”,从而使作文成为“想象文”和“虚构文”。
要解决这些问题,首先要打开学生的心门,激发他们对父母的感恩之情。为此,我在课堂上拿出专门的时间,让学生讲一讲平日里爸爸妈妈是怎么爱自己的。在讨论的过程中,学生逐渐认识到,生病时无微不至的照顾是爱,错题时勃然大怒的训斥也是爱;晨起时一碗热气腾腾的面条是爱,晚归时一顿絮絮叨叨的数落也是爱……宽容是爱,严苛也是爱;轰轰烈烈是爱,平平淡淡也是爱。无论形式如何,爱的实质不变。当学生深刻体会父母的良苦用心和艰辛努力后,“辞以情发”,爱的表达就迫切多了。
我用飞信向所有家长说明了本次习作的情况,并了解家长们在面对孩子表达之后的真实表现。通过沟通,我把其中有代表性的几个家长的短信制成PPT展示给学生看,其中两条是这样写的:
“孩子跟我说了‘我爱你’,我还以为他是看电视剧看多了,当时就没给他好脸色。真不好意思,其实最近我的孩子懂事多了,回家主动写作业,我很高兴。”
“女儿把字条压在我手机底下,我早上看见了,可是我当时正忙着做饭,还要给住院的老人送饭,急匆匆就走了,晚上又加班,还没顾上和孩子交流。”
一石激起千层浪。不少学生蓦然发觉,原来类似的情况大家也都有。于是,面子放下了,心扉打开了,发言热烈了,真话说出来了。尤为可贵的是,学生体谅理解了父母,还能反思自我。真情流露笔端,一篇篇真实朴素而又独具特色的作文诞生了。
这次作文教学的成功,带给我很多启发。
1.读与写密不可分。叶圣陶先生说过:“教材无非是个例子,凭这个例子要使学生能够举一反三,练成阅读和作文的熟练技能。”说到底,就是要活用教材,用课文引路,借课文悟法。入选教科书的每一篇课文都是写作的典范,教师要善于引导学生发现和把握教材写作方法和语言特色,找准训练点,从小处着手,扎实训练,有效提高学生的习作水平。
2.学作文重在历练。学语文,重在积累,重在习得,学作文尤其如此。写作知识的运用,是建立在大量的写作实践的基础上的。但是,对高年级学生而言,动辄写四五百字的长篇,势必加重学生的身心负担。将习作题目分散成多个小目标,因课设练,局部仿写,练笔的篇幅短,步子小,难度低,就会打消学生的畏难情绪,使学生的习作能力逐步提高。
3.作文离不开生活。新课标强调让学生“易于动笔,乐于表达”,因此“应引导学生关注现实,热爱生活,积极向上,表达真情实感”。习作的准备至关重要,怎样激发学生参与实践的积极性,让他们真正动手动脑,是个很值得研究的问题。方法可以灵活多样,但务必做到人人参与,触物生情。这是学生习作说真话、吐真情的基础。
C语言图书管理系统课设报告 第5篇
论文题目: 图书信息管理系统
学 院: 年 级: 班 级: 姓 名: 学 号: 指导教师:
软件学院 2015级
软件工程1522班 韩汀
201515614100 邵回祖
2016年6月14日-2016年6月22日
目录
1.需求分析---------1
2.概要设计---------2
3.详细设计---------3
4.调试分析---------8
5.核心源程序清单和执行结果------------------------8
6.课程设计总结----19
1.需求分析
(1)程序的功能:
图书信息管理系统涉及5项功能,包括录入,浏览,查询,删除和修改,其中查询可通过书名或作者两种途径进行。
图书信息录入:将图书信息写入程序,包括序号,书名,作者,出版社,出版日期和价格。
图书信息浏览:将所有已录入的图书信息按序号排序列出。图书信息查询:可根据图书的书名或作者查找该书的具体信息。图书信息删除:可根据序号删除指定图书信息。图书信息修改:可根据序号修改图书所有信息。
(2)输入输出要求:
无
(3)测试数据: 高等数学 1 高等教育出版社 2014.7 31.20 2 概率论 2 高等教育出版社 2008.6 37.40 3 线性代数 3 高等教育出版社 2007.5 17.30 4 C程序设计 4 清华大学出版社 2010.6 33.00 1
2.概要设计:(1)数据的存储结构
(2)系统流程: 2
3.详细设计:
(1)信息录入函数: 用scanf函数输入定义的书籍结构体的序号,书名,作者,出版社,出版时间和价格。建立10本书籍的书库,输入完毕,返回主函数。
(2)信息浏览函数:
(3)信息查询函数:
这里分两个项目,一个是通过书名进行查询,另一个是通过作者进行查询。在定义查询函数时使用switch函数:
通过书名进行查询:
通过作者进行查询:
(4)信息删除函数:
根据序号删除图书,操作成功后显示删除成功,任意键跳转。如果序号输入错误显示图书不存在。
(5)信息修改函数:
在此函数中,根据序号选择图书修改,存在一个问题,就是难以选择其中一项进行修改,只能全部修改。
出现的问题:只能全部进行修改:
4.调试分析:
(1)在初次运行中,发现系统闪退问题存在于第2,3,4,5项中,输入序号点击回车系统闪退。最后在每一项最后加入system(“pause”);使得闪退问题修复。
(2)在最初编写代码过程中,始终输入:FILE *fp;
if((fp=fopen(“library”,“r”))==NULL)最后修改为:FILE *fp;
if((fp=fopen(“library.doc”,“r”))==NULL)
(3)在信息修改一栏中,目前仍无法实现单独修改一条信息的功能,只能根据序号,对序号所对应的全部图书信息进行修改。
if(i!=library.count){
mbook book;
printf(“ntt请输入修改后此图书的信息n”);
printf(“t请输入图书号:”);
scanf(“%s”,book.number);
printf(“t请输入图书名:”);
scanf(“%s”,book.name);
printf(“t请输入作者名:”);
scanf(“%s”,book.author);
printf(“t请输入出版社:”);
scanf(“%s”,book.publish);
printf(“t请输入出版时间:”);
scanf(“%s”,book.time);
printf(“t请输入该书的价格:”);
fflush(stdin);
scanf(“%f”,&book.price);
strcpy(library.book[i].name,book.name);
strcpy(library.book[i].number,book.number);strcpy(library.book[i].publish,book.publish);strcpy(library.book[i].author,book.author);strcpy(library.book[i].time,book.time);library.book[i].price=book.price;save();5.核心源程序清单和执行结果:
(1)源代码:
#include
typedef struct { int count;//书的本数
mbook book[100];//最大可有100本书 }mlibrary;
mlibrary library;void save()//保存图书信息。{ FILE *fp;if((fp=fopen(“library.doc”,“w”))==NULL){ printf(“n不能保存图书信息n”);return;} fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book[0]),library.count,fp);}
void putin()/*定义录入函数*/ {
int y=1;
system(“cls”);while(y)
{ printf(“t请输入您的书籍的书号:”);scanf(“%s”,library.book[library.count].number);printf(“t 请输入书名:”);scanf(“%s”,library.book[library.count].name);printf(“t 请输入作者名:”);scanf(“%s”,library.book[library.count].author);printf(“t 请输入出版社:”);scanf(“%s”,library.book[library.count].publish);printf(“t 请输入出版时间:”);scanf(“%s”,library.book[library.count].time);printf(“t 请输入该书的价格:”);fflush(stdin);scanf(“%f”,&library.book[library.count].price);library.count++;printf(“n 是否继续录入(1.继续;0,退出录入):”);fflush(stdin);scanf(“%d”,&y);if(y!=1){ y=0;break;} } save();} void lookup(){
int i;
system(“cls”);
printf(“图书号t图书名t作者名t出版社t出版日期t图书价格n”);for(i=0;i void search()/*定义查询函数*/ { int a;system(“cls”);/*进行清屏*/ printf(“tt******************************n”);printf(“开始查询n”);printf(“ttt1---------------search_by_namen”);printf(“ttt2---------------search_by_writern”);printf(“ttt0---------------exitn”);printf(“tt******************************n”);printf(“tt请选择你想要的查询方式:”);fflush(stdin);scanf(“%d”,&a);switch(a){ case 1: search_by_name();break;case 2: search_by_author();break;case 0: return;} system(“pause”);} void del()/*定义删除函数*/ { int i;char number[10];system(“cls”);/*清屏*/ printf(“n Please type in the number of the book you want to delete:”);fflush(stdin);scanf(“%s”,number);for(i=0;i mbook book; printf(“ntt请输入修改后此图书的信息n”); printf(“t请输入图书号:”); scanf(“%s”,book.number); printf(“t请输入图书名:”); scanf(“%s”,book.name); printf(“t请输入作者名:”); scanf(“%s”,book.author); printf(“t请输入出版社:”); scanf(“%s”,book.publish); printf(“t请输入出版时间:”); scanf(“%s”,book.time); printf(“t请输入该书的价格:”); fflush(stdin); scanf(“%f”,&book.price); strcpy(library.book[i].name,book.name); strcpy(library.book[i].number,book.number);strcpy(library.book[i].publish,book.publish);strcpy(library.book[i].author,book.author);strcpy(library.book[i].time,book.time);library.book[i].price=book.price;save();} else printf(“n cannot found!n”); fflush(stdin); getchar(); system(“pause”);} int main(){ int a; FILE *fp; if((fp=fopen(“library.doc”,“r”))==NULL){ printf(“n不能打开图书信息库n”);fp=fopen(“library.doc”,“w+”);printf(“n初始化图书信息库,初始化之后要重启程序n”);library.count=0;fwrite(&library.count,sizeof(int),1,fp);fclose(fp);return;} fread(&library.count,sizeof(int),1,fp);fread(library.book,sizeof(library.book[0]),library.count,fp);fclose(fp);do { system(“cls”);printf(“nnnnntttt图书信息管理系统ttttn”);printf(“tt*********************************************n”);printf(“ttt1------------------图书信息录入n”);printf(“ttt2------------------图书信息浏览n”);printf(“ttt3------------------图书信息查询n”);printf(“ttt4------------------图书信息删除n”);printf(“ttt5------------------图书信息修改n”);printf(“ttt0-----------------退出图书管理系统n”);printf(“tt*********************************************n”);printf(“ttPlease Enter Choose: ”);fflush(stdin);scanf(“%d”,&a);switch(a){ case 1: putin(); break;case 2: lookup(); break;case 3: search(); break;case 4: del(); break;case 5: update(); break;case 0: printf(“nn退出nn”); break;default: printf(“n序号不对n”);} }while(a!=0);save();return 0;}(2)运行结果: 在codeblocks中编译、运行目标程序后,进入到主界面,显示如图1: 进入主界面后,显示信息选择操作,根据相应序号选择相应操作,输入1后进入图书信息录入选项,按顺序录入相应信息,完成后按1继续录入,按0结束录入,显示如图2: 按0返回主界面,进入到信息浏览界面,可查看已录入的全部图书信息(下图中只录入一本图书信息),查看结束后按任意键返回主界面,显示如图3: 根据选项进入信息查询界面,有两个选择,分别为根据书名和根据作者,按1进入根据书名进行查询,可显示相应图书信息,显示如图4: 根据作者进行查询,以查询无果为例,显示cannot found!显示如图5: 按5进入图书信息修改界面,输入序号显示图书信息并进行修改,按顺序依次修改信息(目前无法对单独某一条信息进行修改),显示如图6: 按4进入信息删除界面,输入相应序号后显示删除成功,按任意键返回,显示如图7: 在信息删除界面中,输入序号,如果没有存储该序号图书信息,显示cannot found!显示如图8: 6.课程设计总结: 在课程设计过程中,由于对代码和各种概念不是很清楚,所以对结构体变量的引用非常生疏。在调试程序的过程中,也存在许多问题,最后一一修改。通过自己对书本知识一遍又一遍的复习,自己感觉做系统不再那么的复杂,包括框架的建立,界面设计,调用函数等等。经过一个星期的锻炼,自己感觉到了明显的提高,以后还需多练习,多锻炼,加强对C语言综合知识的理解与应用。 请老师审阅我的课程设计报告。谢谢 软件学院 1522班 韩汀 课 程设计 报告书 专 业:计算机科学与技术 课程设计名称:《网站建设技术》 题 目:图书借阅系统 班 级:0814131班 学 号:081413141 设 计 者:徐学林 同 组 人 员: 杨志恒 张宝 指 导 老 师:张妍琰 杨斌 苏靖枫 完 成时 间:2015年12月23日 一、设计目的 1.利用软件开发现有软硬件环境,及先进的管理系统开发方案 从而达到充分利用现在资源提高系统开发水平和应用效果的目的。 2.系统应该符合软件工程开发的理论,开发方法等开发依据。3.系统应满足图书馆管理工作需要,并达到操作过程中的直观,方便,实用,安全,准确等要求。 图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息。现有的人工记录方法既效率低又错误过多,大大影响了图书馆的正常管理工作。因此需要对书籍资源、读者资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利用管理效率的提高。 4.培养运用JSP语句制作网页的能力; 5.活用所学的JSP知识制作简单的循环网页; 6.实现NetBeans到数据库的链接; 二、需求分析 学校的图书管理涉及图书信息、系统用户信息、读者信息、图书借阅等多种数据管理。从管理的角度可将图书分为三类:图书信息管理、系统用户管理、读者数据管理。图书信息管理包括图书征定、借还、查询等操作,系统用户管理包括系统用户类别和用户数据管理,读者数据管理包括读者类别管理和个人数据的录入、修改和删除。 图书借阅者的需求是查询图书室所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最 为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看、维护等。图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下,图书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者的个人隐私。图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录,并打印生成相应的报表给用户查看和确认。图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅信息,这部分功能应该由图书馆工作人员执行,但是,删除某条图书借阅者基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。并且还应具有生成催还图书报表,并打印输出的功能。 图书借阅管理系统在各个图书馆、学校都有着至关重要的作用。在制作图书借阅管理系统之前,首先要知道所要做的系统可以实现哪些功能,要清楚不同级别的用户具有什么样的功能,实现什么样的界面。当 明确了这些,项目开发的思路就清晰了,然后再对校园图书馆的系统进行考察、分析,从中吸取经验,并结合本系统的要求以及实际情况,设计出一个合理的系统。 本图书借阅管理系统旨在构建此类平台,实现不同模块的功能设计。用户注册后登录,进入图书借阅,对图书的查看及借阅,以完成相应需求。本系统功能模块大致分为:用户登录借阅和管理员对图书及用户的管理。 本系统是用Javabeans、mysql、dreamweaver等WEB开发技术或网络工具完成一个的基本的图书借阅管理系统。 三、系统设计 1、数据库设计 由于本系统是为中小型图书馆开发的程序,需要充分考虑到成本及用户需求等问题,而MySQL是目前最为流行的开放源代码的数据库,是完全网络化的跨平台的关系型数据库,正好满足了中小型图书馆企业的要求,所以本系统采用MySQL数据库。 2、公共模块设计 在开发过程中,经常会用到一些公共模块,例如,数据块链接及操作的类,字符串的处理的类以及编码方式的处理等,因此,在开发系统前应首先需要设计公共模块设计。本系统内的公共模块有数据块的操作,对编码方式的操作。 3、管理员模块设计 图书管理员要有对读者的管理模块,图书的管理模块,所以我们进行了如下设计: 4、读者模块设计 在设计读者模块中要考虑到读者可查询图书,借阅图书,归还图书。和游客登录。 5、图书管理模块设计 在设计图书管理模块时,要考虑到应该可对图书条目进行添加,删除,修改。 四、制作过程及要点 1、系统登录实现过程 系统登录页面是进入图书管理系统的入口,在运行本系统后,首先进入的是系统登录页面,再页面中,系统管理员应选择管理员登录,再正确输入用户和密码,当用户没有正确输入用户名及密码的时候,系统会通过denglu_servlet进行判断,并把信息反馈到error.Jsp页面。系统登录页面如下图所示: 2、五、设计总结 在图书管理系统的设计和实现中,虽然不能说精通,但通过实践,我已经掌握了三层架构的基本理念,并可以熟练的运用myeclipse+mysql工具进行三层架构的开发。更对java开发B/S架构的项目有了更深刻的 体会,积累了许多经验。除此之外,还巩固了许久未运用的Dreamweaver、PhotoShop等软件,完成了对网站的美化。与其他小组成员合作,独立设计出一个功能较为完善的图书管理系统。 这个管理系统,我自认不是很完善,但它所包含的知识和所运用的技术,足以概括我们书中所学,甚至更多。因为书本永远是正确的,它是一条通往真理的笔直的大路,所以很少有犯错再改正的机会。而总有些知识必须走一段“弯路”才能获得,就像如果你只走笔直的大道,就欣赏不到“曲径通幽”的景色。 此次我们实习的内容是基于基于JSP的数据库应用系统开发一个图书管理系统,根据图书管理系统的需求设计出图书管理系统的具体功能然后再编写代码。但唯一不同的是,这次图书管理系统的开发是由我们每个人独立开发完成的,一开始我们有些不理解,不是说实际过程中真正开发一个软件不可能完全靠哪一个人自己的能力去完成,而是要靠一个团队的分工协作,最终才有可能设计出一个完美的程序。 后来两周的实习下来,我们这次编写的图书管理系统虽然是一个系统,但其实图书管理系统所要实现的功能都是平常我们练习过的,所以我们独立完成起来并不是特别的困难,最主要的是我们现在必须先要把个人的能力提高起来才有能力将来和别人一起协作,我们这次的实习主要是锻炼个人的能力和让我们自己去发现问题和解决问题。 但不管怎样,这个系统是我们全员努力的成果,包含的文档也相当的齐全和细致。我想,这就是团队的力量。通过本次试验,让我自己动手进行数据库的连接、网页的设计、代码的编写与调试,加深了对这门课 程的理解,锻炼了自己,使我从中学习到了非常多的东西。在实验中也遇到了很多问题,数据库连接不上就向老师同学反复询问,调试时也会跳出各种各样的错误信息,虽然过程很辛苦,但是看着自己写的程序运行出想要的结果心里也是感到很满足。 六、参考资料 题 目:软件工程课设管理系统 ——需求分析报告 学生姓名:王星 学 号:1176807448 专 业:计算机4班 指导教师:赵宇红 文档名称: 需求分析报告 项目名称: 软件工程课设管理系统 项目负责人:王星 编写: 完成日期: 2014.6.19 审核: 开发单位: 王星 薛浩楠 软件工程课设管理系统小组 目录 需求分析报告...................................................................................................................................4 一.引言...................................................................................................................................4 1.编写目的:...................................................................................................................4 2.背景及范围:.................................................................................................................4 3.名词定义:...................................................................................................................4 4.参考资料:...................................................................................................................5 二、任务概述...........................................................................................................................5 1.目标:.........................................................................................................................5 2.系统功能划分:...........................................................................................................6 3.安全性:.......................................................................................................................6 三、具体需求分析...................................................................................................................6 1.系统流程图:.............................................................................................................6 2.数据流图:...................................................................................................................8 3.数据字典:...................................................................................................................8 需求分析报告 一.引言 随着计算机的普及,人们对计算机的认识及需求有了明显的增加。计算机对于大量信息的管理的优势更是显而易见。有了这个软件工程课程设计管理系统,学生与老师的工作任务就可能会事半功倍。1.编写目的: 计算机专业的学生有90多名,而且随着每年的扩招,人数不断的增加,每次软件工程课程设计都采用手工操作,费时费力。为了解决这个问题,决定做一个软件工程课程设计管理系统,对每个学期选修软件工程课程设计的学生基本情况作个统计。主要是学生从该系统中选题,填写同组学生的姓名,学号,班级,组长等基本情况;查询自己的课程设计成绩。老师通过该系统查看学生的选题情况,填写学生的项目进度情况,且给出学生的分数,这有利于老师教学,及时了解学生的情况,提高教学质量,减轻老师的工作量,改善原有的比较繁锁的工作。2.背景及范围: 名称:软件工程课程设计管理系统 任务的开发人员:杨宇飞,薛浩楠,王星,陈晶 开发软件的单位:软件工程课程设计管理系统小组 软硬件设施:个人计算机,JAVA,Acess数据库,Windows 97/xp操作系统 决定开发软件工程课程设计管理系统,估价成本不高于1000元,二周交付使用。3.名词定义: 实体:客观世界中存在的且可互相区别的事物。联系:客观事物中的彼此之间的关系。属性:实体或者联系所具有的性质。4.参考资料: 软件工程基础 汤淮 西安交通大学出版社 软件工程------技术,方法与环境 王立福,张世琨,朱冰 编著 北京大学出版社 软件开发技术 倪秉营 电子科技大学出版社 软件工程 张权范 清华大学出版社 二、任务概述 该软件工程课程设计管理系统软件目前已有比较完善的管理与使用功能。研制软件工程课程设计管理系统软件是为了满足软件工程教师与学生方便对课程的各种管理与操作。1.目标:(1)开发意图: a.为了软件工程课程管理系统更完善; b.为了软件工程课程管理更方便; c.为了减轻软件工程管理工作人员的工作负担;d.为了加强学院的正规化管理;(2)应用目标: 通过本系统软件,能帮助课程设计教师利用计算机,快速方便的对课程进行管理,上传资料,填写进度报告,查找的所需操作。(3)产品描述: 本产品是一种工作在windows系统平台的软件,它是以Acess数据库。(4)产品功能: 2.系统功能划分: 使用该系统有三个角色教师,学生,客户。教师可以查看学生选课情况,可以查看学生设计报告,填写学生项目进度情况,给出分数,修改密码,上传课程设计题目,学习资料。学生可以查看选课情况和成绩,选课。客户只可以浏览选课信息。 2.系统可分为5个模块: (1)基本信息:教师和学生的信息包括教师号,学生号,教师开设的课程设计的题目,学生选的课程设计题目,项目进度和分数。(2)选课:显示教师开设的课程设计题目,实现学生选课。 (3)查询:学生查询可选题,自己选题情况,自己课程设计成绩。教师查询学生选题情况,学生设计报告。 (4)修改:教师填写项目进度情况和给出分数,学生填写同组的其他同学的姓名,学号,班级,小组长,修改结果存入相应数据库等。 (5)密码:教师和学生可以修改自己的登陆密码,结果保存用户信息数据库。3.安全性: 设立三种级别的用户:Student,Teacher,Guest,对每种类型的用户设置不同的权限。 Student:查询分数,课程设计报告上传功能 Teacher:提供对系统的实际操作功能 Guest: 提供信息浏览功能 三、具体需求分析 1.系统流程图: 学生登陆教师登陆验证学生身份验证教师身份验证成功验证成功修改密码查询选课信息查询选课上传资料与设计题目查看设计报告查看选题情况修改密码学生信息数据库选课给出分数和填写进度情况教师信息数据库课程设计报告上传填写同组人员信息选课数据库客户登陆客户浏览 图3.1系统流程图 2.数据流图: 客户用户信息数据库选题数据库用户学号与密码显示修改密码上传确定选题验证口令题目与有关资料课程设计题目数据库登陆教师显示登陆成员列表验证口令填写进度表显示选课学生小组成员信息核对填写同组人员信息教工号和密码进度数据库工作报告表课程设计报告修改密码用户设计报告表给出分数上传学生信息数据库成绩数据库显示 图3.2数据流图 3.数据字典: 数据流描述: 数据流名:用户名密码 数据来源:用户登陆处理 数据去向:验证信息处理。说明:用户输入用户名和密码 数据组成:用户名+密码 数据流量:小 数据流名:直接登陆 数据来源:用户登陆处理 数据去向:客户界面 说明:普通用户不输入用户名和密码直接以客户身份登陆 数据流名:登陆 数据来源:验证信息处理正确 数据去向:根据验证信息返回条件决定是教师界面还是学生界面 说明:系统登陆到教师界面。数据流名:选题,资料 数据来源:教师界面的输入选题和资料窗口 数据去向:上传处理 说明:教师输入要上传的课题和资料 数据流名:小组成员信息 数据来源:选课信息界面 数据去向:验证填写信息处理 说明:学生填写同组其他同学姓名,学号,班级,小组长名。数据流名:工作报告。数据来源:课题信息界面 数据去向:上传处理 说明:学生将各阶段工作报告上传。数据流名:设计报告 数据来源:选题信息界面 数据去向:上传处理 根据Nand Flash的一些特性, 读写速度快, 生产工艺问题或多或少存在坏块, 最小擦除单位为块, 最小读取单位为字节, 并且不能频繁对其进行擦写操作, 最先对Nand Flash支持最好的就是Yaffs文件系统, 但Yaffs文件系统最大支持的页大小为512Byte, Yaffs2支持页大小可以达到2048Byte但针对那些像linux的大型操作系统不管是Rom和Ram的开销确实不算什么, 但如果只是把它应用在ram只有几十Kbyte的单片机上也是经过裁剪再裁剪才能放进去, 这就需要诞生一种集Yaffs优点于一身, 而且对硬件要求很低的文件系统, 这是微型嵌入式实时操作系统文件系统的初衷, 如图1。 2 微型嵌入式实时操作系统文件系统的优点 2.1 需要的Rom少 一千五百多行左右 需要的Ram少:平均需要建立的全局变量不大于10几个字节基本都是用来存储一些使用Tab表的偏移位置及内容存储区的偏移位置等信息, 其他局部变量的最大开销不会超过80Byte。 2.2 文件系统稳定性好 就算文件系统局部出现灾难性的故障, 依然可以读取文件系统中完整的个别文件, 这点是在其他类型文件系统中不具备的。 2.3 对硬件伤害小 在一块格式化完整的Nand Flash上进行写入文件, 在Nand Flash没有写满的情况下, 微型嵌入式实时操作系统是不会对其进行擦出块操作。 2.4 文件大小没有限制 文件最大可以在一个存储设备上存储一个文件, 最小可以存储的文件个数, 理论上是, 一个存储设备上除去Tab占据的一个块外, 剩余块上每页都可以存放一个文件, 不足占据一页的算作一页, 以K9f2g08为例最多可以存放文件为2048*64-64个文件, 每个文件大小为2Kbyte。 2.5 高效率性 存储一个文件不需要整块空间, 当需要对很久以前的文件进行内容追加时, 系统会寻找空白页写新的内容并且与之前的文件通过地址关联链接成一个文件, 删除文件也可以只删除文件头, 文件中间页可以在块回收的时候进行整理, 2.6 文件类型多样性 可以存放的文件类型除了文件夹文件类型还增加了一些特殊类型, 如链接类型和和根目录类型, 可以在文件系统中建立多个根目录, 相当于硬盘中的多个分区一样。 如下是每个存储页的首字节标志, 用来标识该页的内容。利用Nand Flash的擦除过程是从非1擦除到1的过程, 为了避免再次擦除, 文件类型确定了是不能进行修改, 但该页属于整个文件的的组成部分位置可以从文件头, 改为文件按中或文件尾, 但一旦改为文件尾, 该文件的大小就确定了, 不能对其进行追加操作。 2.7 文件系统的可扩展性 该套文件系统架构是在k9f2g08上测试的, 理论上可以兼容所有规模的Nand Flash, 且如果文件TAB表损坏或丢失, 都可以花一些时间去搜索文件存储区来重构文件TAB表。 2.8 文件的坏块管理 文件的坏块管理通过写页的标志位为0x00来却别该页是否是不可用页, 这比传统的坏块管理好在, 如果一个存储设备的某个块并不是全部算坏, 而只是某个页上局部位置损坏, (Nand Flash坏区的定义为, 擦除不为全1的为损坏) , 那么该块的其他页照常可以使用。 2.9 文件的擦除平衡 往文件系统里写入文件是从前往后找可用页一次向后写, 当写到不能再写入内容的时候, 系统会自动启用删除块回收, 回收是也是从前往后的顺序找出所有可擦除块对其进行擦写, 保证了系统不会频繁的对某个特定块进行反复擦写。从而实现了均衡擦除。 2.10 微型嵌入式实时操作系统文件系统底层架构 包含对Nand Flash的整体规划使用区域划分, 文件Tab位置的确定是在格式化Nand Flash的过程中决定的, 通常, Tab的位置被定在首个非坏块上, Tab占用一个存储块, 文件其余块为文件内容存储区, 文件内容存储区的位置都是使用的相对偏移位置, 即认为紧跟Tab所在块后面一个非坏块的位置为基地址, Tab中每页的Data区域 (存放数据内容的区域) 的每个字节对应内容存储区的每页, 且与内容存储区每页的Spare的首字节的内容是保持一致的, Tab实际上是为加快文件搜索和统计的速度而设定的。 2.11 泛型文件管理层操作系统课设 第6篇
操作系统课设 第7篇
微型嵌入式实时操作系统文件系统 第8篇
操作系统课设范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


