系统软件开发实践报告

系统软件开发实践报告
系统软件开发实践报告

计算机科学与技术学院

系统软件开发实践报告

姓名:王冬升

学号:08123228

专业:计算机科学与技术

班级:计科12-1班

指导教师:张博

2015年 4月

摘要

操作系统和编译原理是大学计算机专业的必修课程。在这些课程的教学教程中,容易偏重于理论的介绍,而忽视了实践环节。

本课程设计是在完成C++程序设计、数据结构、操作系统、编译技术教学后所进行的,全面综合训练学生的系统软件开发能力

关键字:编译系统、Flex、Bison、操作系统、启动、内存管理

目录

1 借助Flex进行词法分析 (2)

实验内容 (2)

实验要求 (2)

程序代码 (2)

实验结果 (4)

2 借助Flex/Bison进行语法分析 (5)

实验内容 (5)

实验要求 (5)

程序代码 (5)

实验步骤 (5)

实验结果 (7)

3 Flex/Bison综合实验 (7)

实验内容 (7)

计算器具体需要实现的功能 (7)

实验要求 (7)

3,4 程序代码 (8)

实验结果 (11)

4(操作系统实验)lib0:熟悉实验环境 (11)

实验目的 (11)

实验环境搭建 (11)

GCC编译练习 (12)

GDB调试练习 (12)

5(操作系统实验)lib1:启动操作系统 (13)

实验目的 (13)

实验内容 (14)

实验步骤 (14)

操作系统启动过程 (15)

实模式与保护模式 (16)

6(操作系统实验)lib2:物理内存管理 (16)

实验目的 (16)

实验内容 (16)

………………………………………………………………

7实验体会……………………………………………………………………8参考文献……………………………………………………………………

1借助Flex进行词法分析

实验内容

给定C语言的一个子集,具体内容如下:

1. 下面是语言的关键字:

else if switch for int float return void while 所有的关键字都是保留字,并且必须是小写。

2. 下面是专用符号:

+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */

3. 其他标记是标识符(ID)和数字(NU ),通过下列正则表达式定义:

ID = letter letter*

NUM = digit digit*

letter = a|..|z|A|..|Z

digit = 0|..|9

注:小写和大写字母是有区别的。

4. 空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM 关键字。

5. 注释用通常的C语言符号/* . . . */围起来。注释可以放在任何空白出现的位置(即

注释不能放在标记内)上,且可以超过一行。注释不能嵌套

实验要求

编写 LEX 源文件,实现C 语言子集的词法分析功能,最后上机调试。

要求编写一个测试程序,以给定的测试文件作为输入,输出运行结果到输出文件中

程序代码

源码:

%{

#include <>

#include <>

#include <>

int yywrap();

int lineno=1;

%}

delim [ \t]

ws {delim}+

letter [A-Za-z]

digit [0-9]

id {letter}+

number {digit}+

enter [ \n]

spchar ("{"|"}"|"["|"]"|"("|")"|";"|"="|","|"+"|"-"|"*"|"/"|"<"|"<="|">"|">="|"=="|" !=")

comment \/\*(\*[^/]|[^*])*\*\/

kwd (else|if|switch|for|int|float|return|void|while)

%%

{ws} {}

{comment} {}

{enter} {lineno++;}

{kwd} {fprintf(yyout,"%d行\tkeywod\t%s\n",lineno,yytext);}

{spchar} {fprintf(yyout,"%d行\tspchar\t%s\n",lineno,yytext);}

{id} {fprintf(yyout,"%d行\tidenti\t%s\n",lineno,yytext);}

{number} {fprintf(yyout,"%d行\tnumber\t%s\n",lineno,yytext);}.

%%

int yywrap() {return 1;}

int main(void)

{

char infilename[100];

printf("输入文件名:");

scanf("%s",infilename);

yyin = fopen(infilename,"r");

yyout = fopen("out","w");

yylex();

return 0;

}

测试程序:

#include

using namespace std;

int main() {

int a;

int d=123456;

float b=;

int e=9;

a=(1+2-1)*4/2;

if(a>b)cout<<"a>b"<

else cout<<"a<=b"<

cout<

cout<

cout<<"Welcome to c++"<< endl;

return 0;

}

实验结果

实验结果输出到.out文件中,截图示例:

2借助Flex/Bison进行语法分析

实验内容

利用附录提供的C语言文法的相关参考资料,利用Yacc/Bison编写一个C语言分析器。具体内容:

1)利用语法分析器生成工具Bison编写一个语法分析程序,与词法分析器结合能够

根据语言的上下文无关文法,识别输入的单词序列是否文法的句子

2)利用附录提供的C语言文法的相关参考资料,利用Yacc/Bison编写一个C语言分

析器。

实验要求

1)编写 Bison源文件,实现C 语言的语法分析功能,最后上机调试。

2)要求编写一个测试程序,以给定的测试文件作为输入,输出运行结果到输出文件中。程序代码

由于本实验的lex源文件和yacc源文件代码较长而且在“实验附录:C语言相关文法”文件夹中已经给出相关源码的链接,由于报告篇幅限制不再贴出源码

Test.测试文件源码:

void main()

{ int i = 0;int j = 0;

}

void t1()

{ int i = 0;

}

typedef unsigned int uint;

uint xx;

uint yy;

实验步骤

1、flex -l

bison -d (产生头文件和.c文件)

2、comment函数调用yyinput,编译会有链接错误,解决方法一,将中的yyinput函数定

义拷贝一份到, 重命名为my_yyinput,

或者将中的

#ifdef __cplusplus

static int yyinput()

#else

static int input()

#endif

改为static int yyinput()

上述问题出现的情形:词法分析器的后缀名为.c, 而不是.cpp

3、中如下程序段

/*----------.

| yyparse. |

`----------*/

#ifdef YYPARSE_PARAM

# if defined (__STDC__) || defined (__cplusplus)

int yyparse (void *YYPARSE_PARAM)

# else

int yyparse (YYPARSE_PARAM)

void *YYPARSE_PARAM;

# endif

#else /* ! YYPARSE_PARAM */

#if defined (__STDC__) || defined (__cplusplus)

int

yyparse (void)

#else

int

yyparse () ;

#endif

#endif

改为

int yyparse () 或者 int yyparse (void)

4、中,将下面语句注释

if ( ! yyin )

yyin = stdin;

5、解析之前,设置yyin为输入文件指针

extern FILE *yyin;

if(!(yyin = fopen(filename,"r"))) {

printf("the file not exist\n");

exit(0);

}

实验结果

实验结果输出到.out文件中,截图示例:

3 Flex/Bison综合实验

实验内容

使用flex和bison开发了一个具有全部功能的桌面计算器,能够支持变量,过程,循环和条件表达式,使它成为一个虽然短小但是具有现实意义的编译器。

重点学习抽象语法树的用法,它具有强大而简单的数据结构来表示分析结果

计算器具体需要实现的功能

变量命名;实现赋值功能;实现比较表达式(大于、小于、等于等等)实现if/then/else 和do/while的流程控制;用户可以自定义函数;简单的错误恢复机制

实验要求

编写 Flex/Bison源文件,实现C 语言的语法分析功能,最后上机调试。

要求编写一个测试程序:

1)首先自定义两个函数sq和avg,sq函数使用Newton方法来迭代计算平方根;avg

