软件设计实验报告

合集下载

程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)c语言是在国内外广泛使用的一种计算机语言。

其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。

其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,unix,linux,mac,os/2,无一例外,哪一个不是c 语言写的?很多新型的语言如,c++,java,c,j,perl...都是衍生自c语言。

掌握了c语言,可以说你就掌握了很多门语言。

学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。

所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。

同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。

在学习一年c语言的过程中我也在慢慢探索怎样才能学好c语言,并总结了一点经验:要了解c语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。

在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。

这些都是语法基础也是c语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。

比如说ifelse和switchcase这两种条件语句都是用来判断执行功能的,那我要什么时侯用if什么时侯用switch呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选switch而不会选if。

南京邮电大学软件设计实验报告

南京邮电大学软件设计实验报告

软件设计报告( 2014 / 2015 学年第二学期)课程名称软件设计指导老师赵江实习时间第十八周学生姓名学号____学院______专业软件设计课程编号:B0465011C适用专业:班级:一、所涉及的课程及知识点涉及的课程:第6学期之前的专业基础课程。

知识点:专业基础课程中所学的知识点。

二、目的与任务目的:通过软件设计,培养学生的实践能力和创新精神,加强学生对专业基础课程的理解和掌握,加强学生高级语言编程能力、应用软件以及仿真能力。

任务:选择以下任一模块进行设计:Matlab软件仿真、C语言及应用。

软件设计的内容题目1:如果给出两个矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=136782078451220124A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=087654321B ,执行下面的矩阵运算命令。

(1)B A *5+和I B A +-分别是多少(其中I 为单位矩阵) (2)B A *⋅和B A *将分别给出什么结果,它们是否相同为什么 逻辑功能程序:function [ ] = EXP1()A=[4,12,20;12,45,78;20,78,136]; B=[1,2,3;4,5,6;7,8,0]; I=eye(3); disp('A+5*B='); disp(A+5*B); disp('A-B+I=') disp(A-B+I); disp('A.*B='); disp(A.*B) disp('A*B='); disp(A*B); End 实验过程与结果打开matlab ,在命令窗口“Command Window ”中键入edit,启动程序编辑器。

输入完整程序后利用save as 储存为M 文件,文件名为EXP1。

返回主界面,在命令窗口“Command Window”中输入函数EXP1(),按下回车,得到程序运行结果如下:>> EXP1( )A+5*B=9 22 3532 70 10855 118 136A-B+I=4 10 178 41 7213 70 137A.*B=4 24 6048 225 468140 624 0A*B=192 228 84738 873 3061284 1518 528实验结果分析(1)利用MATLAB提供的disp函数既可以输出表达式、数值,也可以输出字符串,其调用方式为:disp(表达式或数值)、disp(‘待显示字符串’);(2)在MATLAB的矩阵运算中,+、-运算符通用,表示矩阵相加、减;*与.*不同在于*表示矩阵乘法,而.*表示矩阵对应位置元素相乘,所以*要求两个矩阵的行、列数互为转置,而.*则要求两个矩阵行、列数要相同;(3)使用eye可以获得单位矩阵函数(矩阵对角线处元素为1,其余元素为0),矩阵的阶数由括号内的值决定,格式为eye(n),n为矩阵阶数。

【报告计划书类】软件设计过程实验报告

【报告计划书类】软件设计过程实验报告

软件开发过程实验一软件需求分析一、目的和意义对本书第二和三章的内容做进一步的掌握,写出软件需求规格说明书。

为下面的实习奠定基础。

二、实习内容1、确定软件题目(学生可自己拟定,也可在本书附录2中选择);2、分析软件需求以及人工模式下的工作流程;3、编写需求规格说明书(需求规格说明书的编写要求参见本节模板参考);4、完成形式:以文档的形式完成软件的需求规格说明书。

纸张型号为A4。

三、实习指导1、在磁盘上建立一个软件工程实习文件夹,以自己的姓名命名。

2、提交文档的格式如下:第一页的格式为:软件名称:文档编号版本号文档名称:项目名称:项目负责人:编写时间审核时间批准时间开发单位第二页之后的内容为:●编写目的:阐明编写该文档的目的,指出读者对象●项目背景:项目的委托单位、开发单位、该软件系统与其他系统的关系。

