华中科技大学软件课程设计报告

华中科技大学软件课程设计报告
华中科技大学软件课程设计报告

软件课程设计报告

班级:光电 1006

姓名:陈光辉

学号: U201013489

目录

1 软件设计 (4)

1.1 设计目的 (4)

1.2 设计要求 (4)

1.3 二叉树 (4)

(1).二叉树的定义........... 错误!未定义书签。

(2).二叉树的存储结构 (5)

(3).二叉树的遍历 (5)

1.4 程序分析.................. 错误!未定义书签。

(1).程序结构............... 错误!未定义书签。

(2).程序功能............... 错误!未定义书签。

(3).程序注释............... 错误!未定义书签。

1.5 程序流程图 (7)

(1).主程序 (8)

(2).二叉树的建立 (9)

(3).二叉树的查询 (10)

(4).二叉树的打印 (11)

2 软件测试 ...................... 错误!未定义书签。

2.1 测试环境.................. 错误!未定义书签。

2.2测试过程.................. 错误!未定义书签。

(1).源程序的测试........... 错误!未定义书签。

(2).加入遍历程序........... 错误!未定义书签。

(3).友好界面............... 错误!未定义书签。

3 算法改进 ...................... 错误!未定义书签。

3.1问题发现.................. 错误!未定义书签。

(1).出现的问题............. 错误!未定义书签。

(2).解决的方案............. 错误!未定义书签。

3.2程序优化 (18)

4 开发体会 (18)

5 附录:源代码清单 (19)

注释程序 (19)

6 参考文献 (25)

1.软件设计

1.1设计目的

继续巩固C语言的基础,其中需要熟练掌握的有函数变量、程序控制、输入输出、调试环境、结构体等。

熟练运用C语言的知识实现有序二叉树的建立、查找和打印;了解非线性数据结构,并且掌握二叉树的三种遍历方式:先序遍历、中序遍历和后序遍历,并编程实践它们的实现、应用方法。

1.2 设计要求

(1)学习结构体、链表等数据结构,以及查找、选择排序等基本算法,结合指针,文件等相关知识进行简单界面设计,能够实现友好的交互;

(2)读懂源程序(用链式结构实现二叉树的建立、查询和打印),为程序写出注释,并画出程序的流程图;

(3)将程序输入计算机,编译、连接并运行;

(4)编写二叉排序树的前序遍历程序、中序遍历程序和后序遍历程序。

1.3 二叉树

(1).定义

①.树(tree):树是由n(n≥0)个结点组成的有限集合。

对于n=0的树称为空树,对于n>0的任意一棵非空树,有一个特殊的结点称为根结点(root),根结点没有前趋结点;剩下的结点被分成n>=0个互不相交的集合T1、T2、......Tn,而且,这些集合的每一个又都是树。树T1、

T2、......Tn被称作根的子树(Subtree)。

②.二叉树是指树的深度为2的有序树;

它是一棵由一个根结点(root)与两棵互不相交的分别被称为左子树和右子树所组成的非空树,左子树和右子树又同样都是一棵二叉树。

这是二叉树的递归定义。二叉树可以是空集合,根可以有空的左子树或空的右子树。

二叉树是一种最简单、最重要的树,在计算机领域有着广泛的应用。

③.表示方法:

通常用一个圆圈表示一个结点,并在圆圈中标一个字母,或一个数字,或一个字符串,作为结点的名字或结点值,以区别不同的结点。在根结点与它的子树的根结点之间加一条连线,表示它们之间的逻辑关系。

如下图表示:

这是一个满二叉树

④用结构体表示二叉树,如下表:

struct tree

{

char info;//字符变量info,用于保存数据

struct tree *left, *right;//定义子树和右子树指针

}

(2).二叉树的存储结构

①.数据结构的定义:

数据结构由某一数据元素及该集合中所有数据元素之间的关系组成。包括数据的逻辑结构、数据的存储结构和对数据的操作。

数据结构的形式定义为:数据结构是一个二元组。记为:Data_Structure=(D,S)二叉树是基本数据结构之一,在数据操作方面具有一定优势。

②.存储结构:包括顺序存储和链式存储。

Ⅰ.顺序存储:通常用于存储具有线性结构的数据。将逻辑上相邻的结点存储在连续存储区域M的相邻的存储单元中,使得逻辑相邻的结点一定是物理位置相邻。

Ⅱ.链式存储:在结点的存储结构中附加指针字段来存储结点间的逻辑关系。链接法中数据结点包括两部分:数据字段存放结点本身的数据,指针字段存放指向其后继结点的指针。链接方法适用于那些需要经常进行增删结点的复杂数据结构。

对于一般的二叉树,采用的是链式存储结构,其形式定义为:

TypedefstructBTnode

{

Elementtype data;

StructBTnode *LChild ;

StructBTnode *RChild ;

}*BTree ;

BTree BT ; //BT指向二叉树的根结点

(3).二叉树的遍历

①.遍历:是指按照某种顺序访问二叉树中的所有结点,使得二叉树中的每个结点被访问一次而且仅被访问一次。

②.先序遍历:若二叉树为空,则遍历结束,否则:

a)访问根结点;

b)先序遍历左子树;

c)先序遍历右子树。

先序遍历的程序如下:

void xianxu(struct tree *root)

{

if(root==NULL) //指针为空,则提示二叉树为空 {

printf("这是一个空的二叉树!\n");

return;

}

else

{

printf("%c",root->info); // 前序遍历:先是根结点

if(root->left!=NULL)

xianxu(root->left); //递归访问左结点

if(root->right!=NULL)

xianxu(root->right); } //递归访问右结点

}

③.中序遍历:若二叉树为空,则遍历结束,否则:

a)中序遍历左子树;

b)访问根结点;

c)中序遍历右子树。

中序遍历的程序如下:

void zhongxu(struct tree *root)

{

if(root==NULL)

{

printf("这是一个空的二叉树!\n"); //指针为空,则提示二叉树为空

return;

}

else

{

if(root->left!=NULL)

zhongxu(root->left); //中序遍历:递归先访问左结点printf("%c",root->info); //然后父结点

if(root->right!=NULL)

zhongxu(root->right); } //最后递归访问右结点}

④.后序遍历:若二叉树为空,则遍历结束,否则:

a)后序遍历左子树;

b)后序遍历右子树;

c)访问根结点。

后序遍历的程序如下:

void houxu(struct tree *root)

{

if(root==NULL)

{

printf("这是一个空的二叉树!\n"); //指针为空,则提示二叉树为空

return;

}

else

{

if(root->left!=NULL) //后序遍历:首先递归访问左结点

houxu(root->left);

if(root->right!=NULL) //然后递归访问右结点

houxu(root->right);

printf("%c",root->info); }//最后父结点

}

