? 图书档案管理系统
图3-10 档案管理流图
12
第四章 详细设计
4.1 系统功能结构设计
管理信息系统处理的合理选择,就是一个处理过程的设计问题,选择处理方式实际上时根据系统的任务、目标和环境条件,合理地选择信息活动的形态及其方法。
程序流程图又称程序框图,表示方法简单,是用来描述程序执行的逻辑过程。他把程序执行的步骤归纳为:处理、判断、输入、输出、起始和终结等几个基本功能,并用不同的记号加以表示,从而描述程序的执行过程。 信息管理系统的程序流程图元素如下所示:
图4-1 程序流程图元素
4.2 系统配置方案
根据开发期计算机的性价比和本系统的实际需要,选择ACER计算机和Visual Fox Pro数据库管理系统。
13
第五章 编码
图书管理系统部分源代码
#include
private; int tag; int no;
char name[10];
int borbook[Maxbor]; pubic;
reader(){}
char *getname() {return name;} int gettag() {return tag;} int getno() {return no;} void setname(char na[]) { strcpy(name,na); }
void addreader(int n,char *na) { tag=0; no=n; strcpy(name,na); for(int i=0;i void borrowbook(int bookid) { for(int i=0;i 14 } int retbook(int bookid) { for(int i=0;i void disp() { cout << setw(5) << no < for(int i=0;i cont << \ } class RDatabase { private: int top; Reader read[Maxr]; public: RDatabase() { Reader s; top=-1; fatream file(\.txt\ while (1) { file.read((char *)&s,sizeof(s)); if (!file)break; top++; read[top]=s; } file.close(); } 15 借书编号: }; voidn clear() { top=-1; } int addreader(int n,char *na) { Reader *p=query(n); if (p==NULL) { top++; read[top].addreader(n,na); return 1; } else { cout< Reader *query(int readerid) { for (int i=0;i<=top;i++) if(read[i].getno()==readerid && read[i].gettag()==0) { return &read[i]; } return NULL; } void disp() { for (int i=0;i<=top;i++) read[i].disp(); } void readerdata(); ~RDatabase() { fstream file(\.txt\ for (int i=0;i<=top;i++) if(read[i].gettag()==0) file.write((char *)&read[i],sizeof(read[i])); file.close(); } 16