当前位置:文档之家› 用多态性实现工资发放系统 源代码

用多态性实现工资发放系统 源代码

用多态性实现工资发放系统 源代码
用多态性实现工资发放系统 源代码

#ifndef HEADER_KESHE1

#define HEADER_KESHE1

class Birthdate

{

unsigned year,month;

public:

Birthdate(unsigned=1900,unsigned=01);

void SetYear(unsigned);

void SetMonth(unsigned);

unsigned GetYear() const;

unsigned GetMonth() const;

friend ostream& operator<<(ostream& out, Birthdate& b){

return out<

}

friend istream& operator>>(istream& in,Birthdate& b){

string buf;

in >> buf;

b.SetYear(atoi(buf.substr(0,4).c_str()));

b.SetMonth(atoi(buf.substr(5,2).c_str()));

return in;

}

friend ofstream& operator<<(ofstream& fout, Birthdate& b){

fout <

fout <

return fout;

}

friend ifstream& operator>>(ifstream& fin,Birthdate& b){

string buf;

fin >> buf;

b.SetYear(atoi(buf.substr(0,4).c_str()));

b.SetMonth(atoi(buf.substr(5,2).c_str()));

return fin;

}

};

#endif

#include

#include

#include

#include

using namespace std;

#include"keshe1.h"

Birthdate::Birthdate(unsigned y,unsigned m){

year=y;

month=m;

}

void Birthdate::SetYear(unsigned y)

{

year=y;

}

void Birthdate::SetMonth(unsigned m){

month=m;

}

unsigned Birthdate::GetYear()const{

return year;

}

unsigned Birthdate::GetMonth()const{

return month;

}

#ifndef HEADER_KESHE2

#define HEADER_KESHE2

#include"keshe1.h"

class Employee{

unsigned ID;

string name;

Birthdate bir;

string type;

bool reward;

bool draw;

public:

Employee(unsigned i,string,Birthdate,string);

Employee(Employee& );

void SetName(string);

void SetBirth(unsigned,unsigned);

void SetBirth(Birthdate b);

void SetType(string);

void SetReward(bool);

void SetDraw(bool);

void SetID(unsigned);

unsigned GetId() const;

string GetName() const;

Birthdate GetBirthday() const;

string GetType() const;

bool GetReward(unsigned) const;

bool GetDraw() const;

virtual double Pay() const {return 0;};

virtual void Display() ;

virtual void writeoffile(ofstream& fout) ;

};

#endif

#include

#include

#include

#include

using namespace std;

#include"keshe2.h"

Employee::Employee(unsigned i,string n,Birthdate b,string t):bir(b){ ID=i;

name=n;

type=t;

reward=0;

draw=0;

}

Employee::Employee(Employee& e){

ID=e.ID;

name=https://www.doczj.com/doc/fc6160751.html,;

type=e.type;

reward=e.reward;

draw=e.draw;

bir=e.bir;

}

void Employee::SetName(string n){

name=n;

}

void Employee::SetBirth(unsigned y,unsigned m){

bir.SetYear(y);

bir.SetMonth(m);

}

void Employee::SetBirth(Birthdate b){

bir=b;

}

void Employee::SetType(string t){

type=t;

}

void Employee::SetReward(bool r){

reward=r;

}

void Employee::SetDraw(bool d){

draw=d;

}

void Employee::SetID(unsigned id){

ID=id;

}

unsigned Employee::GetId()const{

return ID;

}

string Employee::GetName()const{

return name;

}

Birthdate Employee::GetBirthday()const{

return bir;

}

string Employee::GetType()const{

return type;

}

bool Employee::GetReward(unsigned m)const{

if(m==bir.GetMonth())

return 1;

return reward;

}

bool Employee::GetDraw()const{

return draw;

}