1.4 程序分析

(1)程序结构

程序由7个部分构成:

定义结构指针变量创建二叉树struct tree *create_btree(struct tree *root,struct tree *r,char info)

定义结构指针变量查找二叉树struct tree *search_btree(struct tree *root,char key);

打印二叉树函数void print_btree(struct tree *r,int l);

前序遍历程序void xianxu(struct tree *root);

中序遍历程序void zhongxu(struct tree *root);

后序遍历程序void houxu(struct tree *root);

还有就是主程序,调用上述函数来实现二叉树的创建、查找、打印以及遍历

(2)程序功能

用链式结构实现二叉树的建立、查询和打印,编写二叉树的前序遍历程序、中序遍历程序和后序遍历程序实现对二叉树的访问。附加的功能还有,比如弄够对输入的结点进行计数。

而且此程序加入了很多人性化的界面,有很多人机交互的内容,系统用户进入界面控制后,对不同的功能操作提示不同,更加方便操作。

(3).程序注释

程序的注释在后面的程序附录有详细的描述

1.5 程序流程图

(1)主程序的流程图如下:

(2)二叉树的创建流程图如下:

(3)二叉树的查找流程图如下:

(4)二叉树打印的流程图如下:

2.软件测试

1.2测试环境

程序是在开发软件Microsoft Visual C++上运行调试的。

2.2测试过程

(1).源程序的测试:

二叉树的建立、查询和打印的源程序在VC中运行后的结果是:

但是在这过程中,我发现当你输入比上次结点深度更浅的结点进行再次查找时,就会出现查找失败的现象。

(2).加入三种遍历程序

在主程序中运行后,可以选择遍历方式。如下图所示,输入一个简单的二叉树后前序遍历的结果是:

(3).友好界面

程序中加入了很多人机交互的内容,在进入操作界面后,对于不同的指令有不同的提示

例如:

3 算法改进

3.1问题发现

(1).出现的问题

①问题一:

在二叉树的查找程序中,输入第一个数据时可以成功查找,而且依次输入深度更深的结点进行查找时也可成功,但是如果查找的结点比当前结点的深度要浅,比如是其父结点,这是就会提示Empty btree或者Search Failure。

②问题二:

在三种遍历程序中,当输入的结点为零时,就会提示二叉树为空。但是后来发现当指针为空时依然出现一个没有结果的遍历。比如下图,选择中序遍历时没有显示

③问题三:

在选择遍历方式时,我定义的是一个int 的变量i,而且选择1,2,3,之外的选项时回报错并提示你重新选择。但是当输入的选项不是整型数值而是字母是,就

意外的发现程序进入了一个死循环,如下图所示:

⑤问题四:

为了给程序加一个出口,我在查询的时候加一个人机交互的界面。当不继续查找结点时就会退出程序。修改以后,虽然选择没有问题,但是发现计算机在进入这个界面时总是会自动先选择,从而总会有一个报错的提示!

(2).解决的方案

①问题一的解决方案

方案一:

仔细分析源程序,问题是在选择排序查找时,把每次比较的第一个数据的首地址赋给结构体指针变量struct tree *root,所以每比较一次指针向后移动一位,而二叉树的遍历是每次访问并且仅访问一次,当再来查找前面的结点时就无法访问了。

对此,我首先想到的方案是在建立程序内再定义一个指针变量,用于把比较的第一个数据首地址赋给它。代码如下:

struct tree *search_btree(struct tree *root,char key)

{

struct tree *r;

r=root;

if (!r)

{

printf("Empty btree\n");

return root;

}

while(root->info!=key)

{

if(keyinfo)

r=root->left;

else

r=root->right;

if(r==0)

{

printf("Search Failure\n");

break ;

}

}

if (r !=0)

printf("Successful search\n key=%c\n",r->info);

return root ;

}

但是并没有达到预期结果结果。

后来在同学的提示下,我发现这个方案并不可取。因为,新定义的指针在选择比较的过程中也会每次指向下一位数据。

方案二:

在主程序中,在查找的循环内,把root=search_btree(root,c);改为search_btree(root,c);,改进的代码如下所示:

while (key) //查找指定值的结点

{

printf("Enter a key to find:"); //输入要查找的数据

scanf("%s",&c);

search_btree(root,c); //查寻输入的数据

printf("press to continue\n");

}

这样没有把要查找的数据地址赋给root指针,指针变量一直指向根结点,不会移动。结果解决了bug

②问题二的解决方案:

方案一:

把每个遍历函数在增加一个形参size,也就是结点的个数。当结点数为零时,将空指针赋给root,这样就会提示二叉树为空。以前序遍历函数为例:

void xianxu(struct tree *root,int zize)

{

if(size==0) //指针为空,则提示二叉树为空{

printf("这是一个空的二叉树!\n");

return;

}

If(root!=NULL)

{

printf("%c",root->info); // 前序遍历:先是根结点

if(root->left!=NULL)

xianxu(root->left); //递归访问左结点

if(root->right!=NULL)

xianxu(root->right); //递归访问右结点

}

}

但是也没有达到预期结果,以下面的为例,输入5查找成功,但是第三次查找时,程序就无法进行啦

方案二:

在主程序内调用选择遍历方式的循环内部进行修改,即当输入的结点数为0时,把一个空指针NULL赋给root,这样当二叉树为空时就可以退出程序了,而且修改比上次简单多了!修改的代码如下:

while(flag=1) //如果选择错误则一直循环