●参考资料软件需求规格说明的书写原则①任务概述:软硬件环境、条件和限制(软件的使用条件和限制)。

②数据描述:输入数据、输出数据、数据库设计和建立数据词典。

③功能需求:功能划分和功能描述④性能需求:数据精度、时间特性、适应性(操作方式、与其他软件的接口、开发计划变化时,软件应具有的适应能力。

)。

⑤运行要求:用户界面、硬件接口(如:连接打印机)、软件接口(如:是否为其他项目的子项目)、故障处理。

⑥其他需求:可使用性、安全保密性、可维护性、可移植性等。

●模板参考第一页:软件名称:教务管理软件文档编号001版本号Ver 1.0文档名称:需求规格说明书项目名称:课表编排系统项目负责人:屈艳编写:刘楠、叶艺、赵春、马燕时间:2005-2-14审核:屈艳时间:2005-2-16批准:王湘桃时间:2005-2-20开发单位:冰雪五人组第二页之后的内容:编写目的:编写该文档是为了分析人工状态下课表编排的工作流程,把人工模式抽象为可在计算机上处理的自动模式。

便于开发小组成员对系统整体功能的认识。

项目背景:高校的课表编排一直是一个烦琐的工作,为了解决这个问题,某某高校教务处委托我们开发该软件。

软件设计与体系结构实验报告

软件设计与体系结构实验报告
Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:
成绩 指导教师
实验 1:ACME 软件体系结构描述语言应用
一、实验目的
1)掌握软件体系结构描述的概念 2)掌握应用 ACMESTUDIO 工具描述软件体系结构的基本操作
二、实验学时
2 学时。
三、实验方法
由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老 师的指导下进行软件体系结构描述。
四、实验环境
计算机及 ACMESTUDIO。
五、实验内容
利用 ACME 语言定义软件体系结构风格,修改 ACME 代码,并进行风格测试。
六、实验操作步骤
一、导入Zip文档 建立的一个Project,并且命名为AcmeLab2。如下图:
的如下图:
接着导入ZIP文档,导入完ZIP文档后显示
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线生高0不产中仅工资2艺料22高试2可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料2荷试2,下卷而高总且中体可资配保料置障试时2卷,32调需3各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看工且25作尽52下可22都能护可地1关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编试求5写、卷技重电保术要气护交设设装底备备置。4高调、动管中试电作线资高气,敷料中课并设3试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

软件界面认知实验报告

软件界面认知实验报告

一、实验目的1. 了解软件界面设计的基本原则和要素。

2. 培养对软件界面的审美能力和认知能力。

3. 提高软件界面设计在实际应用中的实用性。

二、实验内容1. 界面设计原则及要素学习2. 软件界面认知实验3. 实验结果分析三、实验过程1. 界面设计原则及要素学习(1)学习软件界面设计的基本原则,如简洁性、一致性、易用性、实用性等。

(2)了解软件界面设计的基本要素,如颜色、字体、布局、图标、交互等。

2. 软件界面认知实验(1)选取一款常用的软件,如微信、QQ、办公软件等,观察其界面设计。

(2)分析该软件界面设计的特点,如色彩搭配、布局结构、交互方式等。

(3)结合所学知识,评价该软件界面设计的优缺点。

3. 实验结果分析(1)总结各软件界面设计的特点和优缺点。

(2)分析软件界面设计在实际应用中的影响。

(3)提出改进软件界面设计的建议。

四、实验结果与分析1. 软件界面设计特点(1)微信:界面简洁,色彩搭配和谐,布局合理,交互便捷。

(2)QQ:界面美观,色彩丰富,布局清晰,功能分区明确。

(3)办公软件:界面专业性较强,色彩搭配庄重,布局规整,功能丰富。

2. 软件界面设计优缺点(1)微信:优点:界面简洁,易用性强;缺点:部分功能隐藏较深,需多次点击才能找到。

(2)QQ:优点:界面美观,功能丰富;缺点:部分界面元素过多,显得杂乱。

(3)办公软件:优点:专业性较强,功能全面;缺点:界面较为复杂,初学者可能难以上手。