void Employee::Display(){

cout<

cout<

void Employee::writeoffile(ofstream& fout){

fout<

fout<

}

#ifndef HEADER_KESHE3

#define HEADER_KESHE3

#include"keshe2.h"

class SalariedEmployee:virtual public Employee{

int leaveday;

double salary;

public:

SalariedEmployee(unsigned ,string,Birthdate,string,int,double);

SalariedEmployee(Employee& ,int ,double);

void SetLeaveDay(int);

void SetSalary(double);

int GetLeaveDay() const;

double GetSalary() const;

virtual double Pay() const;

virtual void Display() ;

virtual void writeoffile(ofstream& fout) ;

};

#endif

#include

#include

#include

#include

#include

using namespace std;

#include"keshe3.h"

SalariedEmployee::SalariedEmployee(unsigned i,string n,Birthdate b,string t,int l=0,double s=3000):Employee(i,n,b,t){ leaveday=l;

salary=s;

}

SalariedEmployee::SalariedEmployee(Employee& e,int l,double s ):Employee(e){

leaveday=l;

salary=s;

}

void SalariedEmployee::SetLeaveDay(int l){

leaveday=l;

}

void SalariedEmployee::SetSalary(double s){

salary=s;

}

int SalariedEmployee::GetLeaveDay()const{

return leaveday;

}

double SalariedEmployee::GetSalary()const{

return salary;

}

double SalariedEmployee::Pay()const{

unsigned m;

SYSTEMTIME sys;

GetLocalTime(&sys);

m=sys.wMonth;

if(GetReward(m))

return (salary+30*leaveday+200);

else

return salary+30*leaveday;

}

void SalariedEmployee::Display(){

unsigned m;

cout<<"******************************固定薪金职员***********************************"<

cout<

cout<<"固定月薪"<

Employee::Display();

SYSTEMTIME sys;

GetLocalTime(&sys);

m=sys.wMonth;

if(GetReward(m))

cout<<"200";

else

cout<<"0";

cout<

if(GetDraw())

cout<<"是"<

else

cout<<"否"<

}

void SalariedEmployee::writeoffile(ofstream& fout){

fout<<"G "<

Employee::writeoffile(fout);

fout<

}

#ifndef HEADER_KESHE4

#define HEADER_KESHE4

#include"keshe3.h"

class HourlyEmployee:public Employee{

int hour;

double sperhour;

public:

HourlyEmployee(unsigned ,string,Birthdate,string,int,double);

HourlyEmployee(Employee&,int ,double );

void SetHour(int);

void SetSperHour(double);

int GetHour() const;

double GetSperHour() const;

virtual double Pay() const;

virtual void Display() ;

virtual void writeoffile(ofstream& fout);

};

#endif

#include

#include

#include

#include

#include

using namespace std;

#include"keshe4.h"

HourlyEmployee::HourlyEmployee(unsigned i,string n,Birthdate b,string t,int h,double s):Employee(i,n,b,t){ hour=h;

sperhour=s;

}

HourlyEmployee::HourlyEmployee(Employee& e,int h,double s):Employee(e){

hour=h;

sperhour=s;

}

void HourlyEmployee::SetHour(int h){

hour=h;

}

void HourlyEmployee::SetSperHour(double s){

sperhour=s;

}

int HourlyEmployee::GetHour()const{

return hour;

}

double HourlyEmployee::GetSperHour()const{

return sperhour;

}

double HourlyEmployee::Pay()const{

unsigned m;

SYSTEMTIME sys;

GetLocalTime(&sys);

m=sys.wMonth;

if(GetReward(m))

return (sperhour*160+sperhour*1.5*(hour-160)+200);

else

return (sperhour*160+sperhour*1.5*(hour-160));

}

void HourlyEmployee::Display(){

unsigned m;

cout<<"***************************计时职员**********************************"<

cout<

cout<<"工作时长"<

Employee::Display();

SYSTEMTIME sys;

GetLocalTime(&sys);

m=sys.wMonth;

if(GetReward(m))

cout<<"200";

else

cout<<"0";

cout<

if(GetDraw())

cout<<"是"<

else

cout<<"否"<

}

void HourlyEmployee::writeoffile(ofstream& fout){

fout<<"J "<

Employee::writeoffile(fout);

fout<

}

#ifndef HEADER_KESHE5

#define HEADER_KESHE5

#include"keshe4.h"

class CommisionEmployee:virtual public Employee{

double sale;

double ratio;

public:

CommisionEmployee(unsigned ,string,Birthdate,string,double,double);

CommisionEmployee(Employee&,double,double);

void SetSale(double);

void SetRatio(double);

double GetSale() const;

double GetRatio() const;

virtual double Pay() const;

virtual void Display() ;

virtual void writeoffile(ofstream& fout) ;

};

#endif

#include

#include

#include

#include

#include

using namespace std;

#include"keshe5.h"

CommisionEmployee::CommisionEmployee(unsigned i,string n,Birthdate b,string t,double s,double a): Employee(i,n,b,t){

sale=s;

ratio=a;

}

CommisionEmployee::CommisionEmployee(Employee& e,double s,double a):Employee(e){ sale=s;

ratio=a;

}

void CommisionEmployee::SetSale(double s){

sale=s;

}

void CommisionEmployee::SetRatio(double a){

ratio=a;

}

double CommisionEmployee::GetSale()const{

return sale;

}

double CommisionEmployee::GetRatio()const{

return ratio;

}

double CommisionEmployee::Pay()const{

unsigned m;

SYSTEMTIME sys;

GetLocalTime(&sys);

m=sys.wMonth;

if(sale<30000){

if(GetReward(m))

return ((sale*ratio-(30000-sale)*(2.0/1000))+200);

else

return (sale*ratio-(30000-sale)*(2.0/1000));

}

else{

if(GetReward(m))

return (sale*ratio+200);

else

return sale*ratio;

}

void CommisionEmployee::Display(){

unsigned m;

cout<<"**************************普通销售员**********************************"<

cout<

cout<<"销售额"<

Employee::Display();

SYSTEMTIME sys;

GetLocalTime(&sys);

m=sys.wMonth;

if(GetReward(m))

cout<<"200";

else

cout<<"0";

cout<

if(sale<30000)

cout<<(30000-sale)*(2.0/1000)<

else

cout<<"0"<

if(GetDraw())

cout<<"是"<

else

cout<<"否"<

}

void CommisionEmployee::writeoffile(ofstream& fout){

fout<<"P "<

Employee::writeoffile(fout);

fout<

}

#ifndef HEADER_KESHE6

#define HEADER_KESHE6

#include"keshe5.h"

class BasePlus:public SalariedEmployee,public CommisionEmployee{

public:

BasePlus(unsigned i,string,Birthdate,string,double,int,double,double);

BasePlus(CommisionEmployee&, SalariedEmployee&);

virtual double Pay() const;

virtual void Display() ;

virtual void writeoffile(ofstream& fout) ;

};

#endif

#include

#include

#include

#include

#include

using namespace std;

#include"keshe6.h"

BasePlus::BasePlus(unsigned i,string n,Birthdate b,string t,double s,int l,double a,double o):

Employee(i,n,b,t),SalariedEmployee(i,n,b,t,l,s),CommisionEmployee(i,n,b,t,a,o){}

BasePlus::BasePlus(CommisionEmployee& c,SalariedEmployee& s):Employee(c),CommisionEmployee(c),SalariedEmployee(s){} double BasePlus::Pay() const{

unsigned m;

SYSTEMTIME sys;

GetLocalTime(&sys);

m=sys.wMonth;

if(GetSale()<30000){

if(GetReward(m))

return (GetSalary()+GetSale()*GetRatio()-GetLeaveDay()*30-(30000-GetSale())*(2.0/1000)+200);

else

return (GetSalary()+GetSale()*GetRatio()-GetLeaveDay()*30-(30000-GetSale())*(2.0/1000));

}

else{

if(GetReward(m))

return (GetSalary()+GetSale()*GetRatio()-GetLeaveDay()*30+200);

else

return (GetSalary()+GetSale()*GetRatio()-GetLeaveDay()*30);

}

}

void BasePlus::Display(){

unsigned m;

cout<<"***************************带薪销售员**************************"<

cout<

cout<<"销售额"<

Employee::Display();

SYSTEMTIME sys;

GetLocalTime(&sys);

m=sys.wMonth;

if(GetReward(m))

cout<<"200";

else

cout<<"0";

cout<

if(GetSale()<30000)

cout<<(GetLeaveDay()*30+(30000-GetSale())*(2.0/1000))<

else

cout<

if(GetDraw())

cout<<"是"<

else

cout<<"否"<

}

void BasePlus::writeoffile(ofstream& fout){

fout<<"D "<

Employee::writeoffile(fout);

fout<

}

class Node

{

Employee& employee;

Node *next,*prev;

public:

Node(Employee&);

Employee* GetEmployee();

Node* GetNext() const;

void SetNext(Node*);

Node* GetPrev() const;

void SetPrev(Node*);

};

#endif

#include

#include

#include

#include

using namespace std;

#include"keshe7.h"

Node::Node(Employee& e):employee(e){

next=NULL;

prev=NULL;

}

Employee* Node::GetEmployee(){

return &employee;

}

Node* Node::GetNext() const{

return next;

}

void Node::SetNext(Node* n){

next=n;

}

Node* Node::GetPrev()const{

return prev;

}

void Node::SetPrev(Node* n){

prev=n;

}

#ifndef HEADER_KESHE8

#define HEADER_KESHE8

#include"keshe7.h"

class EmployeeList

{

int size;

Node* pHead;

public:

EmployeeList();

~EmployeeList();

void Display() ;

bool Append(Employee&);

bool Del(unsigned);

Employee* Find(unsigned) const;

Employee* Find(EmployeeList&,string) const;

int GetSize() const;

bool IsEmpty() const;

void Clear();

Node* First() const;

Node* End();

friend ofstream& operator<<(ofstream& out,EmployeeList l){ Node* p=l.pHead;

while(p){

p->GetEmployee()->writeoffile(out);

p=p->GetNext();

}

return out;

}

};

#endif

#include

#include

#include

#include

using namespace std;

#include"keshe8.h"

EmployeeList::EmployeeList(){

size=0;

pHead=NULL;

}

EmployeeList::~EmployeeList(){

delete pHead;

}

void EmployeeList::Display(){

if(!pHead)

cout<<"没有员工"<

else{

Node *p=pHead;

while(p){

(p->GetEmployee())->Display();

p=p->GetNext();

}

}

}

bool EmployeeList::Append(Employee& e){

size++;

Node *pNew=new Node(e);

if(!pNew) return false;

if(!pHead) pHead=pNew;

else{

Node* p=End();

p->SetNext(pNew);

pNew->SetPrev(p);

}

return true;

}

bool EmployeeList::Del(unsigned s){

Node* p=pHead;

Node* p1;

Node* p2;

if(!pHead) return false;

while(p->GetEmployee()->GetId()!=s){

p=p->GetNext();

}

if(size==1){

size--;

delete pHead;

cout<<"该公司没有员工"<

}

else if(s==pHead->GetEmployee()->GetId()){

pHead=pHead->GetNext();

delete p;

}

else if(s==End()->GetEmployee()->GetId()){

size--;

p1=p->GetPrev();

p1->SetNext(NULL);

delete p;

}

else{

size--;

p1=p->GetPrev();

p2=p->GetNext();

p1->SetNext(p2);

p2->SetPrev(p1);

delete p;

}

return true;

}

Employee* EmployeeList::Find(unsigned n)const{

Node* p=First();

while(p){

if((p->GetEmployee())->GetId()==n)

break;

p=p->GetNext();

}

if(p==NULL){

cout<<"不存在编号为"<

return 0;

}

else

return p->GetEmployee();

}

Employee* EmployeeList::Find(EmployeeList& e,string n)const{ Node* p=e.pHead;

for(int i=1;i<=e.size;i++)

if((p->GetEmployee())->GetName()==n)

if(i>e.size){

cout<<"无该职员"<

return 0;

}

else

return p->GetEmployee();

}

int EmployeeList::GetSize()const{

return size;

}

bool EmployeeList::IsEmpty() const{

if(size<=0)

return true;

else

return false;

}

void EmployeeList::Clear(){

size=0;

Node* p=pHead;

while(p){

pHead=p;

p=pHead->GetNext();

delete pHead;

}

}

Node* EmployeeList::First()const{

return pHead;

}

Node* EmployeeList::End(){

Node* p=pHead;

while(p->GetNext())

p=p->GetNext();

return p;

}

#include

#include

#include

#include

using namespace std;

#include"keshe8.h"

static unsigned code=0;

Birthdate& add();

void first(EmployeeList& j);

void initialize(EmployeeList& j);

string putinformation(EmployeeList& j){

char c;

int l,h;

bool draw;

string s1,n,s;

unsigned y,d,m;

double sa,sp,sal,r;

cout<<"请输入文件的路径!"<

cin>>s;

ifstream fin(s.c_str());

try{if(!fin)

throw s;

}

catch(string s){

cout<

}

while(fin>>c){

fin>>d>>n>>y>>m>>s1>>draw;

if(d>code)

Birthdate b(y,m);

switch(c){

case'G':{

fin>>sa>>l;

SalariedEmployee *e=new SalariedEmployee(d,n,b,s1,l,sa);

e->SetDraw(draw);

j.Append(*e);

}

break;

case'J':{

fin>>h>>sp;

HourlyEmployee *e=new HourlyEmployee(d,n,b,s1,h,sp);

e->SetDraw(draw);

j.Append(*e);

}

break;

case'P':{

fin>>sal>>r;

CommisionEmployee *e=new CommisionEmployee(d,n,b,s1,sal,r);

e->SetDraw(draw);

j.Append(*e);

}

break;

case'D':{

fin>>sa>>sal>>r>>l;

BasePlus *e=new BasePlus(d,n,b,s1,sa,l,sal,r);

e->SetDraw(draw);

j.Append(*e);

}

break;

}

}

return s;

}

void first(EmployeeList& j){

if(j.GetSize())

j.Display();

else {

cout<<"**错误操作!!!**"<

cout<<"初始化系统信息"<

initialize(j);

system("cls");

}

}

void initialize(EmployeeList& j){

string s,name;

double salary;

int a=1,choice,leaveday;

while(a){

cout<<"**********菜单***********"<

cout<<"1.添加固定薪水员工数据"<

cout<<"2.添加计时员工数据"<

cout<<"3.添加普通销售员工数据"<

cout<<"4.带薪销售员工数据"<

cout<<"5.员工已完全记录,退出"<

cout<<"请输入你的选择:"<

cin>>choice;

switch(choice){

case 1:{

++code;

cout<<"请输入员工的名字"<

cin>>name;

cout<<"请输入员工的工资"<

cin>>salary;

cout<<"请输入员工请假的天数"<

cin>>leaveday;

SalariedEmployee *e=new SalariedEmployee(code,name,add(),"固薪",leaveday,salary);

j.Append(*e);

}

break;

case 2:{

int time;

double timesalary;

cout<<"请输入员工的名字"<

cin>>name;

cout<<"请输入其工作时长"<

cin>>time;

cout<<"请输入其时薪"<

cin>>timesalary;

++code;

HourlyEmployee *e=new HourlyEmployee(code,name,add(),"计时",time,timesalary);

j.Append(*e);

}

break;

case 3:{

double sale,ratio;

cout<<"请输入员工的名字"<

cin>>name;

cout<<"请输入其销售额"<

cin>>sale;

cout<<"请输入其提成比例"<

cin>>ratio;

++code;

CommisionEmployee *e=new CommisionEmployee(code,name,add(),"普销",sale,ratio);

j.Append(*e);

}

break;

case 4:{

unsigned leaveday;

double sale,salary,ratio;

cout<<"请输入员工的名字"<

cin>>name;

cout<<"请输入其固定工资"<

cin>>salary;

cout<<"请输入其请假的天数"<

cin>>leaveday;

cout<<"请输入其销售额"<

cin>>sale;

cout<<"请输入其提成比例"<

cin>>ratio;

++code;

BasePlus *e=new BasePlus(code,name,add(),"带销",salary,leaveday,sale,ratio);

j.Append(*e);

}

break;

case 5:

a=0;

break;

default:cout<<"没有该部门,请重新输入!"<

}

system("cls");

}

}

bool Id(EmployeeList& j,unsigned id){

int i,a=1;

Employee* p=j.Find(id);

if(!p)

return false;

j.Find(id)->Display();

cout<<"1.修改该员工的是否领取工资的情况"<

cout<<"2.修改该员工的生日"<

cout<<"3.修改该员工的工种"<

cout<<"4.修改该员工的基本薪水"<

cout<<"5.修改该职员的工作时长"<

cout<<"6.修改该职员的时薪"<

cout<<"7.修改该员工的销售额"<

cout<<"8.修改该员工的提取比例"<

cout<<"9.修改该员工的请假天数"<

cout<<"10.修改完成,退出"<

while(a){

cout<<"请输入你的选择"<

cin>>i;

switch(i){

case 1:{

bool f;int m;

cout<<"1.已领取工资"<

cout<<"2.没有领取"<

cout<<"请输入你的选择"<

cin>>f;

cout<<"1.确认修改"<

cout<<"2.退出"<

cin>>m;

if(m==1){

j.Find(id)->SetDraw(f);

j.Find(id)->Display();

}

else

break;

}

break;

case 2:{

int m;

unsigned ye,mo;

cout<<"请输入该职员的出生年份以及月份"<

cin>>ye>>mo;

cout<<"1.确认修改"<

cout<<"2.退出"<

cin>>m;

if(m==1){

j.Find(id)->SetBirth(ye,mo);

j.Find(id)->Display();

}

else

break;

}

break;

case 3:{

int ho,le;

string ty;

double sh,sa,sal,ra;

cout<<"请输入该职员的工作类型"<

cin>>ty;

j.Del(id);

if(ty=="带销"){

cout<<"请输入该职员的固定工资"<

cin>>sa;

cout<<"请输入该职员的请假天数"<

cin>>le;

cout<<"请输入该职员的销售额"<

cin>>sal;

cout<<"请输入该职员的提成比例"<

cin>>ra;

cout<

BasePlus* b=new BasePlus(id,p->GetName(),p->GetBirthday(),"带销",sa,le,sal,ra);

j.Append(*b);

j.Find(id)->Display();

}

else if(ty=="固薪"){

cout<<"请输入该职员的固定工资"<

cin>>sa;

cout<<"请输入该职员的请假天数"<

cin>>le;

SalariedEmployee* s=new SalariedEmployee(id,p->GetName(),p->GetBirthday(),"固薪",sa,le);

j.Append(*s);

j.Find(id)->Display();

}

else if(ty=="计时"){

cout<<"请输入该职员的工作时长"<

cin>>ho;

cout<<"请输入该职员的时薪"<

cin>>sh;

HourlyEmployee* h=new HourlyEmployee(id,p->GetName(),p->GetBirthday(),"计时",ho,sh);

j.Append(*h);

j.Find(id)->Display();

}

else if(ty=="普销"){

CommisionEmployee* c=new CommisionEmployee(id,p->GetName(),p->GetBirthday(),"普销",sal,ra);

j.Append(*c);

j.Find(id)->Display();

}

else{

cout<<"不存在该类型"<

j.Append(*p);

}

}

break;

case 4:{

double sa;

cout<<"请输入该职员的固定工资"<

cin>>sa;

SalariedEmployee* em=dynamic_cast(p);

em->SetSalary(sa);

j.Find(id)->Display();

}

break;

case 5:{

int ho;

cout<<"请输入该职员的工作时长"<

cin>>ho;

dynamic_cast(p)->SetHour(ho);

j.Find(id)->Display();

}

break;

case 6:{

double sh;

cout<<"请输入该职员的时薪"<

cin>>sh;

dynamic_cast(p)->SetSperHour(sh);

j.Find(id)->Display();

}

break;

case 7:{

double sal;

cout<<"请输入该职员的销售额"<

cin>>sal;

dynamic_cast(p)->SetSale(sal);

j.Find(id)->Display();

}

break;

case 8:{

double ra;

cout<<"请输入该职员的提成比例"<

cin>>ra;

dynamic_cast(p)->SetRatio(ra);

j.Find(id)->Display();

}

break;

case 9:{

int le;

cout<<"请输入该职员的请假天数"<

cin>>le;

dynamic_cast(p)->SetLeaveDay(le);j.Find(id)->Display();

}

break;

case 10:a=0;break;

default:cout<<"错误输入"<

}

}

return true;

}

Birthdate& add(){

unsigned y,m;

cout<<"请输入员工的出生年份"<

cin>>y;

cout<<"请输入员工的出生月份"<

cin>>m;

Birthdate *e=new Birthdate(y,m);

return *e;

}

#include

#include

#include

#include

using namespace std;

#include"keshe8.h"

void first(EmployeeList& j);

void initialize(EmployeeList& j);

bool Id(EmployeeList& j,unsigned id);

string putinformation(EmployeeList& j);

void main(){

EmployeeList jiajia;

int choice;

unsigned id;

string s=putinformation(jiajia);

while(1){

cout<<"*********************欢迎访问佳佳公司网***********************"<

cout<<"*********菜单*********"<

cout<<"1.输出职工信息"<

cout<<"2.添加新职工"<

cout<<"3.删除职工信息"<

cout<<"4.修改职工信息"<

cout<<"5.输出指定职工信息"<

cout<<"6.工资发放"<

cout<<"7.保存退出"<

cout<<"!特别提醒:保存"<

cout<<"请输入你的选择"<

cin>>choice;

switch(choice){

case 1:first(jiajia);

case 2:

initialize(jiajia);

jiajia.Display();

system("cls");

break;

case 3:{

cout<<"请输入要删除的员工编号:"<

cin>>id;

if(!jiajia.Find(id))

break;

else{

jiajia.Find(id)->Display();

cout<<"**确认输入**"<

cout<<"1.删除"<

cout<<"2.退出"<

cout<<"请输入你的选择"<

int cc;

cin>>cc;

switch(cc){

case 1:

if(jiajia.Del(id))

cout<<"删除成功"<

else

cout<<"没有删除成功"<

break;

case 2:break;

}

}

system("cls");

break;

}

case 4:

int m;

double a;

cout<<"1.修改全部计时职工的时薪"<

cout<<"2.修改指定员工的信息"<

cin>>m;

if(m==1){

cout<<"请输入时薪的变化值"<

cout<<"正值为增加"<

cout<<"负值为减少"<

cin>>a;

Node *p=jiajia.First();

for(int i=1;i

if(p->GetEmployee()->GetType()=="计时")

dynamic_cast(p->GetEmployee())->SetSperHour(dynamic_cast(p->GetEmployee())->GetSperHour() +a);

p=p->GetNext();

}

}

else{

cout<<"请输入职工的编号"<

cin>>id;

Id(jiajia,id);

system("cls");

}

break;

case 5:{

int b;

cout<<"1.按工种分类输出"<

cout<<"2.按查找的姓名输出"<

cout<<"3.按查找的编号输出"<

cout<<"4.退出"<

switch(b){

case 1:{

string type;

int number=0;

cout<<"请输入要输出的职工的工种"<

cin>>type;

Node* p=jiajia.First();

for(int i=1;i<=jiajia.GetSize();i++){

if((p->GetEmployee())->GetType()==type){

++number;

(p->GetEmployee())->Display();

}

p=p->GetNext();

}

if(number==0)

cout<<"本公司不存在这种类型的员工!"<

else

cout<<"在该类工作中现有"<

}

break;

case 2:{

string name;

int number=0;

cout<<"请输入所要查询的员工的名字"<

cin>>name;

Node* p=jiajia.First();

for(int i=1;i<=jiajia.GetSize();i++){

if((p->GetEmployee())->GetName()==name){

++number;

(p->GetEmployee())->Display();

}

p=p->GetNext();

}

if(number==0)

cout<<"本公司不存在名叫"<

else

cout<<"本公司有"<

}

break;

case 3:{

int n;

int number=0;

cout<<"请输入所要查询的职工的编号"<

cin>>n;

Node* p=jiajia.First();

for(int i=1;i<=jiajia.GetSize();i++){

if((p->GetEmployee())->GetId()==n)

break;

p=p->GetNext();

}

if(i>jiajia.GetSize())

cout<<"本公司不存在编号为"<

else

(p->GetEmployee())->Display();

}

break;

case 4:break;

}

}break;

case 6:{

int y;

cout<<"1.发放指定员工的工资"<

cout<<"2.发放全部员工的工资"<

cout<<"请输入你的选择"<

switch(y){

case 1:{

int i;

cout<<"请输入要求发放工资的员工的编号"<

cin>>i;

Node* p=jiajia.First();

for(int j=1;j<=jiajia.GetSize();j++){

if((p->GetEmployee())->GetId()==i)

break;

p=p->GetNext();

}

if(j>jiajia.GetSize())

cout<<"本公司不存在编号为"<

else if(p->GetEmployee()->GetDraw()){

p->GetEmployee()->Display();

cout<<"该员工已领取本月工资!"<

}

else{

p->GetEmployee()->Display();

p->GetEmployee()->SetDraw(1);

p->GetEmployee()->Display();

}

}

break;

case 2:{

Node* p=jiajia.First();

for(int j=1;j<=jiajia.GetSize();j++){

p->GetEmployee()->Display();

p->GetEmployee()->SetDraw(1);

p=p->GetNext();

}

}

break;

}

}

break;

case 7:{

ofstream fout(s.c_str());

try{

if(!fout)

throw s;

}

catch(string s){

cout<

exit(0);

}

if(jiajia.IsEmpty())

exit(0);

else

fout<

exit(0);

}

break;

}

}

system("cls");

}

管理信息系统课后习题答案全解答案第四版

第一章 1.1什么是信息?信息和数据有何区别? 答:(1)信息是关于客观事实的可通信的知识。首先,信息是客观世界各种事物的特征的反映,其次,信息是可以通信的最后,信息形成知识。 (2)信息的概念不同于数据。数据是记录客观事物的,可鉴别的符号,这些符号不仅包括数字还包括字符,文字,图形等。数据经过处理仍然是数据。处理数 据是为了更好地解释。只有经过解释,数据才有意义,才成为信息。可以说, 信息是经过加工之后,对客观世界产生影响的数据。同一数据,每个人的解 释可能不同,其对决策的影响也可能不同。决策者利用经过处理的数据作出 决策,可能取得成功,也可能遭受失败,关键在于对数据的解释是否正确, 因为不同的解释往往来自不同的背景和目的。 1.2试述信息流与物流、资金流、事物流的关系。 答:(1)组织中各项活动表现为物流、资金流、事物流和信息流的流动。 ①物流是实物的流动的过程。 ②资金流是伴随物流而发生的资金的流动的过程。 ③事物流是各项管理活动的工作流程。 ④信息流伴随以上各种流的流动而流动,它既是其他各种流的表现和描述,又是用于掌握、指挥和控制其他流运动的软资源。 (2)信息流处于特殊地位: ①伴随物流、资金流、事物流产生而产生。 ②是各种流控制的依据和基础。 1.3如何理解人是信息的重要载体和信息意义的解释者? 答:信息系统包括信息处理系统和信息传输系统两个方面。信息处理系统对数据进行处理,使它获得新的结构与形态或者产生新的数据。由于信息的作用只有在广泛交流中才能充分发挥出来,因此,通信技术的发展极大地促进了信息系统的发展。广义的信息系统概念已经延伸到与通信系统相等同。这里的通信不仅是通讯,而且意味着人际交流和人际沟通,其中包含思想的沟通,价值观的沟通和文化的沟通。广义的沟通系统强调“人”本身不仅是一个重要的沟通工具,还是资讯意义的阐述者,所有的沟通媒介均需要使资讯最终可为人类五官察觉与阐述,方算是资讯的沟通媒介。 1.4什么是信息技术?信息技术在哪些方面能给管理提供支持? 答:广义而言,信息技术是指能充分利用与扩展人类信息器官功能的各种方法、工具与技能的总和。该定义强调的是从哲学上阐述信息技术与人的本质关系。中义而言,信息技术是指对信息进行采集、传输、存储、加工、表达的各种技术之和。该定义强调的是人们对信息技术功能与过程的一般理解。狭义而言,信息技术是指利用计算机、网络、广播电视等各种硬件设备及软件工具与科学方法,对文图声像各种信息进行获取、加工、存储、传输与使用的技术之和。该定义强调的是信息技术的现代化与高科技含量。 信息技术对计划职能的支持;对组织职能和领导职能的支持;对控制职能的支持。由此可见,信息系统对管理具有重要的辅助和支持作用,现代管理要依靠信息系统来实现其管理职能,管理思想和管理方法。 1.5为什么说管理信息系统并不能解决管理中的所有问题? 答:管理是一种复杂的获得,它既涉及客观环境,又涉及人的主观因素。 由于生产和社会环境的复杂性,也由于事物之间复杂的相互联系和事物的多变性,等等原因,人们在解决管理问题时不可能掌握所有的数据,更不可能把所有的,待选择的解决方案都考虑进去,而管理信息系统解决问题时运行的程序是由人来编写的。

管理信息系统可行性分析报告

研究生管理信息系统可行性分析报告 一系统建立的背景及意义 1.系统建立的背景 随着学校校研究生招生人数的不断增长,研究生的管理工作以日趋繁重,由于研究生培养方式灵活,更给管理工作带来了难度。为学校研究生管理部门建立一套网络化的研究生管理信息系统已经迫在眉睫。学校研发的研究生管理信息系统通过对学生选课、课表编排、成绩查询和分析等管理事务的网络化和自动化,减少了研究生管理工作中大量烦杂的工作。 2.现在系统存在的问题分析 (1)网络环境的可扩展性不够大 (2)选课管理、排课管理功能不够简便 (3)教学计划的制定、选课管理、课表的编排、考试的安排、成绩的录入查询信息不便 二系统的可行性研究 1.系统的开发方式和目标 学校需要一套管理信息系统,能够通过对学生选课、课表编排、成绩查询和分析等管理事务的网络化和自动化,减少了研究生管理工作中大量烦杂的工作。 根据学校的状况,迫切需要一套管理系统: (1)购置商品化的系统 (2)根据自身实际情况,自行开发系统 通过管理部门讨论,认为购买商品化的系统软件有以下弊端(1)经费支出大 (2)功能难以适合学校的实际情况 鉴于此,最好的方法就是自行组织开发系统 2.系统的可行性分析 (1)系统实施运行的可行性 各部门人员都已经熟练掌握计算机的基本实用方法和操作技能,对新系统的开发表达出极大的热情,提出了很多好的建议和要求

(2)技术上的可行性 本系统在网络环境下,采用客户机/服务器形式利用最先进的开发工具和开发平台(服务器操作系统:Miorosoft中文Windows NT 4.0;数据库系统:MSSQL Server 6.5For Windows NT.客户机操作系统:Microsoft中文Windows 95;软件开发工具为:Power Builder 5 0 F0r Windows 95)系统在数据库设计方面,完全依据国家教委、国务院学位委员会最新颁布的‘高等学校和科研机构研究生管理基本信息集”规定的标准来设计的,确保了研究生管理工作的标准化和代码规范化。 系统采用模块化结构和规范化的代码结构,使得系统具有通用性、可扩充性及良好的可维护性。 系统现阶段的发展过程中,利用现有人力和物力是完全具备的能力开发出来的,作为阶段性产品,日后的发展空间大,实现方法逐步简单容易,所以学籍管理系统的技术上是完全可行的。 (3)经济上的可行性 1、投资预算满足硬环境的,软件费(包括服务和安装):2万元;没有硬环 境的,可帮助设计、购置、安装硬件,硬件安装费及软件费共25万元。 2、效益估计如果系统运行良好,提高工作效率5倍多。 本系统开发人员少,投资少,技术含量高,但是它带来了无形的不可估量的收益,因次产品在经济上是可行的。 综上所述,我们有理由相信本系统产品的开发、生产是完全可行的!

存储系统那些事

存储系统从其与生俱来的使命来说,就难以摆脱复杂系统的魔咒。无论是从单机时代的文件系统,还是后来C/S或B/S结构下数据库这样的存储中间件兴起,还是如今炙手可热的云存储服务来说,存储都很复杂,而且是越来越复杂。 存储为什么会复杂,要从什么是存储谈起。存储这个词非常平凡,存储+ 计算(操作)就构成了一个朴素的计算机模型。简单来说,存储就是负责维持计算系统的状态的单元。从维持状态的角度,我们会有最朴素的可靠性要求。比如单机时代的文件系统,机器断电、程序故障、系统重启等常规的异常,文件系统必须可以正确地应对,甚至对于磁盘扇区损坏,文件系统也需要考虑尽量将损失降到最低。对于大部分的业务程序而言,你只需要重点关注业务的正常分支流程就行,对于出乎意料的情况,通常只需抛出一个错误,告诉用户你不该这么玩。但是对于存储系统,你需要花费绝大部分精力在各种异常情况的处理上,甚至你应该认为,这些庞杂的、多样的错误分支处理,才是存储系统的“正常业务逻辑”。 到了互联网时代,有了C/S或B/S结构,存储系统又有了新指标:可用性。为了保证服务质量,那些用户看不见的服务器程序必须时时保持在线,最好做到逻辑上是不宕机的(可用性100%)。服务器程序怎么才能做到高可用性?答案是存储中间件。没有存储中间件,意味着所有的业务程序,都必须考虑每做一步就对状态进行持久化,以便自己挂掉后另一台服务器(或者自己重启后),知道之前工作到哪里了,接下去应该做些什么。但是对状态进行持久化(也就是存储)会非常繁琐,如果每个业务都自己实现,负担无疑非常沉重。但如果有了高可用的存储中间件,服务器端的业务程序就只需操作存储中间件来更新状态,通过同时启动多份业务程序的实例做互备和负载均衡,很容易实现业务逻辑上不宕机。 所以,数据库这样的存储中间件出现基本上是历史必然。尽管数据库很通用,但它决不会是唯一的存储中间件。比如业务中用到的富媒体(图片、音视频、Office文档等),我们很少会去存储到数据库中,更多的时候我们会把它们放在文件系统里。但是单机时代诞生的文件系统,真的是最适合存储这些富媒体数据的么?不,文件系统需要改变,因为: 1. 伸缩性。单机文件系统的第一个问题是单机容量有限,在存储规模超过一台机器可管理的 时候,应该怎么办。 2. 性能瓶颈。通常,单机文件系统在文件数目达到临界点后,性能会快速下降。在4TB的大 容量磁盘越来越普及的今天,这个临界点相当容易到达。 3. 可靠性要求。单机文件系统通常只是单副本的方案,但是今天单副本的存储早已无法满足 业务的可靠性要求。数据需要有冗余(比较经典的做法是3副本),并且在磁盘损坏时及早修复丢失的数据,以避免所有的副本损坏造成数据丢失。 4. 可用性要求。单机文件系统通常只是单副本的方案,在该机器宕机后,数据就不可读取, 也不可写入。 在分布式存储系统出现前,有一些基于单机文件系统的改良版本被一些应用采纳。比如在单机文件系统上加RAID5 做数据冗余,来解决单机文件系统的可靠性问题。假设RAID5 的数据修复时间是1天(实际上往往做不到,尤其是业务系统本身压力比较大的情况下,留给RAID 修复用的磁盘读写带宽很有限),这种方案单机的可靠性大概是100年丢失一次数据(即可靠性是2个9)。看起来尚可?但是你得小心两种情况。一种是你的集群规模变大,你仍然沿用这个土方法,比如你现在有100 台这样的机器,那么就会变成1年就丢失一次数据。另一种情况是如果实际数据修复时间是3 天,那么单机的可靠性就直降至4年丢失一次数据,100台就会是15天丢失一次数据。这个数字显然无法让人接受。

信息系统管理形成性考试复习资料三

26. 系统分析的最终目标是建立新系统的逻辑模型,为了建立这样的模型,一般按照怎样的步骤进行 系统分析? 系统分析阶段的主要工作步骤如下: (1)对当前系统进行详细调查收集数据; (2)进行业务流程分析,建立当前系统的物理模型; (3)进行数据流程分析,建立当前系统的逻辑模型,然后根据用户的需求,补充完善,建 立新系统的逻辑模型; (4)编写系统分析说明书,把上述分析过程和结果以文档形式保存。 27. 如何理解“耦合小、内聚大”原则? 系统设计的目的之一是将系统分解成为一些相对独立、功能单一的模块。耦合和内聚这两个 概念就是度量模块独立性、衡量模块划分质量的重要概念。耦合表示模块之间的联系程度,有数据耦合、控制耦合、非法耦合等方式。数据耦合是一种较好的耦合方式。内聚 是用来表示模块内部各成分之间的联系程度,有巧合内聚、逻辑内聚、过程内聚、通信内聚、 顺序内聚、功能内聚等方式,其中巧合内聚的性能最好。一个合理的模块划分,应该是 内部联系强,模块间尽可能独立,接口明确、简单,有适当的共用性,即满足“耦合小,内 聚大”的原则。 试卷总分:100 测试时间:-- 单选题 |判断题 |问答题 16. 逻辑模型是指仅在逻辑上确定的新系统模型,而不涉及具体的物理实现。() ?√ ?× 17. 数据库设计的主要任务是对系统分析阶段的数据字典进行规范整理,设计出若干个基本二维表,并勾画出表与表之间的关系。() ?√

?× 18. 系统开发的目是把当前系统的物理模型转化为目标系统的物理模型。() ?√ ?× 19. 系统分析的主要步骤概括说就是:从物理模型抽象逻辑模型。() ?√ ?× 20. 程序设计过程就是把系统分析的结果翻译成可为计算机理解、可执行的代码的过程。() ?√ ?× 21. 简单地讲,系统分析中需要确定的逻辑模型就是指业务流程图。() ?√ ?× 22.

图书管理信息系统可行性分析报告

图书管理信息系统可行性分析报告 图书馆管理信息系统 可 行 性 研 究 报 告

1.1.引言 1.1 编写目的 随着科学技术的高速发展,我们已步入数字化、网络化的时代。图书馆是学校的文献信息中心,是为全校教学和科学研究服务的学术性机构,是学校信息化的重要基地。图书馆的工作是学校教学和科学研究工作的重要组成部分,是全校师生学习和研究的重要场所。为了更好地适应这种网络数字化信息的环境,一种成功的跟踪最新技术,充分利用软硬件资源,扎根于准、新、全数字资源的"图书馆管理信息系统"已孕育而生。 另外,由于图书馆陈旧的管理手段给读者和图书馆管理员带来的很多操作上的不方便,同时为了提高工作效率、服务质量和管理水平,并使图书馆管理人员从繁琐的工作中解脱出来,从而使我们下定决心开发该系统。 1.2 项目背景 建议开发软件名称:图书馆管理信息系统 项目的提出者:图书馆; 开发者:车益。 用户:读者;实现软件的单位:江西财经大学。 1.3 定义 该图书馆管理信息系统是基于Internet/Intranet 及Web技术,建立以Browser/Server 为结构模式、以数据库为后台核心应用、以服务为目的信息平台,对资源进行科学的加工整序和管理维护,为教学和科学研究提供文献信息保障和提高管理图书的效率而设计的系统。 1.4 参考资料 《基于INTERNET的管理信息系统》曾凡奇林小苹邓先礼 中国财政经济出版社 2001年第一版《信息系统开发方法》姜旭平清华大学出版社 1997年第一版《软件工程》齐治昌谭庆平宁洪高等教育出版社 1997年第一版《实用软件工程》郑人杰殷人昆陶永雷清华大学出版社 1997年 第二版 2.2.可行性研究的前提 2.1 要求 功能:对图书馆的图书信息和用户(读者,借阅者等)信息进行有效的管理; 性能:数据库的录入;图书目录检索;用户信息查询;图书信息查询; 输出:用户信息;图书信息; 输入:用户名称;图书编码; 安全保密:馆中所有未借出的书籍能够供用户随时查阅; 用户信息只能被系统管理员查阅,修改; 运行环境:操作系统: Windows2000;数据库类型:SQL server; 机器配置:CPU:P2000mmx以上,内存大于64M。 完成期限:2003年7月。 2.2 目标 以最低的成本,在最短的期限内开发出具有管理图书和用户信息功能的图书馆管理信息系统。(包括:人力与设备费用的节省;处理速度的提高;人员工作效率的提高) 2.3 条件、假定和限制

管理信息系统形成性考核册答案

管理信息系统作业1 一.单选题 1.D 2.B 3.B 4.A 5.A 6.B 7.B 8.A 9.C 10.B 11.C 12.B 13.D 14.C 15.C 16.A 17.D 18.A 19.B 20.B 二.填空题 1.管理科学、系统科学、计算机科学2、一体化3、管理信息系统4、电子业务系统、电子商务系统5、事务型管理、管理型管理、战略型管理6、网络技术、数据库技术、开发语言7、硬件资源共享、用户间信息交换8、TCP/IP 9、集合和容器10、数据库11、决策过程12、管理方法、管理手段13、指挥、协调、控制14、管理跨度、管理宽度15、基层管理16、非结构化决策、半结构化决策17、直线制结构、职能制结构、矩阵式结构18、经过加工的数据、客观事物19、扩散性20、需求、收集、传输、处理21、高层管理、中层管理22、整体性、层次性、统一性23、减少分析问题的难度24、接口标准化原则25、明确的目标、评价的基本原则 三、简答题 1、书P2 2、书P15-16 3、书P17-18 4、书P35-36 5、书P45 6、书P46 7、书P50 8、书P58-59 管理信息系统作业2 一、单选题 1.A 2.D 3.B 4.C 5.A 6.B 7.A 8.D 9.D 10.D 11.B 12.B 13.D 14.A 15.A 16.A 17.B 18.C 19.B 20.D 二.填空题1、概念结构、功能结构、管理职能结构、软硬件结构、网络计算结构2、信息源、信息处理器3、计算机网络、数据库管理系统4、物理位置安排、拓扑结构5、功能模块、依附于硬件结构6、客户机/服务器模式、浏览器/服务器模式7、请求8、传统的二层C/S模式9、管理上的10、分解、抽象11、自顶向下、逐步求精12、块内联系大,块间联系小、采用模块结构图的描述方式13、系统设计、系统实施14、系统是什么、干什么、怎么干15、面向对象技术16、桥梁和接口17、总体设计、模块设计18、程序设计、测试和试运行 三、简答题 1、书P63 2、答:管理组织从纵向看是分层次的,因此相应的管理活动也可以划分为若干层次,即可分为高、中、基三个层次,分别称它们为战略计划层、管理控制层和执行控制层。 不同管理层次对应着不同的决策类型,在决策过程中所需要的信息也是不同的。针对管理的这3个层次,可以分别建立战略计划子系统、管理控制子系统和执行控制子,这就构成了管理信息系统的纵向结构,即层次结构。 3、书P67 4、书P71-72 5、书P80 6、书P86 7、答:各阶段主要内容:需求分析、系统设计、系统实施、运行维护、系统评价,主要内容参见书P81-83 8、书P86 9、书P94 管理信息系统作业3 一、单选题 1.A 2.C 3.C 4.A 5.C 6.B 7.C 8.D 9.A 10.B 11.D 12.D 13.D 14.C 15.A 16.C 17.B 18.B 19.C 20.D 二.填空题 1.总体需求分析、详细需求分析2、总体规划3、初步调查、详细调查4、现行系统的目标和任务、新系统的开发条件5、开发的条件是否具备、客观上是否需要开发新系统6、技术上的可行性、经济上的可行性7、系统设计、逻辑模型8、业务流程分析、逻辑模型9、业务流程、数据流程10、现行系统的物理模型11、自顶向下12、当前系统的“逻辑模型”、目标系统的“逻辑模型” 13、做什么、如何做14、15、耦合16、变换分析17、层次性、过程性18、 三、简答题 1、需求分析的目的就是要搞清楚用户的这些想法和要求。 2、书P108 3、书P111 4、书P113 5、书P119 6、书P129 7、书P130 8、书P135 9、书P141 10、书P146-159 四、1.

学生信息管理系统的可行性分析报告

学生信息管理系统的可行性分析报告 姓名:李文赫 班级:信132 学号:2013314203 指导教师:邓全才 2016年3月28日

1.编写目的 该学生信息管理系统软件项目可行性研究报告是对项目课题的全面通盘考虑,是项目分析员进行进一步工作的前提,是软件开发人员正确成功的开发项目的前提与基础.写软件项目可行性研究报告可以使软件开发团体尽可能早的估计研制课题的可行性,可以在定义阶段较早的认识到系统方案的缺陷,就可以少花时间和精力,也可以省成资金,并且避免了许多专业方面的困难.所以该软件项目可行性研究报告在整个开发过程中是非常重要的. 2.系统需求 系统能够实现对学生信息的存储,且管理者能通过界面按钮轻松的实现对所有学生的个人信息进行增、删、改和查询操作。 2.1 学生信息增加 信息增加:向数据库中插入数据条目。 2.2 学生信息删除 信息删除:向数据库中删除指定条目信息。 2.3 学生信息更改 信息更改:修改指定信息后提交数据到数据库中。 2.4 学生信息查询 信息查询:通过学生的学号或姓名进行准确查询操作,并显示查询结果。 3.可行性研究的前提 要求 功能要求:能够通过系统界面按钮实现对学生信息的增、删、改和查询操作,并且实现数据库中学生数据的动态同步更新。 性能要求:用户的操作能及时的反应到具体的代码,及能够及时的隐似对数据库的操作,将用户的操作反应到数据库中。

安全与保密要求: (1)只有授权的管理者才能登陆软件主界面对学生信息进行管理操作。 (2)对没有授权的用户不允许登陆软件。 4系统的可行性研究 1必要性 随着社会信息化的脚步加快,个人的信息也呈现出多样性,这便给信息管理者造成了巨大的压力和难度,也给传统的文件信息管理模式提出了挑战。为了提高学校学生信息管理的效率和准确性,我们团队决定开发一个学生信息管理系统,希望通过信息化手段管理学生信息,实现提高效率和准确性的目的。现有的学生信息管理模式存在以下问题: (1)学生信息管理缺乏安全、便捷性。 对学校学生的信息管理一般都是使用Microsoft Excel进行管理,缺乏安全保障,而且操作复杂,需要事先对软件有一定的熟悉才行。 (2)工作效率低 由于Excel的操作复杂,需要一定的软件知识,所以导致学生信息管理者的软件知识存在要求,工作效率不高。 (3)无法实现不同学院数据的复合使用 由于各各学院所选用的学生信息管理软件不同,或是使用的Excel的版本不一样,可能会导致当要把各院系的学生信息汇总时出现数据没法整合使用的问题,给信息管理带来不便。 准备开发的学生信息管理系统能够解决哪些问题: (1)实现简单的学生信息操作方式,提高工作效率 能够为管理者提供一个简单的数据管理界面,管理者只需要通过按键便可实现对学生数据的所有操作并保存,提高了信息管理的工作效率。 (2)为今后各院系学生信息整合提供支持 由于系统采用的是数据库存储数据,到时只需要将各学院的数据库中数据导入到一个大的数据库中存储即可,为各院系的学生信息整合提供了支持。

人机系统可靠性计算(标准版)

人机系统可靠性计算(标准版) Security technology is an industry that uses security technology to provide security services to society. Systematic design, service and management. ( 安全管理 ) 单位:______________________ 姓名:______________________ 日期:______________________ 编号:AQ-SN-0772

人机系统可靠性计算(标准版) (一)、系统中人的可靠度计算 由于人机系统中人的可靠性的因素众多且随机变化,因此人的可靠性是不稳定的。人的可靠度计算(定量计算)、也是很困难的。 1.人的基本可靠度 系统不因人体差错发生功能降低和故障时人的成功概率,称为人的基本可靠度,用r表示。人在进行作业操作时的基本可靠度可用下式表示: r=a1a2a3(4—13)、 式中a1——输入可靠度,考虑感知信号及其意义,时有失误; a2——判断可靠度,考虑进行判断时失误; a3——输出可靠度,考虑输出信息时运动器官执行失误,如按错开关。

上式是外部环境在理想状态下的可靠度值。a1,a2,a3,各值如表4—5所示。 人的作业方式可分为两种情况,一种是在工作时间内连续性作业,另一种是间歇性作业。下面分别说明这两种作业人的可靠度的确定方法。 (1)、连续作业。在作业时间内连续进行监视和操纵的作业称为连续作业,例如控制人员连续观察仪表并连续调节流量;汽车司机连续观察线路并连续操纵方向盘等。连续操作的人的基本可靠度可以用时间函数表示如下: 式中r(t)、——连续性操作人的基本可靠度; t——连续工作时间; l(t)、——t时间内人的差错率。 (2)、间歇性作业。在作业时间内不连续地观察和作业,称为间歇性作业,例如,汽车司机观察汽车上的仪表,换挡、制动等。对间歇性作业一般采用失败动作的次数来描述可靠度,其计算公式为:r=l一p(n/N)、(4—15)、式中N失败动作次数;

毕业设计_网络存储的可靠性论文

计算机系统结构课程论文题目网络存储的可靠性 学院物电学院 专业计算机软件与理论

摘要 随着信息技术的不断发展,数据日益成为人们口常生活中重要资源。爆炸式增长的数据必然带来存储设备的持续增加。为了减少本地存储压力,云储存正成为时尚。目前,海量数据存储环境下的现代数据中心的存储节点规模少则几万多则几十万,但在规模巨大的存储环境系统中,磁盘损毁或者存储节点失效己成为一种常态行为;与此同时,因网络连接设备或者存储节点其它元器件造成的数据不可访问或者丢失现象也时有发生。为了满足口益扩展的数据存储需求,人们对数据存储的可靠性提出了更高的要求,如何实现海量数据在网络存储中低冗余度高可靠性存储己经成为业界面临的一个巨大挑战。 因而,本文网络存储中低冗余度高可靠性海量数据存储系统的关键问题,在总结了当今数据可靠性增强理论和海量数据存储系统基本架构的基础上,对基于纠删码的数据分布策略研究进行一定介绍。在存储系统中,提出了基于纠删码的数据冗余分布模型,研究了涉及到的数据读写,恢复算法等关键技术。通过理论分析得出了这种冗余方案对提高系统可靠性更有优势:要使数据达到相同的可用性,基于纠删码方案只需要较低的冗余度;同样在相同的冗余度情况下,基于纠删码冗余方案的数据有更高的可用性。 关键字: 可靠性;网络存储;海量数据;纠删码

一、绪论 近年来,随着云计算、物联网、社交网络等新兴技术的迅猛发展,无所不在的移动设备、无线射频识别标签、无线传感器等每分每秒都在产生感知世界的信息。数以亿计用户的互联网服务时时刻刻都在产生新的数据,同时记录人们生活的历史信息也呈现爆炸式增长。数据的快速增长必然带来存储设备的持续增加。同时,为了满足口益扩展的数据存储需求,数据存储系统的体系结构也在不断发展与变化,从传统的集中式存储到分布式存储,近几年还出现了云存储等新型海量数据存储模式。 2008年2月,几千个构建在亚马逊EC2和S3上的小型网站因数据中心宕机而受到影响;次年三月,谷歌公司的Docs出现系统故障,随后,联邦商务委员会被请求调查此事,以确定谷歌的云计算服务对客户的隐私与安全可能带来的隐患。可见,数据的丢失或失效,会给人们带来不可估量的损失。 进入20世纪以后,随着网络技术的持续发展、各种信息服务形式的不断出现、所需存储的数据呈现爆炸式增长,有研究者开始利用普通的PC机来构建大规模的存储系统,最为典型的是Google的GFS,例如,2004年Google的集群中的PC机节点达到18000台,每台PC越挂载两个磁盘。该技术的出现,使得人们对存储系统多了一种选择。现在,很多研究者和大型企业开始构建利用普通计算机硬件搭建的数据存储平台,如Apache Hadoop开源项目 , Facebook的Cassandra系统、淘宝的TFS ( Tao file system)。在存储系统中,特别是大规模数据存储系统中,系统会因为这样或那样的问题出现数据的暂时不可用或者丢失损毁现象。从数据存储系统的组成上看,不论是DAS, NAS, SAN构建的小型存储系统,还是大规模分布式集群系统乃至超大规模数据中心,其基本存储运算单元都可以分为三个部分:首先是由磁盘搭建的基础存储设备,它是数据存储的物质基础;其次是系统中心网络,它是连接存储资源和计算资源的神经中枢。最后是计算设备和系统管理软件,它负责计算任务的完成和系统节点的管理和监测。 一方面是存储数据量的爆炸式增长对基础存储设备规模上的需求,一方面是大规模海量数据存储系统频繁的失效行为,另一方面是数据的丢失给数据拥有者和使用者带来的巨大损失,这一切使得数据存储系统的可靠性成为海量数据存储面临的一个函待解决的重要挑战。当然,系统的可靠性问题可以通过单纯增加硬件冗余的方式加以解决,但这样带来的硬件成本太高,本文则从数据管理与组织的角度探讨应对海量数据存储系统中数据的可靠性问题。 二、存储系统的可靠性

管理信息系统答案

管理信息系统答案

一、单项选择题 1.B 2.D 3.D 4.C 5.A 6.D 7.C 8.C 9.D 10.B 11.B 12.C 13.C 14.B 15.A 16.D 17.B 18.A 19.C 20.B 21.A 22.C 23.C 24.D 25.C 26.B 27. C 28.B 29. D 30.C 31.D 32. D 33.B 34.B 35.D 36.B 37.D 38.A 二、填空题 1.操作型管理信息系统分析型管理信息系统 2.Information 3.数据库技术开发语言 4.决策 5.信息用户信息管理者 6.经过加工 7.企业资源计划 8.模块测试子系统测试系统总体测试 9.管理职能(或金字塔) 10.逻辑模型 11.业务流程 12.模块测试子系统测试

13. 管理职能结构网络计算结构 14. 一体化集成 15. 数据处理方式 16. 结构化决策 17. 详细需求分析 18. 需求处理 19. 战略计划层 20. 采用模块结构图的描述方式 21. 机器语言 22. 技术上的可行性管理上的可行性 23. 数据流图加工说明 24. 数据流程分析 三、简答题 1.简述系统分解的目的和原则。 通常,面对一个庞大而又复杂的系统,我们无法把系统所有元素之间的关系表达清楚,这时要将系统按一定的原则分解成若干个子系统。分解后的每个子系统相对于总系统而言,其功能和结构的复杂程度都大大降低,减少了分析问题的难度,这就是系统分解的目的。 2.什么是管理信息系统? 管理信息系统是一个由人、机(计算机)组成的能进行管理信息的收集、传递、存储、加工、

管理信息系统项目可行性实施报告

管理信息系统项目 1.1编写目的 作为一家多品种、小批量离散型制造企业,在生产方面:其产自动化程度和生产效率不高,生产均衡率不高,又因为其生产任务多集中在下旬,影响产能(生产能力)安排、质量和交货期。在管理方面:该公司的管理层次依然较多,上下信息沟通和横向协调困难,信息共享度低,难以快速响应内外变化。这两方面的问题严重制约了企业的发展速度,急需引起企业的管理层领导重视,通过建立相应的管理系统,来优化企业的生产和管理方式。 1.2背景 建立物资集成化管理系统系统,他直接与公司的生产系统相关联,知道合理化生产,该系统可以由公司聘请相应的外部专业人员实现,依托已经建立的人工管理系统建立相应的计算机网络,使得生产与供应实现信息的共享,减少理层次,使得管理更加高效。 1.3定义 GB8567——88计算机软件文档编制规范 1.4参考资料 根据目前公司的概况与经过调查研究所了解到的现存的问题,再根据管理决策层的战略规划,参照相关的标准来完成管理系统的建立。 2可行性研究的前提 2.1要求 除了继续做好年度、季度和月度采购计划外,需要配合用料和配送作业,做好供料计划和配送计划,以强化物流控制与物流服务。供料计划和配送计

划将更加集成,且与第三方物流衔接。企业物流中心的形成,将使物流朝集成化的方向发展,实现功能、职能与信息的集成。下料单元集中并且归入物流中心后,除了配送功能外,还将产生下料加工、包装、运输等物流功能,使物流从供应转向服务,从供应物流延伸到生产物流。随着物流供应链的建立,仓储管理范围将扩大到成品和半成品。物资财务管理将更强调与各子系统的信息集成,如对在途、暂估、往来资金和内外部银行对账、结算等功能的管理,动态反映库存资金和采购资金的变化。因此,增强的功能有计划、财务、库存和供应商管理与评价。预计新增功能有配送,下料加工管理,限额管理等。 2.2目标 系统目标 ①促进管理体制的改革和管理手段的的改进,促进物流一体化。 ②改进决策方法和决策依据,使决策科学化。 ③改进管理信息服务,在信息服务中创造价值。 ④促进资源共享和信息集成。 ⑤减员增效,提高管理效率。 ⑥提高信息处理水平,适应市场变化。 ⑦开发企业第三利润,降低物流成本。 2.3条件、假定和限制 说明对这项开发中给出的条件、假定和所受到的限制,如: a.所建议系统的运行寿命的最小值; b.进行系统方案选择比较的时间; c.经费、投资方面的来源和限制; d.法律和政策方面的限制; e.硬件、软件、运行环境和开发环境方面的条件和限制; f.可利用的信息和资源; g.系统投入使用的最晚时间。

管理信息系统形成性考核册作业2答案(电大)

作业二 一、选择题 1、B 2、D 3、B 4、C 5、A 6、B 7、A 8、D 9、C 10、D 11、B 12、B 13、D 14、A 15、A 16、A 17、A 18、B 19、B 20、D 二、填空题 1、概念结构功能结构管理职能结构软硬件结构网络计算结构 2、信息源信息处理器 3、计算机网络数据库管理系统 4、物理位置安排拓扑结构 5、功能模块组成依附于硬件结构 6、客户机/服务器模式浏览器/服务器模式 7、请求 8、传统的二层C/S 9、管理上的 10、分解和抽象 11、自顶向下,逐步求精 12、块内联系大,块间联系小采用模块结构图的描述方式 13、系统设计系统实施 14、是什么干什么怎么干 15、面向对象 16、桥梁和接口 17、总体设计模块设计 18、程序设计测试和试运行 三、简答题 1、管理信息系统的概念结构由哪些部件组成,请绘制出图形表示它们之间的关系。 从概念上看,管理信息系统由信息源、信息处理器、信息用户和信息管理者四大部件组成,如图所示。 2、什么是管理信息系统的层次结构?它与管理层次的关系是什么? 将管理信息系统按纵向分为:战略计划子系统、管理控制子系统、执行控制子系统,分别对应于管理层次中的战略计划层、管理控制层和执行控制层。 3、说明管理信息系统金字塔结构的含义。 根据管理信息系统处理的内容和管理决策的层次来看,我们可以把管理信息系统看成一个金字塔式的结构,其含义描述如下:首先,组织的管理是分层次的,一般可分为战略计划层(高层)、管理控制层(中层)和执行控制层(基层)。相应的管理信息系统为它们提供的信息处理与决策支持也分为三层。其次,组织的管理在分层的同时,又按管理职能分条,相应的管理信息系统也就可以分为市场销售子系统、生产子系统、财务子系统、人事管理子系统等。第三,下层的系统处理处理量大,上层的处理量小,下层系统为上层提供数据,形象地说,

信息管理系统可行性分析报告

信息管理系统可行性分析报告导语:信息管理的系统可行性分析报告应该怎么写,以下XX为大家介绍信息管理系统可行性分析报告文章,欢迎大家阅读参考! 信息管理系统可行性分析报告1 在企业整个经营期内,我所担当的角色是XXX 组的信息总监。在六年的经营过程种,主要参与广告投放前、投资新产品新生产线及投入生产前的信息收集分析。例如根据产品在各地区的市场价格预测,分析可能出现的竞争激烈的区域,合理分配广告费的投入,其次,根据所给资料及自己组的情况对生产线的投入进行分析,再根据后期的产品价格等预测进行生产情况分析,同时,也要收集竞争对手的运营信息进行整理和分析,比较总结自身优势,帮助团队不断修正方向和战略。总体来说,对信息总监的要求就是要有强的观察分析能力,反映敏锐,及时作出正确的判断,搜集一切可利用的信息,保证信息流通畅通。 综合这六年的经营状况来总结分析此次沙盘推演实训课程中 出现的问题,分析及解决方法: 一是广告投放出现问题。广告投放是我们组的失败的起步。第一年因为对规则的不熟悉,同时因为我没有尽到我收

集竞争对手的运营信息的责任,导致我们因为第一年只投了5个币的广告而错失第一次机会。导致只拿到一个订单,占有的市场份额也是最少,剩下大量的P1占用资金。第二年时,我分析情况后认为,不能因为第一年投入广告过少而第二年不计成本的大量投入广告,应该与标王合作,以卖出产品为原则。但由于我第二年请假不在,跟CEO沟通没成功的情况下,随着大量的广告投放,成本升高,广告费投放最多,销售收入却是最低。从此进入破产阶段。 第二年广告费 第二年销售收入 从第三年开始,我们组的广告费被限定只能投6个,只能拿最少的订单,因 此销售收入被限制,难以继续扩大生产力,也就不能扩大市场份额。一开始是按部就班的每个区域每个产品各投一个,后来区域扩大,又有了额外的ISO认证,我们就资料和上一年各区域个产品的广告投入情况分析,避开竞争最激烈的位置,分析最可能用到ISO认证的区域进行广告投放,争取用最少的广告费拿到最多的单,努力提高广告投出比。 第一二年广告产出比 第三四年广告产出比 第五六年广告产出比 在我们的努力下,广告投出比小相对第一二年好了很多,

可靠性计算公式大全

计算机系统的可靠性是制从它开始运行(t=0)到某时刻t这段时间内能正常运行的概率,用R(t)表示. 所谓失效率是指单位时间内失效的元件数与元件总数的比例,以λ表示,当λ为常数时,可靠性与 失效率的关系为: R(λ)=e-λu(λu为次方) 两次故障之间系统能够正常工作的时间的平均值称为平均为故障时间(MTBF) 如:同一型号的1000台计算机,在规定的条件下工作1000小时,其中有10台出现故障 ,计算机失效率:λ=10/(1000*1000)=1*10-5(5为次方) 千小时的可靠性:R(t)=e-λt=e(-10-5*10^3(3次方)=0.99 平均故障间隔时间MTBF=1/λ=1/10-5=10-5小时. 1)表决系统可靠性 表决系统可靠性:表决系统是组成系统的n个单元中,不失效的单元不少于k(k介于1和n之间),系统就不会失效的系统,又称为k/n系统。图12.8-1为表决系统的可靠性框图。通常n个单元的可靠度相同,均为R,则可靠性数学模形为: 这是一个更一般的可靠性模型,如果k=1,即为n个相同单元的并联系统,如果k=n,即为n个相同单元的串联系统。 2)冷储备系统可靠性 冷储备系统可靠性(相同部件情况):n个完全相同部件的冷贮备系统,(待机贮备系统),转换开关s为理想开关Rs=1,只要一个部件正常,则系统正常。所以系统的可靠度: 图12.8.2 待机贮备系统

3)串联系统可靠性 串联系统可靠性:串联系统是组成系统的所有单元中任一单元失效就会导致整流器个系统失效的系统。下图为串联系统的可靠性框图。假定各单元是统计独立的,则其可靠性数学模型为 式中,Ra——系统可靠度;Ri——第i单元可靠度 多数机械系统都是串联系统。串联系统的可靠度随着单元可靠度的减小及单元数的增多而迅速下降。图12.8.4表示各单元可靠度相同时Ri和nRs的关系。显然,Rs≤min(Ri),因此为提高串联系统的可靠性,单元数宜少,而且应重视串联系统的可靠性,单元数宜少,而且应重视改善最薄弱的单元的可靠性。 4)并联系统可靠性 并联系统可靠性:并联系统是组成系统的所有单元都失效时才失效的失效的系统。图12.8.5为并联轴系统的可靠性框图。假定各单元是统计独立的,则其可靠性数学模型为 式中 Ra——系统可靠度 Fi——第i单元不可靠度