{

scanf("%d",&i); //输入选择遍历二叉树的方式

if(size==0) //结点数为零,则root指针为空

root=NULL;

如下图示:输入的结点数为0个时,选择前序遍历就会提示为空!!!

③问题三的解决方案:

方案一:

将整型变量改为char类型的变量,并将其ASCII码值赋给另外一个整型变量c.但是结果无正确选择啦:

方案二:

在同学的指导下,我定义一个字符串数组string[100],然后取其第一个元素作为选项。比如:*string==1则是先序遍历,可是结果和方案一的错误一样。

方案三:

还是把选择变量改为char类型的,在输入的时候直接用字符变量scanf("%c",&i); 选择的条件为:if(i=='1')这样再次选择不符合的字符就不会报错了,例如

④问题四的解决方案:

这个bug是键盘缓存区的问题,需要在输入时加一个释放键盘缓冲区的系统函数fflush(stdin);这样就OK了!

3.2程序优化

在创建有序二叉树的循环内,我定义了一个变量,每循环一便计数一次,这样创建的二叉树的结点数就可打印出来了;

在适当的地方加人机交互的提示,可以输入指令选择二叉树的遍历方式;

给程序加了一个出口,在查询结点的时候。每次询问是否继续,如果选择否就可以退出程序

释放键盘缓冲区,这样在几人交互的时候计算机就不会自动作出一个错误选择!

4 开发体会

在刚上学我就听别人说过软件课程设计很难,要求我们开发一个小软件出来。那个时候我对软件开发的概念还很模糊,或者说根本不知道,因为那时候对电脑的接触还是很少。学过大学计算机基础还有C语言之后,只知道很难,就有点畏惧感,加上期末这两门课考试结果都很不理想,一点信心都没有!

说实话,第一节课上老师说我们课设的题目是二叉树我就更加没有底气啦!因为数据结构这一章我学的很不咋样,而且C语言已经扔下有一个学期之久了,一点头绪也没有。第一次上机课要求我们把用链式结构实现二叉树建立、查询和打印的源程序注释好,并画出流程图。源程序我看了几天也没有弄懂,跟别说注释了,还有就是在VC上运行的结果也是看不懂,觉得怎么看都不像我所知道的二叉树。头几次,我基本上都是在看老师给的资料PPT和word,但是,感觉里面的东西太简略。二叉树的定义还有查找等等都要用到结构体和指针变量,而且源程序里面用的很复杂,比如,结构体的套嵌,结构体指针,还有递归打印二叉树结点等。本来这一块也是自己比较薄弱的,但是本着自己对编程的爱好,我觉得这些都是自己有必要弄懂的!

为了配合自己把这些做好,首先是要把那些基础知识巩固好,我在图书馆借了一本用C语言描述的数据结构的书,帮助自己理解!有个大致的把握之后,我再来开始调程序。同时在网上查找一些资料,帮助自己看懂源程序。在同学们的帮助下,我基本上能看懂程序里面那些函数的功能和用法,也完成了程序的注释。接下来就是画流程图了,能够把那些语句看懂,在对流程图的符号规则有个大致了解后,也能自己独立完成了!

收获最大的过程是调程序的时候!在参考书的辅助下,首先我加入了二叉树的前序遍历、中序遍历和后序遍历程序,看到创建的二叉树能够用三种方式准确无误遍历的时候,真心体会到了课设的乐趣,有一种成就感!为了使运行后的程序更加美观、更加人性化,我试着插入一些人机交互的语句。期间遇到过很多bug,比如我试图用选择的方式进行遍历时,循环条件没有限制完善,运行后一直提示错误;查询二叉树时当查找比当前深度n更小的结点时就不Fail;没有释放键盘缓存区,人机交互时计算机总会自动作出一次错误选择……我请教了编

程比自己好的同学,加上自己的理解最终解决了一个一个的问题,也许我完成的东西很简单、也不尽完善,但是这些确实都是我自己努力的成果,感觉到了自己的进步、学到了东西就够了,我想这也是软件课程设计的教学目的。

接下来,我试着对程序做进一步的优化和改进。发现问题后,和同学一起讨论分析,并进行反复的调试,一直到最后达到自己预期的结果。我想,知识的积累就是在这过程中的点点滴滴。每当解决一个bug时就会很有成就感!

虽然,软课设开始时间不长,只有短短的3个星期,而且对于我自己来说,起步也很低,但是在这过程中,体会到了学习的快乐。当自己的修改和优化能够成功运行,那种快乐和成就感不言而喻,也只有自己认真对待、努力完成才能够体会!也许,自己的成果对别人、对于开发要求来说并不算什么,但是自己尝试努力的过程中真正学到了东西才是最重要的,C语言是一门很重要的课程,在将来很多方面都会用到,虽然已经结课了,但是自己学到的东西是很浅的。通过这次课设,让我的编程知识有了进一步的拓展,也让我知道了要学的东西还很多很多,要走的路还很长,不管遇到什么课题,都不要有畏难情绪,万事开头难,一旦自己投入进去后就会发现学习的快乐,激发自己学习的欲望和兴趣!还有很重要的一点,就是遇到问题要敢于问、善于问,敢于问老师、助教,和同学一起讨论,去学习他们不同的思维方式,在这过程中自己肯定也会发现很多遗漏或者不曾注意过的问题,从而增加知识的积累,也体会其中的快乐!

5.附录:源代码清单

注释程序:

源程序注释改进后如下:

/**************************

工程:test

文件:c1.cpp

注释人:陈光辉

时间:2011—12

*************************/

#include

#include

struct tree { //二叉树的定义

char info; //字符变量,用于保存数据

struct tree *left,*right; //定义左子树和右子树指针

};

struct tree *create_btree(struct tree *root,struct tree *r,char info); //定义结构指针变量,创建二叉树

struct tree *search_btree(struct tree *root,char key); //定义结构指针变量,查找二叉树

void print_btree(struct tree *r,int l); //打印二叉树函数的申明

void xianxu(struct tree *root); //前序遍历函数申明

void zhongxu(struct tree *root); //中序遍历函数申明

void houxu(struct tree *root); //后序遍历函数申明

/***********************

主函数

***********************/

void main ()

{

int flag,key,size=0; //错误标志flag继续循环;size表示输入的结点数,key表示是否退出查找标志

char s[100],c ; //定义字符数组,用于接收输入的字符struct tree *root=0 ; //定义结构指针根结点并初始化

printf("********************软件课程设计************************\n");

printf("** **\n");

printf("** 班级:光电1006班**\n");

printf("** 姓名:陈光辉**\n");

printf("** 学号:U201013489 **\n");

printf("** **\n");

printf("************************************************************ \n");

printf("请您输入数据,创建一个有序二叉树:\n");

do {

printf("Enter a letter:"); //输入字符,创建一个有序的二叉树

size++;

gets(s);

if (!root) //若二叉树还没有建立,则建立根结点并保存数据

root=create_btree(root,root,*s);

else //若二叉树建立则继续创建新的子树create_btree(root,root,*s);

} while (*s) ; //如果输入数据为空则退出循环,终止输入print_btree(root,0); //新建二叉树的打印

size=size-1; //size表示结点数

printf("您输入的结点数为:%d\n\n",size);

printf("***********************************************************\n");

printf("请选择遍历二叉树的方式:\n"); //选择访问的方式:人机交互printf(" 1.前序遍历\n");

printf(" 2.中序遍历\n");

printf(" 3.后序遍历\n");

printf("********************************************************\n");

printf("请您选择序号:");

while(flag=1) //如果选择错误则一直循环

{

软件工程课程设计方案报告范例

西安科技大学 软件工程课程设计报告 题目:图书馆管理系统 班级:软件工程** 学号: ********** 姓名: ******* 2013年1月

目录 1绪论 (1) 2 可行性研究报告 (1) 3 需求规格说明书 (4) 4 总体设计说明书 (7) 5 数据库设计说明书 (8) 6 详细设计说明书 (9) 7 系统实现 (11) 8测试分析报告 (23) 参考文献

1.绪论 1.1 选题目的及意义 随着计算机技术的快速发展,人们对用计算机代替手工管理信息的需求越来越强烈,越来越多的计算机软件如雨后春笋般的应用于人们生产生活的各个领域,为人们提供各种各样的便利。本图书馆管理系统应用软件可以有效地解决高等院校、中小学图书馆由于藏书量增大而带来的管理问题,图书馆管理员可以更好地管理学校图书馆藏书信息,学生可以更方便地享受借书还书的服务,为更有效地学习知识提供有利的保证。 对于我来说,选择这个题目作为课程设计的题目有以下两个原因:一是因为自从上大学以来,每当在图书馆借书的时候,我都会留心观察一下图书馆管理员的那台计算机上显示的内容,久而久之,就对本系统的基本流程越来越了解,做好一个软件的前提是必须对这个软件的功能和原理非常熟悉,相比别的题目,我对这个题目更加了解;二是本学期通过学习Java程序设计和Oracle数据库课程,我觉得这个题目虽然没有那么难(涉及算法的内容很少),但也不是轻而易举就能完成的,所以我想挑战一下自己,看看自己的实现能力到底怎么样,因此决定用面向对象方法学的思想,前台用Java程序设计语言编写界面,访问Oracle数据库中的数据,完成本系统。 1.2 系统概述 本系统通过JDBC-ODBC桥实现前后台数据的联系,基本上实现了一个图书馆管理系统所具备的基本功能,本系统把使用者分为三类:超级管理员、普通管理员、读者,对三种用户分别设计了各自的主界面,以便更好的实现信息的隐藏性,超级管理员可以进行这个系统所有操作;管理员只能执行超级管理员的基本功能,查看自己的信息;读者只能查看自己的信息,对自己当前借书进行挂失和续借两种操作,查询图书馆的藏书。 2.可行性研究报告 2.1 编写目的 本报告编写目的在于研究图书馆管理系统应用软件是否可行,指出本软件开发所使用的方法和手段,并对该软件前景进行分析。 本报告的预期读者是:高等院校、中小学图书馆管理人员、程序设计人员、以及对图书馆管理系统感兴趣的爱好者。 2.2 相关背景 工程名称:图书馆管理应用软件 工程产品名称:高校图书馆管理系统应用软件 工程的组织者:西安科技大学计算机学院软件工程系 产品用户:高校图书馆、中小学图书馆; 产品的生产者:西安科技大学计算机学院软件工程062班袁震; 产品设计者:西安科技大学计算机学院软件工程062班袁震; 2.3 可行性研究的前提 本图书管理系统在功能上要求完成以下基本功能: a).读者、管理员登陆;

软件工程课程设计报告人事管理系统

软件工程课程设计报告人事管理系统

软件工程课程设计 题目人事管理系统 系计算机系 专业班级软件工程(动画方向)(2)班 学生姓名贾秋洪 学号 2358069 指导教师姜青山 年 6 月 18 日 1.课程题目 人事管理系统设计 2.概述 2.1本课题的来源 A公司是一家以寿险营销为目的的寿险公司,公司员工众多业务流量大,为了方便管理,我制作了一个人事管理系统。主要经

过员工基本信息录入、修改、查询、删除以及员工考勤等方面来对员工综合考评。以便对员工发放工资进行合理分配。这样能提高领导的人事管理水平还能提高员工的积极性。经过现代计算机技术与企业管理相结合,实现人事管理系统的科学化、信息化、现代化,而且适合一般人群使用。 企业人事管理是相对企业内部员工的管理。集人员、考勤、工资、员工培训、系统功能等于一体的大型管理系统,为公司在人事管理等方面提供极大的方便。本软件是以中小型企业为背景而设计开发的,界面美观、使用方便。本系统主要以人员管理、考勤管理、统计分析管理、工资核算等,是企业人事管理必不可缺的好帮手。 2.2本课题目的、实现功能与预期成果 2.2.1目的 当前市面上流行的人事管理系统不少。可是,对于A公司来说,不需要大型的数据库系统。只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统。 2.2.2实现功能 能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方

面的工作,基本满足人事日常业务的需要。 2.2.3预期成果 所做出的人事管理系统能让A公司管理层在操作简单的前提下并有效的提高对该公司的人事管理,并经过该系统提高员工的能力。尽量使本系统做到是一个科学化、信息化、简单使用的人事管理系统。 3.系统分析 3.1系统调研 正式开发管理信息系统之前进行调研是非常必要的,必要对现行系统进行详细的调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,新系统的开发却失败的悲剧发生。 3.2可行性分析概述 可行性分析是在A公司的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。 可行性分析一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是否可行。 可行性分析阶段的主要工作包括以下几个方面:

软件课程设计

软件课程设计

————————————————————————————————作者: ————————————————————————————————日期:

中南民族大学 软件课程设计报告 电子信息工程学院2012级 通信工程专业 题目学生学籍管理系统 学生。。学号 指导教师老师 2015年5 月29 日

学生学籍管理系统 摘要:该软件可实现对学生学籍的管理,并存储到数据库中,列表展示所采集的数据。 关键字:学生数据存储Java编程 1 引言 随着现代社会的快速发展,我们已进入信息化时代,管理系统在人们的生活中的应用越来越广泛,它已深入到我们工作,学习和生活的各个方面。为了适应时代的发展,本次课程设计的主要任务是设计一个学生学籍管理系统并完成一些基本操作。 2设计依据及框图 2.1 设计平台 本系统采用了eclipse开发工具,使用Java语言架设用户界面;使用eclipse建立与数据库的连接设计。 2.2 设计思想 为了更好的管理学生的学籍信息,特地利用现在所学的eclipse软件与相关数据库设计一个集管理员,教师和学生的关于学籍的查看,修改,删除与添加一系列功能的学籍管理系统。在eclipse 中利用JDBC连接到数据库SQL server2014,从而达到数据的管理与存储,用eclipse写功能的Java语言,从而跟简单的在界面操作数据库。 2.3 设计框图、用户界面

2.3.1设计框图 2.3.2用户界面 数据库Java程序登录系统 添加信息修 改 信 息 查 询 信 息 删 除 信 息

如图所示,这是系统的登录界面,登录分为管理员,老师,学生。 2.4数据库表结构 本系统采用Java语言建立对数据库的管理如下: 3各模块功能及主要模块的流程图 3.1 各模块功能简介 3.1.1添加信息模块 主要功能:当用户输入想要添加的相关学生的信息,只需要直接点击添加按钮进入添加信息界面,填上相关的信息即可通过Java程序进行添加并存储到数据库。 3.1.2查询信息模块 主要功能:当用户需要查询学生的相关信息时,只需要输入名字,Java程序即可运行并从数据库

《移动应用开发》课程设计报告书

《移动应用开发》课程设计报告 { 学院名称:计算机与信息工程学院 班级名称:计科对口14 学生:胡闻璐 学号: 19 题目:基于《个人理财通》的计算器 任课教师 # 姓名:东良 起止日期:2017年04月18日至04月30日

目录 《移动应用开发》课程设计报告 (1) * 摘要 (3) 1 项目需求分析 (3) 需求分析 (3) 功能需求 (3) 2系统总体设计 (5) 系统架构设计 (5) 系统功能体系 (5) 3系统详细设计 (6) 》 数据库设计 (6) 系统界面设计 (7) 数据存储设计 (13) 信息统计设计 (14) 地图轨迹设计 (14) 服务应用设计 (24) 4系统编码实现 (25) 框架引用 (25) ~ 交互实现 (25) 单元测试 (28) 5 系统测试发布 (29) 手机环境的实测 (29) APP的发布实测 (29) 参考文献 (30) 成绩评定 (31) <

摘要 随着移动终端的迅速普及,Android系统平台引用软件的需求随之增大。伴随着Android 智能手机与平板电脑已经出现在我们生活的大量的使用,越来越多的基于Android开发平台也随之而出,为丰富人们使用Android智能产品的用途,使其可以帮人们记录一些事情。本设计开发通过研究Android体系结构和个人理财管理方面的知识,设计并实现了个人理财通系统。能够对理财信息进行获取、汇总、整理、计算等功能,从而实现随身随时随地地进行日常的理财活动。 1 项目需求分析 需求分析 物质和科技的飞速发展,人们的生活水平也不断的在提高,往往有很多人在快节奏的生活中迷失和迷茫,很多人觉得自己没钱,但每个月的工资也不是很低,却往往不知道钱花在哪,为什么每到月底自己的钱包会空空如也,正因为这样,人们才需要一款个人理财软件,简单的界面,易懂的操作,十分便携直观的理财方式,可以让人们更好的进行个人理财。以下是本软件的一些功能: ①登录界面:初始登陆时没有密码,为了方便用户保护隐私,可以自行设置密码 ②新增支出:添加支出金额、时间、类别和地点等信息 ③新增收入:添加收入金额、时间、类别和付款方等信息 ④数据管理:支出汇总,收入汇总,便签信息 ⑤便签功能:添加便签,设置提醒或事项 ⑥计算器:对数据进行计算,方便记录,长按结果可直接复制 ⑦移动课堂:泛雅平台中的安卓课程访问 ⑧帮助:对个人理财通各个功能部件的使用介绍 ⑨退出:退出该系统 功能需求 目前国外理财软件已有上百种之多,如美国的直觉公司QUICKEN软件为美国13个州及加拿大的客户提供金融管理和预算等财务问题。国在财务管理方面做的比较突出的当属金蝶公司。然而,在手机理财软件方面做的很突出的还没有,本软件是针对个人用户的一款Android 软件,主要对个人理财收入、支出做一个记录和统计,可以对用户的收入、支出记录做添加、删除、查询和修改的管理,本软件该具备以下功能: ①功能操作要方便、易懂、,不要有多余或复杂的操作。 ②对用户收入支出信息做添加、删除、查询和修改。 ③系统的功能复合本人的实际情况。

贪吃蛇游戏课程设计实验报告全解

辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日

目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13)

一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.360docs.net/doc/f213586760.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1

《软件设计基础-VB》课程设计报告书

河北联合大学 2011-2012 第 2 学期
《 软 件 设 计 基 础 -VB》
课程设计报告
设计名称: 姓 名: 设计显示弹球的程序 学 号:
专业班级: 学 院:
设计时间: 设计地点:
指导教师评语:
成绩:
指导教师签字:
年 月 日

《软件设计基础-VB》课程设计报告

2
页,共
14



1.课程设计目的···································· ···································· ···································· 2.课程设计任务与要求 ································ ································ ······························· 3.课程设计说明书··································· ··································· ·································· 4.课程设计成果···································· ···································· ···································· 5.程序调试过程···································· ···································· ···································· 6.设计问题的不足和改进方案 ···························· ···························· ··························· 7.课程设计心得···································· ···································· ···································· 8.附录 ·········································· ········································· ········································· 9.参考文献······································· ······································· ······································

软件系统设计课程设计

JIANGSU UNIVERSITY 软件系统开发课程设计 高校宿舍信息管理管理系统 学院名称:京江学院 专业班级:软件工程1201 指导教师:宋和平 需求分析:吴瑜21 架构设计:潘成光19、高阳20、胡越详细设计:胡越22 软件实现:潘成光、高阳、胡越、吴瑜 2015年6月[正文] 一、课程设计概述 目的:高校宿舍信息管理系统的总体设计目的是要使系统实现完善固定的宿舍信息管理体制、完善宿舍信息管理制度、实现对宿舍信息的全面监控、提高管理工作效率。 任务:通过本系统的开发和实践,借用信息技术的各种优势,方便快捷的实现管理员和学生的交流工作,方便管理者即使做好应对措施 开发环境:

a. 计算机应在奔腾双核或更高档次的计算机,内存在2G或更大的; b. 先在单机上实施,获得成功后,再在C/S结构上推广应用。 操作系统为:Windows XP, 前台开发工具为:MyEclipse8.5 , 后台数据库为:MySql。 二、项目的需求分析 中能较好的交换信息,处理数据,例如: 学生信息查询子模块 学生信息查询子模块运行时,通过用户界面与sql学生信息数据库连接,搜索与用户输入的学生信息管理子模块 信息更新(添加、删除、修改)子模块运行时,超级管理员通过管理员页面接口与数据库连接,进行对学生信息的更新,和相关的数据操作。 登录——>进入——>用户类型——>超级管理员——>功能界面 登录——>进入——>用户类型——>宿舍管理员——>功能界面 三、用例模型(E-R图): 1)Super_login(超级管理员用户表) 图3-4超级管理员实体属性图

2)Dorm_login(宿舍管理员用户表) 图3-5宿舍管理员实体属性图 3)Building(楼宇信息表) 图3-6楼宇实体属性图 4)Dormitory(宿舍信息表) 图3-7宿舍实体属性图