函数计算两个数值的平均值。

2)利用定义好的函数进行计算,得到计算结果并显示出来

程序代码

源码

%{

#include ""

%}

%option noyywrap

integer [0-9]+

dreal ([0-9]*"."[0-9]+)

ereal ([0-9]*"."[0-9]+[EedD][+-][0-9]+)

real {dreal}|{ereal}

nl \n

plus "+"

minus "-"

times "*"

divide "/"

lp "("

rp ")"

module "%"

power "^"

%%

[ \t] ; /*skip any blanks */

{integer} { sscanf(yytext, "%d", &;

return INTEGER;}

{real} { sscanf(yytext, "%lf", &;/*yylval = atof(yytext); it doesn't work under MSVSC*/

return REAL; }

{plus} { return PLUS;}

{minus} { return MINUS;}

{times} { return TIMES;}

{divide} { return DIVIDE;}

{module} { return MODULE;}

{power} { return POWER;}

{lp} { return LP;}

{rp} { return RP;}

{nl} { return NL;}

. { return yytext[0];}

源码

%{

#include <>

#include <>

%}

%union{ double real; /* real value */

int integer; /* integer value */}

%token REAL

%token INTEGER

%start lines

%token NUMBER NL

%token PLUS MINUS TIMES DIVIDE MODULE POWER LP RP

%type rexpr

%type iexpr

%left PLUS MINUS /*left associative */

%left TIMES DIVIDE MODULE /*left associative */

%left POWER

%left UNARYMINUS

%%

lines: /* nothing */

| lines line NL

| lines error NL

{ yyerror();yyerrok; };

line : iexpr

{printf("%d\n",$1);}

| rexpr

{printf("%lf\n",$1);} ;

iexpr: INTEGER

{ $$ = $1; }

| iexpr PLUS iexpr

{ $$ = $1 + $3;}

| iexpr MINUS iexpr

{ $$ = $1 - $3;}

| iexpr TIMES iexpr

{ $$ = $1 * $3;}

| iexpr DIVIDE iexpr

{ if($3)

$$ = $1 / $3;

else { $$ = $1;

printf (stderr, "%d.%d-%d.%d: division by zero", @, @,

@, @; }}

| iexpr MODULE iexpr

{ $$ = $1 % $3; }

| iexpr POWER iexpr

{ $$ = pow($1, $3);}

| MINUS iexpr %prec UNARYMINUS

{ $$ = - $2;}

| LP iexpr RP

{ $$ = $2;}

| LP iexpr error

{ $$ = $2; yyerror("missing ')'"); yyerrok;}

| PLUS iexpr %prec UNARYMINUS

{ $$ = $2;};

rexpr :REAL

{ $$ = $1; }

| rexpr PLUS rexpr

{ $$ = $1 + $3; }

| rexpr MINUS rexpr

{ $$ = $1 - $3; }

| rexpr TIMES rexpr

{ $$ = $1 * $3; }

| rexpr DIVIDE rexpr

{if ($3)$$ = $1 / $3;

else

{$$ = $1;

printf (stderr, "%d.%d-%d.%d: division by zero", @, @,

@, @;} }

| rexpr POWER rexpr

{ $$ = pow($1,$3); }

| LP rexpr RP

{ $$ = $2; }

| LP rexpr error

{ $$ = $2; yyerror("missing ')'"); yyerrok;}

| MINUS rexpr %prec UNARYMINUS

{ $$ = -$2; }

| PLUS rexpr %prec UNARYMINUS

{ $$ = $2;}

| iexpr PLUS rexpr

{ $$ = (double)$1 + $3;}

| iexpr MINUS rexpr

{ $$ = (double)$1 - $3;}

| iexpr TIMES rexpr

{ $$ = (double)$1 * $3;}

| iexpr DIVIDE rexpr

{ if($3) $$ = (double)$1 / $3;

else

{ $$ = $1;

printf (stderr, "%d.%d-%d.%d: division by zero", @, @,

@, @;}}

| iexpr POWER rexpr

{ $$ = pow((double)$1,$3); }

| rexpr PLUS iexpr

{ $$ = $1 + (double)$3;}

| rexpr MINUS iexpr

{ $$ = $1 - (double)$3;}

| rexpr TIMES iexpr

{ $$ = $1 * (double)$3;}

| rexpr DIVIDE iexpr

{ if($3)

$$ = $1 / (double)$3;

else

{ $$ = $1;

printf (stderr, "%d.%d-%d.%d: division by zero", @, @,

@, @;}}

| rexpr POWER iexpr

{ $$ = pow($1,(double)$3); };

%%

void main()

{

yyparse();}

int yyerror(char* msg)

{printf("Error: %s encountered \n", msg);}

实验结果

实验结果截图:

4(操作系统实验)lib0:熟悉实验环境实验目的

1)了解操作系统开发实验环境

2)熟悉命令行方式的编译、调试工程

3)掌握基于硬件模拟器的调试技术

4)熟悉C语言编程和指针的概念

5)了解X86汇编语言

实验环境搭建

1)在线实验--基于"实验楼"在线平台

2)Windows下基于MingW进行实验

3)Windows下基于VirtualBox or VMWare进行实验

4)在MAC OS下进行实验

5)手动在物理PC中安装环境

GCC编译练习

采用实验环境:在线实验--基于"实验楼"在线平台

gcc示例:

#include<>

int main(void)

{

printf("hello!\n");

return 0;

}

在实验环境中右键->从模板创建->空文件,将上述示例代码输入

1)保存为

打开命令行,输入以下命令:

2)编译:gcc -Wall -o hello

3)执行:./hello

操作及结果截图:

GDB调试练习

1)输入命令:gcc -o hello –g进行编译

2)输入命令:gdb进入调试

3)依次输入以下命令熟悉gdb调试

file hello:进入hello文件

run:运行hello

break 1:在第一行插入断点

next:单步执行下一行语句

clear 1:清除第一行的断点

list :显示hello文件的内容

quit:退出gdb调试

对应命令执行结果截图:

GDB的其它调试命令补充:

next :单步到程序源代码的下一行,不进入函数。

nexti :单步一条机器指令,不进入函数。

step :单步到下一个不同的源代码行(包括进入函数)。

stepi :单步一条机器指令

他们功能各不相同,区别在于单步的“跨度”上。

5(操作系统实验)lib1:启动操作系统

实验目的

操作系统是一个软件,也需要通过某种机制加载并运行它。在这里我们将通过另外一个更加简单的软件-bootloader来完成这些工作。为此,我们需要完成一个能够切换到x86的保护模式并显示字符的bootloader,为启动操作系统ucore做准备。lab1提供了一个非常小的bootloader和ucore OS,整个bootloader执行代码小于512个字节,这样才能放到硬盘的主引导扇区中。通过分析和实现这个bootloader和ucore OS,读者可以了解到:1)计算机原理

CPU的编址与寻址: 基于分段机制的内存管理

CPU的中断机制

外设:串口/并口/CGA,时钟,硬盘

2)Bootloader软件

编译运行bootloader的过程

调试bootloader的方法

PC启动bootloader的过程

ELF执行文件的格式和加载

外设访问:读硬盘,在CGA上显示字符串

3)ucore OS软件

编译运行ucore OS的过程

ucore OS的启动过程

调试ucore OS的方法

