目录

    • 前言
    • 系统结构概况
    • 在这里插入图片描述
    • 管理系统制作过程
    • 开发环境
    • 操作过程
    • 1.管理系统
    • (1).主菜单界面的实现
    • (2).构建功能的基本框架
    • (3).定义数据结构
    • (4).文件数据的读取
    • (5).读取函数
    • (6).输出所有学生信息
    • (7).增加客人信息
    • 第一部分
    • 第二部分
    • 功能单位
    • (8).删除客人信息
    • 主功能函数
    • 释放内存代码部分
    • 保存改动后文件函数部分
    • 执行结果演示
    • (9).修改客人信息
    • 主功能函数
    • 文件保存函数
  • 执行效果演示
    • (10).查询客人信息
    • 查询客人信息主函数
    • 按照姓名查询
    • 执行效果演示
    • (11).退出系统
    • 执行效果图
    • 完整代码演示

前言


本次管理系统的制作作为开学的必修课,确实强度拉满,这次的管理系统除了自己书写,还求助了许多同学,看了不少的教程,在这个过程虽然走得艰难,但是编程能力,确实有了不小的提升,这是我这几天来的一些对于制作管理系统的一些经验和心得。


系统结构概况


管理系统制作过程


  • 初始界面整理
  • 主题框架的构建
  • 文件的输入
  • 客人信息的输出
  • 客人信息的查询
  • 客人信息的修改与删除
  • 文件信息的保存

开发环境


系统:windows
语言环境:c


操作过程

系统初始界面编写后可以使代码的外壳先出现,下一步架构每个功能的框架,将我们所要做的系统功能细化,逐步实现每一个功能,这样即可以缩小出错时的检查范围,还比较有条理,不会乱,而后制作出数字选择功能,不同的数字一一对应功能,最后以退出程序收尾,中途也添加了部分比较有用的小功能,比如按照不同的标准进行排序等


1.管理系统

(1).主菜单界面的实现


使用输出语句进行了简单的主菜单界面设计,分明了管理系统不同功能,并且对应了数字指令

void welcome(){  system("cls");printf("************************\n");printf("******酒店管理系统******\n");printf("******作者:鄢靖松******\n");printf("******            ******\n");printf("******增加客人信息---1**\n");printf("******删除客人信息---2**\n");printf("******修改客人信息---3**\n");printf("******查询客人信息---4**\n");printf("******输出客人信息---5**\n");printf("******退出管理系统---0**\n");printf("************************\n");printf("************************\n");printf("请输入对应功能键(数字):"); }

(2).构建功能的基本框架


通过多分支语句将所需要分类的功能分好,后面再慢慢填充细节,并且这个系统最好能够执行完其中指令后能够多次进行操作,所以将这段选择功能的代码加入了循环中,以保证其可以多次进行