软件工程课程设计报告

软件工程课程设计报告( 2015 -- 2016 学年第一学期) 课程名称:软件工程课程设计 题目:学生宿舍管理系统 院系:控制与计算机工程学院 班级: 组号: 组长: 组员: 指导教师: 设计周数:两周 小组成绩: 日期:2016 年1月8日

《软件工程》课程设计 任务书 一、目的、要求 通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。 具体如下: 1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编 码和测试方面的知识; 2.熟悉自动化的软件开发工具Rational Rose,并将其运用于软件开发的全过程; 3.进一步加强和提高软件工程文档的编写能力; 4.培养协作能力和团队精神。 二、主要内容 1.运用面向对象方法进行校园宿舍管理系统的需求分析与设计; 2.建模语言采用UML,以Rational Rose为建模工具,进行系统的静态建模和动态建模; 3.利用对象模型自动生成数据模型,自动建立数据库; 4.使用hibernate技术以面向对象的方式编程管理数据库,前端使用html+css结合javaScript 进行设计,后台逻辑采用java来实现,整个系统采用了ssh框架来实现,使得各个模块低耦 合,分层明确,提高了代码的重用以及二次开发; 5.撰写课程设计报告。 三、任务分配

四、进度计划 五、设计成果要求 1.建立系统分析模型与设计模型; 2.初步建立系统原型,实现关键的功能; 3.编写课程设计报告。 六、考核方式 1.系统演示及讲解 占50%。 2.设计报告 占50%。 指导教师: 日期:2015 年12 月25 日