管理信息系统练习题及答案(总结版)

第一章信息系统和管理 1.信息( C ) a.是形成知识的基础b是数据的基础c是经过加工后的数据d.具有完全性 3.管理信息是( A )。a.加工后反映和控制管理活动的数据b.客观世界的实际记录c.数据处理的基础d.管理者的指令 4.信息化( A )。 A、是推动工业化的动力 B、是工业化的基础 C、代替工业化 D、向工业化发展9.数据资料中含信息量的大小,是由( C )。 a.数据资料中数据的多少来确定的b.数据资料的多少来确定的 c.消除不确定程度来确定的d.数据资料的可靠程度来确定的 10.信息( C )。a.不是商品b.是数据c.是一种资源d.是消息11.计算机输入的是( C )。 a.数据,输出的还是数据b.信息,输出的还是信息 c.数据,输出的是信息d.信息,输出的是数据 13.信息流是物质流的( C )。A定义B运动结果C表现和描述D假设14.管理信息系统科学的三要素是( C )。 a.计算机技术、管理理论和管理方法b.管理方法、运筹学和计算机工具c.系统的观点、数学方法和计算机应用d.计算机技术、通信技术和管理工具15.按照不同级别管理者对管理信息的需要,通常把管理信息分为(D)三级a.公司级、工厂级、车间级b.工厂级、车间级、工段级 c.厂级、处级、科级d.战略级、策略级、作业级 第二章管理信息系统概论 2.管理信息系统是一个( D )。 a.网络系统b计算机系统c操作系统d.人机系统 4.管理信息系统的应用离不开一定的环境和条件,环境具体指的是( C )。a.组织所处的自然环境b.组织所处的社会环境 c.组织内外各种因素的综合d.组织所处的自然环境和社会环境的综合 5.从管理决策问题的性质来看,在业务操作层上的决策大多属于( A )的问题。a.结构化b.半结构化c.非结构化d.以上都有 该题可以改成:决策支持系统解决的问题是(BC) 7.对管理信息系统进行综合,我们可以了解到,管理信息系统是由多个功能子系统组成的,这些功能子系统又可以分为业务处理、运行控制、管理控制和( D )几个主要的信息处理部分。 a.财务管理b.信息管理c.人力资源管理d.战略管理 8.( A )是管理信息系统环境中最重要的因素之一,决定着管理信息系统应用的目标和规模。 a.组织规模b.管理的规范化程度c.生产过程的特征d.组织的系统性10.管理信息系统的最大难点在于( D )难以获得。 a.系统数据b.系统信息c.系统人才d.系统需求 该题可以改成:耗时最长的阶段是(系统分析) 14.一个管理信息系统的好坏主要是看它( B )。 a.硬件先进、软件齐全b.是否适合组织的目标 c.是否投资力量最省d.是否使用计算机网络 17.管理信息系统的特点是( C )。