int main()
{int choice=0;readFile(&List); while(true) //保证其可以多次进行操作{welcome();scanf("%d",&choice);switch(choice){case 1://增加客人信息printAddgesInfo();break;case 2://删除客人信息printDeletegesInfo(&List);break;case 3://修改客人信息printFixgesInfo(&List);break;case 4://查询客人信息printsearchgesInfo(&List);break;case 5://输出客人信息printgesInfo(&List);break;case 0://退出管理系统 goodbye();break;}printf("是否还要继续操作?(yes:1/no:2):");scanf("%d",&choice);if(choice==0){break; } }return 0;}

(3).定义数据结构


这部分虽然简单,但却是整个程序的核心部分,程序中链表的展开也是以定义这个链表的开头为起点的,定义所需要的数据,方便后期程序其他部分对于数据的调用。

typedef struct Node
{int roomid;//房间号 char name[50];//姓名 char sex[10];//性别 int age;// 年龄 int day;// 住宿时长 int consume;//消费金额 struct Node *next;//指向下一个节点
}Node;

(4).文件数据的读取


本程序的数据都需要储存在文件中,所以除了需要创立文件以外,还需要对文件进行相应指令的操作才可以对文件进行使用。c语言的文件读取操作要使用文件指针和相关函数,格式如下。

FILE *fpr=fopen("文件名","相应操作指令");
fscanf(fpr,"%d",&intValue);

文件名需要加上后缀名,操作方式因为是要从文件中读取信息,所以写r如果是进行信息的写入则是w。 之后需要将读取的信息以链表的方式组织起来,打算采用尾插法的方式插入数据。

        t->next=s;//链表的尾指针的后一个结点指向新节点t=s;//更新尾节点t->next=NULL;//链表尾指针的后一个结点指向NULL

(5).读取函数


int readFile(Node *L)
{FILE *fpr=fopen("gesInfo.txt","r");Node st;Node *s;Node *t=L;if(fpr==NULL){return 0;}else{while(fscanf(fpr,"%d %s %s %d %d %d",&st.roomid,&st.name,&st.sex,&st.age,&st.day,&st.consume)!=EOF){s=(Node *)malloc(sizeof(Node));*s=st;t->next=s;//链表的尾指针的后一个结点指向新节点t=s;//更新尾节点t->next=NULL;//链表尾指针的后一个结点指向NULL}}fclose(fpr);//关闭文件指针return 1;}

(6).输出所有学生信息


此处要用到链表的遍历
在输出过程中为了保证美观,可以适当加入一些符号进行设计,并且可以加入比较函数,将部分所需信息提取出来,也算是设计的一些小功能,可以凭借个人能力自行添加

void printgesInfo(Node *L)
{system("cls");Node *p=L->next;printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");if(p!=NULL){while(p!=NULL){printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",p->roomid,p->name,p->sex,p->age,p->day,p->consume);printf("_________________________________________________________\n");p=p->next;}}printf("最高消费,以后有发展价值");printf("消费:%d\n",findmaxscore(L,0));printf("最长住宿天数,可长期合作"); printf("住宿天数:%d\n",findmaxscore(L,1));printf("最大年龄,注意时刻关注大龄人身体状况,避免安全事故发生"); printf("年龄:%d\n",findmaxscore(L,2));}


(7).增加客人信息


下面的增加客人信息用到了头插法,将链表节点进行插入。将客人信息的增加分成了两份,一份是数据的打印,一份是底层数据的处理。


第一部分


void printAddgesInfo();//界面
void insertgesInfo(Node *L,Node e);//功能

第二部分


void printAddgesInfo()
{Node st;system("cls");printf("请输入新增客人相关信息\n");printf("房间号:");scanf("%d",&st.roomid);printf("姓名:"); scanf("%s",&st.name);printf("性别:");scanf("%s",&st.sex);printf("年龄:"); scanf("%d",&st.age);printf("住宿时长:");scanf("%d",&st.day);printf("消费:");scanf("%d",&st.consume);insertgesInfo(&List,st);
}void insertgesInfo(Node *L,Node e)


功能单位


void insertgesInfo(Node *L,Node e)
{//头插法Node *h=L;Node *s=(Node *)malloc(sizeof(Node));*s=e;s->next=h->next;h->next=s;saveFile(L);
}

(8).删除客人信息

删除客人信息这一功能的实现,首先先运用了上输出客人信息的输出格式,并且去掉了循环部分,使它只进行局部输出,达到预览删除对象的作用,并通过判断比对输入的房间号和对链表进行遍历判断是否有相同的房间号数据,以达到查找删除对象的作用,最后通过对于内存的释放从而删除掉所要删除的数据,再对于更改,实际上是删除后的数据进行保存


主功能函数


void printDeletegesInfo(Node *L)
{system("cls");int id;Node *p;printf("请输入需要删除的客人房间号");scanf("%d",&id);Node *st=searchgesInfoById(id,L);p=st;if(st==NULL){printf("查无此人");return; }st=st->next;printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");deletegesInfo(p);saveFile(L);}

释放内存代码部分


void deletegesInfo(Node *pr)
{Node *s=pr->next;pr->next=s->next;s->next=NULL;free(s);//释放空间节点 }

保存改动后文件函数部分


int saveFile(Node *L){FILE *fpw=fopen("gesInfo.txt","w");if(fpw==0)return 0;Node *p=L->next;while(p!=NULL){fprintf(fpw,"%d %s %s %d %d %d\n",p->roomid,p->name,p->sex,p->age,p->day,p->consume);p=p->next;}fclose(fpw);//关闭文件指针 return 1;}

执行结果演示




注意上述代码中的while循环中的p=p->部分,如果不加入,链表无法向后读取,会缺失跳出循环的改变条件,使得对于某一个结构体数据的无限输出,会占用大量内存,并且使得程序极其卡顿,前车之鉴啊


(9).修改客人信息


这部分实现了对于客人信息的修改功能,用相关房间号进行查找所对应的客人信息,并输出预览,增加了数字选项,可以针对某一信息进行单一的信息修改,并且可进行多次重复修改,最终用文件保存函数对于修改的信息进行保存即可


主功能函数


void printFixgesInfo(Node *L)
{system("cls");int id;int choice=-1;printf("请输入需要修改的客人房间号");scanf("%d",&id);Node *st=searchgesInfoById(id,L);if(st==NULL){printf("查无此人");return; }st=st->next;printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");while(1){system("cls");printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");printf("修改姓名-----1\n");printf("修改性别-----2\n");printf("修改房间号---3\n");printf("修改住宿天数-4\n");printf("修改消费-----5\n");printf("修改年龄-----6\n");printf("请输入要修改的信息:"); scanf("%d",&choice);switch(choice){case 1:printf("请输入修改后姓名");scanf("%s",st->name); break;case 2:printf("请输入修改后性别");scanf("%s",st->sex); break;case 3:printf("请输入修改后房间号");scanf("%d",&st->roomid);break;case 4:printf("请输入修改后住宿天数");scanf("%d",&st->day); break;case 5:printf("请输入修改后消费金额");scanf("%d",&st->consume);break;case6:printf("请输入修改后年龄");scanf("%d",&st->age); break;}printf("是否继续修改该客人信息?(yes-1/no-0):\n");scanf("%d",&choice);if(choice==0){break;} }printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");saveFile(L);
}

文件保存函数


 int saveFile(Node *L){FILE *fpw=fopen("gesInfo.txt","w");if(fpw==0)return 0;Node *p=L->next;while(p!=NULL){fprintf(fpw,"%d %s %s %d %d %d\n",p->roomid,p->name,p->sex,p->age,p->day,p->consume);p=p->next;}fclose(fpw);//关闭文件指针 return 1;}

执行效果演示




(10).查询客人信息


在执行查询功能时设计了两种查询方式,第一种是按照房间号查询,第二种是按照姓名查询,其中按照房间号查询在之前就已多次出现,就不单独介绍,输入对应信息后,相关的房间号或者人名就会显示出来


查询客人信息主函数


 void printsearchgesInfo(Node *L){system("cls");int choice=0;int id;char name[50];Node *st;printf("按照房间号查询-------1\n");printf("按照姓名查询-------2\n"); printf("请输入查询方式:");scanf("%d",&choice);if(choice==1){printf("请输入要查询房间号:"); scanf("%d",&id);st=searchgesInfoById(id,L);if(st==NULL){printf("查无此人\n"); }else{st=st->next; printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");} }else if(choice==2){printf("请输入要查询姓名:"); scanf("%s",&name);st=searchgesInfoByName(name,L);if(st==NULL){printf("查无此人\n"); }else{st=st->next;printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");}}
}

按照姓名查询


Node * searchgesInfoByName(char name[],Node *L){Node *p=L;while(p->next!=NULL){if(strcmp(name,p->next->name)==0){return p;}p=p->next;   }   return NULL;}

执行效果演示


(11).退出系统

所有程序到这里就结束了,在结束对客人信息的操作后,直接选择0,就会弹出结束页面,就会退出系统啦

void goodbye()
{system("cls");printf("欢迎下次使用~\n");exit(0);//结束程序
}

执行效果图



到此整个酒店管理系统制作就结束了,在这之中还加入了部分特定的排序函数,因为其并不是主要功能的实现函数,所以就没有体现在博客中,关于账号密码的注册登录系统,又是一个新的体系,加入之后感觉过于冗长,之后会另写一个作为补充。


完整代码演示

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <string.h>typedef struct Node
{int roomid;//房间号 char name[50];//姓名 char sex[10];//性别 int age;// 年龄 int day;// 住宿时长 int consume;//消费金额 struct Node *next;//指针域
}Node;Node List;//链表 //读取文件
int readFile(Node *L); //保存文件
int saveFile(Node *L); //主菜单
void welcome();
//增加客人信息void printAddgesInfo();//界面
void insertgesInfo(Node *L,Node e);//功能 //删除客人信息
void printDeletegesInfo(Node *L);
//逻辑功能
void deletegesInfo(Node *pr);
//修改客人信息
void printFixgesInfo(Node *L);
//查询客人信息
void printsearchgesInfo(Node *L);
//按房间号进行查找
Node * searchgesInfoById(int id,Node *L);
//按姓名进行查找
Node * searchgesInfoByName(char name[],Node *L);
//输出客人信息
void printgesInfo(Node *L);
//排序比较规则
bool cmp(Node a,Node b)
{return a.consume>b.consume;
}
void gesconsumesort(Node *L)
{for(Node *p=L->next;p!=NULL;p=p->next){for(Node *q=p;q!=NULL;q=q->next){if(!cmp(*p,*q)){//交换值域Node t=*p;*p=*q;*q=t;//处理指针域t.next=p->next;p->next=q->next;q->next=t.next;}}    }
}int findmaxscore(Node *L,int mode)
{//mode 0:消费 1:住宿天数 2:年龄 Node *p=L->next;if(p!=NULL){int max[4]={-1,-1,-1,-1};while(p!=NULL){if(p->consume>max[0])max[0]=p->consume;if(p->day>max[1])max[1]=p->day;if(p->age>max[2])max[2]=p->age;p=p->next;}return max[mode];} return -1;
}
//退出管理系统
void goodbye();int main()
{int choice=0;readFile(&List); while(true) {welcome();scanf("%d",&choice);switch(choice){case 1://增加客人信息printAddgesInfo();break;case 2://删除客人信息printDeletegesInfo(&List);break;case 3://修改客人信息printFixgesInfo(&List);break;case 4://查询客人信息printsearchgesInfo(&List);break;case 5://输出客人信息printgesInfo(&List);break;case 0://退出管理系统 goodbye();break;}printf("是否还要继续操作?(yes:1/no:2):");scanf("%d",&choice);if(choice==0){break; } }return 0;} void welcome(){  system("cls");printf("------------------------\n");printf("------酒店管理系统------\n");printf("------作者:鄢靖松------\n");printf("------            ------\n");printf("------增加客人信息---1--\n");printf("------删除客人信息---2--\n");printf("------修改客人信息---3--\n");printf("------查询客人信息---4--\n");printf("------输出客人信息---5--\n");printf("------退出管理系统---0--\n");printf("------------------------\n");printf("------------------------\n");printf("请输入对应功能键(数字):"); }//增加客人信息void printAddgesInfo()
{system("cls");Node st;printf("请输入新增客人相关信息\n");printf("房间号:");scanf("%d",&st.roomid);printf("姓名:"); scanf("%s",&st.name);printf("性别:");scanf("%s",&st.sex);printf("年龄:"); scanf("%d",&st.age);printf("住宿时长:");scanf("%d",&st.day);printf("消费:");scanf("%d",&st.consume);insertgesInfo(&List,st);
}void insertgesInfo(Node *L,Node e)
{//头插法Node *h=L;Node *s=(Node *)malloc(sizeof(Node));*s=e;s->next=h->next;h->next=s;saveFile(L);
}
//删除客人信息
void printDeletegesInfo(Node *L)
{system("cls");int id;Node *p;printf("请输入需要删除的客人房间号");scanf("%d",&id);Node *st=searchgesInfoById(id,L);p=st;if(st==NULL){printf("查无此人");return; }st=st->next;printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");deletegesInfo(p);saveFile(L);}
//删除客人信息
void deletegesInfo(Node *pr)
{Node *s=pr->next;pr->next=s->next;s->next=NULL;free(s);//释放空间节点 } //修改客人信息
void printFixgesInfo(Node *L)
{system("cls");int id;int choice=-1;printf("请输入需要修改的客人房间号");scanf("%d",&id);Node *st=searchgesInfoById(id,L);if(st==NULL){printf("查无此人");return; }st=st->next;printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");while(1){system("cls");printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");printf("修改姓名-----1\n");printf("修改性别-----2\n");printf("修改房间号---3\n");printf("修改住宿天数-4\n");printf("修改消费-----5\n");printf("修改年龄-----6\n");printf("请输入要修改的信息:"); scanf("%d",&choice);switch(choice){case 1:printf("请输入修改后姓名");scanf("%s",st->name); break;case 2:printf("请输入修改后性别");scanf("%s",st->sex); break;case 3:printf("请输入修改后房间号");scanf("%d",&st->roomid);break;case 4:printf("请输入修改后住宿天数");scanf("%d",&st->day); break;case 5:printf("请输入修改后消费金额");scanf("%d",&st->consume);break;case6:printf("请输入修改后年龄");scanf("%d",&st->age); break;}printf("是否继续修改该客人信息?(yes-1/no-0):\n");scanf("%d",&choice);if(choice==0){break;} }printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");saveFile(L);
}
//查询客人信息void printsearchgesInfo(Node *L){system("cls");int choice=0;int id;char name[50];Node *st;printf("按照房间号查询-------1\n");printf("按照姓名查询-------2\n"); printf("请输入查询方式:");scanf("%d",&choice);if(choice==1){printf("请输入要查询房间号:"); scanf("%d",&id);st=searchgesInfoById(id,L);if(st==NULL){printf("查无此人\n"); }else{st=st->next; printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");} }else if(choice==2){printf("请输入要查询姓名:"); scanf("%s",&name);st=searchgesInfoByName(name,L);if(st==NULL){printf("查无此人\n"); }else{st=st->next;printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",st->roomid,st->name,st->sex,st->age,st->day,st->consume);printf("_________________________________________________________\n");}}
}
//按房间号进行查找
Node * searchgesInfoById(int roomid,Node *L){Node *p=L;while(p->next!=NULL){if(p->next->roomid==roomid){return p;}p=p->next;   }   return NULL;}
//按姓名进行查找
Node * searchgesInfoByName(char name[],Node *L){Node *p=L;while(p->next!=NULL){if(strcmp(name,p->next->name)==0){return p;}p=p->next;  }   return NULL;}
//输出客人信息
void printgesInfo(Node *L)
{system("cls");//客人消费从高到低排序
//  gesconsumesort(L);Node *p=L->next;printf("_________________________________________________________\n");printf("|房间号\t|姓名\t|性别\t|年龄\t|住房日期|消费\t|\n");printf("_________________________________________________________\n");if(p!=NULL){while(p!=NULL){printf("%d\t|%s\t|%s\t|%d\t|%d\t|%d\t|\n",p->roomid,p->name,p->sex,p->age,p->day,p->consume);printf("_________________________________________________________\n");p=p->next;}}printf("最高消费,以后有发展价值");printf("消费:%d\n",findmaxscore(L,0));printf("最长住宿天数,可长期合作"); printf("住宿天数:%d\n",findmaxscore(L,1));printf("最大年龄,注意时刻关注大龄人身体状况,避免安全事故发生"); printf("年龄:%d\n",findmaxscore(L,2));}
//退出管理系统
void goodbye()
{system("cls");printf("欢迎下次使用~\n");exit(0);//结束程序
}
//文件输入
int readFile(Node *L)
{FILE *fpr=fopen("gesInfo.txt","r");Node st;Node *s;Node *t=L;if(fpr==NULL){return 0;}else{while(fscanf(fpr,"%d %s %s %d %d %d",&st.roomid,&st.name,&st.sex,&st.age,&st.day,&st.consume)!=EOF){s=(Node *)malloc(sizeof(Node));*s=st;t->next=s;t=s;//尾插法 t->next=NULL;}}return 1;                                                                                              } //保存文件 int saveFile(Node *L){FILE *fpw=fopen("gesInfo.txt","w");if(fpw==0)return 0;Node *p=L->next;while(p!=NULL){fprintf(fpw,"%d %s %s %d %d %d\n",p->roomid,p->name,p->sex,p->age,p->day,p->consume);p=p->next;}fclose(fpw);//关闭文件指针 return 1;}

酒店简易管理系统制作详细过程相关推荐

  1. 怎么用HTML5制作万花筒,简易万花筒制作详细步骤 手工万花筒的做法图解

    可以说是简陋的万花筒,却曾经是所有孩子们最爱的玩具.在物资匮乏的年代,一只万花筒足以迷住一个孩子好奇的心! 前面刚刚跟小伙伴们分享了一款万花筒的制作方法,虽然卖相和质量都很好,但是材料准备和制作步骤都 ...

  2. Java制作报表系统流程_finereport报表制作详细过程

    一般来说,一个完整的报表设计流程,大体分为如下几个步骤: 1:打开设计器 2:配置数据源 3:新建报表 4:配置私有数据源 5:报表设计 6:预览报表 7:发布报表 第一部分:配置数据源 打开报表设计 ...

  3. java制作月度报表_Java报表制作详细过程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一般来说,一个完整的java报表设计流程,大体分为如下几个步骤: 1:打开设计器 2:配置数据源 3:新建报表 4:配置私有数据源 5:报表设计 6:预览 ...

  4. (精品)基于Web的酒店客房管理系统的设计与实现毕业论文+开题报告+项目源码(SSM)及数据库+查重报告

     源码获取:我的博客资源页面可以下载!!!! 项目名称 (精品)基于Web的酒店客房管理系统的设计与实现毕业论文+开题报告+项目源码(SSM)及数据库+查重报告 视频介绍 (精品)基于Web的酒店客房 ...

  5. java酒店入住管理系统代码_基于jsp的酒店入住管理系统-JavaEE实现酒店入住管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的酒店入住管理系统, 该项目可用各类java课程设计大作业中, 酒店入住管理系统的系统架构分为前后台两部分, 最终实 ...

  6. 制作基于springboot的简易学生管理系统(详细)

    制作基于springboot的简易学生管理系统(详细) 基于书本与百度创作,内容简易,请多多指教( ̄▽ ̄)/ 设计一个简易学生管理系统 所需环境 创建一个springboot项目 设计数据库 配置Gr ...

  7. 第一部分:使用iReport制作报表的详细过程(Windows环境下)

    第一部分:使用iReport制作报表的详细过程(Windows环境下) 提示:在有些板块,文中的图片看不到,建议到我的blog浏览文章:http://blog.csdn.net/jemlee2002/ ...

  8. 库存物资管理系统代码,详细过程和总结

    库存物资管理系统实验要求如下: 1.背景资料 1.有一个存放商品的仓库,每天都有商品出库和入库. 2.每种商品都有名称.生产厂家.型号.规格等. 3.出入库时必须填写出入库单据,单据包括商品名称.生产 ...

  9. 利用51单片机制作一个秒表的详细过程

    利用51单片机制作一个秒表的详细过程 前面的话: 和很多朋友一样,在学51单片机的过程中我们肯定会涉及到制作一个秒表,牵涉到把单片机的多个部分组合起来使用,这对于我们初学者来说可能显得有些困难,我同大 ...

最新文章

  1. void main()是错的!
  2. [video super resolution] ESPCN论文笔记
  3. Linux下Mysql的查询用法
  4. UML建模——用例图(Use Case Diagram)
  5. HDU 4685 Prince and Princess(二分匹配加点建图+强连通分量)
  6. elasticsearch Insert 插入数据和delete 删除数据(Java)
  7. 域名商2014年度报告:中国数据域名总量跌至22万
  8. ubuntu无密码登录
  9. 深度学习与计算机视觉(一)图像分类与KNN
  10. linux系统下安装两个或多个tomcat
  11. python根据模板生成pdf文件_程序生成word与PDF文档的方法(python)
  12. 质量管理系统_晟通集团内训 | 质量管理系统提升实战训练
  13. 2015年 4月2号的日志
  14. 如何使用T-SQL生成随机SQL Server测试数据
  15. String类的流程控制
  16. 前端实时可视化开发工具
  17. autoCAD2010裁剪工具使用
  18. nodejs前端+后端
  19. python实现离线翻译_基于python实现百度翻译功能
  20. 上升了百分之几怎么算_求增加百分之几的应用题

热门文章

  1. 人工智能入门四件套,你学人工智能避不开的知识点
  2. 主机能ping通Ubuntu,Ubuntu无法ping通主机
  3. 数据结构(0719-林雪阵)
  4. 从零搭建若依环境(非分离版)
  5. 【更新】京东、美团、饿了么获取cookies
  6. 3D建模软件功能解析之Maya篇
  7. Python通过微信远程控制电脑 - python itchat
  8. 微信小程序云函数请求接口
  9. Android小程序-涂鸦板
  10. Python绘制点线