函数调用关系:在汇编级了解函数调用栈的结构和处理过程

中断管理:与软件相关的中断处理

外设管理:时钟

实验内容

lab1中包含一个bootloader和一个OS。这个bootloader可以切换到X86保护模式,能够读磁盘并加载ELF执行文件格式,并显示字符。而这lab1中的OS只是一个可以处理时钟中断和显示字符的幼儿园级别OS。

实验步骤

熟悉以下命令,掌握操作系统的启动过程:

1)make的生成过程)

2)make V=(gcc把c的源代码编译成.o的目标文件 ld会把这些目标文件呢会转换

成一个执行程序,这里面会转换成这个这个实际上是可以理解为是一个Bootloader一个执行程序,第一个是Bootloader 第二叫kernel)3)启动系统:make qemu

4)启动并调试:

make debug:进入debug模式

n(执行下一行代码)

p ph(显示当前值)

continue(继续执行)

ctrl+c(中断)

quit(推出

操作系统启动过程

当X86一开始加电时候,启动是实模式(实地址寻址模式)(早期的为了ss向下兼容以前的80X86一开始启动是16位的实模式)

第一条地址:

段地址寄存器CSCS和EIP结合在一起来决定它启动的第一条地址:

按实模式的寻址方式:cs(base)基址+EIP->bios(指向bios)

这个bios固件会去加载磁盘或者硬盘的第一个主引导扇区(即执行0号扇区 lab1中的

bootloader)它完成来对我们说的这个操作系统 uCore的进一步加载

Bootloader的工作:

1)要从实模式切换到保护模式,就是从实模式的16位的寻址空间切换到了32位的寻址空间寻址空间:从1M(物理地址=左移4位的段地址+偏移地址)变为4G,段机制可以正常工作了。对系统寄存器CRO(或者叫控制寄存器)把它的第0号bit置成1那么就意味着现在的系统我们的CPU会进入到保护模式

2)就是读取kernel 就是uCore的代码,CS EIP的值指向我们操作系统内核所在内存中的起始点,之后就相当于是把控制权交给了uCore OS去执行

实模式与保护模式

(1)实模式

在bootloader接手BIOS的工作后,当前的PC系统处于实模式(16位模式)运行状态,在这种状态下软件可访问的物理内存空间不能超过1MB,且无法发挥Intel 80386以上级别的32位CPU的4GB内存管理能力。

实模式将整个物理内存看成分段的区域,程序代码和数据位于不同区域,操作系统和用户程序并没有区别对待,而且每一个指针都是指向实际的物理地址。这样,用户程序的一个指针如果指向了操作系统区域或其他用户程序区域,并修改了内容,那么其后果就很可能是灾难性的。通过修改A20地址线可以完成从实模式到保护模式的转换(2) 保护模式

只有在保护模式下,80386的全部32根地址线有效,可寻址高达4G字节的线性地址空间和物理地址空间,可访问64TB(有2^14个段,每个段最大空间为2^32字节)的逻辑地址空间,可采用分段存储管理机制和分页存储管理机制。这不仅为存储共享和保护提供了硬件支持,而且为实现虚拟存储提供了硬件支持。通过提供4个特权级和完善的特权检查机制,既能实现资源共享又能保证代码数据的安全及任务的隔离。

6(操作系统实验)lib2:物理内存管理

实验目的

理解基于段页式内存地址的转换机制

理解页表的建立和使用方法

理解物理内存的管理方法

实验内容

本次实验包含三个部分。首先了解如何发现系统中的物理内存;然后了解如何建立对物理内存的初步管理,即了解连续物理内存管理;最后了解页表相关的操作,即如何建立页表来实现虚拟内存到物理内存之间的映射,对段页式内存管理机制有一个比较全面的了解。本实验里面实现的内存管理还是非常基本的,并没有涉及到对实际机器的优化,比如针对 cache 的优化等

7实验体会

在老师的指导下和与同学之间互相讨论学习,经过六周的时间终于完成了有关系统软件开发实践课程的学习,感觉无论从专业知识还是个人能力上都收获很多。

首先是有关本实验课程六个小实验的收获与总结,第一部分编译原理实验中第一个flex词法分析器的实验相对比较简单,完成的相对顺利,第二个bison语法分析器实验比较难,虽然实验指导中已经给出了源码链接,第三个编译综合实验计算器也只完成了部分基础运算符的功能,有关自定义函数的功能部分没有完成;第二部分操作系统实验因为有详细的实验指导书和相关的视频,通过视频课程的学习和参考实验指导书完成了基本的实验要求,但是对操作系统的深入学习和了解还有待进一步的学习,对于如何写出一个小型的操作系统的能力还是相差甚远的,仅仅是对操作系统理论课程上讲的知识有了进一步的相对实际的理解和认识。

然后是对以后的学习上的收获与经验,理论知识的学习要与实践性的课程学习相互结合,在实践课中巩固和进一步理解理论知识,只有这样才能真正做到学以致用,才不会遗忘的更快。特别是我们理工科的课程,学完之后不能停留在书本上,毕竟转化为自己实际的编程能力才是对将来就业和工作或者继续深入学习最好的帮助。同时我们要学会利用网络学习,不能仅仅局限于老师和课堂,利用网络学习的新的学习方式是我们今后主要的学习方式和最好的自学方式,要学会自己想法去解决问题总结知识而不是等待知识的灌输。

8 参考文献

【1】Chen 实验指导书.清华大学出版社

软件开发实习报告doc

软件开发实习报告 通过这次在清华it的实习,学到了很多东西。也了解到了软件开发的真正价值。这次的实践让我真切体会到了我们前面所学知识的用处所在。以前总认为所学的知识只是理论上的知识,根本就没有任何作用,但通过这次实习,让我学有所用。而且学到了很多在学校学不到的东西,受益匪浅。 在这个信息时代,信息都是电子化。很多方面根本不在是一些手把手的管理,而是在电脑面前操作一下即可,让我们真正享受到高科技的待遇。在软件开发领域,做一个项目的出发点是提高办事效率。而在项目制作的过程中我们要使一个软件简洁实用,人性化,快捷方便。 这次实习的主要任务是图书管理系统的开发。项目运行的平台是windowsxp,运用系统主要是microsoft visual studioxx,microsoft sql server xx,运用的知识主要有我们学习过的知识数据库技术,以及实习过程中所提及的知识。在软件开发果过程中首先要了解三层结构的的含义及其设计模式思想部署企业级数据库业务系统开发。三层结构是一种成熟、简单并得到普遍应用的应用程序架构,它将应用程序结构划分三层独立的包,包括用户表示层、业务逻辑层、数据访问层。其中将实现人机界面的所有表单和组件放在表示层,将所有业务规则和逻辑的实现封装在负责业务逻辑组

件中,将所有和数据库的交互封装在数据访问组件中。 三层结构示意图 三层结构是一种严格分层方法,即数据访问层只能被业务逻辑层访问,业务逻辑层只能被表示层访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在表示层。 下面介绍图书管理系统开发技术 一系统的功能设计 首先对系统进行需求分析,我们必须要知道要做一个系统“用来干什么”,这需要在对用户需求进行充分调研的基础上,深入理解并描述出软件的功能、性能、接口等方面的需求,可以使用uml建模作为需求分析和系统设计的有效方法。图(1)给出了本图书管理系统的功能结构图,其工作流程为:普通用户直接登录主页面,只能浏览、快速查询图书、注册新用户、修改自己的密码以及查看图书的详情,管理员用户除了可以完成普通用户的操作外,还可以进入图书管理模块进行图书添加、修改和删除的操作。 1、系统的功能特点 (1)操作简单、界面友好:插入表格的页面布局,使得图书的录入工作更简便;许多选项包括图书类别、来源等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也

