第一篇:管理信息系统实验报告姜湖
西安邮电大学
管理信息系统实验报告
专 业 班 级 学生姓名 学 号 01145018 指导老师
人力资源管理 人力1401 姜湖 朱烨行
代码设计
#include
struct book *next;};struct book *creatbook();
struct book *addbook(struct book *head);int yanzheng(struct book *head,int m);
void deletebook(struct book *head);
void fprint(struct book *head);
struct book *load();
void print_book(struct book *head);
void chaxun(struct book *head);
void num_chaxun(struct book *head);
void wname_chaxun(struct book *head);void sort_chaxun(struct book *head);
void time_chaxun(struct book *head);
void bname_chaxun(struct book *head);void xiugai(struct book *head);
void paixu(struct book *head);
void num_paixu(struct book *head);
void time_paixu(struct book *head);
void price_paixu(struct book *head);
void bname_paixu(struct book *head);
void wname_paixu(struct book *head);
int main(){ int choice,n,x,y=1,c,c1=1;
char a,d,b[10],b1[10]=“1”;struct book *head=NULL;while(y){
system(“cls”);
printf(“nnnnn”);
//创建链表 //添加图书
//验证新添加的图书编码是否已存在 //删除图书
//将链表写入文件
//从文件中读取信息并建成链表
//将链表信息输出
//查询图书信息
//按图书编号查询图书
//按作者名查询图书
//按类别查询图书
//按出版时间查询图书
//按图书名查询图书
//修改图书信息
//对图书进行排序
//按图书编号排序
//按图书出版时间排序 //按图书价格排序
//按图书名排序
//按作者名排序
printf(“
--------n”);
printf(“
---||-------------||-------图书信息管理系统--------||-----------||---n”);
printf(“
---||-------------||-------
登陆界面
--------||-----------||---n”);
printf(“
--------n”);
printf(“n”);
printf(“
============1-进入系统===========n”);
printf(“
============0-退出系统===========n”);
printf(“
--------n”);
printf(“
请输入选择:”);
scanf(“%d”,&n);printf(“n”);
getchar();
switch(n){
case 0:
y=0;
break;
case 1:
printf(“
请输入您的用户名(输入1即可):”);
gets(b);
printf(“n”);
printf(“
请输入您的密码(输入1即可):”);
scanf(“%d”,&c);
printf(“n”);
if(strcmp(b,b1)!=0||c!=c1){
printf(“
验证失败,请重新输入!n”);
scanf(“%c”,&d);
getchar();
system(“cls”);
}
else{
printf(“
验证通过!请按Enter键进入!n”);
scanf(“%c”,&d);
getchar();
x=1;
while(x){
system(“cls”);
system(“color 1F”);
printf(“
--------nn”);
printf(“
---||-------------||-------图书信息管理系统--------||-----------||---nn”);
printf(“
---||-------------||-----------操作界面------------||-----------||---nn”);
printf(“
--------nn”);
printf(“
---------------n”);
printf(“
----||-----------系统菜单选项-----------||----n”);
printf(“
---------------n”);
printf(“
-|| 1-添加图书
删除图书-2 ||-nn”);
printf(“
-|| 3-图书列表
图书排序-4 ||-nn”);
printf(“
-|| 5-查询图书
修改图书-6 ||-nn”);
printf(“
-|| 7-录入数据
退出系统-0 ||-nn”);
printf(“
---------------n”);
printf(“
---------------nn”);
printf(“请输入所选择的序号:”);
scanf(“%d”,&choice);
getchar();
system(“cls”);
switch(choice)
{
case 0:
x=0;break;
case 1:
head=load();
if(head==NULL){
printf(“文件为空,请先录入数据!n”);
getchar();
break;
}
else{
head=addbook(head);
printf(“添加成功!n”);
printf(“是否将新信息保存到文件?(y/n)n”);
scanf(“%c”,&a);
getchar();
switch(a){
case 'n':
break;
case 'y':
fprint(head);
printf(“保存成功!n”);
getchar();
break;
}
break;
}
case 2:
head=load();
if(head==NULL){
printf(“文件为空,请先录入数据!n”);
getchar();
break;
}
else{
deletebook(head);
getchar();
break;
}
break;
case 3:
head=load();
if(head==NULL){
printf(“文件为空,请先录入数据!n”);
getchar();
break;
}
else{
print_book(head);
getchar();
break;
}
case 4:
head=load();
if(head==NULL){
printf(“文件为空,请先录入数据!n”);
getchar();
break;
}
else{
paixu(head);
getchar();
}
break;
case 5:
head=load();
if(head==NULL){
printf(“文件为空,请先录入数据!n”);
息?(y/n)n“);
getchar();
break;
}
else{
chaxun(head);
getchar();
}
break;case 6:
head=load();
if(head==NULL){
printf(”文件为空,请先录入数据!n“);
getchar();
break;
}
else{
xiugai(head);
getchar();
break;
}
break;case 7:
printf(”注意:输入图书编码为0时结束!n“);
head=creatbook();
printf(”是否将输入的信息保存到文件以覆盖文件中已存在的信
getchar();
scanf(“%c”,&a);
getchar();
switch(a){
case '0':
break;
case 'y':
fprint(head);
printf(“保存成功!n”);
getchar();
break;
}
break;default:
printf(“输入有误,请重新输入!n”);
getchar();
break;
}
}
}
break;
default:
printf(“
输入有误,请重新输入!n”);
getchar();
break;
} } }
//录入数据并形成链表 struct book *creatbook(){ struct book *head,*tail,*p;int num,time,n;char bname[50],wname[20],press[50],sort[50];float price;int size=sizeof(struct book);head=tail=NULL;printf(“请输入图书编号:”);scanf(“%d”,&num);
printf(“请输入图书名:”);
scanf(“%s”,bname);getchar();
printf(“请输入作者名:”);
scanf(“%s”,wname);getchar();
printf(“请输入出版社:”);
scanf(“%s”,press);getchar();printf(“请输入类别:”);
scanf(“%s”,sort);getchar();
printf(“请输入出版时间:”);
scanf(“%d”,&time);getchar();
printf(“请输入价格:”);
scanf(“%f”,&price);getchar();while(1){
p=(struct book *)malloc(size);
p->num=num;
strcpy(p->bname,bname);
strcpy(p->wname,wname);
strcpy(p->press,press);
strcpy(p->sort,sort);
p->time=time;
p->price=price;
p->next=NULL;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
do{
printf(“请输入图书编号:”);
scanf(“%d”,&num);
n=yanzheng(head,num);
if(n==0)
break;
else
printf(“您输入的编号已存在,请重新输入!n”);}while(1);
if(num==0)
break;
else
{
printf(“请输入图书名:”);
scanf(“%s”,bname);
getchar();
printf(“请输入作者名:”);
scanf(“%s”,wname);
getchar();
printf(“请输入出版社:”);
scanf(“%s”,press);
getchar();
printf(“请输入类别:”);
scanf(“%s”,sort);
getchar();
printf(“请输入出版时间:”);
scanf(“%d”,&time);
getchar();
printf(“请输入价格:”);
scanf(“%f”,&price);
getchar();
} } return head;}
//插入结点,并且插入后仍按一定顺序 struct book *addbook(struct book *head){
struct book *ptr,*p1,*p2,*p;
char bname[50],wname[20],press[50],sort[50];int size=sizeof(struct book);
int num,time,n=1;float price;do{
printf(“请输入图书编号:”);
scanf(“%d”,&num);
n=yanzheng(head,num);
if(n==0)
break;
else
printf(“您输入的编号已存在,请重新输入!n”);}while(1);
printf(“请输入图书名:”);
scanf(“%s”,bname);getchar();
printf(“请输入作者名:”);
scanf(“%s”,wname);getchar();
printf(“请输入出版社:”);
scanf(“%s”,press);getchar();printf(“请输入类别:”);
scanf(“%s”,sort);getchar();
printf(“请输入出版时间:”);
scanf(“%d”,&time);getchar();
printf(“请输入价格:”);
scanf(“%f”,&price);getchar();p=(struct book *)malloc(size);
p->num=num;
strcpy(p->bname,bname);strcpy(p->wname,wname);strcpy(p->press,press);strcpy(p->sort,sort);p->time=time;p->price=price;p2=head;ptr=p;while((ptr->num>p2->num)&&(p2->next!=NULL)){
p1=p2;
p2=p2->next;} if(ptr->num<=p2->num){
if(head==p2)
head=ptr;
else{
p1->next=ptr;
p->next=p2;
} } else{
p2->next=ptr;
p->next=NULL;} return head;} //验证添加的图书编号是否已存在 int yanzheng(struct book *head,int m){ struct book *p;p=head;while(p!=NULL){
if(p->num==m)
break;
p=p->next;} if(p==NULL)
return 0;else
return 1;}
//将新链表写入文件中
void fprint(struct book *head){ FILE *fp;char ch='1';struct book *p1;if((fp=fopen(“f1.txt”,“w”))==NULL){
printf(“File open error!n”);
exit(0);} fputc(ch,fp);for(p1=head;p1;p1=p1->next){
fprintf(fp,“%d %s %s %s %s %d %fn”,p1->num,p1->bname,p1->wname,p1->press,p1->sort,p1->time,p1->price);} fclose(fp);} //从文件中读取图书信息 struct book *load(){ FILE *fp;char ch;struct book *head,*tail,*p1;head=tail=NULL;if((fp=fopen(“f1.txt”,“r”))==NULL){
printf(“File open error!n”);
exit(0);} ch=fgetc(fp);if(ch=='1'){
while(!feof(fp)){
p1=(struct book *)malloc(sizeof(struct book));
fscanf(fp,“%d%s%s%s%s%d%fn”,&p1->num,p1->bname,p1->wname,p1->press,p1->sort,&p1->time,&p1->price);
if(head==NULL)
head=p1;
else
tail->next=p1;
tail=p1;
}
tail->next=NULL;
fclose(fp);
return head;} else
return NULL;
} //将整个链表的信息输出
void print_book(struct book *head){ struct book *ptr;if(head==NULL){
printf(“n没有信息!n”);
return;} printf(“
图书信息列表如下n”);printf(“ ==============================n”);printf(“ 编号
图书名
作者名
出版社
类别
出版时间 价格n”);for(ptr=head;ptr;ptr=ptr->next)printf(“ %3d
%-12s
%-8s %-14s
%-2s
%-4d
%.2fn”,ptr->num,ptr->bname,ptr->wname,ptr->press,ptr->sort,ptr->time,ptr->price);printf(“ ==============================n”);} //删除图书信息
void deletebook(struct book *head){ int a;char b,ch='1';struct book *p1,*p2;FILE *fp;printf(“请输入要删除的图书编号:”);scanf(“%d”,&a);
p1=head;
if(p1->num==a&&p1->next==NULL){
//对于文件中只有一组数据
printf(“是否清空文件!(y/n)n”);
getchar();
scanf(“%c”,&b);
getchar();
switch(b){
case 'n':
break;
case 'y':
if((fp=fopen(“f1.txt”,“w”))==NULL){
printf(“File open error!n”);
exit(0);
}
fclose(fp);
printf(“文件已清空!n”);
} } else{
while(p1->num!=a&&p1->next!=NULL){
p2=p1;
p1=p1->next;
}
if(p1->next==NULL){
if(p1->num==a){
p2->next=NULL;
printf(“是否确定从文件中彻底删除该图书?(y/n)n”);
getchar();
scanf(“%c”,&b);
switch(b){
case 'n':
break;
case 'y':
fprint(head);
printf(“删除成功!n”);
getchar();
break;
}
}
else{
printf(“没有找到要删除的数据!n”);
getchar();
}
}
else if(p1==head){
head=p1->next;
printf(“是否确定从文件中彻底删除该图书?(y/n)n”);
getchar();
scanf(“%c”,&b);
switch(b){
case 'n':
break;
case 'y':
fprint(head);
printf(“删除成功!n”);
getchar();
break;
}
}
else{
p2->next=p1->next;
printf(“是否确定从文件中彻底删除该图书?(y/n)n”);
getchar();
scanf(“%c”,&b);
switch(b){
case 'n':
break;
case 'y':
fprint(head);
printf(“删除成功!n”);
getchar();
break;
}
} }
} //图书查询
void chaxun(struct book *head){ int a;printf(“
============n”);printf(“
** 1-按图书编号查询
2-按图书名查询 **n”);printf(“
** 3-按图书类别查询
4-按作者名查询 **n”);printf(“
** 5-按出版时间查询
0-退出查询
**n”);printf(“
============n”);printf(“请输入所选择的编号:”);scanf(“%d”,&a);getchar();switch(a){ case 0:
break;case 1:
num_chaxun(head);
break;case 2:
bname_chaxun(head);
break;case 3:
sort_chaxun(head);
break;case 4:
wname_chaxun(head);
break;case 5:
time_chaxun(head);
break;default:
printf(“您的输入有误!n”);
break;} } //按编号查询图书信息
void num_chaxun(struct book *head){ int a;struct book *p;
printf(“请选择您要查询的图书编号:”);scanf(“%d”,&a);getchar();p=head;
while(p!=NULL){
if(p->num==a)
break;
p=p->next;}
if(p==NULL){
printf(“没有找到该编号的图书!n”);} else{
printf(“
你所查询的图书信息如下n”);
printf(“ ==============================n”);
printf(“ 编号
图书名
作者名
出版社
类别
出版时间 价格n”);
printf(“ %3d
%-12s
%-8s %-14s
%-2s
%-4d
%.2fn”,p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);
printf(“ ==============================n”);} } //按图书名查询图书信息
void bname_chaxun(struct book *head){ char a[50];int flag=0;struct book *p;
printf(“请选择您要查询的图书名:”);gets(a);p=head;while(p!=NULL){
if(strcmp(p->bname,a)==0){
flag=1;
break;
}
p=p->next;}
if(flag==0){
printf(“没有找到该图书名的图书!n”);
} else{
printf(“
你所查询的图书信息如下n”);printf(“ ==============================n”);printf(“ 编号
图书名
作者名
出版社
类别
出版时间 价格n”);
while(p!=NULL){
if(strcmp(p->bname,a)==0){
printf(“ %3d
%-12s
%-8s %-14s
%-2s
%-4d
%.2fn”,p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);
}
p=p->next;}
printf(“ ==============================n”);}
} //按作者名查询图书信息
void wname_chaxun(struct book *head){ char a[50];int flag=0;struct book *p;
printf(“请选择您要查询的图书作者名:”);gets(a);p=head;
while(p!=NULL){
if(strcmp(p->wname,a)==0){
flag=1;
break;
}
p=p->next;}
if(flag==0){
printf(“没有找到该图书名的图书!n”);
} else{
printf(“
你所查询的图书信息如下n”);
printf(“ ==============================n”);
printf(“ 编号
图书名
作者名
出版社
类别
出版时间 价格n”);
while(p!=NULL){
if(strcmp(p->wname,a)==0){
printf(“ %3d
%-12s
%-8s %-14s
%-2s
%-4d
%.2fn”,p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);
flag=1;
}
p=p->next;}
printf(“ ==============================n”);}
} //按图书类别查询图书信息
void sort_chaxun(struct book *head){ char a[50];int flag=0;struct book *p;
printf(“请选择您要查询的图书类别:”);gets(a);p=head;
while(p!=NULL){
if(strcmp(p->sort,a)==0){
flag=1;
break;
}
p=p->next;}
if(flag==0){
printf(“没有找到该图书名的图书!n”);
} else{
printf(“
你所查询的图书信息如下n”);printf(“ ==============================n”);printf(“ 编号
图书名
作者名
出版社
类别
出版时间 价格n”);
while(p!=NULL){
if(strcmp(p->sort,a)==0){
printf(“ %3d
%-12s
%-8s %-14s
%-2s
%-4d
%.2fn”,p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);
flag=1;
}
p=p->next;}
printf(“ ==============================n”);} } //按图书出版时间查询图书信息 void time_chaxun(struct book *head){ int a,flag=0;struct book *p;
printf(“请选择您要查询的图书出版时间:”);scanf(“%d”,&a);
getchar();p=head;
while(p!=NULL){
if(p->time==a){
flag=1;
break;
}
p=p->next;}
if(flag==0){
printf(“没有找到该图书名的图书!n”);
} else{
printf(“
你所查询的图书信息如下n”);
printf(“ ==============================n”);printf(“ 编号
图书名
作者名
出版社
类别
出版时间 价格n”);
while(p!=NULL){
if(p->time==a){ printf(“ %3d
%-12s
%-8s %-14s
%-2s
%-4d
%.2fn”,p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);
flag=1;
}
p=p->next;}
printf(“ ==============================n”);} } //修改图书信息 void xiugai(struct book *head){ int a,b;char c;struct book *p;printf(“请输入要修改的图书编号:”);scanf(“%d”,&a);p=head;while(p!=NULL){
if(p->num==a)
break;
p=p->next;} if(p==NULL){
printf(“没有找到该编号的图书!n”);
getchar();} else{
printf(“
==============n”);
printf(“
** 1-编号
2-图书名
者名
**n”);
printf(“
** 4-出版社
5-类别
版时间 **n”);
printf(“
** 7-价格
8-修改全部
弃修改 **n”);
printf(“
==============n”);
printf(“请选择你要修改的信息编号:”);
scanf(“%d”,&b);
getchar();
switch(b){
case 1:
printf(“请输入新编号:”);
scanf(“%d”,&p->num);
printf(“修改成功!n”);
getchar();
break;
case 2:
printf(“请输入新图书名:”);
gets(p->bname);
printf(“修改成功!n”);
break;
case 3:
3-作6-出0-放
printf(“请输入新作者名:”);
gets(p->wname);
printf(“修改成功!n”);
break;
case 4:
printf(“请输入新出版社:”);
gets(p->press);
printf(“修改成功!n”);
break;
case 5:
printf(“请输入新类别:”);
gets(p->sort);
printf(“修改成功!n”);
break;
case 6:
printf(“请输入新出版时间:”);
scanf(“%d”,&p->time);
printf(“修改成功!n”);
getchar();
break;
case 7:
printf(“请输入新价格:”);
scanf(“%f”,&p->price);
printf(“修改成功!n”);
getchar();
break;
case 8:
printf(“请输入新图书编号:”);
scanf(“%d”,&p->num);
printf(“请输入新图书名:”);
scanf(“%s”,p->bname);
getchar();
printf(“请输入新作者名:”);
scanf(“%s”,p->wname);
getchar();
printf(“请输入新出版社:”);
scanf(“%s”,p->press);
getchar();
printf(“请输入新类别:”);
scanf(“%s”,p->sort);
getchar();
printf(“请输入新出版时间:”);
scanf(“%d”,&p->time);
getchar();
printf(“请输入新价格:”);
scanf(“%f”,&p->price);
getchar();
printf(“修改成功!n”);
getchar();
break;
case 0:
break;
default :
printf(“您的输入有误!n”);
break;
}
printf(“是否将修改后的信息保存到文件中?(y/n)n”);
scanf(“%c”,&c);
getchar();
switch(c){
case 'n':
break;
case 'y':
fprint(head);
printf(“保存成功!n”);
getchar();
break;
}
} } //图书排序
void paixu(struct book *head){ int a;
printf(“
==================n”);printf(“
** 1-按图书编号排序
2-按出版时间排序
**n”);printf(“
** 3-按图书价格排序
4-按图书名排序
**n”);printf(“
** 5-按作者名排序
0-取消排序操作
**n”);printf(“
==================n”);printf(“请输入您选择的编号:”);scanf(“%d”,&a);getchar();switch(a){ case 0:
break;case 1:
num_paixu(head);
break;case 2:
time_paixu(head);
break;case 3:
price_paixu(head);
break;case 4:
bname_paixu(head);
break;case 5:
wname_paixu(head);
break;default:
printf(“您的输入有误!n”);
break;} }
//按图书编号排序
void num_paixu(struct book *head){ struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next)
n++;for(i=0;i a[i]=p1; p1=p1->next;} for(k=0;k index=k; for(i=k+1;i if(a[i]->numnum) index=i; } temp=a[index]; a[index]=a[k]; a[k]=temp;} printf(“排序成功!n”);printf(“是否显示排序结果?(y/n)n”);scanf(“%s”,&b); getchar();switch(b){ case 'n': break;case 'y': printf(“ ==============================n”); printf(“ 编号 图书名 作者名 出版社 类别 出版时间 价格n”); for(i=0;i printf(“ %3d %-12s %-8s %-14s %-2s %-4d %.2fn”,a[i]->num,a[i] ->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price); } printf(“ ==============================n”); break;default: printf(“您的输入有误!n”); break;} } //按出版时间排序 void time_paixu(struct book *head){ struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next) n++;for(i=0;i a[i]=p1; p1=p1->next;} for(k=0;k index=k; for(i=k+1;i if(a[i]->timetime) index=i; } temp=a[index]; a[index]=a[k]; a[k]=temp;} printf(“排序成功!n”);printf(“是否显示排序结果?(y/n)n”);scanf(“%s”,&b); getchar();switch(b){ case 'n': break;case 'y': printf(“ ==============================n”); printf(“ 编号 图书名 作者名 出版社 类别 出版时间 价格n”); for(i=0;i printf(“ %3d %-12s %-8s %-14s %-2s %-4d %.2fn”,a[i]->num,a[i] ->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price); } printf(“ ==============================n”); break;default: printf(“您的输入有误!n”); break;} } //按图书价格排序 void price_paixu(struct book *head){ struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next) n++;for(i=0;i a[i]=p1; p1=p1->next;} for(k=0;k index=k; for(i=k+1;i if(a[i]->priceprice) index=i; } temp=a[index]; a[index]=a[k]; a[k]=temp;} printf(“排序成功!n”);printf(“是否显示排序结果?(y/n)n”);scanf(“%s”,&b); getchar();switch(b){ case 'n': break;case 'y': printf(“ ==============================n”); printf(“ 编号 图书名 作者名 出版社 类别 出版时间 价格n”); for(i=0;i printf(“ %3d %-12s %-8s %-14s %-2s %-4d %.2fn”,a[i]->num,a[i] ->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price); } printf(“ ==============================n”); break;default: printf(“您的输入有误!n”); break;} } //按图书名排序 void bname_paixu(struct book *head){ struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next) n++;for(i=0;i a[i]=p1; p1=p1->next;} for(k=0;k index=k; for(i=k+1;i if(strcmp(a[index]->bname,a[i]->bname)>0) index=i; } temp=a[index]; a[index]=a[k]; a[k]=temp;} printf(“排序成功!n”);printf(“是否显示排序结果?(y/n)n”);scanf(“%s”,&b); getchar();switch(b){ case 'n': break;case 'y': printf(“ ==============================n”); printf(“ 编号 图书名 作者名 出版社 类别 出版时间 价格n”); for(i=0;i printf(“ %3d %-12s %-8s %-14s %-2s %-4d %.2fn”,a[i]->num,a[i] ->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price); } printf(“ ==============================n”); break;default: printf(“您的输入有误!n”); break;} } //按作者名排序 void wname_paixu(struct book *head){ struct book *a[1000],*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p->next) n++;for(i=0;i a[i]=p1; p1=p1->next;} for(k=0;k index=k; for(i=k+1;i if(strcmp(a[index]->wname,a[i]->wname)>0) index=i; } temp=a[index]; a[index]=a[k]; a[k]=temp;} printf(“排序成功!n”);printf(“是否显示排序结果?(y/n)n”);scanf(“%s”,&b); getchar();switch(b){ case 'n': break;case 'y': printf(“ ==============================n”); printf(“ 编号 图书名 作者名 出版社 类别 出版时间 价格n”); for(i=0;i printf(“ %3d %-12s %-8s %-14s %-2s %-4d %.2fn”,a[i]->num,a[i]->bname,a[i]->wname,a[i]->press,a[i]->sort,a[i]->time,a[i]->price); } printf(“ ==============================n”); break;default: printf(“您的输入有误!n”); break;} } 《管理信息系统》 实验报告 题 目 某公司办公用品管理系统 实验名称 系统规划及分析报告 成员学号 成员姓名 成绩 指导教师 时间: 2010年12月 3日 目录 引言.........................................................................................................1 1.1 系统开发背景及需求.....................................................................................1 1.2 系统目标.........................................................................................................1 1.2.1 系统的约束..........................................................................................1 1.2.2 系统的总体结构..................................................................................1 1.3 项目开发计划.................................................................................................2 1.3.1 对影响规划的信息技术发展的预测..................................................2 1.3.2项目的角色分配...................................................................................2 1.3.3项目开发过程时间进度、人员及资金安排.......................................2 系统分析.................................................................................................2 2.1 系统可行性分析.............................................................................................3 2.1.1 经济可行性2.1.2 技术可行性.........................................................3 2.1.3 管理可行性..........................................................................................3 2.2 组织结构调查.................................................................................................3 2.3管理功能调查..................................................................................................4 2.4 某公司办工用品管理系统业务流程分析...................................................5 2.4.1 业务流程图符号说明..........................................................................5 2.4.2 某公司办工用品管理业务流程图......................................................5 2.5 某公司办工用品管理系统数据流程分析...................................................7 2.5.1 数据流程图符号说明..........................................................................7 2.5.2 顶层流程图..........................................................................................7 2.5.3 第一层数据流程图..............................................................................8 2.5.4 第二层数据流程图..............................................................................8 结束语.....................................................................................................9 《管理信息系统》实验报告正文 引言 1.1 系统开发背景及需求 某公司是一个多种产业经营的中小型企业,但因为业务需求,每需要的办公用品也是不少。但是办公用品的购入和管理却还是由人工记帐、管理的方式,管理人员的缺乏,使之相对工作量较大,且管理人员手工操作效率不高,出错率却不低。 1.2 系统目标 为了能更好地利用现代信息技术的成果,提高工作的效率和水平,以适应公司的发展,决定开发办公用品管理系统。 1.2.1 系统的约束 (1)公司负责人高度重视,负责指挥、协调各方关系,全力配合本系统开发;(2)公司必须建立一套切实可行的规章制度,规范公司各个部门的管理环节;(3)必须配置软件、硬件及相关设备(PC、打印机、网络设备等),确保系统运行的可行性; (4)用户需要有基本的计算机操作能力,会进行文字输入,能对数据库进行基本的维护,如备份和恢复数据库等,会使用打印机; (5)需要有足够的资金保证系统开发和运行管理。 1.2.2 系统的总体结构 管理层:办公用品信息、办公人员信息、供应商资料 业务层:入库、使用信息、盘点、移库、统计 第1页 《管理信息系统》实验报告正文 办公用品管理系统 办公用品管理办公人员管理用品供应商管理入库系统管理使用信息管理库存用品盘点办公系统移库统计系统 1.3 项目开发计划 1.3.1 对影响规划的信息技术发展的预测 该系统应适应信息技术发展需求 1.3.2项目的角色分配 由自己一人开发 1.3.3项目开发过程时间进度、人员及资金安排 由一人开发,时间为三个月 系统分析 根据调查,办公用品入库的过程是当购入商品到货后,负责进货的人员首先填写入库单,然后经仓库管理人员对商品的质量及数量进行核查后方可入库,并更新商品入库流水帐,另外如果是新产品,则还要在库存台帐中建立新帐页。工作人员对办公用品使用管理过程是管理人员根据工作人员提供的办公用品使用申请单,经核查后同意使用,同时登记办公用品的出库使用流水帐。按照要求,每天下班之前统计分析人员要根据办公用品购入流水帐和办公用品的出库使用流水帐,累计汇总出各种办公用品当日的累计购入入库量、累计办公用品的出库使用量和库存结余量等数据,并将这些数据填入库存台帐。 第2页 《管理信息系统》实验报告正文 原有的手工方式存在的问题有: 手工模式下的效率低、错误多、处理速度慢,不适应企业发展的需要。 在具体工作中,存在大量数据的保存、汇总、查询等工作,手工模式速度慢而且不利于数 据的分析,已不适应现代管理模式 2.1 系统可行性分析 原有的手工方式存在的问题有: 手工模式下的效率低、错误多、处理速度慢,不适应企业发展的需要。 在具体工作中,存在大量数据的保存、汇总、查询等工作,手工模式速度慢而且不利于数 据的分析,已不适应现代管理模式。 加入信息管理系统,可以使效率提高,降低出错率。 本系统小巧易用,只要4台电脑组成,成本较低,管理人员工作量减少,可以给企业带来利益,所以可以推广 2.1.1 经济可行性2.1.2 技术可行性 管理人员工作量减少,可以给企业带来利益,所以可以推广 2.1.3 管理可行性 管理方面而言,随着公司的日益壮大,公司对此套系统的需求日益增大,高层管理部门对新系统表现出充分的支持和积极参与的态度。系统的开发和现有制度并没有冲突,而且现有员工可以通过培训很容易的掌握和使用系统。 2.2 组织结构调查 经调查,XX公司办公用品管理主要由采购办公室主任统一管辖,下设进出用品主管、库存主管、使用信息统计主管。 1、进出用品主管主要管理办公用品的采购和分配使用,下设两名业务员,采购人员负责采购,出货人员负责分配分配使用。 2、库存主管主要管理办公用品的库存管理,下设一名业务员,协助库存主管管理。 3、信息统计主管主要管理职员使用办公用品的统计,下设一名业务员,协助主管管理。 第3页 《管理信息系统》实验报告正文 采购办公室主任进出用品主管库存主管信息统计主管采购人员出货人员库存管理人员信息统计人员 2.3管理功能调查 采购管理:包括商品信息、供货商、商品订购的管理。库存管理:用品的出库、入库管理。 统计管理:包括用品的购入统计、使用统计。 某公司办公用品管理采购管理库存管理统计管理商品信息管理供货商管理商品订购管理入库管理出库管理用品购入统计用品使用统计 第4页 《管理信息系统》实验报告正文 2.4 某公司办工用品管理系统业务流程分析 1、办公用品购入业务流程分析 进出用品主管查询货品库存与职员需求计划,若不足,则编写相应的采购订货单据,并交由发货商提出订货请求。 供应商按订单要求发货给进出用品主管,并附上发货单。进出用品主管填写收货单送交库存主管。 库存主管根据收货单信息登记货品库存和用品购入流水帐。库存主管送交用品购入流水帐给信息统计主管。 2、办公用品使用业务流程分析 职员向进出用品主管提交用品使用申请单。 进出用品主管核对用品使用申请单、货品库存(资料)等资料,根据货品库存(资料)填写用品使用单,并送交库存主管。 库存主管根据用品使用单信息登记货品库存和用品使用流水帐。库存主管送交用品使用流水帐给信息统计主管。 2.4.1 业务流程图符号说明 2.4.2 某公司办工用品管理业务流程图 1、办公用品购入业务流程流程图 第5页 ,《管理信息系统》实验报告正文 职员需求计划订货单进出用品主管发货商发货单收货单库存主管用品购入流水帐货品库存 2、办公用品使用业务流程图 进出用品主管用品使用申请单信息统计主管 职员用品使用单库存主管用品使用流水帐货品库存信息统计主管 第6页 《管理信息系统》实验报告正文 2.5 某公司办工用品管理系统数据流程分析 1、办公用品购入管理数据流程 进出用品主管查询货品库存(资料),若货品的库存量不能满足用户的需要,则编制相应的采购订货单,并交送给供应商提出订货请求;供应商按订单要求发货给进出用品主管,并附上发货单;进出用品主管填写收货单送交库存主管。 2、办公用品使用管理数据流程 职员向进出用品主管提交工作物品使用申请凭证,业务员检查使用申请凭证和货存库存(资料),填写使用物品清单,修改库存资料;批准审核人员根据使用用品清单,填写工作物品使用凭证;信息管理主管根据工作物品使用凭证,进行物品汇总,记录使用明细;职员在使用后,想将物品退回,填写用品退回凭证,用品退还人员开具退还用品清单,交回信息管理主管进行使用汇总,并更新使用明细。 3、办公用品库存管理数据流程 库存主管根据进出用品主管送来的收货单登记入库流水帐和货品库存(资料);根据职员提供的办公用品使用凭证及进出用品主管提供的办公用品使用凭证发货;根据进出用品主管提供的退还用品单办理退还用品;所有出库都需建立出库流水账,更新货品库存(资料)。 2.5.1 数据流程图符号说明 2.5.2 顶层流程图 发货单工作物品使用凭证PE1供应商订货单办公用品管理系统E2职员工作物品使用申请凭证用品退还凭证 第7页 《管理信息系统》实验报告正文 2.5.3 第一层数据流程图 用品退还凭证订货单E1供应商发货单P1进货P2使用工作物品使用凭证E2职员工作物品使用申请凭证收货单S办公用品库存(资料)准许用证品退回凭P3库存 2.5.4 第二层数据流程图 1、办公用品购入管理数据流程图 发货单S采购订货单E1供应商P1.1P1.2收货订货单编制订货S货品库存(资料) 第8页 《管理信息系统》实验报告正文 2、办公用品使用管理数据流程 工作物品使用凭证P2.1E2职员工作物品使用申请凭证P2.2使用用品清单申请凭证收集申请凭证批准用品退还凭证S货品库存(资料)工作凭物证品使用P2.4用品退还退还用品清单P2.3使用汇总S使用明细 3、办公用品库存管理数据流程图 E1供应商收货单P3.1入库流水帐入库退还用品单P3.2退还S办公用品库存(资料)出库流水账E2职员P3.3办公用品使用凭证发货出库流水账 结束语 管理信息系统的好处是可以简化人们日常工作中的大量机械重复的操作,使一些过程繁琐且数据量大的数据收集工作得已高效的进行,信息系统还可以通过对数据的有效控制,实现对工作流层的控制,协调。现在的信息系统,如专家系统还可以给管理人员提供决策支持,通过对数据的整理分析给管理 第9页 《管理信息系统》实验报告正文 层提供有利于决策的决策模型,管理信息系统中的数据仓库,可以对大量的日常数据进行数据挖掘操作,发现一些不为人知的,但是切实可用的规律,变化。例如:电话公司的自动缴费系统,大大缩短了,客户缴费的时间,省去了传统的前台收费后还要手动把所收取费用计入账本的麻烦。沃尔玛的数据挖掘系统,根据客户购买商品的数据,发现了暴风雨天气,啤酒销量上涨的规律,物流公司可以通过信息系统,对货物进行跟踪控制.....等等,信息系统的好处通过上述例子不言而喻。通过学习让我们初步学会了一些东西,在我们以后的工作中会有大作用。 第10页 管理信息系统实验报告 专 业:信息管理与信息系统 班 级:信管122 组 长:丁晓璐 小组成员:尹 婷(2012215082) 刘娇娇(2012215078)李 尧(2012215079)丁晓璐(2012215043) 一、实验名称 金蝶ERP-K/3模拟实验财务管理系统 二、实验环境 2607机房 三、实验目的 通过学会会计实验软件,了解从原始凭证、编制记账凭证,然后到记账、对账、结账等,这一系列会计处理过程。能够使用软件的基本功能,并扩大到往来、出纳、固定资产等管理。利用会计实验软件,在实验过程中全面了解和熟悉会计实务,掌握会计基本概念,熟悉会计核算的基本程序和基本方法。通过实训能进一步理解巩固ERP理论,培养对企业信息化的认识,能将所学的ERP知识的到综合运用,提高动手实践能力和企业实战本领。 四、实验内容 (1)建账:根据要求建立账号。 (2)帐套初始化:根据给出的资料按顺序完成帐套系统基础资料的维护及初始化工作。 (3)日常账务处理:根据资料录入记账凭证,对其进行审核,过账并查看各种帐表,进行业务核销,利用自动转账功能结算有关费用进行期末调汇、结转损益等业务处理并进行期末结账。 实验主要过程截图 新建帐套: 新增用户过程: 进入总账管理系统: 增加两种币别港元和美元: 增加凭证字为记: 增加两个计量单位: 增加支票结算方式: 新增客户资料: 新增部门资料: 新增职员资料: 新增供应商资料: 新增产成品核算项目: 会计科目维护: 增加会计科目: 会计科目修改: 新增物料资料: 初始余额录入: 录入记账凭证: 1.提现类 2.应付往来业务类 3.多核算项目类: 4.数量金额业务类 5.涉及外币业务类 6.管理费用类 7.应收往来业务类 查看录入结果: 红字冲销法冲销错账: 组员S2的审核 转账凭证: 过账: 期末: 再换人审核,审核后过帐通过 五:实验总结 通过该实验,对所学的知识有了一部分的了解。在实验过程中,出现了一些小问题,不过最后都得以解决。然后通过这些错误,使我们对这些知识有更加印象深刻。 在实验过程中加强了同学之间的沟通与理解,体验团队协作精神,从而全面提高我们的经营管理的素质与能力。通过对ERP系统的学习,我们已经对其管理理念与具体操作流程有了一定的了解,感谢老师给与我们细心的讲解与指导,让我们学习到更多与ERP相关知识。 目录 任务一构建用例图.......................................................................2 一、实验目的.................................................................................2 二、实验器材.................................................................................2 三、实验内容.................................................................................2 任务二构建类图...........................................................................8 一、实验目的.................................................................................8 二、实验器材.................................................................................8 三、实验内容.................................................................................8 任务三构建活动图.....................................................................10 一、实验目的...............................................................................10 二、实验器材...............................................................................10 三、实验内容...............................................................................10 任务四构建顺序图.....................................................................13 一、实验目的...............................................................................13 二、实验器材...............................................................................13 三、实验内容...............................................................................13 任务五构建协作图.....................................................................15 一、实验目的...............................................................................15 二、实验器材...............................................................................15 三、实验内容...............................................................................15 任务六构建状态图.....................................................................16 一、实验目的...............................................................................16 二、实验器材...............................................................................16 三、实验内容...............................................................................17 任务一构建用例图 一、实验目的 1.学会分析系统中的参与者和用例 2.掌握用例图的绘制方法 二、实验器材 1.计算机一台; 2.Visio 工具软件; 三、实验内容 1、分析ATM系统需求,按要求画出用例图; 2、建立一个学生管理信息系统的需求的用例图 3、建立管理借阅书籍的用例图 四、实验步骤 (一)ATM系统的用例图 1.分析 ATM自动取款机:客户可以取钱,存钱,查询余额,转帐,修改密码。 通过分析可找出如下几个参与者:(1)ATM(2)客户 通过分析得到如下用例:(1)存款(2)取款(3)查询余额(4)转帐(5)修改密码(6)打印收据 (二)学生管理信息系统的需求分析与完整的用例图 1 学生管理信息系统简介 学生管理信息系统主要为学校的学生处设计:方便学校学生处与学院学生口管理员方便管理学生,学生成绩由教务系统提供,教务系统提供相关的WEB service供学生管理信息系统调用。通过分析可找出如下几个参与者: 学生处管理员、学校领导(学校各种报表统计信息)、学院管理员、班主任(提供学生操行、查询等)、学院领导(学院各种报表统计信息)、学生、后勤管理人员(卫生管理、保卫处异常情况处理)、财务人员、考勤管理员(由副班长提供考勤信息)等 通过分析得到如下一些大的用例: 学生基本信息管理、考勤管理、成绩导入、学校各种报表信息(要求细化)、学院各种报表信息(要求细化)、个人成才规划、新学期注册,操行评定、学生任职信息系统、学生奖惩管理系统(要求细化,包括评优评奖等)、学生变动信息管理(培训内容、助学贷款情况、学校还款情况、勤工助学情况,党员管理),后勤卫生管理、保卫处的学生的异常情况处理、其它的具体由学生自 己定。 2.建立设计一个学生管理信息系统的需求分析 分析学生管理信息系统,建立系统需求分析,并要求画出系统功能框图,如学生管理信息系统的功能模块图如下 系统模块图如后勤卫生查询功能子系统模块图如下。3.建立一个学生管理信息系统的完整的用例图 完整的要求,就为每一类用户分配一个用例模型,如一般学生查询功能用例 要求分析其它参与者的用例模型(4)建立用例的文字描述 1.“基本信息查询”用例 用例编号:04010101用例名:基本信息查询 执行者: 学生自己、学生的班主任、辅导员及其它的特权用户。目的: 查询学生的基本信息,包括姓名、学号、家庭地址等信息。类型: 端点、基本的 级别:二级 过程描述: 用例名:财务信息查询 执行者: 财务人员、学生、学生的班主任、辅导员及其它的特权用户。 目的: 查询助学贷款情况、学校还款情况、勤工助学情况等信息 用例名:学生课程信息查询 执行者: 学生的班主任、辅导员及其它的特权用户。目的: 查询学生选课信息、课程信息、考勤信息等信息。 (三)管理借阅书籍用例图 图书管理员可以操作读者信息,对信息进行添加、删除、修改;也可以查询读者信息;并在读者进行借还书以及图书预约时过程中发挥一定的作用:如还书时超期罚款。 读者可以查询图书信息、当需要的书被借出时,可以进行预约;有需要的书时,直接借阅;但是如果读者借阅的书超过5本则不能再预约和再借出;如果小于等于5本则可以。借出的书超期要罚款。任务二构建类图 一、实验目的 1.理解类的基本概念 2.理解类间的关系 3.掌握类图的绘制方法 二、实验器材 1.计算机一台; 2.Visio 工具软件; 三、实验内容 (1)分析学生管理系统中的选课子系统中类及关系,然后画出它们的类图。(2)生态系统类图 四、实验步骤 (一).选课子系统类图 分析学生管理系统中的选课子系统,通过分析可抽象出如下类:(1)学生类(2)管理员类 学生类和管理员类的属性较容易分析,这里只列出课程类的属性和方法: 1)课程名称(2)开课教室(3)课程号(4)授课教师(5)选课的学生 (3)课程类 (6)开课起始时间(7)允许选课的学生人数(8)设置课程号(9)设置课程名称(10)查询课程号(11)查询允许选课学生人数 (二).类图2 动物生存需要水和氧气,鸟属于动物的一类,鸟有翅膀,大雁、企鹅、鸭都是鸟类,大雁南飞,以雁群为组织,唐老鸭也是鸭子。画出问题中相关类的关系图。任务三构建活动图 一、实验目的 1.熟悉活动图的基本功能和使用方法。2.掌握如何使用建模工具绘制活动图方法。 二、实验器材 1.计算机一台; 2.Visio 工具软件; 三、实验内容 (1)分析图书管理系统中管理员和读者的活动状态,画出管理员和读者的活动图。(2)分析学生管理系统,并画出详细的活动图,并用活动图细化用例图 四、实验步骤 (一)图书管理系统活动图 分析 在图书管理系统中管理员的活动如下: 处理还书 处理借书 处理罚款 读者的活动如下: (1)登录(2)找书(3)预约(4)浏览 1.管理员活动 2.创建读者的活动图 (二)分析学生管理系统,并画出详细的活动图,并用活动图细化用例图 (1)学生基本信息保存的活动图 录入基本信息、点击保存、链接数据库、判定学号是否已存在、判定录入信息是否符合规范(日期信息、身份证号、邮编等信息)-保存。 任务四构建顺序图 一、实验目的 学会用顺序图实现用例 二、实验器材 1.计算机一台; 2.Visio 工具软件; 三、实验内容 1.分析系统需求,画出ATM登录的顺序图(一)ATM登录的场景 “登录成功”活动的执行顺序是:(1)插卡(2)读卡 (3)初始化登录屏(4)提示输入密码(5)密码输入(6)验证密码(7)密码有效(8)返回 任务五构建协作图 一、实验目的 1.学会协作图的绘制方法 2.掌握顺序图和协作图的相互转换。 二、实验器材 1.计算机一台; 2.Visio 工具软件; 三、实验内容 (1)分析系统需求,画出ATM取款的协作图。 四、实验步骤 客户在 ATM上取款的场景 ATM取款的场景分析: (1)客户插入银行卡(2)读卡机读取卡号(3)初始化屏幕 (4)读卡机打开账户并提示输入密码(5)用户输入密码(6)验证密码 (7)屏幕提示选择操作(8)用户选择取款操作(9)银行账户扣除钱款(10)吐钱机提供钱和收据(11)用户取钱并退卡 任务六构建状态图 一、实验目的 1.熟悉状态图的基本功能和使用方法。2.掌握如何使用建模工具绘制状态图方法。 二、实验器材 1.计算机一台; 2.Visio 工具软件; 三、实验内容 (1)分析图书管理系统中的书和借书证的状态,画出它们的状态图; (2)分析学生管理系统,并画出详细的状态图 四、实验步骤 (一)图书管理系统 图书业务有编目、书库、借出、阅览室、注销五种状态。引起状态变化的事件/动作 (1)图书到达后,经验收,等待编目(2)编目后可送入阅览室供阅览或进入书库(3)阅览室的书籍经批准予以注销(4)书库中的书主要用于借阅 (5)借出的书归还后入库,如果遗失,则注销 画出图书业务状态图 (二)分析学生管理系统,并画出详细的状态图(1)建立学生党员申请状态图: USST_第二专业_工商管理《管理信息系统》上机实验报告 实验名称: 班级: 完成时间:6.15 组员分工(格式:NAME.NUMBER.TASK):最多6人 一、实验理论支持(包括主要原理、参考文献) 二、该MIS系统的环境分析(包括硬件环境、软件环境、数据库设计的情况分析) 三、该MIS系统的系统分析(要求绘制组织结构图和业务流程图,然后选择一个功能模块 (不要求全部),画出该功能模块的数据流程图,编制相应的数据字典) 四、探讨该MIS系统的系统设计(包括数据库、输入输出、网络是如何设计的)、系统实施 (包括系统是如何测试的)和系统维护(包括系统是如何维护的) 五、日志(记录完成报告过程的日志) 六、总结(组员心得体会) 注:根据小组熟悉的具体情况,选择一个具体管理信息系统(例如图书借阅管理系统,教务处学生管理信息系统,仓库进销存管理系统,公司人事管理子系统,酒店管理信息系统,超市收银系统)作为实验对象。对该系统进行详细的调研,获取该系统的相关资料,根据课题系统功能需求,开展实地调查或通过Internet查阅相关资料或结合个人经验,进行系统分析。明确管理业务调查过程和方法,绘制系统的组织机构图、管理功能及业务流程图。明确数据流程的调查与分析过程,绘制数据流程图,编制数据字典。在上述工作基础上,完成系统的系统化分析,提出新系统的逻辑模型。 相关图表可以使用smartDraw、Visio2003或者Word等绘制,实验报告题目不限,实验报告以word文档形式提交,不少于10页,发送至zhuxd.cn@gmail.com。截至时间:6月15日。第二篇:管理信息系统实验报告
第三篇:管理信息系统实验报告
第四篇:管理信息系统实验报告
第五篇:《管理信息系统》实验报告