人机系统可靠性计算示范文本

文件编号:RHD-QB-K8474 (安全管理范本系列) 编辑:XXXXXX 查核:XXXXXX 时间:XXXXXX 人机系统可靠性计算示 范文本

人机系统可靠性计算示范文本 操作指导:该安全管理文件为日常单位或公司为保证的工作、生产能够安全稳定地有效运转而制定的,并由相关人员在办理业务或操作时进行更好的判断与管理。,其中条款可根据自己现实基础上调整,请仔细浏览后进行编辑与保存。 (一)、系统中人的可靠度计算 由于人机系统中人的可靠性的因素众多且随机变化,因此人的可靠性是不稳定的。人的可靠度计算(定量计算)、也是很困难的。 1.人的基本可靠度 系统不因人体差错发生功能降低和故障时人的成功概率,称为人的基本可靠度,用r表示。人在进行作业操作时的基本可靠度可用下式表示: r=a1a2a3 (4—13)、 式中a1——输入可靠度,考虑感知信号及其意义,时有失误;

a2——判断可靠度,考虑进行判断时失误; a3——输出可靠度,考虑输出信息时运动器官执行失误,如按错开关。 上式是外部环境在理想状态下的可靠度值。 a1,a2,a3,各值如表4—5所示。 人的作业方式可分为两种情况,一种是在工作时间内连续性作业,另一种是间歇性作业。下面分别说明这两种作业人的可靠度的确定方法。 (1)、连续作业。在作业时间内连续进行监视和操纵的作业称为连续作业,例如控制人员连续观察仪表并连续调节流量;汽车司机连续观察线路并连续操纵方向盘等。连续操作的人的基本可靠度可以用时间函数表示如下: 式中r(t)、——连续性操作人的基本可靠度; t——连续工作时间;