软件开发实验报告doc

软件开发实验报告 篇一:软件开发实验报告 本科实验报告 课程名称:软件开发环境与工具实验报告 实验项目:CASE工具PowerDesigner的使用 实验地点:专业班级: 指导教师: XX年10月22日 本科实验报告 课程名称:软件开发环境与工具实验报告 实验项目:搭建Visual Studio开发环境,设计实验地点:致远楼B303指导教师:崔秀娟XX年9月28日 篇二:软件开发平台实验报告 课程设计报告 课程名称: 软件开发平台与工具任课教师: 姓名: 学号: 1. 引言 1.1. 课程设计项目 1.2. 背景简介从编程之初,便免不了和方法,类,接口之类的东西打交道。久而久之,自然会对此进行总结,

由此而产生了开发平台。而今中国的程序员之中,有很大一部分都是编一些企业MIS、政府MIS之类的程序。其主要工作就是对数据进行一下增删改查的操作,对MIS系统做一些基础的管理而已。软件开发平台有两种平台模式:一种是传统的C/S架构模式,一种是现在流行的B/S架构模式。B/S 架构模式是随着互联网的流行,自然又要求以互联网为基础,把这些都网络化,以实现网络资源共享,而不是传统的单机模式。这便激发了软件开发者的创造力,形成了软件开发平台的B/S架构模式(web开发平台)。对于web开发平台,我的个人理解是: 1.以web 2.0为基础,基于互联网的B/S架构的软件。它本身也是一个软件,只不过不是最终的软件产品,而是用于二次开发的软件。 2.用于实现各类业务系统,如CRM、MIS、ERP、HIS、OA 等等的开发。web开发平台本身就是一个二次开发平台,他不同于诸如eclipse等这样的开发工具,需要写大量的代码来完成各个业务模块,二次开发平台只需要设计好自己的数据结构,进行一些简单的配置、拖拉等操作就可以完成业务系统的开发。 3.能够快速的实现各种报表包括复杂的图表报表的设计制作,传统的编码式开发需要自己去编写想要的各种报表,而运用开发平台就简单多了,可以很轻松的配置出各种报表。

软件开发述职报告

软件开发述职报告 篇一:软件工程师年度述职报告 XX 年度员工述职报告 人魅力所在,所以注重自己的服装礼仪,言谈举止还是很重要的。做事,虽然我们和客户直接对 话,我们就像客户与公司的传话筒,一件事做了没效果和一件事没做是两个概念。不会做不代表 我们不做,态度是第一,这会给客户留下很好的印象。 第二:作为软件技术实施人员,技术不是万能的,没有技术也是万万不能的。作为软件工程 师,及时有效的为客户解答各种问题,需要的是强硬的业务能力和技术能力。光有技术,不会沟 通,只会给客户留下刻板的印象,光有业务,没有技术,只会影响问题解决的时效性。所以提升 自己的业务能力和技术能力是很有必要性的。 第三:工作要脚踏实地、一步一步,切不可太过心急。作为实施人员,可能同一时间段需要 处理的问题很多。这个时候就需要分轻重缓急,把事情分等级处理,一件一件处理,不要这件事 情处理一下,再处理一下另外一件事,把自己都弄乱了。还搞得自己身心疲惫。需要按照计划, 逐步有效的完成。

第四:学会从整体看问题。因为我们的平台系统是贯穿财政这个业务流程。所以在处理问题 需要从整体把握,对于中间环节操作,需要考虑到源头和末节,切不可只关注当前环节。 第五:处理问题一定要以公司利益为重,坚持立场、把握好原则。虽然这点有时会和客户的 利益起冲突,这时就需要委婉的拒绝。 第六:与同事的交流要及时要充分,尤其是项目组内成员。其实现在的晨会对我们加强内部 沟通,解决问题提供了场所和时间。 第七:学会吃亏。人们都说吃亏是福,但是作为吃亏的人有时想想自己挺傻的。虽然去年6 月份从淮南市调回老家六安市。本以为自己离家近了,可以多点时间多陪陪家人和孩子,但是由 于工作的特殊性,还是需要出差支持等。总感觉为什么片区内只有我一个跑来跑去,没有固定实 施地点。但是仔细想想,作为片区的老员工,需要为片区做表率作用,第二,片区内每个人的工 作性质都不一样,唯一能调动的人员也就是我自己。多跑跑,多学习学习未尝不是一件好事。就 像那首歌唱的那样,苦水喝过,蜜饯也会给。 去年自己也取得了进步,对于新模块如电子化、单位核

软件开发实习自我鉴定三篇

软件开发实习自我鉴定三篇 时间过的真快,在这过去一个20多天时间里,我在浙江绍兴肯美信息技术有限公司实习从事软件开发的工作。浙江绍兴肯美信息技术有限公司主要产品服务有计算机软件硬件产品的研制开发,销售、安装计算机集成,网络工程设计、安装、服务,计算机技术咨询、服务,销售:电子产品、机电产品、通信设备、办公自动化设备及用品。 在公司实习的这段时间,我主要和其他的实习生一起负责熟悉公司刚开发的剧毒化学品管理系统,该系统在今年暑假的时候由于我也参加了系统的开发,所以对该系统还是比较了解,熟悉起来很快,公司要求我们根据系统的功能写出用户手册,并让我们仔细阅读软件代码,掌握软件开发的架构和技术,熟悉软件开发业务的一般流程,以便未将来的项目开发鉴定基础。 在这短短的20多天时间里,在用两天的时间熟悉了该系统的功能模块和业务流程之后,我运用软件工程所学的知识,和同事用了两天的时间很顺利的编写出了系统的用户手册。使我对以后编写用户手册和技术类文档有很大的帮助。在次,通过仔细阅读后台代码和整个系统的架构,使我对用三层架构与设计模式思想部署企业级数据库业务系统开发有了一定的了解,典型的三层结构分为表示层,业务层,和

数据访问层,又根据我自己的理解,我对此做了更详细的分层,界面外观层、界面规则层、业务接口层、业务逻辑层、实体层、数据访问层、数据存储层共七层,三层架构它主要是为程序员为了实现部署、开发、维护企业级数据库系统而服务的。如果我们在中间层实现了对表示层和数据库层的完全脱离,其部署、开发、维护系统的费用和时间至少降低到原来的一半,甚至更多。 在这三周的时间,在同事和项目经理的帮助之下,成功完成了本次的生产实习的任务。 以下是我这些天的工作总结: 1.在职业道德方面,敬业爱岗,具有强烈的责任感和事业心,和积极主动的学习专业知识,工作态度端正,认真负责。 2. 在专业知识,工作能力方面,在这3周的实习时间里,我努力的学习软件开发的技术和架构知识,阅读大量资料,对软件开发技术有了一定的了解,可以独立开发小型的管理系统等软件,工作能力也有了很大的提高,使自己能够在激烈的竞争中保持自己的优势。 3.工作态度和勤奋敬业方面,热爱自己的本职工作,能够正确认真的对待没一项工作,工作投入,热心为大家服务,保证按时出勤,保证工作能够按时完成。 4.工作质量成绩,效益和贡献方面,在开展工作前做好