软件工程课程设计报告_人事管理系统

软件工程课程设计 题目人事管理系统 1.课程题目 人事管理系统设计 2.概述 2.1本课题的来源 A公司是一家以寿险营销为目的的寿险公司,公司员工众多业务流量大,为了方便管理,我制作了一个人事管理系统。主要通过员工基本信息录入、修改、查询、删除以及员工考勤等方面来对员工综合考评。以便对员工发放工资进行合理分配。这样能提高领导的人事管理水平还能提高员工的积极性。通过现代计算机技术与企业管理相结合,实现人事管理系统的科学化、信息化、现代化,并且适合一般人群使用。 企业人事管理是相对企业部员工的管理。集人员、考勤、工资、员工培训、系统功能等于一体的大型管理系统,为公司在人事管理等方面提供极大的方便。本软件是以中小型企业为背景而设计开发的,界面美观、使用方便。本系统主要以人员管理、考勤管理、统计分析管理、工资核算等,是企业人事管理必不可缺的好帮手。

2.2本课题目的、实现功能与预期成果 2.2.1目的 目前市面上流行的人事管理系统不少。但是,对于A公司来说,不需要大型的数据库系统。只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统。 2.2.2实现功能 能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。 2.2.3预期成果 所做出的人事管理系统能让A公司管理层在操作简单的前提下并有效的提高对该公司的人事管理,并通过该系统提高员工的能力。尽量使本系统做到是一个科学化、信息化、简单使用的人事管理系统。 3.系统分析 3.1系统调研 正式开发管理信息系统之前进行调研是非常必要的,必要对现行系统进行详细的调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,