l(t)、——t时间内人的差错率。 (2)、间歇性作业。在作业时间内不连续地观察和作业,称为间歇性作业,例如,汽车司机观察汽车上的仪表,换挡、制动等。对间歇性作业一般采用失败动作的次数来描述可靠度,其计算公式为:r=l一p(n/N)、(4—15)、式中N 失败动作次数; n——失败动作次数; p——概率符号。 2.人的作业可靠度 考虑了外部环境因素的人的可靠度RH为: RH=1-bl·b2·b3·b4·bs(1—r)、(4一16)、 式中b1——作业时间系数; b2——作业操作频率系数; b3——作业危险度系数;

学生信息管理系统可行性分析报告

学生信息管理系统可行性分析报告 一.引言 1.编写目的 随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。 2.项目背景 该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理.目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少.但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作. 3.定义 学籍管理系统:学籍管理是帮助教学人员、行政人员对人事档案的管理软件。使用汉语编程语言,独立完成其功能。 MIS:管理信息系统;DFD图:数据流图(描述逻辑模型的图形工具,表示数据在系统内的变化。);CFD:流程控制图;

4.参考资料 [1].<软件工程概论> 李存珠李宣东编著南京大学计算机系出版2001年8月 [2]数据库系统原理教程,王删著.清华大学出版社,2002.1 [3]现代软件工程,陈松桥等著.北方交通大学出版社,2002,1 二.可行性研究的前提 1.原因 由于现今的学籍管理非常繁琐,行政人员付出大量的工作时间,得到的效率很低。因此为提高工作效率,减轻校方人员的工作负担,决定开发学籍管理系统软件。 2.系统目标 学籍管理信息系统以计算机为工具,通过对教务管理所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。 3.条件、假定和限制 开发该系统的主要资金来源为用户提供的开发资金投入,故在设计开发中最大不能超过该限度,且软件完成交付用户使用后,应保证软件的运行寿命至少达到用户的要求范围.且软件开发时间应基本控制在用户提出的要求范围内. 4.决定可行性的主要因素: (1)技术可行;

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