当前位置:文档之家› 文件系统存储空间管理模拟实验报告要点.doc

文件系统存储空间管理模拟实验报告要点.doc

文件系统存储空间管理模拟实验报告要点.doc
文件系统存储空间管理模拟实验报告要点.doc

课程名称计算机操作系统实验名称文件系统存储空间管理模拟姓名学号

专业班级实验日期

成绩指导老师

一、实验目的

根据提出的文件分配和释放请求,动态显示磁盘空闲空间的

态以及文件目录的变化,以位示图和索引分配为例:每次执行请求后要求显示或打印位示图的修改位置、分配和回收磁盘的物理块地址、更新的位示图、目录。

二、实验原理

用数组表示位示图,其中的每一位对应磁盘一个物理块的状态,0表示、空闲,1表示分配;当请求分配一个磁盘块时,寻找到数组中为0的位,计算相对磁盘块号,并计算其在磁盘中的物理地址(柱面号、磁道号、物理块号),并将其状态由0变到1。当释放某一物理块时,已知其在磁盘中的物理地址,计算其相对磁盘块号,再找到位示图数组中的相应位,将其状态由1变为0。

三、主要仪器设备

PC机(含有VC)

四、实验内容与步骤

实验内容:1. 模拟文件空间分配、释放过程,可选择连续分配、链式分配、索引分配方法;2. 文件空闲空间管理,可采用空白块链、空白目录、位示图方法;

步骤如下:

1. 输入磁盘基本信息参数,计算位示图大小,并随机初始化位示图;

(1)磁盘基本信息:磁盘柱面数m, 每柱面磁道数p, 每磁道物理块数q;

(2)假设采用整数数组存放位示图,则数组大小为:

Size= ceil((柱面数*每柱面磁道数*每磁道物理块数)/(sizeof(int)*8))(3)申请大小为size的整数数组map,并对其进行随机初始化。

例如:假设m=2, p=4, q=8, 共有64个磁盘块,若sizeof(int)=2, 则位示图大小为4,map[4]如下:

地址到高地址位上。即map[0]的第0位到第15位分别对应0号磁盘块到15号磁盘块的状态,map[1]的第0位到第15位对应16号磁盘块到31号磁盘块的状

2. 输出初始位示图信息;

3. 输入文件分配或释放请求,

(1)格式:“+ 文件名申请块数”或“ - 文件名”

“+”表示申请文件分配,“-”表示删除文件

如:+ F1 5

4. 根据请求完成相应操作。

(1)若为分配申请x个盘块,则在位示图中找到x个为0的位,将其修改为“1”,计算相应具体物理设备的柱面号C、磁道号H和物理块号R,并将CHR地址或相对磁盘块号记录在文件目录中。输出位示图修改位置、分配的磁盘块CHR 地址、修改后的目录和位示图信息。否则,空间不够,退出执行下一条请求;

●计算公式如下:

a. 已知位示图中的下标i , j, 计算相对块号

Block= i*sizeof( int )*8+j

b. 已知相对块号计算柱面、磁道、物理块号如下:

柱面号 C= 相对块号/(每柱面磁道数*每磁道物理块数)

磁道号 H= 相对块号%(每柱面磁道数*每磁道物理块数)/ 每磁道物理块数

物理块号 R= 相对块号%每磁道物理块数

(2

表,依次读

取文件相应的盘块CHR地址, 计算该盘块的相对磁盘块号,再计算其相应信息在位示图中的位置( i,j),将位示图中的相应位有“1”改为“0”,并从目录中删除该目录项。输出删除的磁盘块CHR地址、相应位示图修改位置、修改过的位示图和目录。

计算过程如下:

相对磁盘块号 = 柱面号*每柱面磁道数*每磁道物理块数+

磁道号*每磁道物理块数+ 物理块号

i = 相对磁盘块号/ (sizeof(int)*8)

j = 相对磁盘块号% (sizeof(int)*8) 五、实验流程图

图一文件空闲区分配算法

图二文件空闲区回收算法

六、实验代码

#include "stdio.h"

#include

#include

#include

int physic[100]; //文件地址缓冲区

int style=1; //文件的类型

char cur_dir[10]="root"; //当前目录

struct command

{char com[10];

}cmd[13];

struct block

{ int n; //空闲的盘快的个数

int free[50]; //存放空闲盘快的地址

int a; //模拟盘快是否被占用

}memory[20449];

struct block_super

{int n; //空闲的盘快的个数

int free[50]; //存放进入栈中的空闲块

int stack[50]; //存放下一组空闲盘快的地址

}super_block;

struct node //i结点信息

{int file_style; //i结点文件类型

int file_length; //i结点文件长度

int file_address[100]; //i结点文件的物理地址

} i_node[640];

struct dir //目录项信息

{char file_name[10]; //文件名

int i_num; //文件的结点号

char dir_name[10]; //文件所在的目录

} root[640];

void format() //格式化

{int i,j,k;

super_block.n=50;

for(i=0;i<50;i++) //超级块初始化

{ super_block.free[i]=i; //存放进入栈中的空闲块super_block.stack[i]=50+i; //存放下一组的盘块

}

for(i=0;i<640;i++) //i结点信息初始化

{for(j=0;j<100;j++)

{i_node[i].file_address[j]=-1;//文件地址

}

i_node[i].file_length=-1; //文件长度

i_node[i].file_style=-1; //文件类型

}

for(i=0;i<640;i++) //根目录区信息初始化{strcpy(root[i].file_name,"");

root[i].i_num=-1;

strcpy(root[i].dir_name,"");

}

for(i=0;i<20449;i++) //存储空间初始化{memory[i].n=0; //必须有这个

memory[i].a=0;

for(j=0;j<50;j++)

{memory[i].free[j]=-1;

}

for(i=0;i<20449;i++) //将空闲块的信息用成组链接的方法写进每组的最后一个块中{ //存储空间初始化

if((i+1)%50==0)

{k=i+1;

for(j=0;j<50;j++)

{if(k<20450)

{memory[i].free[j]=k;//下一组空闲地址

memory[i].n++; //下一组空闲个数注意在memory[i].n++之前要给其赋初值k++;

}

else

{memory[i].free[j]=-1;

}

}

memory[i].a=0; //标记为没有使用

continue; //处理完用于存储下一组盘块信息的特殊盘块后,跳过本次循环

}

for(j=0;j<50;j++)

{memory[i].free[j]=-1;

}

memory[i].n=0;

}

printf("已经初始化完毕\n");

printf("进入UNIX文件模拟............\n\n");}

void write_file(FILE *fp) //将信息读入系统文件中

{int i;

fp=fopen("system","wb");

for(i=0;i<20449;i++)

{ fwrite(&memory[i],sizeof(struct block),1,fp);

}

fwrite(&super_block,sizeof(struct block_super),1,fp);

for(i=0;i<640;i++)

{write(&i_node[i],sizeof(struct node),1,fp);

}

for(i=0;i<640;i++)

{ fwrite(&root[i],sizeof(struct dir),1,fp);

}

fclose(fp);

}

void read_file(FILE *fp) //读出系统文件的信息

{ int i;

fp=fopen("system","rb");

for(i=0;i<20449;i++)

{fread(&memory[i],sizeof(struct block),1,fp);

}

fread(&super_block,sizeof(struct block_super),1,fp);

for(i=0;i<640;i++)

{ fread(&i_node[i],sizeof(struct node),1,fp);

}

for(i=0;i<640;i++)

{fread(&root[i],sizeof(struct dir),1,fp);

}

fclose(fp);

}

void callback(int length) //回收磁盘空间