软件工程课程设计要求

软件工程》课程设计 一、目的、要求 通过该课程设计使学生树立起强烈的工程化意识,用工程化思想和方法开发软件,切实体会用软件工程的方法开发系统与一般程序设计方法的不同之处。学生在对所开发的系统进行软件计划、需求分析、设计的基础上,实现并测试实际开发的系统。通过一系列规范化软件文档的编写和系统实现,使学生具备实际软件项目分析、设计、实现和测试的基本能力。 二、主要内容 要求学生掌握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。每个学生选择一个小型软件项目,题目可参考附录A,也可自行拟定题目,按 照软件工程的生命周期,完成软件计划、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的文档。分别、选用传统的结构化方法和面向对象的方法,开发环境和工具不限。 三、设计成果要求 1.提交软件系统,根据完成情况给分; 2.提交设计报告文档 设计报告将从以下三个方面给分: (1)报告是否规范,符合要求; (2)报告是否完整、工作量大小; (3)文档逻辑性是否合理、语言是否流畅。 四、进度安排 (1)确定选题,进行可行性分析,开发计划 (2)软件需求分析 (3)软件设计 (4)软件实现,测试计划 (5)软件实现,测试报告 (6)验收

附录A 课程设计题目 题目一:电子商务网站建设 一个集客户购物、下订单、订单处理、销售统计等功能于一体的系统。通过浏览器,创建账户/登陆账户,让客户可以查询货物,把货物放入购物车,创建订单,通过信用卡支付等。系统划分成了多个模块,松耦合的设计架构,允许可以和多个数据源,EIS (企业信息系统)进行交互。功能如下: 1?用户 注册/登陆/忘记密码/管理个人信息 查询货物 购物车管理 提交订单 信用卡支付 查询历史购物记录 2?货物商店 接受/处理订单消息 手工接受/拒绝订单 用E-mail来通知客户 发订单给供应商 销售统计 3.供应商 接受订单 派送货物给用户 提供一个基于web的库存管理 维护库存数据库 题目二:外文图书采购系统 1?问题概述 某图书馆外文采购有两个组--征订组和验收,登记组。分别承担书籍订购和进书验收任务。为了减轻劳动强度和提高工作效率,打算采用计算机进行管理。为此,系统分析员在进行了调查研究,描述出外文采购室现行系流程。 1 )订书组从供书单价收到订书目录,根据各单位的需要选择出要订购的书 目。

《c语言课程设计报告--小游戏“石头剪子布”》

《C语言课程设计》报告题目:石头剪子布 班级: 学号: 姓名: 指导教师: 成绩:

目录: 一、选题背景...................................................................................................................... - 2 - 二、设计思路...................................................................................................................... - 2 - 三、主要问题的解决方法及关键技术.............................................................................. - 3 - 四、程序流程图.................................................................................................................. - 3 - 五、源程序清单.................................................................................................................. - 6 - 六、程序运行结果.............................................................................................................. - 8 - 七、设计总结...................................................................................................................... - 9 - 八、教师评语.................................................................................................................... - 10 - 一、选题背景 通过一个学期的C语言课程的学习,《C语言程序设计》课程已结束,根据学校课程学习的安排,要进行一周的C语言实习,自己动手编写游戏和系统。根据老师布置的设计任务书,按照学委的安排,根据个人的能力及意愿,我选择了设计一格小游戏:石头剪子布。 实验准备:做游戏前,首先,自己详细看了《C语言程序设计》(教科书),理解了相关函数的用法和作用;另外,上网查询了很多相关资料,还有找了很多相关的游戏设计的代码,都详细的看了一遍,加深了对C语言以及相关内容进一步理解。根据实际情况设计出一款比较理想的小游戏。 设计题目的要求: ①游戏要设置开始,结束操作控制 ②游戏要有时间提示即相关结果的提示语 ③游戏要能自动判断输赢,并显示最终比赛结果 二、设计思路 系统功能模块图: 输入:计算机随机输入选择,用户输入选择,并将数据储存。 计算:根据计算机和用户的选择,计算大小,并判断输赢,计算用户的胜负率,并储存。 输出:根据用户的输入,将用户的游戏结果显示在屏幕上。