电子科技大学软件开发环境实验报告

电子科技大学软件开发 环境实验报告 Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】

本实验总体目的是,通过使用huffman编码算法从而实现文件的压缩和解压,以达到使学生掌握并灵活运用分割函数的三项原则。 五、实验内容: 本实验要求实现一个exe程序。这个程序按照huffman编码方式,同时包含了压缩功能和解压功能。用户通过以下命令进行压缩: C:\> –c uncompress_filename compress_filename 上述命令中,是程序名,-c表示要进行压缩。uncompress_filename是要压缩的文件名,可以包含路径信息,而compress_filename是压缩之后的文件名,同样可以包含路径信息。用户可以通过如下命令进行解压: C:\> –u compress_filename uncompress_filename 上述命令中,-u表示要执行解压命令。compress_filename是要解压的文件名,可以包含路径信息;uncompress_filename就是解压后所得到的文件,同样可以包含路径信息。 提示:在实现程序时,需要考虑如何存储huffman树或者编码表或者词频表等等。 本实验要求实现两个版本的程序,一是C语言版本的,二是C++版本的。对这两个版本的要求如下: 对于每一个版本的程序,需要在实验报告中给出函数调用关系图、流程处理关系 图以及它们的文字说明等内容; 对于每一个版本的程序,都需要在实验报告中给出源代码。为了便于查重,代码 中注释的比例要占到总行数的20%; C++版本的程序,需要给出类关系图。 实验报告的评分标准,包括以下几个方面: 实验报告是否规范

软件项目开发可行性分析报告范文

软件开发与设计可行性研究报告 1、引言 编写目的 经过对GIS众创空间微电商平台系统项目进行详细调查研究,初步拟定系统实 现报告,明确开发风险及其所带来的经济效益,对软件开发中将要面临的问题及其 解决方案进行可行性分析。本报告经审核后,交由软件项目经理审查。 项目背景 项目名称:银行储蓄系统 用户:银行 说明:现在的银行储蓄系统工作效率低,越来越不能满足广大储户的需要。银行与客户都迫切希望能更方便更省时就可以办理储蓄业务。现代计算机网络的高速发展使越来越多的人更喜欢网上购物、不出门即可交纳各种费用。在这样的背景下,很明显现行的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的银行储蓄系统。 参考资料 《软件工程——原理,方法与应用》吴钦藩编着人民交通出版社出版 《软件工程导论(第四版)》张海藩编着清华大学出版社出版 《软件工程》任胜兵、邢琳编着北京邮电大学出版社 2、可行性研究的前提 要求 功能要求 此系统所要完成的主要功能模块有两部分:取款系统与存款系统。 存款时,储户填写存款单,然后交给银行业务人员键入系统,同时系统还要记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、利率等信息,完成后由系统打印存款凭单给储户。 而取款时,储户填写取款单交给业务人员,业务人员把取款金额输入系统并要求储户输入密码以确认身份,核对密码正确无误后系统计算利息并印出利息清单给储户。 性能要求 为了满足储户的要求,系统必须要有高的运作速度,储户填写的表单输入到系统,系统必须能快速及时作出响应,迅速处理各项数据、信息,显示出所有必需信息并打印出各项清单,所以要求很高的信息量速度和大的主存容量;由于要存贮大量的数据和信息,也还要有足够大的磁盘容量;安全性也是系统最重要的性能需求之一,银行计算机储蓄系统必须有可靠的安全措施,以保证储户的存储安全。 接口要求 业务员键入储户的资料要全部一直显示在屏幕;储户从按键口键入密码到系统以核对;计算机与打印机有高速传输的连接接口,最后以纸张的形式打印出清单给储户。输入要求

软件开发过程认识实习报告

软件开发过程认识实习报告(卓越工程) 一、认识实习的意义和目的 时间如白驹过隙,一转眼大一上学期已经过去了,虽然参加工作对于大一新身似乎很遥远,但光阴荏苒,如果我们不珍惜时间,毕业后就只能提出“时间都去哪儿了?”的疑问。学校为增强学生的课外实践能力和对软件开发过程的认知,在大一下学期开展了为期一周的实习,实习地点为863中部软件园,位于郑州市高新区翠竹街6号。 IT行业的发展往往需要大量人才的聚集,河南国家863中部软件园是郑州高新区规划的80 万㎡国家863中部软件基地的核心部分,自2000年起我国软件业持续高速发展,2000-2012年我国软件产业收入增长44倍,近年来郑州市软件行业经济增长迅猛,863中部园区周边有多所高校环绕,如郑州大学,信息工程大学,河南工业大学、中原工学院、郑州轻工业学院。这些大学能为郑州软件行业输送大量IT人才,而河南地处交通要道,软件信息行业能与交通行业结合,随着互联网+的时代到来,河南必定展现一面繁华景象。 我学的是计算机类,希望通过本次实习,对软件行业能有实质性的了解。同时,在实习过程中注意培养自己的观察能力,理解能力,动手能力以及思维能力等。虽然专业知识还未学很多,希望通过本次实习能对接下来的专业学习能有指导性的作用,培养和提高理论学习与实际联系的能力,对将来自己所从事的行业有所概念。 二、认识实习再认识 国家863 中部软件园是郑州高新区规划的80 万㎡国家863中部软件基地的核心部分,园区占地面积 133 亩,由多层、小高层、聚集了以河南卓奇计算机科技有限公司为首的众多高新技术企业,为河南企业发展起到了重要作用。在本次实习中学校安排依次参观认识了捷安高科,精华教育,腾讯大豫网,河南省863软件孵化器,正信科技,约克动漫,新星教育,并安排了多次讲座。我很感谢学校组织的这次难得的软件认识实习,让我有机会更加深入地了解软件行业的现状与前景,接触了行业最前沿的技术与产品。同时,我也由衷地感谢

系统软件开发实践报告

计算机科学与技术学院 系统软件开发实践报告 姓名:王冬升 学号:08123228 专业:计算机科学与技术 班级:计科12-1班 指导教师:张博 2015年 4月

摘要 操作系统和编译原理是大学计算机专业的必修课程。在这些课程的教学教程中,容易偏重于理论的介绍,而忽视了实践环节。 本课程设计是在完成C++程序设计、数据结构、操作系统、编译技术教学后所进行的,全面综合训练学生的系统软件开发能力 关键字:编译系统、Flex、Bison、操作系统、启动、内存管理

目录 1 借助Flex进行词法分析 (2) 1.1实验内容 (2) 1.2 实验要求 (2) 1.3 程序代码 (2) 1.4 实验结果 (4) 2 借助Flex/Bison进行语法分析 (5) 2.1 实验内容 (5) 2.2 实验要求 (5) 2.3 程序代码 (5) 2.4 实验步骤 (5) 2.5 实验结果 (7) 3 Flex/Bison综合实验 (7) 3.1 实验内容 (7) 3.2 计算器具体需要实现的功能 (7) 3.3 实验要求 (7) 3,4 程序代码 (8) 3.5 实验结果 (11) 4(操作系统实验)lib0:熟悉实验环境 (11) 4.1 实验目的 (11) 4.2 实验环境搭建 (11) 4.3 GCC编译练习 (12) 4.4 GDB调试练习 (12) 5(操作系统实验)lib1:启动操作系统 (13) 5.1 实验目的 (13) 5.2 实验内容 (14) 5.3 实验步骤 (14) 5.4 操作系统启动过程 (15) 5.5 实模式与保护模式 (16) 6(操作系统实验)lib2:物理内存管理 (16) 6.1 实验目的 (16) 6.2 实验内容 (16) 6.3 ……………………………………………………………… 7实验体会…………………………………………………………………… 8参考文献……………………………………………………………………