{ int i,j,k,m,q=0;

for(i=length-1;i>=0;i--)

k=physic[i]; //需要提供要回收的文件的地址

m=49-super_block.n; //回收到栈中的哪个位置

if(super_block.n==50) //注意当super_block.n==50时m=-1;的值

{ //super_block.n==50的时候栈满了,要将这个栈中的所有地址信息写进下一个地址中

for(j=0;j<50;j++)

{

memory[k].free[j]=super_block.free[j];

}

super_block.n=0;

memory[k].n=50;

}

memory[k].a=0;

if(m==-1)

{ m=49; //将下一个文件地址中的盘块号回收到栈底中,这个地址中存放着刚才满栈的地址的信息

}

super_block.free[m]=physic[i]; //将下一个文件地址中的盘块号回收到栈中

super_block.n++;

}

}

void allot(int length) //分配空间

{ int i,j,k,m,p;

for(i=0;i

{

k=50-super_block.n; //超级块中表示空闲块的指针

m=super_block.free[k]; //栈中的相应盘块的地址

p=super_block.free[49]; //栈中的最后一个盘块指向的地址

if(m==-1||memory[p].a==1) //检测是否还有下一组盘块

{

printf("内存不足,不能够分配空间\n");

callback(length);

break;

}

if(super_block.n==1)

{

memory[m].a=1; //将最后一个盘块分配掉

physic[i]=m;

super_block.n=0;

for(j=0;j

{

super_block.free[j]=memory[m].free[j];

super_block.n++;

}

continue; //要跳过这次循环,下面的语句在IF中已经执行过

}

physic[i]=m; //栈中的相应盘块的地址写进文件地址缓冲区

memory[m].a=1;

super_block.n--;

}

}

void create_file(char filename[],int length) //创建文件

{

int i,j;

for(i=0;i<640;i++)

{

if(strcmp(filename,root[i].file_name)==0)

printf("文件已经存在,不允许建立重名的文件\n");

return;

}

}

for(i=0;i<640;i++)

{

if(root[i].i_num==-1)

{

root[i].i_num=i;

strcpy(root[i].file_name,filename);

strcpy(root[i].dir_name,cur_dir); //把当前目录名给新建立的文件

i_node[i].file_style=style;

i_node[i].file_length=length;

allot(length);

for(j=0;j

{

i_node[i].file_address[j]=physic[j];

}

break;

}

}

}

void create_dir(char filename[]) //创建目录

{style=0; //0代表文件类型是目录文件

create_file(filename,4);

style=1; //用完恢复初值,因为全局变量,否则

}

void del_file(char filename[]) //删除文件

{

int i,j,k;

for(i=0;i<640;i++)

{if(strcmp(filename,root[i].file_name)==0)

{

k=root[i].i_num;

for(j=0;j

{

physic[j]=i_node[k].file_address[j];

}

callback(i_node[k].file_length); //调用回收函数

for(j=0;j<100;j++) //删除文件后要将文件属性和目录项的各个值恢复初值

{

i_node[k].file_address[j]=-1; //地址恢复初值

}

strcpy(root[i].file_name,""); //文件名恢复初值

root[i].i_num=-1; //目录项的I结点信息恢复初值

strcpy(root[i].dir_name,""); //目录项的文件目录信息恢复初值

i_node[k].file_length=-1; //文件长度恢复

i_node[k].file_style=-1; //文件类型恢复初值

break;

}

}

if(i==640)

{

printf("不存在这个文件\n");

}

}

void del_dir(char filename[]) //删除目录需要判断目录下时候为空,不为空就不删除

int i,j,k;

for(i=0;i<640;i++) //还要加条件判断要删除的目录是不是当前目录

{

k=root[i].i_num; //找到目录名字

if( strcmp(root[i].file_name,filename)==0 && strcmp(cur_dir,filename)!=0 && (i_node[k].file_style)==0 )

{

for(j=0;j<640;j++)

{

if(strcmp(filename,root[j].dir_name)==0)

{

printf("目录不为空不能直接删除\n");

break;

}

}

if(j==640)

{

del_file(filename);

break;

}

break;

}

}

if(i==640)

{

printf("这个不是目录文件或者不存在这个目录,或者你要删除的是当前目录\n");

}

}

void display_curdir() //显示当前目录下的文件列表

{

int i,k;

printf("\t\t文件名字文件类型文件长度所属目录\n");

for(i=0;i<640;i++)

{

if(strcmp(cur_dir,root[i].dir_name)==0) //查询文件中所在目录信息和当前目录信息相同的数据

{

k=root[i].i_num;

printf("\t\t %s\t",root[i].file_name); //文件名

printf("\t%d\t",i_node[k].file_style); //文件的类型

printf("%d\t",i_node[k].file_length); //文件的长度

printf("%s\n",root[i].dir_name); //文件所在的目录

}

}

}

void display_dir(char filename[]) //进入指定的目录

{

int i,k;

for(i=0;i<640;i++)

{

k=root[i].i_num; //判断文件类型是不是目录类型

if((strcmp(filename,root[i].file_name)==0) && (i_node[k].file_style==0))

{

strcpy(cur_dir,filename); //将要进入的指定目录设置为当前目录赋值不要反了strcpy(目的,源)

break;

}

if(i==640)

{

printf("没有这个目录\n");

}

}

void open_file(char filename[]) //打开文件

{

int i,j,k;

printf("\t\t文件名字文件类型文件长度所属目录\n");

for(i=0;i<640;i++)

{

k=root[i].i_num;

if(strcmp(filename,root[i].file_name)==0 && (i_node[k].file_style==1))

{

printf("\t\t %s\t",root[i].file_name); //文件名

printf("\t%d\t",i_node[k].file_style); //文件的类型

printf("%d\t",i_node[k].file_length); //文件的长度

printf("%s\n",root[i].dir_name); //文件所在的目录

printf("\t\t文件占用的物理地址\n");

for(j=0;j

{

printf("%d ",i_node[k].file_address[j]); //文件具体占用的盘块号

}

printf("\n");

break;

}

}

if(i==640)

{

printf("没有这个文件或者这个文件不是正规文件\n");

}

}

void back_dir() //返回上一级目录

{

int i,k;

for(i=0;i<640;i++) //查询和当前目录名相同的目录文件名

{

k=root[i].i_num;

if(strcmp(cur_dir,root[i].file_name)==0 && (i_node[k].file_style==0))

{

strcpy(cur_dir,root[i].dir_name); //将查询到的目录文件名所在的目录赋值给当前目录}

}

}

void display_sys() //显示系统信息(磁盘使用情况)

{

int i,m,k=0;

for(i=0;i<20449;i++)

{

if(memory[i].a==0)

k++;

}

m=20449-k;

printf("空闲的盘块数是:\t");

printf("%d\n",k);

printf("使用的盘块数是:\t");

printf("%d\n",m);

}

void help() //显示帮助信息

{printf("***********************************************************\n"); printf("* 以下是文件管理已分配盘块------------------------------- *\n");

printf("* 1.初始化-----------------------------------------format *\n");

printf("* 2.查看当前目录文件列表---------------------------dir *\n");

printf("* 3.查看文件--------------cat-----(cat + 空格+ 文件名) *\n");

printf("* 4.查看系统信息-----------------------------------ls *\n");

printf("* 5.创建目录--------------md------(md + 空格+ 目录名) *\n");

printf("* 6.创建文件---vi------(vi + 空格+ 文件名+ 文件长度) *\n"); printf("* 7.删除文件---------------del-----(del + 空格+ 文件名) *\n");

printf("* 8.删除目录----------------deldir--(del + 空格+ 目录名) *\n");

printf("* 9.进入当前目录下的指定目录-----cd--(cd + 空格+ 目录名) *\n"); printf("* 10.返回上一级目录--------------------------------cd.. *\n");

printf("* 11.显示帮助命令----------------------------------help *\n");

printf("* 12.退出文件模拟----------------------------------quit *\n");

printf("* 13,进入成组链接----------------------------------guo *\n");

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

int MA[4]; /*空闲块数组*/

int A[9][4]={{3,1,2,3},{3,4,5,6},{0,0,0,0},{0,0,0,0},{3,0,7,8},

{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}}; /*磁盘空间*/

int mark[9]; /*存放已分配的块*/

int No=0; /*已分配的块数*/

void display1()

{ int i,j,temp,count;

No=0;

if(MA[1]!=0)

{ i=MA[0];

printf("\ngroup1:");

for(j=1;j<=i;j++)

{ printf("%d ",MA[j]);

mark[++No]=MA[j];

}

temp=MA[1];

count=2;

while(A[temp][1]!=0)

{ printf("\ngroup%d:",count);

i=A[temp][0];

for(j=1;j<=i;j++)

{ printf("%d ",A[temp][j]);

mark[++No]=A[temp][j];

}

count++;

temp=A[temp][1];

}

printf("\ngroup%d:",count);

i=A[temp][0];

for(j=2;j<=i+1;j++)

if(A[temp][j]>0)

{ printf("%d ",A[temp][j]);

mark[++No]=A[temp][j];

}

}

else

{ i=MA[0];

if(i==1)

printf("\nThe blocks are all assigned");

else

{ printf("\ngroup1:");

for(j=2;j<=i;j++)

{ printf("%d ",MA[j]);

mark[++No]=MA[j];

}

}

}

}

void display() /*显示分组情况*/

{ int i,j;

if(MA[0]!=0)

display1();

else

{ i=MA[1];

for(j=0;j<=3;j++)

MA[j]=A[i][j];

display1();

}

}

void assign() /*分配空闲块*/

{ int s,i;

if(MA[0]>1) /*若该组不止一个空闲块*/

{ i=MA[0];

s=MA[i];

MA[0]--;

printf("\nnumber of the block:%d",s);

}

else if(MA[0]==1) /*只剩一个空闲块*/

{ if(MA[1]!=0) /*还有其它空闲块组*/

{ s=MA[1];

for(i=0;i<=3;i++)

A[0][i]=A[s][i];

MA[0]--;

printf("\nnumber of the block:%d",s);

}

else /*没有其它空闲块组*/

{ printf("\nThere isn't any space");

return;

}

}

else /*当前组已分配完*/

{ for(i=0;i<=3;i++)

MA[i]=A[0][i];

assign();

}

display(); /*显示分组情况*/

}

void callback() /*回收空闲块*/

{ int i,j,temp;

printf("\ninput the No. of the block you want to callback:");

scanf("%d",&j);

getchar(); /*得到待回收的空闲块号*/

for(temp=1;temp<=No;temp++)

{ if(mark[temp]==j)

break;

if(temp

{ printf("\nThe block is in the disk");

return;

}

if(MA[0]<3) /*当前组不满3块*/

{ i=MA[0];

MA[i+1]=j;

MA[0]++;

}

else /*已有3块*/

{ for(i=0;i<=3;i++)

A[j][i]=MA[i];

MA[0]=1;

MA[1]=j;

}

display(); /*显示*/

}

int filecontrol();

void menu() /*功能选择函数*/

{ int choice;

char judge;

printf("文件管理空间管理\n");

printf("\ninput your choice:(1--assign,2--callback,3--backtofilecontrol):\n");

scanf("%d",&choice);

getchar();

if(choice==1)

assign();

else if(choice==2)

callback();

else if(choice==3)

filecontrol();

else

printf("\ninvalid command!");

printf("\ncontinue or not?(y--Yes,n--Not):");

scanf("%c",&judge);

getchar();

if(judge=='y')

menu();

else

{ printf("\nNow the graph is:");

display();

printf("\npress any key to quit");

getchar();

}

}

void guolink()

{ int i;

for(i=0;i<=3;i++)

MA[i]=A[0][i];

display();

menu();

}

int filecontrol() //主函数

{ int i, j=0,p,len=0;

char tmp[10],com[10],tmp1[10],k;

struct command tmp2[10];

help();

strcpy(cmd[0].com,"format"); //将各个命令存进命令表

strcpy(cmd[1].com,"dir");

strcpy(cmd[2].com,"cat");

strcpy(cmd[3].com,"ls");

strcpy(cmd[4].com,"md");

strcpy(cmd[5].com,"vi");

strcpy(cmd[6].com,"del");

strcpy(cmd[7].com,"deldir");

strcpy(cmd[8].com,"cd");

strcpy(cmd[9].com,"cd..");

strcpy(cmd[10].com,"help");

strcpy(cmd[11].com,"quit");

strcpy(cmd[12].com,"guo");

if((fp=fopen("system","rb"))==NULL) //判断系统文件是否存在{

printf("can not open file\n");

printf("format the disk Y / N \n");

scanf("%c",&k);

if(k=='y')

format();

}

else

{

read_file(fp); //读取系统文件的内容

}

while(1)

{

j=0; //必须重新给恢复0否则出错

strcpy(tmp,cur_dir);

while(strcmp(tmp,"root")!=0)

{

for(i=0;i<640;i++)

{

p=root[i].i_num;

if(strcmp(tmp,root[i].file_name)==0 && (i_node[p].file_style==0)) {

strcpy(tmp2[j].com,tmp);

j++;

strcpy(tmp,root[i].dir_name);

}

}

}

strcpy(tmp2[j].com,tmp);

for(i=j;i>=0;i--)

{

printf("%s/",tmp2[i].com);

}

scanf("%s",com); //输入命令并且查找命令的相关操作

for(i=0;i<13;i++)

{

if(strcmp(com,cmd[i].com)==0)

{

p=i;

break;

}

}

if(i==13) //如果没有这个语句以后输入的命令都和第一次输入的效果一样

{

p=14; //随便的一个值

}

switch(p)

{

case 0: format(); //初始化

break;

case 1: display_curdir(); //查看当前目录下的文件列表

break;

case 2: scanf("%s",tmp); //查看文件

open_file(tmp);

break;

case 3: display_sys(); //查看系统信息

break;

case 4:scanf("%s",tmp); //创建目录

create_dir(tmp);

break;

case 5: scanf("%s",tmp); //创建文件

scanf("%d",&len);

create_file(tmp,len);

break;

case 6: scanf("%s",tmp); //删除文件

for(i=0;i<640;i++) //判断文件是不是正规文件

{

j=root[i].i_num;

if(strcmp(tmp,root[i].file_name)==0 && (i_node[j].file_style)==1)

{

del_file(tmp);

break;

}

}

if(i==640)

{

printf("这个不是正规文件文件\n");

}

break;

case 7:

scanf("%s",tmp); //删除目录

del_dir(tmp);

break;

case 8: scanf("%s",tmp1); //进入当前目录下的指定目录相当于进入目录cd + 目录名

display_dir(tmp1);

break;

case 9: back_dir(); //返回上一级目录

break;

case 10:help();

break;

case 11:write_file(fp); //将磁盘利用信息写进系统文件,退出

return 0;

case 12:

guolink();

break;

default:printf("SORRY,没有这个命令\n");

break;

}

}

}

int main()

{ int i;

printf("操作系统课程设计\n");

printf("请输入选择\n");

printf("input your choice(1 stand for file control\n 2 stand for guo control)\n");

scanf("%d",&i);

if(i==1)

filecontrol();

else if(i==2)

guolink();

else ;

return 0;

}

六、实验结果显示

管理信息系统实验报告

实验一认识计算机硬件和网络结构 一、实验题目 认识计算机硬件和网络结构。 二、实验课时 2课时。 三、实验目的 认识计算机的主要构成部件、功能、型号、在计算机机箱内的位置、网络结构等。 四、实验内容和要求 1、利用多媒体演示计算机的主要组成部件:机箱、主板、CPU、内存条、硬盘、软驱、光驱、插槽、BUS总线、串行接口、并行接口、USB接口等; 2、打开机箱,实物展示并讲解个部件的功能及其连接; 3、机箱、主板、CPU、CPU风扇、内存条、显卡、网卡等分别如下所示。 机箱主板

内存条显卡网卡无线网卡 CPU CPU风扇硬盘 机箱背面并行接口串行接口USB接口 4、观察每个部件在机箱的位置,并掌握每个部件的功能和基本知识。 5、观察实验室网络结构图。 6、结合某网吧的例子更好地理解网络结构。 Parallel port Serial port USB port Keyboard and mouse ports

7、独立完成上述内容,并提交书面实验报告。 五、实验体会 通过本次实验,我了解了计算机的各种硬件和网络结构。知道了各种硬件的形状、功能、特征等。还知道了网络结构的流程、大体构造。这使我对计算机有了初步的认识,为以后更进一步的学习打下了坚实的基础。也为我以后的学习和生活提供了方便。 1、cpu——中央处理器,是一台计算机的运算核心和控制核心。 2、硬盘——是电脑的主要存储媒介之一。 3、主板——又叫主机板、系统板或母板,安装在机箱内,是微机最基本也是最重要的部件之一。 4、机箱——作为电脑配件的一部分,它起的主要作用是放置和固定各电脑配件,起到一个承托和保护作 用。 5、内存条——是连接CPU和其他设备的通道,起到缓冲和数据交换作用。

C++图书管理系统实验报告

面向对象程序设计(C++语言)课程设计 设计说明书 图书管理系统的设计与实现 起止日期:年月日至年月日 学生姓名 班级 学号 成绩 指导教师(签字) 计算机与通信学院 年月日 图书管理系统

一.需求分析 图书馆是目前生活中除了网络外的另一个获取知识的重要场所。利用图书管理系统对图书记录进行统一管理,包括新增图书记录,更改图书记录,删除图书记录等功能,实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。同时是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。有助于加深对面向对象程序设计中基础理论和基本知识的理解,培养了实践能力,促进理论与实践的结合。 二.设计要求: 1.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时 间、价格等。试设计一图书信息管理系统,使之能提供以下功能: 2.系统以菜单方式工作 3.图书信息录入功能(图书信息用文件保存)--输入 4.图书信息浏览功能--输出 5.查询和排序功能:(至少一种查询方式)--算法 6.按书名查询 7.按作者名查询 8.图书信息的删除与修改(可选项) 三.概要设计 1、类的设计 ①、Book类的设计(内部函数流程图):

②、BDatabase类的设计: ③、主函数流程图:

4多态的实现 class People { public: virtual void card(){cout<<"card people"<

【精编推荐】财务管理模拟实验报告

【精编推荐】财务管理模拟实验报告

财务管理模拟实验报告课程名称:财务管理综合实验 专业班级:财务管理(4)班 姓名:张永侠 学号:10551165 指导教师:谢老师 实验日期:2013-**-** 目录 第一部分:实验报告 实验一风险与报酬 实验二股票股价 实验三资金需要测量预测 实验四资本成本 实验五筹资决策 实验六投资项目的风险分析 实验七应收账款管理 实验八利润分配的经济效果 实验九财务比率分析 实验十财务报表分析

实验十一因素分析 实验十二财务综合分析文档 第二部分:实习报告 一、资产负债表分析 二、利润表分析 第三部分:小结 一、自我小结 二、指导老师评价 第一部分:实验报告 实验一风险与报酬 一、实验目的 1、理解风险报酬的概念,计算 2、掌握单项资产风险和报酬,投资组合的风险和报酬的计算 3、计算预期报酬率、标准差、标准离差率,并根据计算结果进行风险分析 4、掌握POWER()函数,SQRT()函数等函数 5、综合分析各单项资产和投资组合的风险和报酬,尽量的规避风险和取得报酬 二、实验材料 公司某个投资项目有A、B两个方案,投资额均为10000元,其收益的概率分布如下:

假定价值风险系数为8%,无风险报酬率为6%。 要求:分别计算A、B两个方案的预期报酬率、标准差、标准离差率,并进行风险分析。 三、实验方法与步骤 1、在工作表中输入相关公式和函数进行计算 四、实验结果 (一)单项资产的风险和报酬

(二)投资组合的风险和报酬

五、小结 1、通过这次实验我熟悉了投资报酬率、期望报酬率、方差、标准差、离散系数等各种计算的方法和用途,感觉收获良多。风险与报酬的可能性相联系,投资者之所以愿意投资高风险的项目,是因为风险与报酬成正相关,能够带来预期收益。对于衡量公司财务状况,有很多指标,不能片面的从某一个指标就断定公司的经营状况,需要多角度分析及思考得出公司的财务状况,进而更好地为公司做出财务决策,从而整体提高公司的经营能力,使其具有更高的竞争力。 2、单项资产的风险与报酬是通过计算期望报酬率就可以明了的看到所有可能结果的数目,也能看到各结果的发生概率,更有利于投资者判断选择。 3、投资组合的风险和报酬就是指各项单项的期望报酬的加权平均,权重为整个组合的各个资金占总的比重,通过计算可以让投资者更理智的投资。 4、公司的财务报表是反映公司经营状况的有效证据,提高公司的经济利益,需要尽可能大的提高销售收入,减少销售成本。 5、实验中虽然解决了很多问题,但也遇到了诸多问题,对于操作的不熟练是

管理信息系统实验报告

一、对实习目的认识 ERP模拟实习(实验)是在学生学习《生产运作管理》等相关课程的基础上,为使学生加深对理论教学的理解,配合教学内容所开设的实验教学环节。通过对与企业主要业务有关的各子系统的认知与操作,使学生了解ERP系统的基本构成与操作方法,能够增强学生计算机的应用能力,培养学生分析问题与解决问题的能力,有利于对理论教学内容的消化与吸收,并为今后从事实际工作打下一定的基础。 本实习是以广州五羊-本田公司某个月份的实际主要业务为基础,通过模拟实习,使学生在参与营销、技术、采购、设备、生产、品质、仓库、财务、人事等各个环节的实际操作过程中,熟悉各职能部门是怎样独立运作,部门之间是怎样相互协调关系。把企业作为整体系统适应外部环境变化的条件,应该如何有效地进行现代企业管理的运作。为便于实习,对每一个功能模块操作,提出较为具体的要求: 通过基础数据模块的实习,理解基础数据在企业管理中的作用。 通过营销管理模块的实习,掌握销售合同的签定,按客户订单组织生产的一般流程,掌握客户管理的基本内容与要求,了解售后服务的主要业务,明确营销管理在企业管理中的重要地位。 通过生产管理模块的实习,掌握生产计划的制定方法,以及按生产计划组织生产过程的一般流程,了解物料清单和物料需求计划的基本内容。 通过采购管理模块的实习,掌握物料采购的一般流程;理解物料供应的基本要求。 通过仓库管理模块的实习,掌握库存管理的一般流程,了解库存控制的方法。 通过品质管理模块的实习,理解品质管理的体系包括品质的控制、品质保证、品质工程三个重要组成部分的基本要求;掌握物料、产品质检的一般流程;了解质检技术标准。 通过财务管理模块的实习,掌握应收款和应付款业务处理流程;掌握成本核算的内容及要求;掌握财务成果核算的要点,了解资金筹备和运用的价值分析。 学生通过以上模块的实习,能够了解现代企业管理的一般流程,并能整合所学的管理理论知识,掌握现代企业管理的实用工具与方法,成为企业所需要的实用管理人才。 二、对《企业管理教学模拟实习软件》的整体设计思想的认识 现代企业管理教学模拟实习多媒体教学系统分为“实习目的、企业背景简介、企业流程介绍、模拟实习”四个部分;在模拟实习部分中包括十三个功能模块,每个模块都配有详细的操作说明以及相应的理论知识同时提供了完整的在线帮助、数据导入、数据流程图和教学案例等;完全模拟一个大型企业整体运作过程,学生可自行设计数据进行教学与实习,使教学与实习更贴近于实际。 我们通过对企业管理教学系统的操作学习,学生能够充分体验到企业在以销定产经营模式中,销售定单的变动将引起生产计划、物料分解、采购计划、库存管理、质量管理及相应的财务、设备、人事等各个环节的变化,反映出整个系统

管理信息系统实验报告

《管理信息系统》实验报告 实验项目:教务处排课系统分析 实验学时:18学时 姓名: 学号: 专业班级: 实验时间: 实验成绩:

东北财经大学 《管理信息系统》实验报告实验项目名称:

管理系统实验报告 实验小组成员: 实验对象:教务处排课信息系统 实验对象背景介绍:教务管理系统是一个庞大而复杂的系统,它包括:学生学籍管理 系统、排课系统、教师管理系统、学生成绩系统、系统设置、班级信息系统、教学培养计划管理系统、教学资源管理系统、招生系统教务信息发布系统和事务处理系统。随着科学技术的进步与相应的管理信息系统的升级,教务系统管理平台充分利用互联网络B/S管理信息模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务系统,用一个帐号解决学校教务教学管理,并且学校可以自由选择学校需要的教务管理系统,灵活地定制符合学校自己实际情况的教务系统。教务管理系统内部子系统多样庞杂,今天我们主要讨论的研究对象是排课管理信息系统。 排课管理系统是每个学校必不可少的内容,它的优劣直接学校教学工作质量和学校的正常教学活动秩序。随着现在生源数量的不断增长以及各行业竞争日益激烈,为了满足中国社会主义事业发展对高素质人才的需求,各大高校都在尽自己努力,以本校现状及需求作为基础,以科技发展进步作为依托,发展完善一个功能完整,操作简单快捷,高效率,与本校其他教务管理系统良好适应的排课系统与之配套,使教师等教学资源利用达到最大化,为学生提供优良的教育环境。因此,东北财经大学作为一个知名的财经类高校,要达到适应教育现状及提高自身教育层次的目标,完善教务排课管理系统显得尤为重要。 系统功能简述 排课管理系统需要合理调配各个班级专业所需的专业课程选修必修课程,相应教师,教师及上课班级,尽可能全面的考虑到教师的身体状况,工作条件,家庭状况甚至与学校距离,教师及学生时间,各种课程按重要程度以及学生兴奋点和接受能力合理排序,教师的容量用途,学校集体活动或教师会议等多方面因素,以计算机安排为主,手工调整为辅的方式做出各个院系各个专业各个班级的课程安排。 排课管理系统的目标不仅是对于原有系统进行改进提高,还使课程管理科学化系统化准确化,减少手工录入的误差可能性,方便操作者的随时添加、查询、修改,是统计表格格式规范化统一化,提高工作效率,降低人工成本,提高处理数据能力与速度,提高教学质量,优化学校教务管理系统,为学校的进一步发展提供技术支持与可能性。 系统分析 (1)系统分析任务:根据系统设计任务书所确定的范围,并在充分认识原有系统的基础上进行详细的调查分析,通过问题识别、可行性分析、详细调查、系统化分析,进而确定新系统的基本目标和逻辑功能结构,最后完成新系统的逻辑方案设计。 (2)可行性分析和详细调查概述:由于实验的限制,假定建立排课管理信息系统在管理上、技术上、经济上都是可行的。而详细调查采用一定的调查方法发现了现行系统有以下优缺点: 现有系统优缺点分析 1.选课分为预选、正选、补退选,一定程度上完善了选课系统。 2.在选课中,按年级差异区分次序,一定程度上缓解短时间内系统压力,保证了高年级学生顺利完成课业。

图书管理系统uml实验报告.doc

面向对象分析与设计大作业 学院:计算机科学与工程学院 班级:计算机软件 3 学生姓名:陈俊伟 学号:2174 指导老师:苏锦钿 提交日期:

华南理工大学 面向对象分析与设计大作业课程实验报告 实验题目 :_____ 图书管理系统 uml 图__________________________ 姓名 :___ 陈俊伟 ________学号:_ 2174_____ 班级 : ___09 软件 3 班________ 组别 : ________ 合作者 : __________________ 指导教师 : ______ 苏锦钿 __________ 实验概述 【实验目的及要求】 一.目的 1.掌握面向对象技术的基本原理和各种相关概念; Rational Rose 2003 、 IBM 2. 熟练掌握 UML的基本知识和9 种常见的 UML图形 , 并能够利 用 Software Architecture、或trufun UML工具进行建模; 3.根据问题进行学习,拓广、深化; 4.独立完成一个应用程序的分析、设计和建模,为以后软件项目的开发打下实践基础。 【实验原理】 UML建模,就是用模型元素来组建整个系统的模型,模型元素包括系统中的类、类和类 之间的关联、类的实例相互配合实现系统的动态行为等。UML提供了多种图形可视化描 述模型元素,同一个模型元素可能会出现在多个图中对应多个图形元素,人们可以从多 个视图来考察模型。UML建模主要分为结构建模、动态建模和模型管理建模 3 个方面,第 1 个方面是从系统的内部结构和静态角度来描述系统的,在静态视图、用例视图、实施视 图和配置视图中适用,采用了类图、用例图、组件图和配置图等图形。例如类图用于描述系 统中各类的内部结构(类的属性和操作)及相互间的关联、聚合和依赖等关系, 包图用于描述系统的分层结构等;第 2 个方面是从系统中对象的动态行为和组成对象间的相互 作用、消息传递来描述系统的,在状态机视图、活动视图和交互视图中适用,采 用了状态机图、活动图、顺序图和合作图等图形,例如状态机图用于一个系统或对象从 产生到结束或从构造到清除所处的一系列不同的状态;第 3 个方面描述如何将模型自身组织到高层 单元,在模型管理视图中适用,采用的图形是类图。建模的工作集中在前两 方面,而且并非所有图形元素都适用或需要采用

财务管理实训报告范文三篇

财务管理实训报告范文三篇 财务管理实训汇报范文格式一 在这个学期里,我们开展了财务管理课,期末学校跟着安排我们进行财务管理实训。以下是这次实训的一些详细情况,以及我的一些感悟领会。 这次实训在期末进行,时间为从xx月xx号至xx月xx号,共10个课时,大概持续一个星期。这次实训的目的是为了进一步稳固我们按模块教学所掌握的《财务管理》操作技能知识,全面检验我们财务会计核算综合运用技能,加强我们动手能力和实践操作能力,并为今后从事财务管理打下良好基础,而特开展的。这次实训要求我们能以企业的财务报表等核算资料为基础,对企业财务活动的过程和结果进行研究和评价,以分析企业在生产经营过程中的利弊得失、财务状况及开展趋势,并能为评价和改良财务财务管理工作及为将来进行经济决策提供重要的财务信息。实训内容分为三大块:一初步分析,二财务指标分析,三综合分析。 实训开始的第一步骤是公式计算。根据企业资产负债表以及利润表上的数据信息,再通过特定的公式把各项指标的构造比率、增长额和增长率等项目方案计算出来。这个工作的技术含量相比照较低,最要是考察我们对公式的理解程度以及运用程度,只要你熟悉公式,懂得运用公式,然后对号入座,几乎上就没什么大问习题了,但是要计

算的数据比较多,相对就变得繁琐,毕竟是一环扣一环的公式计算,这要求核算人员工作态度认真严谨。由于实训要求书面书写清洁整齐、标准、严禁挖乱、涂改和使用涂改液,所以我做的时候先在草稿上做一次,确认无误后,再填入实训资料。我平常是属于比较认真学习的那一类,所以这个公式计算没到四个课时,我就完成了,进展得相比照较顺利。可是进行第二步骤运用公式分析就遇到相当大的困难。 第二步骤公式分析、评价,也就是这次实训过程中最为关键、最为重要、最精华的一步,也是这次实训的主要内容以及主要目的。 第一步是对资产负债表以及利润表作初步分析。资产负债表总体分为三大块:资产、负债及所有者权益,而其中资产又分为流动资产和非流动资产,负债又分为流动负债和非流动负债。每一大块到每一小块,再到每一小块的细分都要进行分析小结,这点对初学者来说要求不低难度不少,或许是教师对我们期望值相当高,希望通过高要求打好我们基础,所以才安排大习题量并细分析。 大致上的资产总额构造分析,流动资产构造分析、非流动资产构造分析等,然后再细分下去的货币资金分析、应收账款分析、应收票据分析、其他应收款分析、存货分析等,通过教师的指导以及与同学们的讨论,我还是可以理解和分析的,可是明细的预付账款、原材料、固定资产和再建工程,就不知道怎么作出总结归纳好了。后来在课本上大量并且细微阅读有关内容,在网上大量疯狂的搜索有关资料,再根据资料通过自己的独立思考,渐渐的领悟很多财务分析的问习题,譬如对预付账款的分析,开始我只明白预付账款的字面意思,就是指

管理信息系统实验报告答案要点

实验

3、分组讨论并确定小组管理信息系统的题目,并给出题目的具体功能和要求。心得体 会:(可以从以下几个方面来总结:你在上机过程中遇到了哪些难题?你是怎么克服的?你的收获有哪些?你有什么没有解决的问题等) 实验

书E 选脚 ■1. 订盼蔚豆 建立学生表 则剩余不够的部分还须向其他书商订购,同时 在订购信息中添加该教材在另一个书商中订购的信息。 1、请画出上述内容的 E-R 图。 2、把E-R 图转换成合理的关系模式: 学 生(学号,姓名,性别,院系,年龄) 教 材(书号,书名,出版社,出版日期, 书商(商号,电话,联系人,商名) 山膿E 軀 nanie = ^Buy_Booksdb , j filename - J E: \Buy_Bcoksdb* mdf', size = 5j maxsize - 20, f llegrovrth = 1 ) log on ( rtajne-' Buy^Bookslog 1、 f ilenajue~, E:\Buy_Bcakslog. ldf'. size=2_, maxsize! 8, fllegrawth-1 ] Go 口. ■号, 3、在SQL Serve r (或Access )中建立数据库和表(截图) 建立数据库: create database Buy Books on primary 主键为学号 主编) 主键为书号 主键为商号 ' —i r - ! 見意「腿 性别 商号 1 ---------- 戟条人

CREATE TABLE St udent ( Sno char 9- primary key. Sname char (20 i unique, Ssex char (2), Sage smallint. Sdept char (2Q 1 ) f -f 建立教材表 CREATE TABLE Books ( Eno char 9) primary key Btitle char (40), Bauthor char ^20), Bpress char 40 Bdate datetime ): 建立书商表 -CREATE TABLE SSellcr BSno char 9[ priinaty key, BSnane char 201 . Tel char 30;. Person char (201 feedback char '40 1 鼻 /*书号* /車书名*/ 八作者于/ /廉也版社康/ " 由版日期柑

图书馆管理系统实验报告

华北科技学院计算机系综合性实验 实验报告 课程名称数据库系统 实验学期2009至2010学年第2学期学生所在系部计算机系 年级专业班级网络B081 学生姓名王明仁学号200807024102 任课教师郭红 实验成绩 计算机系制

《图书馆管理系统》课程综合性实验报告 开课实验室:基础62010年6月19日实验题目 一、实验目的 利用一种DBMS作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能够正确应用各个阶段的典型工具进行表示。 二、设备与环境 (1)硬件设备:PC机一台 (2)软件环境:安装Windows操作系统,安装数据库管理系统SQL Server2000等。 三、实验内容 完整实践应用数据库设计的工程过程:需求分析\概念设计\逻辑设计\物理设计和实施: (1)需求分析:选定一个应用(如图书管理系统),对所设计的数据库系统进行调研分析,其结果应该准确表达出选定 应用的功能需求; (2)概念分析:使用E-R图作为描述工具.必要时描述出局部和全局的E-R图; (3)逻辑设计:将上述绘制的E-R图转化为相应的关系模式,并根据范式理论进行优化分析。要求的关系模式不少于 3个,并根据实际应用的需要设计必要的视图; (4)物理设计:根据设计的结构,说明系统已经有的索引,并根据需要设计必要的索引; (5)实施:以SQL SERVER为平台创建出完整的数据库.在数据库中要表现出的知识点包括 ①登录控制(标准登录和混合登录) ②数据完整性:参照完整性、实体完整性、自定义完整性(包括触发器) ③安全性设计:设置用户,并相应设计用户的权限或角色(用户设计至少3个,有不同的权限) ④使用触发器、游标或存储过程完成相关操作,至少使用1种技术。 (6)以上内容,请详细描述,并有必要抓图. 四、实验结果及分析 根据我设计的图书馆数据库管理系统,我作了如下分析: 图书馆提供图书借阅业务,读者借阅需先办理借书卡(用条码识别身份),并交纳一定的押金。不同的书有着不同的借阅期限,比如期刊和某些新书最多只能借阅七天,而另一些书则可以借阅半个月或最长三个月不等。逾期不还,或丢失、损坏书籍则予以罚款。在交纳罚款前,借书卡被冻结。不同类别的读者不着不同的借阅数量限制,比如有的一次可以借阅7本,有的只能借阅5本等。对逾期不还的,系统给出报警,并打印催还通知单。读者可以事先从网上查询拟借书刊是否存在,并可查询书刊存放地点。 我设计的图书管理系统,功能包括: 一.图书管理系统: 1.图书查询 2.新书登记 3.图书下架 二.读者信息管理: 1.办卡 2.信息 3.挂失 4.注销 5.冻结 三.借阅管理系统: 1.借书(还书)

财务管理实验报告总结免费范文

财务管理实验报告总结免费范文 一、实验目的 二、实验成员角色分配 团队中的四个人必须有很强的团队意识和强大的凝聚力,这项工作本身就是一项相互配合与在相互帮助中完成的工作,每个人都负 有别人不可替代的任务。如果四个人当中有一个人缺少团队意识, 那只会有一种结果:必输无疑,无论其它人的个人业务水平有多高,因为每个人的工作都是紧密的相互关联、密不可分的。 三、实验过程及分析 (一)生产计划与实行 第一年,我们公司主要是生产低端产品,所以安装了三条生产线分别是两条低端L1,一条在建的中端M1,之所以我们在选择生产线 时选择的都是最贵的,是因为我们小组坚信,只要能生产出多的产品,就一定能盈利。但在产房的购买与租赁问题中,我们出现了错误,这个错误是到后面也无法弥补的。我们第一年选择了厂房租赁,规则上是说厂房租赁每年4万,可到实际操作中就不是这样了,厂 房每年的租金都会翻倍,这也使我们接下来几年的预算全部出错, 甚至在最后两年出现了紧急贷款的情况。 (二)财务变化分析 第一年,公司处于初创期,需要购置厂房、购买设备、聘用工人、采购原材料、生产产品,做好生产的准备。由于购买了设备、原材 料等,所以企业资产总计是呈增长的。处于初创期的企业意味着资 金只出无进,而且根据规则,企业第一年只能卖低端产品,导致资 金流出要大于资金流入,所以企业的营业利润、利润总额以及净利 润均呈负增长。 第二年,在扣除一系列费用之后,虽然公司资金有剩余,但还不足以满足公司本年的经营,所以我们选择了借入长期借款来满足公

司经营。在这一年企业继续购进原材料和设备来扩大生产,实现产 品多样化,同时加之上年所剩产成品使得本年资产总额继续上涨。 本年我们在销售低端产品的基础上增加了中端产品的销售,这一举 措让我们尝到了销售收入的甜头,公司营业利润以及净利润相比上 一年有大幅增长,呈正增长趋势,销售利润率也呈现上涨之势。 第三年,我们不甘于平稳的经营模式,决定扩大生产量,增加厂房和设备,并开始进军高端市场。虽然随之而来的是高额的成本费用,但由于我们公司所占的市场份额比重较高,所以销售收入也是 不菲的,营业利润及净利润几乎高出上一年的50%,销售利润率、 净资产收益率等盈利指标的增长也是可观的。 在第四年到第八年期间,我们企业本着平稳中有突破的精神,继续填置设备,积极扩大生产量,虽然在这期间存在销售状况下降的 情况,但总体销售状况是可观的。由于一些销售收入有回款期限, 所以也导致了企业资金缺乏,只能依靠借入长期贷款来满足企业经 营需求,并且在第七年我们也通过发行股票的方式来筹集资金。总 体而言,这几年的销售收入总是处于波动之中,第六年和第七年达 到最高,销售成本以及各项费用的支出情况也并不稳定,这使得企 业营业利润和净利润无法呈现出一个平稳的增长态势,造成这一结 果的原因之一可能是财务预算工作做得不够细致准确,对于预计销 售量的考虑过于简单。 (三)成本及财务指标分析 从费用控制来看,财务费用比较稳定,在第七年因为发行股票财务费用激增,在其他年份均低于行业水平,主要是我们每年从银行 借债不多,也没有出现过应收账款贴现的现象,表示我们从一开始 财务预算就是较合理的,没有出现过资金严重短缺的年份,但是由 于对系统了解不够充分,我们企业在后两年出现了紧急借款的现象,而且借款数目比较小,这说明在后两期由于业务大,成本高,主要 是原材料购买多,我们企业现金流出现断裂,应该在前期做多些贷款,避免出现紧急贷款这种失误。其次是管理费用,从管理费用分 年趋势图看,公司第一年管理费用最高,达到350000元,主要原因 是购买生产线,第二年、第三年管理费用分别是142000元、157500

操作系统文件管理实验报告

操作系统实验报告实验名称:文件管理 专业班级:网络工程1301 学号: 姓名: 2015 年6 月16 日

实验一文件管理 一、实验目的 文件管理是操作系统的一个非常重要的组成部分。学生应独立用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质容和执行过程有比较深入的了解,掌握它们的实施方法,加深理解课堂上讲授过的知识。 二、预备知识 1.VS2010的使用 2.C#的学习 3.文件主目录与子目录的理解 三、实验容与步骤 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个10 个用户的文件系统,每次用户可保存10 个文件,一次运行用户可以打开5 个文件。系统能够检查打入命令的正确性,出错时能显示出错原因。对文件必须设置保护措施,例如只能执行,允许读等。在每次打开文件时,根据本次打开的要求,在此设置保护级别,即有二级保护。文件的操作至少有Create、delete、open、close、read、write 等命令。 所编写的程序应采用二级文件目录,即设置主文件目录和用户文件目录。前者应包含文件主及它们的目录区指针;后者应给出每个文件占有的文件目录,即文件名,保护码,文件长度以及它们存放的位置等。另外为打开文件设置运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。 程序流程图:

逻辑设计: 使用线性数组表表示MFD,泛型数组表示UFD,每个元素包括用户ID、保存的文件数、再使用线性表表示文件信息,每个元素包括文件名,文件属性(保护码),文件的状态等信息。 物理设计: //主目录 private FileUser[] mfd; //当前用户 private FileUser currentuser; ///

/// 文件 /// public class FileObject { public string filename; public int size=20; public int read=0; public int write = 0; public string author; } /// /// 文件系统用户 /// public class FileUser { public string username;

C--大作业图书管理系统实验报告

附件1: 《面向对象程序设计》 大作业 题学专班姓目 院 业 级 名 学生成绩管理系统 文法学院 教育学 教育学1201 杨欣 指导教师鄢红国 2013 年12 月20 日学号:0121213640126

目录 一二三四五六七八十设计目的 (1) 大作业的内容 (2) 大作业的要求与数据 (3) 大作业应完成的工作 (4) 总体设计(包含几大功能模块) (5) 详细设计(各功能模块的具体实现算法——流程图) (6) 调试分析(包含各模块的测试用例,及测试结果) (7) 总结 (8) 参考资料 (9)

一二 大作业的目的 《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。 大作业的内容 对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数等) 进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出.将图书的信息进行记录,信息内容包含:(1)图书的编号(2)图书的书名(3)图书的库存量。假设,现收集到了一个图书馆的所有图书信息,要求用C语言编写一个简单的图书管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三大作业的要求与数据 1、用C语言实现系统; 2、对图书信息(包括编号、书名、总入库数量、当前库存量、已借出本数)进行管理,包括图书信息的输入、输出、查询、删除、排序、统计、退出. 3、图书信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够 完成以下功能: (1)每一条记录包括一本图书的编号、书名、库存量 (2)图书信息录入功能:(图书信息用文件保存,可以一次完成若干条记录 的输入。) (3)图书信息显示浏览功能:完成全部图书记录的显示。 (4)查询功能:完成按书名查找图书记录,并显示。 (5)图书信息的删除:按编号进行图书某图书的库存量. (6)借书登记系统:可以输入读者编号和所借书号来借书。 (7)还书管理系统:可以输入读者编号和所借书号来还书。 (8)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应 尽可能清晰美观!

财务管理模拟实验报告

财务管理模拟实验报告 课程名称:财务管理综合实验 专业班级:财务管理(4)班 姓名:永侠 学号:10551165 指导教师:老师 实验日期: 2013-**-**

目录 第一部分:实验报告 实验一风险与报酬 实验二股票股价 实验三资金需要测量预测实验四资本成本 实验五筹资决策 实验六投资项目的风险分析实验七应收账款管理 实验八利润分配的经济效果实验九财务比率分析 实验十财务报表分析 实验十一因素分析 实验十二财务综合分析文档第二部分:实习报告 一、资产负债表分析 二、利润表分析 第三部分:小结 一、自我小结 二、指导老师评价

第一部分:实验报告 实验一风险与报酬 一、实验目的 1、理解风险报酬的概念,计算 2、掌握单项资产风险和报酬,投资组合的风险和报酬的计算 3、计算预期报酬率、标准差、标准离差率,并根据计算结果进行风险分析 4、掌握POWER( )函数,SQRT( )函数等函数 5、综合分析各单项资产和投资组合的风险和报酬,尽量的规避风险和取得报酬 二、实验材料 公司某个投资项目有A、B两个方案,投资额均为10000元,其收益的概率分布如下: 要求:分别计算A、B两个方案的预期报酬率、标准差、标准离差率,并进行风险分析。 三、实验方法与步骤 1、在工作表中输入相关公式和函数进行计算

(二)投资组合的风险和报酬 1、通过这次实验我熟悉了投资报酬率、期望报酬率、方差、标准差、离散系数等各种计算的方法和用途,感觉收获良多。风险与报酬的可能性相联系,投资者之所以愿意投资高风险的项目,是因为风险与报酬成正相关,能够带来预期收益。对于衡量公司财务状况,有很多指标,不能片面的从某一个指标就断定公司的经营状况,需要多角度分析及思考得出公司的财务状况,进而更好地为公司做出财务决策,从而整体提高公司的经营能力,使其具有更高的竞争力。 2、单项资产的风险与报酬是通过计算期望报酬率就可以明了的看到所有可能结果的数目,也能看到各结果的发生概率,更有利于投资者判断选择。 3、投资组合的风险和报酬就是指各项单项的期望报酬的加权平均,权重为整个组合的各个资金占总的比重,通过计算可以让投资者更理智的投资。 4、公司的财务报表是反映公司经营状况的有效证据,提高公司的经济利益,需要尽可能大的提高销售收入,减少销售成本。 5、实验中虽然解决了很多问题,但也遇到了诸多问题,对于操作的不熟练是一个较严重的问题,将操作熟练起来对实验结果的得出是有很大帮助的。

管理信息系统实验报告分析

实验报告 课程:管理信息系统 一、实验目的 验证有关概念和理论,加深对概念和知识的理解和认识;熟悉和掌握Visual Basic 6.0 软件的使用方法;初步具备信息管理知识和制作数据字典、系统数据流程图的能力。运用课程讲授的管理信息系统的系统分析方法、模块化系统设计方法以及系统的调试方法进行人事档案管理信息系统的分析、设计、开发、实现与调试。 二、实验方法 面向对象法 三、实验环境及开发工具 1.硬件环境 在最低配置的情况下,系统的性能往往不尽如人意,但现在的硬件性能已经相当的出色,而且价格便宜,因此通常给服务器的配置高性能的硬件。 处理器:Interl Pentium II 266 MX 或更高 内存:64M 硬盘空间:2 GB 显卡:SVGA 显示适配器 显示器:液晶17寸 2.软件环境 操作系统:Windows/98/ME/2000/XP或更高版本 数据库:Microsoft Access 2000 3.实验开发工具:Visual Bisic 6.0程序系统 四、实验内容

(一)、系统分析 1、系统数据流程图 2、数据字典 3、系统中所有实体(包括实体的属性)以及实体之间的联系类型分析 人员的个人资料经过专业的处理部门的处理形成个人档案。档案包括自然情况,工作情况,简历,政治情况等各方面信息,内容比较庞大复杂。将档案信息传送到人员信息库。同时还综合考虑档案管理工作的性质,总结归纳出所需实现

的功能。为人事档案进行服务,对人事的变动、人事资料、以及人事资料的查询,统计等功能。总体上说具有编辑,查询,用户管理,图表统计等功能。然后将最终结果提交到人力资源管理部门,由人力资源管理人员进行审查,以便于对职工的调配。 4、典型处理的表达 档案完整添加用户档案到档案库 个人信息成功添加到档案库 修改用户档案信息 失败退回用户档案 退回用户档案 (二)、系统设计 1、子系统划分(或功能划分或模块划分) 功能划分 1、用户管理 功能:设置使用人事管理系统的用户及其使用权限。整个人事管理系统由多个功能模块组成,不同的模块完成不同的功能,所以可以为不同的职工分配不同的功能,使其具有不同的权限,完成其权限所对应的功能,从而很好地管理好整个系统。 2、辅助表管理 功能:通过它的这个功能可以有效的对本单位人事部门的扩充进行及时的计算机管理。只要管理员进行简单的数据字段添加即可。辅助表管理功能是高级管理员及中级管理员拥有的权限,它的功能是对数据库进行新表的添加。 3、档案编辑 功能:档案编辑模块中有4个子模块。他们是档案卡片、个人简历、家庭成员、历史档案等功能。这些功能因管理员的权限不同所表示出的功能使用也不同,普通管理员没有数据修改及删除的权利。在这些功能里详细的记录了所有单位员工的资料。 4、档案查询 功能:对档案卡片的查询功能,在这里可以查到符合程序要求的任何信息。

财务管理模拟实习报告doc

财务管理模拟实习报告 篇一:财务管理模拟实验报告 财务管理模拟实验报告 一、实验过程 1、组建模拟公司,建立管理团队 以小组为单位组建模拟公司,注册公司名称,建立管理团队(每组6人),准备参与模拟竞争。首先,推选公司总裁,然后,由总裁根据公司生产经营管理的需要进行职能分工,确定财务总监、市场总监、销售总监、供应总监、信息总监等岗位人选,并明确各自具体职责。 2、规划公司经营,编制财务预算 在熟悉模拟公司市场竞争规则的前提下,各公司召开年度财务计划工作会议,对公司目前所处的外部经营环境和内部运营条件进行分析,研究生产经营管理过程中蕴藏着的有利机会和主要威胁,确立公司经营战略和财务管理目标,编制年度财务预算。 公司经营管理战略包括新产品开发战略、新市场进入战略、投资战略、竞争战略等。 财务管理目标可选择利润最大化、股东财富最大化或企业价值最大化等目标。 年度财务预算包括现金预算、生产预算、综合费用预算、销售预算、广告费预算、经营预算、投资预算、管理费用预

算、财务费用预算等。 3、经营模拟公司,开展财务活动 每年年初,根据公司对市场的分析,依据广告费预算,参加产品订货会,支付广告费,登记销售订单;根据上年度财务成果,支付应交税费、应付股利。由于我公司前两年亏损高达38百万,所以在以后年度需将亏损补足才能计提所得税,股利分配也是到第五年盈利较多才开始分配,第六年也采用固定股利支付率政策进行了股利分配。 每年度,根据公司短期融资需要,申请或偿还短期借款,投资(变卖或转产)生产线,订购原材料,支付应付账款,原材料入库,产品生产,按订单交货,收回应收账款,新产品研发投资,支付公司行政管理费。为了赢利,于第一年一季度开始研发乙产品,同时开始安装半自动生产线一条来生产乙产品,为了扩大生产,到第二年一季度租入Y厂房来安装生产线,另外又安装一条半自动生产线生产乙产品,应市场需求,第三年一季度,又为了合理生产乙产品,又开始安装办自动生产线。每年年末,根据公司长期资金需求,确定具体筹资方式,包括申请或归还长期贷款、发行股票等,新市场开拓投资,ISO资格认证投资,支付设备维修费,构建或融资租入厂房,计提固定资产折旧,进行股利分配。我公司于第一年年末申请了四年期长期贷款83百万,后来又借了7百万,总计90百万,第三年年末发行了四年期债券24

停车场管理系统实验报告汇总

华北水利水电学院数据结构实验报告 2011~2012学年第二学期2011级计算机专业 班级:**** 学号:***** 姓名:**** - 实验二栈和队列及其应用 一、实验目的: 1.掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。 2.掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活运用。 二、实验内容: 1.链栈的建立、入栈、出栈操作。 2.环形队列的建立、入队、出队操作。 3.停车场管理。设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 实现提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表(带头结点)实现。 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束。 三、实验要求: 1.C/ C++完成算法设计和程序设计并上机调试通过。 2.撰写实验报告,提供实验结果和数据。 3.写出算法设计小结和心得。 四、程序源代码: 1.#include #include typedef struct stnode { int data; stnode *next;

管理信息系统实验报告

. 经济管理学院 《管理信息系统》实验报告 集发农业生态观光园景区管理系统设计

专业资料 . 课程实验报告基本内容一、系统概述

1、系统背景 集发农业生态观光园作为秦皇岛大型旅游景区,其旅游项目较为齐全,景区内存在餐饮,住宿,娱乐,观光,植物采摘,民俗展示,购物中心等众多旅游项目,但经过我们的网上调查,其还没有建立自己的官方网站系统。我们通过与景区负责人员的沟通,了解到该景区有意向开发自己的官方网站系统,并且对于网站系统内部的板块设计提出了一些特定需求。 2、功能需求 (1)用户注册登录功能 用户可以注册为网站会员。会员支持修改、完善会员基本资料,自助修改密码,查看、管理订单、在线支付订单,对网站进行留言评论、查看留言。 (2)会员管理 后台可以直接添加会员,记录会员注册时间、注册IP、登录次数、最后登录时间,会员详细资料应记录会员发布的信息、商品、购买过的商品、评论留专业资料 . 言及相关资料信息,支持按用户名搜索用户、按注册时间范围显示用户,支持删除、关闭用户。 (3)后台用户 添加后台管理员,支持自定义设置姓名、密码、所属级别、设置

开通或者关闭或者删除的权限。自定义设置用户组的详细权限分配。(4)更新景区、活动、票务信息 随时更新景区景点的介绍,包括文字和图片;自定义设置添加网站活动名称、时间,详情;更改门票、住宿、餐饮的价格及相关信息(5)网站留言 网站动态,实时显示最新留言,会员可以编辑,提交留言,管理员可以回复、删除留言。 (6)支付接口 系统内置网上支付系统:支付宝、网银,配置好账号相关信息即可使用支付接口,支付接口适用于本系统的购物支付。由于时间关系与技术问题,支付功能暂时没有实现,也是本次网站设计课程的不足之处。 3、人员分工 A:系统背景、人员分工、系统目标、子系统划分、业务流程分析、课 程实验报告的汇总与修改 B:系统可行性分析、系统必要性分析 C:输入设计、输出设计、信息系统流程图设计 D:数据库设计、功能结构图设计、数据流程分析 二、系统规划 1、系统目标

相关主题
文本预览
相关文档 最新文档