软件工程课程设计报告书

第一章概述 1.1系统名称 学生宿舍管理系统 1.2开发及运行环境 CPU Intel? Core(TM)i5-4210M 存4GB 硬盘空间30M以上 输入设备键盘鼠标 操作系统windows 8.0 数据库windows sql server 2005 1.3软件开发计划 2017.12.01-2017.12.04 软件需求分析 2017.12.05-2017.12.09 系统结构设计 2017.12.10-2017.12.15 软件编码及数据 库设计实现 2017.12.16-2017-12.20 软件测试 2017.12.21 软件交付

第二章需求分析 目前,各学校的宿舍管理主要依赖于人工管理,学生宿舍相关的各种信息可以通过宿舍管理系统来集中统一管理,方便的宿舍管理员对宿舍的管理,更有利于宿舍安全以及同学们的健康成长。 2.1 任务概述 宿舍管理系统为了方便管理,尽可能的实现操作简单,易学易用,主要实现以下功能: 1)系统要求用户必须输入正确的用户名和密码才能进入系统; 2)系统应该提供学生住宿情况的基本登记; 3)系统应提供人员来访登记及结束访问的详细登记; 4)系统应提供学生在校期间物品出入宿舍楼的详细情况登记; 5)系统应提供查询功能,以方便用户对学生基本信息的查询(要实现按多种条件的查询)及楼房信息的查询; 6)系统应提供增加、删除、修改用户的功能; 7)增加学生离校的物品管理制度 2.2 宿舍管理系统一层数据流图及数据字典 2.2.1 一层数据流图

图1-1 学生宿舍管理系统一层数据流图 2.2.2 数据字典 以下是图1-1数据流图的数据字典本数据字典主要定义数据4方面容: 名字:数据元素的名字,作为在数据流图中的标识符, 描述:对名字所代表的数据功能和含义加以描述 定义:对名字所代表的实际构成加以解释 位置:表示数据流的来源 名字:管理员 描述:对宿舍管理系统进行操作的人员

软件平台课程设计

软件平台技术课程总结 题目: NodeJS 班级: ***** 姓名: **** 学号: ****** 2016年6月 计算机与信息学院

一、题目简介 (200字左右,介绍题目的需求、应用背景及基本功能) Nodejs的需求分析:Node.js是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引擎执行Javascript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。 NodeJS的基本功能:NodeJS 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码。其实到今天为止,很少有哪些大的互联网公司是和 Node.js 无关的。LinkedIn,Yahho,Paypal, eBay, Walmart都在向Node.js迁移。国内的淘宝、网易、百度等也都有很多项目运行在 Node.js 之上。总而言之,NodeJS适合运用在高并发、I/O 密集、少量业务逻辑的场景。 NodeJS的应用背景:1. RESTful API:这是NodeJS最理想的应用场景,可以处理数万条连接,本身没有太多的逻辑,只需要请求API,组织数据进行返回即可。 2. 统一Web应用的UI层:目前MVC的架构,在某种意义上来说,Web开发有两个UI层,一个是在浏览器里面我们最终看到的,另一个在server端,负责生成和拼接页面。如果所有的关键业务逻辑都封装成REST调用,就意味着在上层只需要考虑如何用这些REST接口构建具体的应用。那些后端程序员们根本不操心具体数据是如何从一个页面传递到另一个页面的,他们也不用管用户数据更新是通过Ajax异步获取的还是通过刷新页面。 3.大量Ajax请求的应用:例如个性化应用,每个用户看到的页面都不一样,缓存失效,需要在页面加载的时候发起Ajax请求,NodeJS能响应大量的并发请求。, 二、界面介绍 (200字左右,结合截图,对使用过程进行描述,重点介绍界面的布局、相关的功能、操作的流程) 首先安装好nodejs,然后测试是否安装成功。如下: 首先输入node命令进入编译环境。输出“Hello World”(nodejs不支持alert)

软件工程课程设计报告

软件工程课程设计报告样式 山东建筑大学计算机科学与技术学院 课程设计说明书 题目:学校教材订购系统的分析和设计 课程:软件工程 院(部):计算机科学与技术学院 专业:软件测试 班级:软测143 学生姓名:冯岩 学号:20141113088 指导教师:王宜贵 完成日期:

目录 课程设计任务书 (36) 1. 系统概述 (39) 1.1业务流程描述 (39) 1.2 业务流程图..................................................................................... 错误!未定义书签。2.系统需求分析.......................................................................................... 错误!未定义书签。 2.1 系统用例模型.................................................................................. 错误!未定义书签。 2.2 系统类图模型............................................................................ 错误!未定义书签。 2.3 系统顺序图模型........................................................................ 错误!未定义书签。 3. 系统设计.................................................................................................. 错误!未定义书签。 3.1 系统结构设计................................................................................. 错误!未定义书签。 3.2 数据库概念模型设计..................................................................... 错误!未定义书签。 3.3 数据库物理模型设计..................................................................... 错误!未定义书签。 4. 系统详细设计.......................................................................................... 错误!未定义书签。 4.1学校教材订购系统界面设计.......................................................... 错误!未定义书签。 4.2 销售系统处理............................................................................... 错误!未定义书签。 4.3 输入设计....................................................................................... 错误!未定义书签。 4.4 采购系统处理............................................................................... 错误!未定义书签。 4.5 设计............................................................................................... 错误!未定义书签。 4.6 输出设计....................................................................................... 错误!未定义书签。总结 .. (43) 参考文献 (45) 课程设计指导教师评语 (46)

动画与游戏设计-课程设计报告

《动画与游戏开发》 课程报告 学号:111102020103 姓名:张慧 专业班级:11级计科本01班 日期:2013-12-9

电子信息工程学院 目录 一、课程内容及应用领域 1.1基于DirectX的粒子系统 (3) 1.1.1 粒子系统简介 (3) 1.1.2广告板技术 (3) 1.1.3粒子系统的基本原理 (3) 1.2粒子系统的应用领域 (3) 二、课程内容的难点、疑点 2.1课程要点 (4) 2.2课程难点 (4) 2.3课程疑点 (4) 三、实例开发 3.1实例题目及说明 (4) 3.2关键技术 (5) 3.2.1系统完成的四部曲 (5) 3.2.2星光粒子结构构成技术 (5) 3.2.3 MyPaint()绘图函数 (5) 3.3开发过程 (9) 3.3.1案例所需背景图 (10) 3.3.2程序部分代码 (10) 3.3.3运行结果截图 (15)