软件开发工具与环境实验报告.

南昌大学实践报告 学生姓名:谢某某学号:0149001506109 专业班级:软件工程2006 实践类型:□验证□综合□设计□创新实践日期:2010-11-30 实践成绩: (以下主要内容由学生完成) 一、实验项目名称 利用VC++设计一个简单的电话薄管理程序 二、实验目的 综合运用面向对象程序设计的基础知识,设计一个小型的应用程序,提高解决问题的能力。 三、实验基本内容 设计一个电话簿管理程序,要求: 〔1〕具有添加、删除、显示、修改和查询联系人电话号码的功能。 〔2〕联系人的信息保存到文件中。 〔3〕可以实现为控制台程序或图形界面程序。 〔4〕按学院实验报告要求格式书写实验报告 四、主要仪器设备及耗材 PC一台,Microsoft Visual C++ 6.0 开发环境 五、实验步骤 该电话薄的实现代码如下: #include #include #include #include #include using namespace std; class book { public:

book();//默认构造函数 char inter_face();//首页 void add_person();//添加 void del_person();//删除 void show_all();//显示 void alter();//修改 void select();//查询 void save_new();//保存 private: string name;//姓名 string number;//电话号码 }; book::book() { name = "\0"; number = "\0"; } //首页 char book::inter_face() { system("cls"); cout <>choose; fflush(stdin); return choose; } //添加联系人 void book::add_person() { cout <>name; fflush(stdin); cout <<"电话 : "; cin >>number; fflush(stdin); save_new(); cout <

移动应用开发-实验报告

实验一Android开发基础 实验时间:2018.3.16 实验地点:X501 一、实验目的 1. 掌握Android开发环境的搭建; 2. 了解Android SDK的安装、配置、使用; 3. 熟悉开发工具Android Studio的使用; 4. 了解创建项目并熟悉文件目录结构; 二、实验学时 2学时/次,共2学时 三、实验环境 Android Studio;JDK1.7;PC机 四、实验容和要求 1.Android Studio安装 (1) Android Studio的下载与安装 前提准备工作:安装JDK 并配置JDK 环境变量。 请使用传统的JAVA_HOME 环境变量名称。很多人会被提醒JVM 或者JDK 查找失败,几乎都是因为JDK 版本或者没有使用JAVA_HOME 这个环境变量名称的原因。 ①Android Studio可以从中文社区进行下载,网址为https://www.360docs.net/doc/9e13481500.html,/。在浏览器中打开该网址,如图1-1所示。 图1-1 Android Studio官方 ②选择合适的平台,进行下载,如图1-2所示。

图1-2 Java platform(JDK) ③安装之前,要确定JDK版本必须是1.7或以上,否则安装之后会报错。双击Android Studio的安装文件,按照提示一步步安装,具体参考教材。不出意外的话,看到图1-3所示的界面,说明Android Studio已经安装成功了。 图1-3 Android Studio已经安装成功 2. 配置Android Studio 安装Android Studio完成之后,运行Android Studio。每一次安装,都会显示图1-4所示的这个界面,用以选择导入Android Studio的配置文件。 第一个选项:使用以前版本的配置文件夹。 第二个选项:导入某一个目录下的配置文件夹。 第三个选项:不导入配置文件夹。 如果你以前使用过Android Studio,可以选择到以前的版本。如果你是第一次使用,可以选择第三项。 图1-4 导入Android Studio配置文件

软件开发部开发实习生毕业实习报告

软件开发部开发实习生毕业实习报告 软件开发部开发实习生毕业实习报告 实习单位(全称)xxxx时代教育科技有限公司邮编xx实习单位 地址xx省xx市xx区xx西路1号xx科技园电话xx实习单位指导 教师姓名卢健邮箱xx联系电话xx实习岗位软件开发部.net开发实 习生实习内容本人在xx教育公司为期3个月的实习内容:xx教育,是国内物联网领军企业——xx科技集团下属子公司,作为信息产业 实用型人才培养解决方案提供商,致力于面向全国高校、职业院校 进行产、学、研校企深度合作,是xx科技集团产业报国、回馈教育 的直接执行者。xx教育,依托xx科技集团深厚的物联网产业背景,与院校合作成立校企联盟,形成全新的物联网教育体系和科研体系。在公司我的实习工作是.Net开发,主要负责公司核心产品的代码开发、参与系统的需求调研和需求分析、做好项目相关代码以及文档 的整理归档工作。参与了公司旧项目的维护和更新、数据库和接口 的升级。在实习期内,我接手了公司的一个项目(智能冷链物流演示 系统);包括:1、对旧项目的界面进行重构,把原本的UI换成新设 计的UI;2、对项目数据库和接口的升级与整理,包括:数据库的 设计更新和系统服务端接口内容的增加和修改;3、增加冷链设备在 项目中的数据交互以及界面温湿度数值的展现;4、增加RFID读卡 器扫描物流包裹数量的变化修改价格标签的数值;05、增加PC端收 货管理的界面及功能,包括:扫描包裹的二维码和RFID标签进行入 库操作和查询物流快递单号显示物流的状态;6、在原有的快递柜软 件中,增加与冷链演示系统的通信交互,将快递柜存放包裹的密码 和状态发送到服务端,再将其转交给客户端; 在接手这个项目后,我非常认真的投入到这个项目中。刚开始设备还没有到位,所以前三天我在经理的帮助下熟悉了项目源代码和 项目需求。后三天完成了数据库和接口的升级。主要体现在增加提 供给客户端的接口内容;后面一周我尝试完成通过RFID读卡器实现 对价格标签的数值修改,但是由于既要符合包裹数量的变化,改动

软件开发实验报告

本科实验报告 课程名称:CASE工具PowerDesiner的使用 实验项目:CASE工具PowerDesiner的使用 实验地点:虎峪区致远楼B301号 专业班级:学号:201100 学生姓名: 指导教师: 2013年10 月15 日

一、实验目的和要求 安装PowerDesiner,并了解掌握PowerDesiner的主要功能和使用方法。 二、实验内容和原理 1.安装PowerDesiner。 2.了解CDM的主要设计元素和设计过程。 3.熟悉模型转换工具的使用。 4.熟悉PDM的主要设计元素和设计过程。 5.了解设计报告的生成方法。 【实验要求】 设计学生学籍管理系统CDM、PDM。要求PDM能方便实现以下功能: 1.学生管理 (1)录入班级、院、专业:可以添加、删除、插入学院、专业、年级信 息 (2)录入学生信息:对学号、姓名、院、专业、性别、年级、班级、出生 年月等内容。可以添加、修改、删除等。 (3)查询:可设置查询条件,对学生信息进行查询。 (4)换宿舍:可进行换房,有原房号,新房号,姓名等项。 2、选课管理 (1)录入教师:对教师姓名,性别,出生日期和参加工作日期进行录入可以添加修改。 (2)录入课程:对课程编号,课程名称,课程介绍,学分,总学时,先修课程进行信息的录入修改和删除。 三、主要仪器设备 PC机+PowerDesiner 三、四、操作方法与实验步骤 1.运行PowerDesiner安装文件。 2.按照安装向导,安装PowerDesiner。 3.安装成功之后,进入PowerDesiner的CDM设计界面,了解CDM的主要设计元素和设计过程。

