管理系统设计
Ⅰ 图书馆管理系统设计
8.某高校图书馆管理信息系统的分析、设计与实施
某高校图书馆藏书200余万册,拥有包括在校学生、教职员工在内的读者2万余名,每天的借阅量近万册。在手工操作方式下,图书的编目和借阅等工作量大、准确性低且不易修改维护,读者借书只能到图书馆手工方式查找书目,不能满足借阅需求。因此,需要建立图书管理信息系统,以实现对读者借阅、图书采购和保管等工作的信息化管理,并实现文献的电子化检索和阅读。
图书馆由馆长负责全面工作,下设办公室、技术部、信息咨询部、文献建设部、流通部、阅览部。各部门的主要功能是:
(1) 办公室:负责本馆的行政和总务工作。
(2) 技术部:负责图书馆计算机系统的开发、维护和多功能电子阅览室、多媒体制作室、视听室的管理。
(3) 信息咨询部:负责国际联机检索、光盘检索、手工检索查新和资源共享等工作。
(4) 文献建设部:负责图书、期刊、电子文献的采购、编目和典藏工作。
(5) 流通部:负责图书借阅流通工作。
(6) 阅览部:负责各个阅览室的管理工作。
图书馆管理系统所要实现主要功能和业务流程如下:
(1) 读者信息管理。读者分为学生读者和教职工读者两类,读者访问系统时将检验读者账号和密码,只有具有合法身份的读者才允许进入系统。读者的信息包括读者类型信息、读者借阅信息、读者预约信息、读者罚款信息等。
(2) 书目查询。读者进入图书管理系统后,可以根据需要检索书名或期刊。检索条件可以是书名、图书编号、作者姓名或关键字等条件,如果查询信息不确切还可以进行模糊查询。
(3) 图书采编。由文献建设部相关人员根据读者需求情况、书籍出版情况等定期进行书籍采购。图书采购入库经过编目等处理后,将其目录存入数据库,提供给读者检所使用。目录信息包括图书编号、图书类别、书名、作者、出版社、定价、出版日期、数量等。
(4) 图书借阅。可办理读者借阅、还书、续借等手续。读者查找到所需图书后,到图书馆办理借阅手续,借阅期限为60天,借阅期满后可续借一次,续借期为30天。办理借阅手续之前要先查询读者所借图书是否超额,如果超额,则不能办理。学生读者最多可借10册,教工读者最多可借15册。读者还书时要先查询是否超期,如果超期则进入罚款程序。
(5) 图书预约。读者检索到需要的图书后,如果该图书均已被借出,则可进行图书预约,当该图书归还后通知预约读者前来办理借阅手续,该图书可为预约读者保留三天,如果读者在三天内未办理借阅手续,则取消预约资格。
(6) 电子读物管理。电子读物管理处理电子读物的阅览、检索、下载等事务。
(7) 系统维护。为图书管理人员提供图书统计信息和读者统计信息,以便于管理人员从宏观上掌握图书馆运行的总体状况。
Ⅱ 学生信息管理系统设计
# include<iostream.h>
# include<string.h>
# include<stdio.h>
# include<stdlib.h>
# include<fstream.h>
//*****定义一个学生原子的的数据结构*****//
struct stuatom
{
char *name;
int id;
char sex;
float math, eng, comp, totll, aver;
void show();
void setup();
};
//*********定义一系列对学生的操作**********//
class student
{
private:
stuatom ob[100];
int stulen;
public:
student();
void input();
void order();
void save();
void Query();
void read();
void add();
void del();
};
//********对学生数据的初始化(类的构造函数)**********//
student::student()
{
//用for循环对全部数组中的数据初始化
for(int i=0;i<100;i++)
{
ob[i].math=ob[i].eng=ob[i].comp =ob[i].totll =ob[i].aver =0;
ob[i].id =0;
ob[i].sex =' ';
ob[i].name =NULL;
}
this->stulen =0;
}
//********输入学生的数据,并判断是否在规定数据域内*******//
void stuatom::setup()
{
char n[20]; char s;
int b;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
do {
cout<<" 学号: ";
cin>>b;
if(b>1020||b<1001)
cout<<"Bad data input!!"<<endl<<endl;
}while (b<1001||b>1020);
id=b;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
do{
name=new char[strlen(n)+1];
cout<<" 姓名: ";
cin>>n;
if( strlen(n)>6 || strlen(n)<4 )
cout<<"Bad data input!!"<<endl<<endl;
}while ( strlen(n)>6 && strlen(n)<4 );
strcpy(name,n);
cout<<" 性别(m/f):" ;
cin>>s;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (s!='m' && s!='f')
{
cout<<"Bad data input!!"<<endl<<endl;
cout<<" 性别(m/f):";
cin>>s;
}
sex=s;
float m, e, co;
cout<<" 数学: ";
cin>>m;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (m<0 || m>100)
{
cout<<"Bad data input!!"<<endl<<endl;
cout<<" 数学: ";
cin>>m;
}
math=m;
cout<<" 英语: ";
cin>>e;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (e<0 || e>100)
{
cout<<"Bad data input!!"<<endl<<endl;
cout<<" 英语: ";
cin>>e;
}
eng=e;
cout<<" 计算机: ";
cin>>co;
//如果输入学好在数据域内,跳出循环并且赋值。
//如果不再数据域内,一直循环到输入数据符合数据域为止
while (co<0 || co>100)
{
cout<<"Bad data input!!"<<endl<<endl;
cout<<" 计算机: ";
cin>>co;
}
comp=co;
totll=math+eng+comp;
aver=(math+eng+comp)/3;
}
//*******按照规定格式把该学生的数据显示在屏幕上******//
void stuatom::show()
{
cout.setf(ios::left);
cout.width(6);
cout<<""<<id<<" ";
cout.width(8);
cout<<name;
cout.width(10);
cout<<sex;
cout.width(9);
cout<<math;
cout.width(9);
cout<<eng;
cout.width(11);
cout<<comp;
cout.width(10);
cout<<totll<<aver<<endl;
}
//**************输入学生的数据***********************//
void student::input()
{
int n;
cout<<endl<<"输入将要录入的学生数目: ";
cin>>n;
int j;
//通过循环输入要求输入学生个数的学生的数据。
for(j=0; j<n; j++)
{
cout<<" 输入学生信息 "<<j<<endl;
ob[j].setup();
}
this->stulen=n; //学生个数赋值
//学生数据显示格式
system("cls");
cout<<endl<<"----------------------------- 学生信息表 ------------------------------------"<<endl;
cout<<endl<<" 学号 姓名 性别 数学 英语 计算机 总分 平均分"<<endl;
//通过循环输出所有学生数据。
for(j=0; j<n; j++)
{
ob[j].show();
}
cout<<endl;
cout<<" 是否保存? (Y/N): ";
char Y;
cin>>Y;
system("cls");
}
//**************按照一定格式显示所要查询学生的信息。**************//
void student::Query()
{
int x , i;
cout<<endl<<" 输入要查询学生的学号: ";
cin>>x;
cout<<endl<<" 学号 姓名 性别 数学 英语 计算机 总分 平均分"<<endl;
for(i=0;i<=this->stulen ;i++)
{ if (x==ob[i].id)
{
cout.setf(ios::left);
cout.width(6);
cout<<""<<ob[i].id<<" ";
cout.width(8);
cout<<ob[i].name;
cout.width(10);
cout<<ob[i].sex;
cout.width(9);
cout<<ob[i].math;
cout.width(9);
cout<<ob[i].eng;
cout.width(11);
cout<<ob[i].comp;
cout.width(10);
cout<<ob[i].totll<<ob[i].aver<<endl;
}
}
getchar();
}
//*******************保存学生数据**************************//
void student::save()
{
int i;
ofstream outfile;
outfile.open("list.txt",ios::trunc);
if(!outfile)
{
cout<<"Cannot open output file!\n,";
}
//通过循环把所有的学生数据保存在list.txt里边。
for(i=0; i<this->stulen; i++)
{
outfile<<ob[i].id<<" "<<ob[i].name<<" "<<ob[i].sex<<" "<<
ob[i].math<<" "<<ob[i].eng<<" "<<ob[i].comp<<" "<<ob[i].totll<<" "<<ob[i].aver<<endl;
}
outfile.close();
}
//*************显示所有学生数据*********************//
void student::read()
{
int i;
system("cls");
cout<<endl<<"----------------------------- 学生信息表 ------------------------------------"<<endl;
cout<<endl<<" 学号 姓名 性别 数学 英语 计算机 总分 平均分"<<endl;
for(i=0; i<this->stulen; i++)
{
ob[i].show();
}
getchar();
}
//*******************一个学生的数据****************//
void student::add()
{
int i, d=this->stulen ;
cout<<"输入要添加学生的信息:"<<endl;
ob[d].setup();
cout<<endl<<"----------------------------- 学生信息表 ------------------------------------"<<endl;
cout<<endl<<" 学号 姓名 性别 数学 英语 计算机 总分 平均分"<<endl;
for(i=0; i<=d; i++)
{
ob[i].show();
}
ofstream fout("list.txt",ios::app);
if(!fout)
{
cout<<"Cannot open output file!\n,";
}
//把添加的学生数据添加到list.txt里边去。
fout<<ob[d].id<<" "<<ob[d].name<<" "<<ob[d].sex<<" "<<
ob[d].math<<" "<<ob[d].eng<<" "<<ob[d].comp<<" "<<ob[d].totll<<" "<<ob[d].aver<<endl;
fout.close();
getchar();
}
//*********************删除指定名字学生的数据*******************//
void student::del()
{
int i,p; char x[8];
cout<<" 输入要删除学生名字:"<<endl;
cin>>x;
//通过for循环查找要删除学生的姓名
for(i=0; i<stulen; i++)
{
if(strcmp(ob[i].name,x)==0)
{
p=i;
cout<<endl<<"学号 姓名 性别 数学 英语 计算机 总成绩 平均成绩"<<endl;
cout<<ob[i].id<<" "<<ob[i].name<<" "<<ob[i].sex<<" "<<ob[i].math<<" "<<ob[i].eng<<" "<<ob[i].comp<<" "<<ob[i].totll<<" "<<ob[i].aver<<endl;
break;
}
else
continue;
}
cout<<endl<<"----------------------------- 学生信息表 ------------------------------------"<<endl;
cout<<endl<<" 学号 姓名 性别 数学 英语 计算机 总分 平均分"<<endl;
//删除了之后,应该把后面的数据往前移,把要删除的数据覆盖,并且学生长度减1
stulen--;
for(i;i<stulen;i++)
{
ob[i]=ob[i+1];
}
this->read ();
cout<<" 删除成功!"<<endl;
getchar();
}
//***********把学生成绩排序******************//
void student::order()
{
int k,j;
float t; char n[20];
//排序算法。
for(j = 0; j<=(2-1); j++)
{
for(k=1; k<=(2-j); k++)
{
if(ob[k].totll < ob[k + 1].totll)
{
t = ob[k].totll;
ob[k].totll = ob[k+1].totll;
ob[k+1].totll = t;
strcpy(n, ob[k].name);
strcpy(ob[k].name, ob[k+1].name);
strcpy(ob[k+1].name, n);
}
cout<<" 成绩排名:"<<endl;
cout<<" 姓名 总成绩 名次"<<endl;
for(k=0; k<=stulen; k++)
{
cout<<" ";
cout.setf(ios::left);
cout.width(9);
cout<<ob[k].name;
cout.width(9);
cout<<ob[k].totll<<k<<endl;
}
getchar();
}
}
}
//********************选择菜单。*****************//
void menu()
{
cout<<"\n\n";
cout<<"------------------ 学生成绩系统 -----------------"<<endl<<endl;
cout<<"\t\t1.录入与保存学生信息.\n";
cout<<"\t\t2.读取学生信息.\n";
cout<<"\t\t3.删除学生信息.\n";
cout<<"\t\t4.追加学生信息.\n";
cout<<"\t\t5.查询学生信息.\n";
cout<<"\t\t6.显示成绩名次.\n";
cout<<"\t\t7.退出系统......\n\n\n";
cout<<"\t\t请选择功能项: ";
}
//---------------------------------------------------------------------------------------
void main()
{
student a;
while(1)
{
int SEL;
system("cls");
menu();
cin>>SEL;
switch(SEL)
{
case 1:
system("cls"); a.input();a.save();break;
case 2:
system("cls"); a.read(); break;
case 3:
system("cls"); a.del(); break;
case 4:
system("cls"); a.add();break;
case 5:
system("cls"); a.Query();break;
case 6:
system("cls"); a.order();break;
case 7:
cout<<endl<<" 按任意键退出.... "<<endl;
getchar();
exit(0);
default:
cout<<"Bad input!!\n";
break;
}
}
}
Ⅲ erp管理系统后台详细设计怎么写
设计企业管理体系(组织架构、部门设置、部门职责、岗位职责、工作流程、程序文回件、部门生产答或工作流程、部门文件、绩效管理)——企业管理体系确认——软件开发(按管理体系涵盖的所有内容和细节,包括仓库进销存 客户关系,订单,企业员工,综合分析,各种网络营销数据。
当然还可以随时浏览企业管理体系种的任何内容,如企业一天:产量、销量、订单、采购、质量、人员、事故、分析来往客户等所有想了解的内容。可以分权限浏览)——确认——试运转——修改完善——再确认——运行。
Ⅳ 管理信息系统的系统设计思想一般有哪些(
信息系统主要的开发方法包括结构化方法、原型法、企业系统规划方法、战略数据规划方法、信息工程方法和面向对象方法等。 1.结构化方法 结构化方法是由结构化系统分析和设计组成的一种信息系统开发方法。结构化方法是目前最成熟、应用最广泛的信息系统开发方法之一。 结构化方法主要特点介绍如下: 开发目标清晰化 工作阶段程式化 开发文档规范化 设计方法结构化 2.原型法 原型法是一种根据用户需求,利用系统开发工具,快速地建立一个系统模型并展示给用户,再此基础上与用户交流,最终实现用户需求的信息系统快速开发的方法。 应用原型法开发过程包括系统需求分析、系统初步设计、系统调试、系统检测等阶段。 原型法具有开发周期短、见效快、与业务人员交流方便的优点,特别适用于那些用户需求模糊,结构性比较差的信息系统的开发。 3.企业系统规划方法 企业系统规划方法(BSP,Business System Planning)是企业战略数据规划方法和信息工程方法的基础和。 4.战略数据规划方法 战略数据规划方法的要点主要有: 数据环境对于信息系统至关重要 4种数据环境 建立主题数据库是信息系统开发的中心任务 围绕主题数据库搞好应用软件开发 5.信息工程方法 信息工程方法与企业规划方法和战略数据规划方法是一种交叉关系,即信息工程方法是其他2种方法的总结和提升,而其他两种方法则是信息工程方法的基础和核心。 6.面向对象方法 面向对象方法是对客观世界的一种看法,它把客观世界从概念上看成是一个由相互配合而协作的对象组成的系统。信息系统开发的面向对象方法兴起是信息系统发展的必然趋势。 面向对象的分析方法是利用面向对象的信息建模概念,如实体、关系、属性等,同时运用封装、继承、多态等机制来构造模拟现实系统的方法。
Ⅳ 学生信息管理系统设计(C语言)
写了半天,看看吧。
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
struct student{
int id;
char name[10];
int age;
char sex[10];
char birthady[20];
int tel;
char nativeplace[50];
}st[50];
int i=0;
void shuru() {
char a;
do{
printf("\n请输入学号:");
scanf("%d",&st[i].id);
fflush(stdin);
printf("\n请输入姓名:");
gets(st[i].name);
printf("\n") ;
printf("请输入年龄:");
scanf("%d",&st[i].age);
fflush(stdin);
printf("\n请输入姓别:");
gets(st[i].sex);
fflush(stdin);
printf("\n请输入生日:");
gets(st[i].birthady);
printf("\n请输入电话:");
scanf("%d",&st[i].tel);
fflush(stdin);
printf("\n请输入籍贯:");
gets(st[i].nativeplace);
printf("\n是否继续输入另外一个学生信息?(y/n)");
fflush(stdin);
a=getchar();
i++;
}while(a=='y' && i<=50);
}
void xianshi()
{
int j;
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n");
for(j=0;j<i;j++)
printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].tel,st[j].nativeplace);
}
void paixu() //按年龄从大到小排序函数
{
int j,k;
int temp;
for(j=0;j<i;j++)
{
for(k=0;k<i-1-j;k++)
{
if(st[k].age<st[k+1].age)
{
temp=st[k].age;
st[k].age=st[k+1].age;
st[k+1].age=temp;
}
}
}
xianshi(); //排序后输出
}
void chazhao()
{
int m;
char name[20],b;
do
{
printf("\n请输入想查找的学生姓名:");
fflush(stdin);
gets(name);
for(m=0;m<i;m++)
{
if(strcmp(name,st[m].name)==0)
{
printf("\n\t您查找的学生在第%d个位置找到了!!!\n",m+1);
break;
}
}
if(m>=20)
printf("\n\t没有找到这个学生!!!\n");
else
{
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n");
printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace);
}
printf("\n是否查找另一个学生的信息?(y/n)");
fflush(stdin);
b=getchar();
}while(b=='y');
}
void shanchu()
{
char name[20],c;
int a,b;
do
{
printf("\n请输入要删除的学生姓名:\n");
fflush(stdin);
gets(name);
for(a=0;a<i;a++)
{
if(strcmp(name,st[a].name)==0)
break;
}
for(b=a;b<i;b++)
st[b]=st[b+1];
if(a>i)
printf("\t没有找到这个学生!!!\n");
else
{
i--;
xianshi();
}
printf("\n是否继续删除另一个学生信息?(y/n) ");
fflush(stdin);
c=getchar();
}while(c=='y');
}
void charu()
{
shuru();
paixu();
}
void main() //主函数
{
int change;
do{
system("cls");
printf("============================学生信息管理系统===================================\n");
printf("\t\t一: 输入学生信息\n");
printf("\t\t二: 显示学生信息\n");
printf("\t\t三: 查找学生信息\n");
printf("\t\t四: 删除学生信息\n");
printf("\t\t五: 插入学生信息\n");
printf("\t\t六: 退出程序\n");
fflush(stdin);
printf("\t\t请输入功能选项:");
scanf("%d",&change);
switch(change)
{
case 1:
shuru(); break;
case 2:
xianshi(); break;
case 3:
chazhao(); break;
case 4:
shanchu(); break;
case 5:
charu(); break;
case 6:
break;
}
getch();
}while(change!=6);
}
Ⅵ 信息管理系统的结构设计
1.HNL&R-CC/GIS的主体框架
分布式计算机网络是地理信息系统技术发展的主流,分布式GIS系统是在网络环境下运行的,它必须支持网络计算模式和网络发展动态。Intranet作为一种部门内部信息管理和交换基础设施,它基于Internet通讯标准和WWW信息流通模式(Web、View、Page和超文本链接),为用户提供了一个灵活、方便、高效的通讯平台。GIS与Internet的结合,才能建立在开放的基础上形成实用的信息管理系统。
(1)分布式计算机网络框架
河南省国土资源地理信息系统建设以 RS为信息源;ARC/INFO、MAPGIS为平台;MAN/LAN为信息传输模式,最终形成一个椭机分布式计算机网络。政府计划管理部门、职能部门可根据对资源与环境数据的需求,通过设置中央数据库与国土资源主干网(政府主干网)联接,完成信息发布和信息传输(图5.2.1)。
图5.2.1HNL&R-CC/GIS虚拟网络
(2)HNL&R-CC/GIS数据模型
层次结构模型是完成图形库基本单元Coverage地理实体空间定位、定义和隶属关系的方式(图5.2.2)。
例:环境质量评价子系统
图5.2.2HNL&R-CC/GIS-Coverage层次模型
(3)网状结构模型
所为网状,就是一个地理实体对应任意个特征数据,即一对多关系(图5.2.3)。
图5.2.3HNL&R-CC/GIS-Attribute网状模型
2.HNL&R-CC/GIS功能设置
(1)数据处理
系统输出是系统存在的根本,数据处理模型的选取首先是保证能够便捷的从系统中提取所需信息子集,还应具备一定的空间分析能力。其基本环节是:.
a.支持区域信息检索的数据处理;
b.支持综合信息集成的数据处理;
c.辅助决策。
(2)CC/GIS机助制图
根据用户所提出的一种或多种检索条件,准确的从数据库中提出信息子集,并以专业地图的形式输出。
(3)随机集成
空间信息与非空间信息的协同处理主要是通过拓扑叠加来实现的。通常是一个操作过程,其基本型式有:
a.基于地理基础的操作链;
b.基于点、线、面缓冲区信息导入的操作链;
c.基于多边形缓冲区信息导入的操作链;
d.基于遥感局部异常缓冲区信息导入的操作链。
(4)辅助决策
利用GIS空间分析功能为区域发展规划提供程序化辅助决策服务,是地理信息系统技术发展的主导方向。即,目标明确、过程清晰,用常规数学方法可以求解(图5.2.4)。
图5.2.4HNL&R-CC/GIS程序化决策过程
(5)注意事项
资源与环境地理信息系统制作是一个宏大的系统工程,在实施过程中除要做到精心组织外,还需考虑如下几个问题。
a.服务对象明确,以用户的需求来确定工作比例尺、数据采集范围和数据库结构。
b.数据采集准确,防止垃圾数据影响工作精度,对于一时难以收集的数据应留有扩充空间。
c.结构设置规范,相关数据项要建立联系,保证数据流动畅通。
d.接口和网络化,充分考虑与其他数据库联接和今后的网络化改造问题。