3. 软件界面设计影响(1)界面设计对用户的第一印象至关重要,美观的界面能吸引用户使用。

(2)良好的界面设计能提高用户的使用体验,降低学习成本。

(3)界面设计直接影响软件的易用性和实用性,进而影响软件的市场竞争力。

4. 改进建议(1)在保持简洁性的同时,适当增加功能提示,降低用户学习成本。

(2)优化界面布局,使功能分区更加明确,提高用户操作效率。

(3)针对不同用户群体,提供个性化界面设计,满足不同需求。

五、实验结论通过本次实验,我们对软件界面设计有了更深入的了解,掌握了界面设计的基本原则和要素。

南京邮电大学软件设计实验报告

南京邮电大学软件设计实验报告

通信与信息工程学院2012/2013学年第二学期软件设计实验报告模块名称Visual C++专业广播电视工程学生班级B100117学生学号B10011714学生姓名王建明指导教师田炜题目一:P021E实验要求:设计一个简单的文本编辑器,该系统要求对一个文本文件中的容进行各种常规操作,例如:(1)编辑文本;(2)保存、打开指定位置的文本文件;(3)具有输入输出界面。

1、问题分析与方案设计。

本次程序主要为了让我们了解C语言中对于文件的一般操作。

文件是程序设计中的一个重要概念。

操作系统是以文件为单位对数据进行管理的,也就是说,如果想找外部介质上的数据,必须先按文件名找到所指定的文件,然后再从该文件中读取数据。

C语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。

根据数据的组织形式,可分为ASCII文件和二进制文件。

ASCII文件又称文本(text)文件,他的每一个字节放一个ASCII代码,代表一个字符。

二进制文件是把存中的数据按其在存中的存储形式原样输出到磁盘上存放。

在文件系统中,“文件指针”是一个非常重要的概念,通常在进行关于文件操作的C程序时,会定义一个结构体变量的文件指针(FILE *fp),以便于C语言程序能够准确的对文件进行访问及操作。

本次实验程序包含了简单地对于文件的打开、插入、删除、查找、替换、显示、保存的操作,通过对于文件指针的运用以及各种文件指令的运用,基本达到了实验的要求。

在本次实验中,按照顺序程序的设计方法,加以熟练地运用C程序中主函数与一般函数之间的熟练调用,顺利的实现了实验要求的各种结果。

程序中用到的核心方法包括:文件的打开与关闭、文件的读写、文件的定位以及文件的出错检测等。

其中包括了fopen、fclose、fputc、fgetc、fread、fwrite、rewind、fseek、ftell和ferror等函数。

这些函数对算法的实现起了很大的作用具体算法实现过程如下图所示。

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告软件体系结构设计模式实验报告学生姓名: 所在学院: 学生学号: 学生班级: 指导老师: 完成日期:一、实验目的熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括组合模式、外观模式、代理模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。

二、实验内容使用PowerDesigner和任意一种面向对象编程语言实现组合模式、外观模式、代理模式、观察者模式和策略模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。

(1) 组合模式使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。

绘制类图并编程模拟实现。

(2) 组合模式某教育机构组织结构如下图所示:北京总部教务办公室湖南分校行政办公室教务办公室长沙教学点湘潭教学点行政办公室教务办公室行政办公室教务办公室行政办公室在该教育机构的OA系统中可以给各级办公室下发公文,现采用组合模式设计该机构的组织结构,绘制相应的类图并编程模拟实现,在客户端代码中模拟下发公文。

(注:可以定义一个办公室类为抽象叶子构件类,再将教务办公室和行政办公室作为其子类;可以定义一个教学机构类为抽象容器构件类,将总部、分校和教学点作为其子类。

)(3) 外观模式某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。

读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。

现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块,要求编程模拟实现。

软件课程设计实验报告(3篇)

软件课程设计实验报告(3篇)【导语】软件课程设计试验报告怎么写出亮点?整理了3篇优秀的《软件课程设计试验报告》通用版范文,有规范的开头结尾写法和标准的书写格式。

是您写出深受大家欢迎的综合报告抱负参考模板,盼望对您有所关心。