-软件开发可行性分析报告

可行性分析报告 版本号1.0 修订历史

目录 1. 引言 (4) 1.1项目背景 (4) 1.2术语定义 (4) 1.3参考资料 (4) 2. 市场可行性 (4) 2.1市场前景 (4) 2.2产品定位 (4) 3. 技术可行性 (5) 3.1功能说明 (5) 3.2技术分析 (5) 4. 资源可行性 (5) 4.1人力资源 (5) 4.2软件资源 (5) 4.3设备资源 (5) 4.4时间资源 (6) 5. 经济可行性 (6) 5.1投资规划 (6) 5.1.1 基础投资 (6) 5.1.2 直接投资 (6) 5.2收益分析 (6) 5.2.1 定量收益 (6) 5.2.2 非定量收益 (6) 5.3投资收益率 (6) 5.4投资回收期 (7) 6. 社会可行性 (7) 6.1法律可行性 (7) 6.2政策可行性 (7) 6.3使用可行性 (7) 7. 评价过程 (7) 7.1评价标准 (7) 7.2评价结果 (7) 8. 结论 (8)

1.引言 1.1项目背景 随着人民生活水平的提高,以及我国休假制度的完善,人们拥有了更长更多的假期,而假期外出旅游成为了越来越多的人们度过假期的第一选择。在这样的背景前提下,各大旅游景区更是成为了热门中的热门,这也造成了在旅游高峰期部分旅游景点人流过大导致拥堵,从而影响到游客旅游体验的问题。不过从根本上来说,并不主要是因为游客数量的过大,往往是因为景区的服务不够全面细致,管理不够科学,效率不高所造成的,例如景区内部的地标不够详细或者是不够完整都可能会影响的游客游玩时的顺畅性。另一方面来说,游客人数的急剧增长所带来的安全问题,如游客的人生安全,景区的设施安全等也日益明显突出起来,系统化、电子化、网络化、智能化的景区管理系统也成为了日益迫切的需求,本项目就是在这样的背景下提出的,旨在开发出一个能够方便游客、便于景区管理的景区导览系统。1.2术语定义 Java:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 Android:Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。该平台由操作系统、中间件、用户界面和应用软件组成。 Wifi:Wi-Fi是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接的技术。 1.3参考资料 2.1市场前景 客户端的开发是基于谷歌android 操作系统平台的,该操作系统是目前最火热的几大主流操作系统之一,具有巨大的市场和发展潜力,有望在未来几年成为移动电子设备上占有量最大的操作系统,因此本软件选择在之上进行开发,另外, 编程语言选择Java,因此具有较好的可移植性。 2.2产品定位 该系统将要完成的是旅游景区的导览功能。这里提到的导览,是指景区向游客提供的一种服务,这种服务的目的是让游客能够方便的获取景区的各种介绍信息以及景区的实时状态,例如景区内各个分景点的人流是否拥挤、分景点的游览车的数量等等,还要提供相应的

软件开发实习报告范文3篇

软件开发实习报告范文3篇实习是我们走出校门,踏入社会的第一步,这个阶段是我们从学校到社会的大环境的转变,是从学生步入职场的重要过渡,是人生的重大转折点。下面搜集了软件开发实习报告范文,欢迎阅读! 软件开发实习报告范文一今年9月份,由于学校安排我们这个计算机系的到xx中兴软件公司去实习,这是我人生中的第一份实习工作,也是第一次走进软件公司的大门。由于我是应届毕业生,对软件程序开发不是很熟悉,公司给我们三个方向,第一,学c、c++等语言开发;第二,学3g络通讯技术;第三,学习最近比较火的手机操作系统android(安卓)应用程序开发。当时,中兴软件公司的部门经理和我们大概讲了下三个方面的发展方向。 同学们都互相讨论着,到底是朝着哪方面去发展。那时候的我,在互联上听说过安卓,也对那方面很有兴趣,就报了安卓应用程序开发班。我们这个班有60多号人,很多人也是对这个东西好奇就报了,第一次上安卓课时大家都很积极,老师大概讲了下安卓的发展及前景,大家听的很出神,幻想着对从事安卓开发前景一片光明。之后老师就讲了写实习期间的具体安排,要去我们大家每组要做出一个本地电子相册,6人每组。

当时看着老师给出的那个本地电子相册应用程序的界面以为很难做出来,之后老师一步一步的示范,我们也一步一步的做出来了,老师很负责,我们学的也很认真。在老师的热心指导下,我对安卓应用程序的开发有了基本的了解,并积极参与相关工作,注意把书本上学到的java理论知识以及安卓的相关知识对照实际工作,用理论知识加深对实际工作的认识,用实践验证大学所学确实有用。跟公司同事一样上下班,和小组的同事一起完成相关工作;又以学生身份虚心学习,努力汲取实践知识。 我心里明白我要以良好的工作态度以及较强的工作能力和勤奋好学来适应公司的工作,完成公司的任务。简短的实习生活,既紧张,又新奇,收获也很多。通过实习,使我对安卓应用程序开发工作以及发展前景有了深层次的感性与理性的认识。 在小组我主要的工作任务是做软件界面,做软件的ui,也对功能的实现有一定的了解。我在实习期间做ui花了很多的时间走了很多弯路,给同事的工作带来了很多麻烦,但是我们老师很鼓励我,让我继续认真的把事情做好,我很受鼓舞,同时也很努力的去把事情做好。 实习生活,感触是很深的,提高的方面很多,但对我来说最主要的是工作能力的进步。毕业实习主要的目的就是提

软件开发实验报告

本科实验报告 课程名称:软件开发环境与工具实验报告 实验项目:CASE工具PowerDesigner的使用 实验地点: 致远楼B501 专业班级: 指导教师: 2013年10月22日

2、转换物理模型,学生宿舍管理的PDM如下图:

本科实验报告 课程名称:软件开发环境与工具实验报告 实验项目:搭建Visual Studio开发环境,设计 Windows控制台应用程序 实验地点:致远楼B303 指导教师:崔秀娟 2013年9月28日