3.4总结..........................................................17四、谈谈自己对课程内容的掌握程度

一、课程内容及应用领域 1.课程内容:基于DirectX的粒子系统 相关内容简介: (1)粒子系统简介 粒子系统是三维图形编程领域中用于实现特殊效果的一种非常重要的技术.该技术是由Reeves于1983年首次提出来的.通过粒子系统可以使用非常简单的粒子来构造复杂的物体,它为模拟动态的不规则物体,提供了强有力的技术手段。一般情况下,粒子的几何特征十分简单,可以用一个像素或一个小的多边形来表示.如果给出了粒子中心点的坐标和粒子大小,不难计算出绘制粒子所需要的四个顶点的位置坐标. (2)广告板技术 由于通常使用平面图形而不是立体图形表示一个粒子,所以需要使用的粒子四边形始终面向观察者.这就要使用广告板技术.广告板技术的原理是,在渲染一个多边形时,首先根据观察方向构造一个旋转矩阵,利用该矩阵旋转多边形使其面向观察者,如果观察方向不断变化,就要不断旋转多边形. (3)粒子系统的基本原理 粒子通常都是一个带有纹理的四边形。我们通过这个使用了纹理映射的四边形,可以认为粒子实际上是一个很小的网格模型,只不过是纹理赋予了它特殊的外表罢了。绘制粒子就如果绘制多边形一样简单,因为一个粒子说白了就是一个可改变大小并映射了纹理的四边形罢了。 粒子系统由大量的粒子构成,粒子是一种微小的物体,每个粒子都具有一定的属性,如位置、大小以及纹理,可能还需要颜色、透明度、运动速度、加速度、生命期等属性。我们可以把粒子想象成颗粒状的物体,如雪花,雨滴,沙尘,烟雾等特殊的事物。又比如游戏中的

软件工程课程设计报告

软件工程课程设计报告题目:校园小商品交易系统 一、实验题目 (2) 二、实验目的 (2) 三、实验要求 (3) 四、实验内容 (3) 五、系统设计文档 (4) 5.1需求分析 (4) 5.1.1对系统综合要求 (4)

5.1.2系统的数据要求 (4) 5.2总体设计 (5) 5.2.1系统总体用例图 (5) 5.2.2商品管理用例图 (5) 5.2.3用户信息用例图 (6) 5.2.4商品交易用例图 (6) 5.3详细设计 (6) 5.3.1系统类图以及类之间关系图 (6) 5.3.2由需求分析阶段以及类之间关系的设计分析可以得到系统 对应事件流 (7) 5.3.3系统数据库表 (11) 5.3.4系统组件图 (11) 5.3.5系统部署图 (12) 六、心得体会 (13) 一、实验题目 校园小商品交易系统 二、实验目的 通过这次课程设计,要掌握UML(统一建模语言),并能运用UML在Rational Rose中建模。熟练掌握软件工程面向对象建模的总体方法。

三、实验要求 1.一人一组。 2.熟悉Rose开发环境。 3.掌握UML的基本模型元素(如角色、用例、类等)。 4.熟悉UML,主要了解UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Object diagram(对象图,Rose中没有)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)。 5.完成对系统的建模。 6.周五上机检查,并提交设计报告。 7.集中上机时间不能迟到、早退。 8.请自觉维护实验室清洁,爱护实验设备。 四、实验内容 运用UML统一建模语言建立一个校园小商品交易系统。开发软件为ROSE,最后转换为VB代码。该系统主要的基本要求和功能如下: 包含三类用户:管理员、商品发布者、普通用户、访客。 (1)向管理员提供以下功能:自身密码修改,其他用户添加删除,用户信息修改、统计。商品信息添加、修改、删除、查找、统计。 (2)向商品发布者提供以下功能:注册、登陆、注销、自身密码修改、自身信息修改。商品信息发布,自身商品信息统计。查找浏览其他商品。 (3)向一般用户提供以下功能:商品浏览、查找、获知商家联系方式,定购商品。 (4)向访客提供以下功能:商品浏览、查找、获知商家联系方式。

软件工程课程设计实验报告

重庆邮电大学 软 件 工 程 课程设计实验报告 ——网上选课系统 姓名:雷雷 学号:08500329 专业:计算机科学与技术班级:0410801 指导老师:邹洋 教室:S331-A 时间:2011-5-30~2011-6-3

一、实验题目:网上选课系统 主要功能描述:系统首先维护校内所有课程的信息;课程分为研究生、本科生;也可以分为必修、选修、辅修。用户以学号和密码登陆,系统显示用户以选的课程、用户有权选但未选的其他课程,并显示具体信息(如学分)。用户选择后,系统根据规则检查用户是否进行正确的选课(如时间冲突、跨专业选课等);如果错误提示用户改,否则修改选课数据库。最后系统应能够向管理员提供查询界面和各类报表,统计每门课的选课情况。 二、实验目的 软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。通过这次课程设计,要掌握UML(统一建模语言),并能运用UML在Rational Rose中建模。 三、实验要求 1.一人一组。 2.熟悉Rose开发环境。 3.掌握UML的基本模型元素(如角色、用例、类等)。 4.熟悉UML,主要了解UML中的9大图:Use case diagram(用例图)、Class diagram(类 图)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram(数据模型图)。 5.进行系统需求分析与系统功能模块设计,绘出系统详细的业务流程图和数据流程图, 建立完整的系统数据库的逻辑模型。 6.完成对系统的建模实现。 7.进行检查,并提交设计报告。 四、实验内容 1、系统的需求分析 学生选课系统主要满足来自两方面的需求,这两个方面分别是学生用户和管理员用户,也即是两类用户角色。 (1)学生用户是主要的需求者,主要需求功能是查询可选课程、查看自己选课情况及进行选课、退课操作等; (2)管理员用户的功能需求较为复杂,包括对学生信息、课程信息进行管理。在学生信息管理子模块中,实现对学生信息的添加、修改、删除操作,还可以输入查询条件进行查询操作。在课程管理子模块中,实现对课程信息的添加,添加时为其分配任课教师、上课时间和地点,实现对课程的修改、删除、查看某个课程的详细信息等。 本系统将管理员用户、学生用户的身份及权限进行严格的划分,让管理员拥有最高权限,可以查看、维护系统中的所有信息,如添加学生,添加课程,修改课程信息等;让学生拥有选课和退选的权限;而修改密码模块的权限每个用户都可拥有,用以修改自己的密码信息。通过进行严格的权限划分,可以更好地进行管理,也可更好地保护用户信息安全。

相关文档
最新文档