【第1篇】软件课程设计试验报告一、目的、要求通过该课程设计要使同学树立起剧烈的工程化意识,用工程化思想和方法开发软件。

切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,同学在对所开发的系统进行软件方案、需求分析、设计的基础上,实现并测试实际开发的系统。

通过一系列规范化软件文档的编写和系统实现,使同学具备实际软件项目分析、设计、实现和测试的基本力量。

二、主要内容要求同学把握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。

每个同学选择一个小型软件项目(内容参照《计算机综合实践指导》,宋雨等编著,清华高校出版社出版),根据软件工程的生命周期,完成软件方案、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的`文档。

详细的方法可以选用传统的软件工程方法或者面对对象的方法,开发环境和工具不限。

三、进度方案略四、设计成果要求1.至少提交4个文档,包括软件方案、软件需求规格说明书、软件设计说明书、软件测试方案,要求文档格式规范、规律性强(可参考《计算机综合实践指导》中给出的要求及格式)、图表规范;2.独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。

五、考核方式(1)提交的文档规范,工作量大,文档规律性强、正确,按《计算机综合实践指导》标准考核(附《软件工程课程设计》试验报告评分表)占60%(2)系统验收、讲解、答辩占25% (3)考勤占15%软件课程设计试验报告【第2篇】应用软件课程设计报告计算机是一门技术性、工程性和应用性很强的学科,教育部高等学校计算机科学与技术教学指导委员会的进展战略讨论报告中也指出:计算机专业的人才应当被分为科学型、工程型、应用型三类,而绝大多数应当是工程型和应用型的。

软件原理设计实验报告

实验名称:软件原理设计实验实验日期:2023年X月X日实验地点:计算机实验室实验指导教师:[教师姓名]一、实验目的1. 理解软件原理设计的基本概念和方法。

2. 掌握软件需求分析、系统设计、编码实现和测试的基本流程。

3. 培养团队协作能力和软件工程实践能力。

二、实验内容1. 软件需求分析2. 系统设计3. 编码实现4. 测试与调试三、实验步骤1. 软件需求分析(1)确定实验项目:设计一个简单的图书管理系统。

(2)分析用户需求:包括图书的增删改查、借阅管理、归还管理等。

(3)编写需求规格说明书:详细描述系统的功能、性能、界面等方面的需求。

2. 系统设计(1)设计系统架构:采用分层架构,包括表现层、业务逻辑层和数据访问层。

(2)设计数据模型:使用E-R图描述图书管理系统的实体关系。

(3)设计界面:使用界面设计工具,如Axure RP,设计系统的用户界面。

(4)设计业务逻辑:编写业务逻辑层的代码,实现系统的核心功能。

3. 编码实现(1)编写代码:根据系统设计,使用Java、C++或Python等编程语言编写代码。

(2)编写测试用例:编写测试用例,对系统功能进行测试。

(3)编写文档:编写代码注释和文档,方便其他开发者阅读和维护。

4. 测试与调试(1)执行测试用例:运行测试用例,验证系统功能是否满足需求。

(2)分析测试结果:根据测试结果,分析系统存在的问题,并定位问题原因。

(3)调试程序:根据分析结果,修改代码,解决系统存在的问题。

(4)提交实验报告:整理实验过程和结果,编写实验报告。

四、实验结果与分析1. 软件需求分析结果通过分析用户需求,确定了图书管理系统的功能模块,并编写了需求规格说明书。

2. 系统设计结果根据需求规格说明书,设计了系统架构、数据模型、界面和业务逻辑。

3. 编码实现结果使用Java编程语言实现了图书管理系统的功能,并编写了测试用例。

4. 测试与调试结果执行测试用例,发现并解决了系统存在的问题,最终实现了系统的基本功能。

软件工程实验报告

实验一:基于UML的用例模型试验实验目的:1、掌握使用visio绘制用例模型2、掌握Ration Rose绘制用例模型的方法实验内容:1、使用vise绘制用例模型2、使用Ration Rose绘制用例模型的方法实验步骤:1、使用Visio绘制用例模型(1)启动Visio中的UML模型绘制开始时需要新建一个文件存放用例模型,首先选择“开始” 一“程序” -Microsoft office visio 2003选项进入Visio启动页面,在“类别”选项区域中才、选择“软件”项:然后在“模板”选项区域中选择UML模型图,即可打开制作UML模型的全部对彖图集,Vise提供了关于制作UML模型所需要的全部图表,支持开发人员进行面向对彖的分析和设计工作。

(2)保存UML模型通过选择菜单File…Save选项或者单机工具栏的Save按钮,来保存系统模型,保存的文件类型是-VSdo(3)新建立用例图(4)建立用例中的角色(5)建立用例(6)建立角色与用例、用例与角色之间的联系(7)建立活动图2、使用Rational Rose绘制用例模型(1)Rational Rose 的启动:选择"开始"---"程序” ---Rational Software---Rational Rose Enterprise Edetion选项,弹出对话框。

这个对话框用来设置本次启动的初始动作,分为New (新建模型)Existing (打开现有模型)和Recent (最近打开模型)三个标签。

(2)新建用例图在Browser窗I I内的树形列表中选中UseCase包并右击,在弹出的快捷菜单中选择New一UseCase Diagram选项。

此时出现New Diagram用例图名称并允许修改,将NewDiagrain更名为“医疗器材管理系统用例图”双击Biowgram窗I I内树形列表中的“医疗器材管理系统用例图”,在Diagram窗I I中出现“Use CaseDiagiain: Use CaseView/医疗器材管理系统用例图”,可以在该窗1 1中绘制用例图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通达学院2017/2018 学年第 1 学期课程设计实验报告模块名称综合软件设计专业通信工程学生班级141301学生学号********学生姓名陈启朋指导教师王诚目录第一章在线考试系统 (1)1.1 实验目的 (1)1.2 实验内容 (1)1.3.1考试登录模块设计 (1)1.3.2管理员模块设计 (7)1.4 实验结果 (12)第二章学生成绩管理系统 (13)2.1 实验目的 (13)2.2 实验内容 (13)2.3 实验过程 (13)2.3.1学生成绩管理模块设计 (13)2.3.2 公共模块设计 (18)2.4 实验结果 (20)总结 (21)参考文献 (21)第一章在线考试系统1.1 实验目的通过本次软件设计,使学生掌握并能熟练运用Java和mysql语言编写程序,掌握面向对象的概念,采用C/S结构,设计数据库模型,能够了解和数据库连接的方法。

1.2 实验内容本次实验的内容是编辑生成试题库,随机生成本次考试试题,提供在先评分并保存结果;同时,管理员可以添加、修改、删除考题和考生用户。

1.3 实验过程1.3.1考试登录模块设计主要程序如下:package com.Exam.Index;import java.awt.Insets;import javax.swing.*;import javax.swing.GroupLayout; import youtStyle; import com.Exam.bean.*; 考试管理模块考生管理员开始考试查看考试规则修改密码进行查分添加用户修改考题设置考试参数删除用户修改用户删除考题添加考题用户查分import com.Exam.controller.ControllerFrame;import com.Exam.dao.*;public class MyLand extends javax.swing.JFrame {initComponents();}@SuppressWarnings("unchecked")private void initComponents() {jTextField3 = new javax.swing.JTextField();jTextField1 = new javax.swing.JTextField();jpanel = new MyJPanel();choicejLabel = new javax.swing.JLabel();userChoicejComboBox = new javax.swing.JComboBox();choicejLabel1 = new javax.swing.JLabel();UserNameTextField = new javax.swing.JTextField();choicejLabel2 = new javax.swing.JLabel();PassWordjTextField = new javax.swing.JPasswordField();enterButton = new javax.swing.JButton();enterButton.setMargin(new Insets(2, 2, 2, 2));resButtonjButton = new javax.swing.JButton();resButtonjButton.setMargin(new Insets(2, 2, 2, 2));jTextField3.setText("jTextField3");jTextField1.setText("jTextField1");setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);choicejLabel.setText("选择用户:");userChoicejComboBox.setModel(newjavax.swing.DefaultComboBoxModel(new String[] { "","考生", "管理员" }));setTitle("考试系统");choicejLabel1.setText("用户名:");UserNameTextField.setText("");choicejLabel2.setText(" 密码:");PassWordjTextField.setText("");enterButton.setText("登录");enterButton.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {enterButtonActionPerformed(evt);}});resButtonjButton.setText("重置");resButtonjButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {jButton2ActionPerformed(evt);}});javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jpanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jpanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));javax.swing.GroupLayout jpanelLayout = new javax.swing.GroupLayout(jpanel);jpanelLayout.setHorizontalGroup(jpanelLayout.createParallelGroup(GroupLayout.Alignment.TRAILING).addGroup(jpanelLayout.createSequentialGroup().addGap(216, 216, 216).addGroup(jpanelLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jpanelLayout.createSequentialGroup().addComponent(choicejLabel,GroupLayout.PREFERRED_SIZE, 71, GroupLayout.PREFERRED_SIZE).addPreferredGap(ponentPlacement.RELATED).addComponent(userChoicejComboBox,GroupLayout.PREFERRED_SIZE, 120, GroupLayout.PREFERRED_SIZE)).addGroup(jpanelLayout.createSequentialGroup().addPreferredGap(ponentPlacement.RELATED .addGroup(jpanelLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jpanelLayout.createSequentialGroup().addPreferredGap(ponentPlacement.RELATED).addComponent(choicejLabel2,GroupLayout.PREFERRED_SIZE, 71, GroupLayout.PREFERRED_SIZE).addPreferredGap(ponentPlacement.RELATED).addComponent(PassWordjTextField, GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)).addGroup(jpanelLayout.createSequentialGroup().addComponent(choicejLabel1,GroupLayout.PREFERRED_SIZE, 71, GroupLayout.PREFERRED_SIZE).addPreferredGap(ponentPlacement.RELATED).addComponent(UserNameTextField, GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE))))).addGap(82, 82, 82)).addGroup(jpanelLayout.createSequentialGroup().addContainerGap(256, Short.MAX_VALUE).addComponent(enterButton, GroupLayout.PREFERRED_SIZE, 56, GroupLayout.PREFERRED_SIZE).addPreferredGap(ponentPlacement.RELATED).addComponent(resButtonjButton).addGap(123, 123, 123)));jpanelLayout.setVerticalGroup(jpanelLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(jpanelLayout.createSequentialGroup().addGap(85, 85, 85).addGroup(jpanelLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(choicejLabel).addComponent(userChoicejComboBox,GroupLayout.PREFERRED_SIZE, 21, GroupLayout.PREFERRED_SIZE)).addPreferredGap(ponentPlacement.RELATED) .addGroup(jpanelLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(choicejLabel1).addComponent(UserNameTextField,GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addPreferredGap(ponentPlacement.RELATED).addGroup(jpanelLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(choicejLabel2).addComponent(PassWordjTextField,GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(jpanelLayout.createParallelGroup(GroupLayout.Alignment.BASELINE).addComponent(resButtonjButton,GroupLayout.PREFERRED_SIZE, 23, GroupLayout.PREFERRED_SIZE).addComponent(enterButton, GroupLayout.PREFERRED_SIZE, 23, GroupLayout.PREFERRED_SIZE)).addContainerGap(71, Short.MAX_VALUE)));jpanel.setLayout(jpanelLayout);pack();}private void enterButtonActionPerformed(java.awt.event.ActionEvent evt) { if(userChoicejComboBox.getSelectedIndex()==0){JOptionPane.showMessageDialog(this, "没有确定路径的'用户类型'","信息对话框",JOptionPane.WARNING_MESSAGE);return;}if(UserNameTextField.getText().equals("")){JOptionPane.showMessageDialog(this, "用户名不能为空","密码不能为空",JOptionPane.WARNING_MESSAGE);return;}if(PassWordjTextField.getText().equals("")){JOptionPane.showMessageDialog(this,"密码不能为空","信息对话框",JOptionPane.WARNING_MESSAGE);return;}MyFindUserDao findUser = new MyFindUserDao();User user = new User();user.setUserName(UserNameTextField.getText());user.setPassWord(PassWordjTextField.getText());User users = findUser.getUser(user);if((users.getUserType() == 1 && !(userChoicejComboBox.getSelectedItem().equals("管理员")))){JOptionPane.showMessageDialog(this,"登录系统身份不符","信息对话框",JOptionPane.WARNING_MESSAGE);return;}if((users.getUserType() == 0) && !(userChoicejComboBox.getSelectedItem().equals("考生"))){JOptionPane.showMessageDialog(this,"登录系统身份不符","信息对话框",JOptionPane.WARNING_MESSAGE);return;}if((users.getId()!= 0 )&&(users.getUserType()==0)){int id = users.getId();java.io.File file = new java.io.File("save.txt");try {if(file.exists()){file.delete();}file.createNewFile();java.io.FileOutputStream out = new java.io.FileOutputStream(file);byte buy[] = (""+id).getBytes();out.write(buy);out.close();} catch (Exception e) {e.printStackTrace();}InsertUserDao insertUserDao = new InsertUserDao();insertUserDao.setUserHaveIn(users);StudentExam studentExam = new StudentExam();studentExam.setVisible(true);studentExam.setBounds(200, 200, 400, 300);studentExam.setTitle("考试系统");this.dispose();}if((users.getId()!=0)&&(users.getUserType()==1)){dispose();ControllerFrame controller = new ControllerFrame();controller.setVisible(true);controller.setBounds(100,100, 700, 500);}else if(users.getId() == 0){JOptionPane.showMessageDialog(this,"用户名或密码错误","信息对话框",JOptionPane.WARNING_MESSAGE);}}private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { UserNameTextField.setText("");PassWordjTextField.setText("");}public static void main(String[] args) {MyLand myLand = new MyLand();myLand.setVisible(true);}private javax.swing.JLabel choicejLabel;private javax.swing.JLabel choicejLabel1;private javax.swing.JLabel choicejLabel2;private javax.swing.JButton enterButton;private javax.swing.JButton resButtonjButton;private javax.swing.JComboBox userChoicejComboBox;private javax.swing.JPasswordField PassWordjTextField;private javax.swing.JTextField jTextField1;private javax.swing.JTextField UserNameTextField;private javax.swing.JTextField jTextField3;private MyJPanel jpanel;}1.3.2管理员模块设计添加用户模块设计主要程序如下:package com.Exam.controller;import javax.swing.JOptionPane;import com.Exam.bean.*;import com.Exam.dao.*;public class AddFrame extends javax.swing.JFrame {public AddFrame() {// 构造方法initComponents();// 调用初始化组件}@SuppressWarnings("unchecked")// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponentsprivate void initComponents() {jLabel1 = new javax.swing.JLabel();qTypejComboBox = new javax.swing.JComboBox();userNameLabel = new javax.swing.JLabel();jTextField1 = new javax.swing.JTextField();userPassWord = new javax.swing.JLabel();jPasswordField1 = new javax.swing.JPasswordField();okUserName = new javax.swing.JLabel();jPasswordField2 = new javax.swing.JPasswordField();addButton = new javax.swing.JButton();reset = new javax.swing.JButton();setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);addWindowListener(new java.awt.event.WindowAdapter() {// 为窗口设置监听 public void windowClosing(java.awt.event.WindowEvent evt) {formWindowClosing(evt);// 调用窗口监听的方法}});jLabel1.setText("用户类型:");qTypejComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "--请选择用户身份--", "考生", "管理员" }));userNameLabel.setText("用户姓名:");jTextField1.setText("");userPassWord.setText("用户密码:");jPasswordField1.setText("");okUserName.setText("确认密码:");jPasswordField2.setText("");addButton.setText("添加");addButton.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {addButtonActionPerformed(evt);}});reset.setText("重置");reset.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {resetActionPerformed(evt);}});javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(64, 64, 64).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al ignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(okUserName).addPreferredGap(ponentPlace ment.RELATED).addComponent(jPasswordField2, 0, 0, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup().addComponent(userPassWord).addPreferredGap(ponentPlace ment.RELATED).addComponent(jPasswordField1, 0, 0, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup().addComponent(userNameLabel).addPreferredGap(ponentPlacement.RELATED).addComponent(jTextField1,javax.swing.GroupLayout.DEFAULT_SIZE, 165, Short.MAX_VALUE)).addGroup(layout.createSequentialGroup().addComponent(jLabel1).addPreferredGap(ponentPlace ment.RELATED).addComponent(qTypejComboBox,javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE))).addGap(74, 74, 74)).addGroup(layout.createSequentialGroup().addGap(115, 115, 115).addComponent(addButton).addGap(31, 31, 31).addComponent(reset).addContainerGap(107, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(39, 39, 39).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al ignment.BASELINE).addComponent(jLabel1).addComponent(qTypejComboBox,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al ignment.BASELINE).addComponent(userNameLabel).addComponent(jTextField1,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al ignment.BASELINE).addComponent(userPassWord).addComponent(jPasswordField1,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(okUserName).addComponent(jPasswordField2,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(18, 18, 18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Al ignment.BASELINE).addComponent(reset).addComponent(addButton)).addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,Short.MAX_VALUE)));pack();}private void addButtonActionPerformed(java.awt.event.ActionEvent evt) { String strQtype = qTypejComboBox.getSelectedItem().toString();// 获得前台选择的下拉列表内容if(jTextField1.getText().equals("")){JOptionPane.showMessageDialog(this, "请输入用户姓名","信息对话框",JOptionPane.WARNING_MESSAGE);// this表示此窗口return;}if(!jPasswordField1.getText().equals(jPasswordField2.getText())){ JOptionPane.showMessageDialog(this,"两次输入的密码不一致", "信息对话框",JOptionPane.WARNING_MESSAGE);return;}User user = new User();if(strQtype.equals("--请选择用户身份--")){JOptionPane.showMessageDialog(this,"请选择用户身份","信息对话框",JOptionPane.WARNING_MESSAGE);return;}if(strQtype.equals("考生")){user.setUserType(0);}if(strQtype.equals("管理员")){user.setUserType(1);}MyFindUserDao findUser = new MyFindUserDao();java.util.List list = findUser.findUser();for(int i = 0;i<list.size();i++){User users = (User)list.get(i);if(users.getUserName().equals(jTextField1.getText())){System.out.println("USERNAME "+users.getUserName());JOptionPane.showMessageDialog(this,"该用户名已存在" ,"信息对话框",JOptionPane.WARNING_MESSAGE);return;}}int i = findUser.getUserID();user.setUserName(jTextField1.getText());MyMD5 myMD5 = new MyMD5();user.setId(i+1);System.out.println("list "+list.size()+1);user.setPassWord(myMD5.createPassWord(jPasswordField1.getText()));InsertUserDao insertUser = new InsertUserDao();insertUser.setUserInfoToDBbean(user);JOptionPane.showMessageDialog(this,"用户添加" ,"信息对话框",JOptionPane.WARNING_MESSAGE);}private void resetActionPerformed(java.awt.event.ActionEvent evt) {// 重置的监听方法jTextField1.setText("");jPasswordField1.setText("");jPasswordField2.setText("");qTypejComboBox.setSelectedIndex(0);}private void formWindowClosing(java.awt.event.WindowEvent evt) {// 关闭窗体的监听方法dispose();ControllerFrame controll = new ControllerFrame();controll.setVisible(true);}public static void main(String args[]) {java.awt.EventQueue.invokeLater(new Runnable() {public void run() {new AddFrame().setVisible(true);}});}// Variables declaration - do not modify//GEN-BEGIN:variablesprivate javax.swing.JButton addButton;private javax.swing.JComboBox qTypejComboBox;private javax.swing.JLabel jLabel1;private javax.swing.JPasswordField jPasswordField1;private javax.swing.JPasswordField jPasswordField2;private javax.swing.JTextField jTextField1;private javax.swing.JLabel okUserName;private javax.swing.JButton reset;private javax.swing.JLabel userNameLabel;private javax.swing.JLabel userPassWord;// End of variables declaration//GEN-END:variables}1.4 实验结果本程序实现了一个实用的考试管理系统,该系统可以通过两种身份进入系统,分别为管理员和考生身份,管理员登录系统后,可以添加、修改和删除考生和试题,学生登录系统后,直接进入考试界面,进行考试。

相关文档
最新文档