namespace Test2__02 { class Program { static void Main(string[] args) { int m=0; int n; long sum=0; Console.WriteLine("请输入n的值:"); n = int.Parse(Console.ReadLine()); for (int i = 1; i <= n; i++) { m += i; sum += m; } Console.WriteLine("sum = {0}",sum); Console.WriteLine("请输出sum的值:{0}", sum); } } } (方法二) namespace Test2__02 { class Program { static void Main(string[] args) { int i, j; int n; long sum=0; Console.WriteLine("请输入n的值:"); n = int.Parse(Console.ReadLine()); for (i = 1; i <= n; i++) for (j = 1; j <= i; j++) sum += j; Console.WriteLine("sum = {0}",sum); Console.WriteLine("请输出sum的值:{0}", sum); } }

高级软件开发技术报告

高级软件开发技术 课程设计报告 题目:学生成绩查询网站专业:信息管理与信息系统

学生成绩查询网站 一、网站的功能 设计这个网站的目的是为了方便学生查询成绩和进行个基本人信息注册以方便录入新的成绩,有了这个网站,学生就不用再为没地方查询成绩而发愁,也方便教务处对学生的信息有一个基本的了解。学生成绩查询网站能让有成绩的学生登录,并且登陆之后就能很方便的看到自己的学习成绩。这个网站一共有3个窗体页,主页index.aspx设计为登陆页面,如图1.0所示, result.aspx页设计为成绩查询结果页,如图2.0和图2.1所示,register.aspx页设计为注册页如图3所示。 当学生首次登陆这个网站时,进入的是登陆页面。如果学生已经有账号了,则直接输入用户名和密码,再单击登陆按钮。如果账号和密码正确则进入到成绩查询页面,否则就得重新输入。若果学生好没有账号,就单击注册按钮进行注册,进入的是注册页面。 图1 登录界面 当进入到成绩查询页面时,学生就能看到自己的成绩,成绩以一个成绩表形式呈现数来,标题栏有姓名、课程、成绩、课程性质、学时和学分在页面的左侧有一个欢迎的字样。如果学生有成绩,成绩表就会呈现具体的学生成绩,并在页面的左侧呈现“欢迎您!”后边加上学生的姓名的字样,如果没有成绩,则就会 看 到成就表为空,页面的左侧只呈现“欢迎您!”的字样。当学生返回到登录页面时,只需要点击“回到登陆页”超链接就可以回去了。

图2.1 成绩查询无结果 图2.0 成绩查询成功 当进入到注册页面时,学生需要输入一些基本的注册信息,例如:用户名、密码、姓名、年龄、性别、专业、爱好等基本信息,要求用户名、密码和姓名不能为空。在输入用户名时,要求用户名只能由英文字母、数字、下划线组成。输入密码时要求密码框和重复输入密码框必须相同,姓名可以由任意字符注组成,年龄要求在15岁到110岁之间,邮箱要求输入正确的邮箱。若果违反了以上的要求,就会导致无法注册显示错误信息。性别可以选择男或女,专业的下拉列表有很多选项,只需选择其中一个就可以了,爱好这一项选择可以多选。当满足以上要求后,单击注册按钮后就会返回到登录页面。若不想注册了,也可点击页面上的“回到登陆页面”超链接返回到登陆页。 图3 学生信息注册 二、控件的属性 1、index.aspx页面控件 该页面可以从数据库中提取数据来匹配学生输入的用户名和密码,匹配失败显示“用户名或密码错误,请重新输入”。登陆界面可以实现和数据库的连接交互,该页面一共用到3种控件,有文本、文本框和按钮控件。两个按钮共编写了两个事件,登录事件编写的是和数据库进行简单的连接交互事件,将用户输入的

嵌入式软件开发基础实验报告实时时钟

上海电力学院 嵌入式软件开发基础实验报告 题目:【ARM】实时时钟实验 专业:电子科学与技术 年级: 姓名: 学号:

一、实验目的 1、了解实时时钟的硬件控制原理及设计方法。 2、掌握S3C44B0X 处理器的RTC 模块程序设计方法。 二、实验设备 1、硬件:Embest EduKit-III 实验平台,Embest ARM 标准/增强型仿真器套件,PC 机。 2、软件:Embest IDE Pro ARM 集成开发环境,Windows 98/2000/NT/XP。 三、实验内容 学习和掌握 Embest EduKit-III 实验平台中RTC 模块的使用,进行以下操作: 1、编写应用程序,修改时钟日期及时间的设置。 2、使用EMBEST ARM 教学系统的串口,在超级终端显示当前系统时间。 四、实验原理 1. 实时时钟(RTC) 实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC 具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。随着集成电路技术的不断发展,RTC 器件的新品也不断推出,这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D 数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。 RTC 器件与微控制器之间的接口大都采用连线简单的串行接口,诸如I2C、SPI、MICROWIRE和CAN 等串行总线接口。这些串口由2~3 根线连接,分为同步和异步。 2. S3C44B0X 实时时钟(RTC)单元 S3C44B0X 实时时钟(RTC)单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC 发送8 位BCD 码数据到CPU。传送的数据包括秒、分、小时、星期、日期、月份和年份。RTC 单元时钟源由外部晶振提供,可以实现闹钟(报警)功能。 S3C44B0X 实时时钟(RTC)单元特性: BCD 数据:秒、分、小时、星期、日期、月份和年份 1、闹钟(报警)功能:产生定时中断或激活系统 2、自动计算闰年 3、无2000 年问题 4、独立的电源输入 5、支持毫秒级时间片中断,为RTOS 提供时间基准 读/写寄存器 访问 RTC 模块的寄存器,首先要设RTCCON 的bit0 为1。CPU 通过读取RTC 模块中寄存器BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON 和 BCDYEAR 的值,得到当前的相应时间值。然而,由于多个寄存器依次读出,所以有可能产生错误。比如:用户依次读取年(1989)、月(12)、日(31)、时(23)、分(59)、秒(59)。当秒数为1 到59 时,没有任何问题,但是,当秒数为0 时,当前时间和日期就变成了1990 年1 月1 日0 时0 分。这种情况下(秒数为0),用户应该重新读取年份到分钟的值(参考程序设计)。

软件研发测试报告

丰台科技馆科普互动远程点播系统 研发测试报告 拟制:李志洋日期: 审核:史方舟日期: 批准:袁爱英日期: 北京锦绣年华信息技术有限责任公司 编制日期:2007年12月

目录 1 范围................................................................... 1.1定义.............................................................. 1.1.1标识......................................................... 1.1.2术语......................................................... 1.1.3缩写词....................................................... 1.2系统概述.......................................................... 1.2.1软件用途..................................................... 1.2.2特性......................................................... 1.2.3项目背景..................................................... 1.2.4运行环境..................................................... 1.3文档概述.......................................................... 2引用文档............................................................... 3测试结果概述........................................................... 3.1测试环境的影响.................................................... 3.2改进建议.......................................................... 4详细的测试结果......................................................... 4.1基础平台 > 人员管理 > 用户管理.................................... 4.1.1测试结果小结................................................. 4.1.2遇到的问题................................................... 4.1.3与测试用例/过程的偏差........................................ 4.2基础平台 > 全局设置 > 代码维护.................................... 4.2.1测试结果小结................................................. 4.2.2遇到的问题................................................... 4.2.3与测试用例/过程的偏差........................................ 4.3基础平台 > 权限管理............................................... 4.3.1测试结果小结................................................. 4.3.2遇到的问题................................................... 4.3.3与测试用例/过程的偏差........................................ 4.4基础平台 > 网站定制............................................... 4.4.1测试结果小结................................................. 4.4.2遇到的问题................................................... 4.4.3与测试用例/过程的偏差........................................ 4.5门户前台.......................................................... 4.5.1测试结果小结................................................. 4.5.2遇到的问题................................................... 4.5.3与测试用例/过程的偏差........................................ 5测试记录............................................................... 1范围 1.1定义 此份测试报告是程序员在进行测试计划(单元测试)指定测试编写。

相关文档
最新文档