管理系統設計
Ⅰ 圖書館管理系統設計
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.介面和網路化,充分考慮與其他資料庫聯接和今後的網路化改造問題。