程序设计题目---实现简单票务系统

转载声明出处:http://blog.csdn.net/why850901938/article/details/51702916

程序设计题七: 票务管理系统

【问题描述】

一火车站每天有n个发车班次,每个班次都有一班次号,固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量,如:

车次 发车时间 起点站 终点站 行车时间 额定载量 余票数量

K234 8:00 南京 广州 12 1100 30

K211 6:30 南京西 成都 18 1500 40

T25 7:00 北京 广州 24 1700 20

T58 10:00 南京 上海 2 800 2

该系统要求对一个文件中所存储的票务信息进行各种常规操作,如:查询、计算、显示等功能。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些算法思想的应用,实现一个简单的票务管理系统。

【功能要求】

(1)录入班次信息(信息用文件保存number.dat),可随时增加新车次数据

(2)浏览班次信息,可显示出所有车次当前状况(如果当前系统时间超过了某班次的发车时间,则显示“此车已发出”的提示信息)。

(3)查询路线:可按班次号、终点站查询售票情况。

(4)根据发车时间给出顺序的发车时间表(排序方法自选),存入文件保存(sort.dat)。

(5)售票和退票功能

当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新余票数量。

退票时,输入退票的班次,当本车次发出前半小时才可以退票,自动更新已售票人数

【程序设计的具体说明】

数据结构:

依据给定的学生信息和数据格式,结构数组的分量必须用结构实现; 结构类型的层次结构:

class ticket

车次 字符串 char no[9]

起点站 字符串 char name_b[10] (尽量用汉字)

终点站 字符串 char name_e[10] (尽量用汉字)

发车时间与行车时间

class Time

int hour

int minute

额定载量 int load

余票数量 int remainder

【程序设计的开发环境】

VC++6.0,在内存中的各种存储可以采用数组方式。

仅能实现上述的简单功能,还有很多想法没有时间弄了,以后补锅吧;

提2点自己的想法,比如:

1.登录系统,包括管理员的登录系统和用户的登录,还有使用权限。

2.文件的删减,修改功能。目前只能添加,不能删减。

代码如下:

#include<stdio.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;

const int MAX = 100;
const int MIN = 20;
const int TRUE = 1;
const int FALSE = 0;

struct time
{
    int hour;
    int minutes;
};

struct ticket
{
    char SerialNumber[10];      //车次
    struct time SetOut;         //发车时间
    char DeparturePoint[MAX];   //离站
    char TerminalPoint[MAX];    //终点站
    float LastTime;             //持续时间
    int Edingzailiang;          //额定载亮
    int Yidingpiaorenshu;       //已订票人数
};

struct ticket train[100];
struct ticket trainBySort[100];

int FLAG = FALSE;
int RecordNumber;               //宏定义的当前记录位置

void ShowMessage(void);         /*载入原始数据 */

void MainMenu(void);            /*主菜单 */

void InputMessage(void);        /*录入班次信息 */

void SearchMenu(void);          /*查询路线子菜单 */

void SearchByNumber(void);      /*按班次号查询 */

void SearchByAddress(void);     /*按终点站查询 */

void TicketManagement(void);    /*车票售出与退回 */

void TicketOrder(void);         /*售票 */

void TicketDelete(void);        /*退票 */

void exit(void);                /*退出该系统 */

void SaveRecordBySort(ticket x);        /*储存信息到文件中*/

void Read(void);                /*展示车次文件信息*/

//int Login(); 

void SortBySetOut(void);

bool cmp1(ticket X, ticket Y);

bool cmp2(ticket X, ticket Y);

void ReadBySort(void);

void ShowMessageBySort(void);

int main(void)
{
    while (FLAG == FALSE)
    {
        MainMenu();
    }
    return 0;
}
void MainMenu(void)
{
    system("title 车票管理系统");//设置cmd窗口标题
    system("color 0A");
    system("mode con: cols=75 lines=30"); /*对运行是的界面大小做出规定*/
    char functionNumber;
    printf(" 车票管理系统\n\n");
    printf(" By:南邮计软院程序设计组\n");
    time_t rawtime;
    struct tm *timeinfo;
    time(&rawtime);
    timeinfo = localtime(&rawtime);
    printf(" 当前时间:%d点%d分", timeinfo->tm_hour, timeinfo->tm_min);
    printf("\n");
    printf(" ┏━━━━━━━━━━━━━━━━━━┓\n");
    printf(" ┃ 1.录入班次信息                     ┃\t\n");
    printf(" ┃ 2.浏览班次信息                     ┃\t\n");
    printf(" ┃ 3.查询行车路线                     ┃\t\n");
    printf(" ┃ 4.根据发车时间的发车时间表         ┃\t\n");
    printf(" ┃ 5.售票与退票系统                   ┃\t\n");
    printf(" ┃ 6.退出该系统                       ┃\t\n");
    printf(" ┗━━━━━━━━━━━━━━━━━━┛\n");
    printf("\n");
    /*功能导入*/
    printf(" 请选择你所需要的功能:");
    Read();                                    /*读入文件的已经有的部分*/
    scanf("%c", &functionNumber);
    switch (functionNumber)
    {
    case ‘1‘:
    {
        InputMessage();            /*进入信息录入*/
        printf("\n按任意键回主菜单......\n");
        getchar();
        getchar();
    }
    break;
    case ‘2‘:
    {
        //RecordNumber=ShowMessage(); /*进入浏览信息*/
        ShowMessage();
        printf("\n按任意键回主菜单......\n");
        getchar();
        getchar();
    }
    break;
    case ‘3‘:
    {
        SearchMenu();                               /*进入查询子菜单*/
        printf("\n按任意键回主菜单......\n");
        getchar();
        getchar();
    }
    break;
    case ‘4‘:
    {
        SortBySetOut();
        ReadBySort();
        ShowMessageBySort();
        getchar();
        getchar();
    }
    break;
    case ‘5‘:
    {
        TicketManagement();                         /*进入票务管理*/
        getchar();
        getchar();
    }
    break;
    case ‘6‘:
    {
        FLAG = TRUE;
        exit();
    }
    break;

    default:
    {
        printf("输入错误,请确保你的输入为1--5.\n"); /*输入操作失误,返回重新输入*/
        printf("按任意键回主菜单......\n");
        getchar();
        getchar();
    }
    }
    FLAG = FALSE;
}
void InputMessage(void)
{
    char yn;
    FILE *fp;/*再此通过文件指针添加引用文件*/
    int i = RecordNumber;
    if ((fp = fopen("number.dat","a")) == NULL)                                 /*如果文件为空,则文件打不开*/
    {
        printf("不能打开文件\n");
        return;
    }
    do
    {                                                                       /*信息录入的“do-while”循环函数*/
        printf("车次:\n");
        scanf("%s", train[i].SerialNumber);
        printf("发车时间:(输入格式:12:30)\n");
        scanf("%d:%d", &train[i].SetOut.hour, &train[i].SetOut.minutes);
        if (train[i].SetOut.hour>23 || train[i].SetOut.minutes>59)          /*判断当前输入的列车时间是否有误*/
        {
            printf("输入时间有误,请重新输入\n");                           /*输入有误则进行重新输入*/
            getchar();
        }
        printf("始发站:\n");
        scanf("%s", &train[i].DeparturePoint);
        printf("终点站:\n");
        scanf("%s", &train[i].TerminalPoint);
        printf("行车时间:(输入格式:5或5.5)\n");
        scanf("%f", &train[i].LastTime);
        printf("额定载量:\n");
        scanf("%d", &train[i].Edingzailiang);
        printf("已定票人数:\n");
        scanf("%d", &train[i].Yidingpiaorenshu);
        while (train[i].Yidingpiaorenshu > train[i].Edingzailiang)                  /*判断此车票是否售完*/
        {
            printf("输入数据有误,请重新输入\n");
            printf("已定票人数:\n");
            scanf("%d", &train[i].Yidingpiaorenshu);
        }
        fprintf(fp, "\n%s\t%d\t%d\t\t", train[i].SerialNumber, train[i].SetOut.hour, train[i].SetOut.minutes);
        fprintf(fp, "%s\t%s\t\t%.1f\t %d\t\t%d", train[i].DeparturePoint, train[i].TerminalPoint, train[i].LastTime, train[i].Edingzailiang, train[i].Yidingpiaorenshu);
        i++;
        getchar();
        printf("是否继续录入?y/n\n");
        yn = getchar();
    } while (yn == ‘Y‘ || yn == ‘y‘); /*对是否继续进行循环进行判断*/
    RecordNumber = i;
    fclose(fp); /*运行完毕关闭文件*/
    return;
}
void ShowMessage(void)
{
    int i = 0;
    FILE *fp;
    if ((fp = fopen("number.dat", "r")) == NULL)
    {
        printf("读取数据失败,请检查文件number.dat是否存在.\n");
        exit(-1);
    }
    printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
    for (i = 0; i < RecordNumber; i++)
    {
        printf("%s\t%d:%d\t\t", train[i].SerialNumber, train[i].SetOut.hour, train[i].SetOut.minutes);
        printf("%s\t%s\t\t%.1f\t %d\t\t%d\t", train[i].DeparturePoint, train[i].TerminalPoint, train[i].LastTime, train[i].Edingzailiang, train[i].Yidingpiaorenshu);/******* 调用系统时间实现的功能:如果车已发出,则打出提示"此车已发出"******/
        time_t rawtime; /*在此处引用能够调用系统时间的“time”结构体,调用系统时间*/
        struct tm * timeinfo;
        time(&rawtime);
        timeinfo = localtime(&rawtime);
        if ((timeinfo->tm_hour == train[i].SetOut.hour && timeinfo->tm_min >= train[i].SetOut.minutes) || (timeinfo->tm_hour > train[i].SetOut.hour)) /*将发车时间与此时系统时间作比较,判断此车是否发出*/
            printf("此车已发出!\n");
        else
            printf("此车尚未发出!\n");
    }
    fclose(fp); /*运行完毕关闭文件*/
    return;
}
void SearchMenu(void)
{
    system("mode con: cols=140 lines=130");             /*对运行是的界面大小做出规定*/
    char functionNumber;
    printf(" 当前为查询菜单\n");
    printf(" ┏━━━━━━━━━━━━━━━━━━┓\t\n");
    printf(" ┃ 1.按班次号查询                     ┃\t\n");
    printf(" ┃ 2.按终点站查询                     ┃\t\n");
    printf(" ┃ 3.返回主菜单                       ┃\t\n");
    printf(" ┗━━━━━━━━━━━━━━━━━━┛\n");
    printf("请选择你所需要的功能:");
    scanf("%*c%c", &functionNumber);
    //printf("functionNumber\n");//问题
    switch (functionNumber)
    {
    case ‘1‘:
        SearchByNumber(); break;                    /*进入按班次查询 */
    case ‘2‘:
        SearchByAddress(); break;                   /*进入按终点查询 */
    case ‘3‘:                                       /*返回主菜单 */
        getchar();
        MainMenu();
        break;
    default:
        printf("输入错误,请确保你的输入为1--3.\n"); /*输入操作有误提示*/
        printf("按任意键回查询子菜单......\n");   /*返回并重新输入 */
        getchar();
        SearchMenu();
    }
}
void SearchByNumber(void)
{
    int i;
    char SearchNumber[10];
    printf("请输入要查询的班次号:");
    scanf("%s", SearchNumber);
    for (i = 0; i < RecordNumber; i++)
    {
        if ((strcmp(SearchNumber, train[i].SerialNumber)) == 0)
        {
            printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
            printf("%s\t%d:%d\t\t", train[i].SerialNumber, train[i].SetOut.hour, train[i].SetOut.minutes);
            printf("%s\t%s\t\t%.1f\t %d\t\t%d\n", train[i].DeparturePoint, train[i].TerminalPoint, train[i].LastTime, train[i].Edingzailiang, train[i].Yidingpiaorenshu);
        }
    }
    // printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
    // printf("%d\t%d:%d\t\t",train[SearchNumber-1].SerialNumber,train[SearchNumber-1].SetOut.hour,train[SearchNumber-1].SetOut.minutes);
    // printf("%s\t%s\t\t%.1f\t %d\t\t%d\n",train[SearchNumber-1].DeparturePoint,train[SearchNumber-1].TerminalPoint,train[SearchNumber-1].LastTime,train[SearchNumber-1].Edingzailiang,train[SearchNumber-1].Yidingpiaorenshu);
}
void SearchByAddress(void)
{
    int i;
    char Address[MAX];
    printf("请输入终点站的名称:");
    scanf("%s", &Address);
    printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
    for (i = 0; i < RecordNumber; i++)
    {
        if ((strcmp(Address, train[i].TerminalPoint)) == 0)
        {
            printf("%s\t%d:%d\t\t", train[i].SerialNumber, train[i].SetOut.hour, train[i].SetOut.minutes);
            printf("%s\t%s\t\t%.1f\t %d\t\t%d\n", train[i].DeparturePoint, train[i].TerminalPoint, train[i].LastTime, train[i].Edingzailiang, train[i].Yidingpiaorenshu);
        }
    }
}
void TicketManagement(void)
{
    char functionNumber;
    system("mode con: cols=140 lines=130");
    printf(" 订票与退票菜单\n");
    printf(" ┏━━━━━━━━━━━━━━━━━━┓\n");
    printf(" ┃ 1.订票                             ┃ \t\n");
    printf(" ┃ 2.退票                             ┃\t\n");
    printf(" ┃ 3.返回主菜单                       ┃\t\n");
    printf(" ┗━━━━━━━━━━━━━━━━━━┛\n");
    printf("选择你需要的功能:");
    scanf("%*c%c", &functionNumber);
    switch (functionNumber)
    {
    case ‘1‘:TicketOrder(); break;
    case ‘2‘:TicketDelete(); break;
    case ‘3‘:
    {
        getchar();
        MainMenu();
    }
    break;
    default:
    {
        printf("输入错误,请确保你的输入为1--3.\n");
        printf("按任意键返回管理界面\n");
        getchar();
        TicketManagement();
    }
    }
}
void TicketOrder(void)
{
    int i;
    time_t rawtime;
    struct tm * timeinfo;
    printf("请输入要订购的车票的班次:");
    scanf("%d", &i);
    printf("i=%d\n", i);
    if (i < 1 || i > RecordNumber + 1)
    {
        printf("对不起,今天没有这趟车,请明天再来,谢谢使用!\n");
        printf("按任意键回主菜单......\n");
        getchar();
        MainMenu();
    }
    time(&rawtime);
    timeinfo = localtime(&rawtime);
    printf("ff=%d\n", timeinfo->tm_hour);
    if ((timeinfo->tm_hour == train[i - 1].SetOut.hour&&timeinfo->tm_min < train[i - 1].SetOut.minutes) || (timeinfo->tm_hour < train[i - 1].SetOut.hour))
    {
        if (train[i - 1].Yidingpiaorenshu < train[i - 1].Edingzailiang)
        {
            (train[i - 1].Yidingpiaorenshu)++;
            printf("你的订票成功,请按时上车,谢谢使用!\n");
        }
        else printf("对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作!\n");
    }
    else
        printf("对不起,今天的这趟车已发出,请明天再来,谢谢合作!\n");
    printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
    printf("%s\t%d:%d\t\t", train[i - 1].SerialNumber, train[i - 1].SetOut.hour, train[i - 1].SetOut.minutes);
    printf("%s\t%s\t\t%.1f\t%d\t\t%d\n", train[i - 1].DeparturePoint, train[i - 1].TerminalPoint, train[i - 1].LastTime, train[i - 1].Edingzailiang, train[i - 1].Yidingpiaorenshu);
    printf("按任意键回主菜单......\n");
    getchar();                 //问题2
    getchar();
    MainMenu();
}
void TicketDelete(void)
{
    int i;
    printf("请输入要退购的车票的班次:");
    scanf("%d", &i);
    if (i < 1 || i > RecordNumber + 1)
    {
        printf("对不起,今天没有这趟车,无法完成退票.谢谢使用!\n");
        getchar();
        getchar();
        TicketManagement();
    }
    time_t rawtime;
    struct tm * timeinfo;
    time(&rawtime);
    timeinfo = localtime(&rawtime);
    if ((timeinfo->tm_hour == train[i - 1].SetOut.hour && timeinfo->tm_min < train[i - 1].SetOut.minutes) || (timeinfo->tm_hour < train[i - 1].SetOut.hour))
    {
        if (train[i - 1].Yidingpiaorenshu >= 1)
        {
            train[i - 1].Yidingpiaorenshu -= 1;
            printf("退订车票成功,谢谢使用!\n");
        }
        else
            printf("对不起,今天的这趟车的票尚未卖出,无法完成退票!\n");
    }
    else
        printf("对不起,今天的这趟车已发出,无法完成退票!\n");
    printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
    printf("%s\t%d:%d\t\t", train[i - 1].SerialNumber, train[i - 1].SetOut.hour, train[i - 1].SetOut.minutes);
    printf("%s\t%s\t\t%.1f\t%d\t\t%d\n", train[i - 1].DeparturePoint, train[i - 1].TerminalPoint, train[i - 1].LastTime, train[i - 1].Edingzailiang, train[i - 1].Yidingpiaorenshu);
    printf("按任意键回主菜单......\n");
    getchar();
    getchar();
    MainMenu();
}
void exit(void)
{
    printf("\n\n*********************谢谢使用本系统,欢迎下次继续使用***********************\n");
    exit(0);
}
void SaveRecordBySort(ticket x)  //问题3
{
    FILE *fp2;
    fp2 = fopen("sort.dat", "a");
    if (fp2 == NULL)
    {
        printf("打开文件sort.dat失败\n");
        exit(0);
    }
    fprintf(fp2, "\n%s\t%d\t%d\t\t", x.SerialNumber, x.SetOut.hour, x.SetOut.minutes);
    fprintf(fp2, "%s\t%s\t\t%.1f\t%d\t\t%d", x.DeparturePoint, x.TerminalPoint, x.LastTime, x.Edingzailiang, x.Yidingpiaorenshu);
    fclose(fp2);
    return ;
}

void Read(void)     //问题4
{
    int i;
    FILE *fp;
    if ((fp = fopen("number.dat", "r")) == NULL)
    {
        exit(-1);
    }
    for (i = 0; !feof(fp); i++)
    {
        fscanf(fp, "%s%d%d", train[i].SerialNumber, &train[i].SetOut.hour, &train[i].SetOut.minutes);
        fscanf(fp, "%s%s%f%d%d", train[i].DeparturePoint, train[i].TerminalPoint, &train[i].LastTime, &train[i].Edingzailiang, &train[i].Yidingpiaorenshu);
    }
    RecordNumber = i;
    fclose(fp);
    return;
}
// int Login()/*超级随意的登录*/
// {
//  char a[16]="Admin";
//  char b[16]="Admin";
//  char username[16],password[16];
//  do
//  {
//      printf("请输入您的用户名:\n");
//      scanf("%s",&username);
//      printf("请输入您的密码:\n");
//      scanf("%s",&password);
//      if((strcmp(a,username)&&strcmp(b,password))==0)
//      {
//          printf("恭喜您!登陆成功\n");
//          return 1;
//      }
//      else
//          printf("您用户名和密码不一致,请重新输入");
//  }while((strcmp(a,username)&&strcmp(b,password))!=0);
//  return 0;
// }

void SortBySetOut(void)
{
    getchar();
    int n = RecordNumber;
    sort(train, train + n, cmp2);
    sort(train, train + n, cmp1);
    for (int i = 0; i<RecordNumber; i++)
    {
        SaveRecordBySort(train[i]);
    }
}

bool cmp1(ticket X, ticket Y)
{
    return X.SetOut.hour<Y.SetOut.hour;
}

bool cmp2(ticket X, ticket Y)
{
    return X.SetOut.minutes<Y.SetOut.minutes;
}

void ShowMessageBySort(void)
{
    int i = 0;
    printf("班次\t发车时间\t起点\t终点\t行车时间(小时)\t额定载量\t已定票人数\n");
    for (i = 0; i <= RecordNumber; i++)
    {
        printf("%s\t%d:%d\t\t", trainBySort[i].SerialNumber, trainBySort[i].SetOut.hour, trainBySort[i].SetOut.minutes);
        printf("%s\t%s\t\t%.1f\t %d\t\t%d\t", trainBySort[i].DeparturePoint, trainBySort[i].TerminalPoint, trainBySort[i].LastTime, trainBySort[i].Edingzailiang, trainBySort[i].Yidingpiaorenshu);/******* 调用系统时间实现的功能:如果车已发出,则打出提示"此车已发出"******/
        time_t rawtime; /*在此处引用能够调用系统时间的“time”结构体,调用系统时间*/
        struct tm * timeinfo;
        time(&rawtime);
        timeinfo = localtime(&rawtime);
        if ((timeinfo->tm_hour == trainBySort[i].SetOut.hour && timeinfo->tm_min >= trainBySort[i].SetOut.minutes) || (timeinfo->tm_hour > trainBySort[i].SetOut.hour)) /*将发车时间与此时系统时间作比较,判断此车是否发出*/
            printf("此车已发出!\n");
        else
            printf("此车尚未发出!\n");
    }

    printf("按任意键回主菜单......\n");
    getchar();
    getchar();
    MainMenu();
}

void ReadBySort(void)     //问题4
{
    int i;
    FILE *fp1;
    if ((fp1 = fopen("sort.dat", "r")) == NULL)
    {
        exit(-1);
    }
    for (i = 0; !feof(fp1); i++)
    {
        fscanf(fp1, "%s%d%d", trainBySort[i].SerialNumber, &trainBySort[i].SetOut.hour, &trainBySort[i].SetOut.minutes);
        fscanf(fp1, "%s%s%f%d%d", trainBySort[i].DeparturePoint, trainBySort[i].TerminalPoint, &trainBySort[i].LastTime, &trainBySort[i].Edingzailiang, &trainBySort[i].Yidingpiaorenshu);
    }
    i--;
    RecordNumber = i;
    fclose(fp1);
    return;
}

记得自己添加number.dat文件和sort.dat文件。

并在number.dat文件里添加起始数据。

I501    10  20      南京  上海      6.0  15     10
K301    20  10      南京  上海      2.0  15     10
J450    10  50      南京  上海      2.0  15     10

仅代表个人观点,欢迎交流探讨,勿喷~~~

时间: 2024-08-24 05:53:38

程序设计题目---实现简单票务系统的相关文章

“大型票务系统”和“实物电商系统”的数据库选型

讨论请移步至:http://www.zhiliaotech.com/ideajam/idea/detail/423 相关文章: <今天你买到票了吗?--从铁道部12306.cn站点漫谈电子商务站点的"海量事务快速处理"系统> 不能简单套用"实物电商系统"对"大型票务系统"做需求分析 "大型票务系统"和"实物电商系统"在不能提供商品(服务)时给消费者带来的影响有巨大差异 "大型票务系统&

“大型票务系统”和“实物电商系统”在接入管理方面的差异

讨论请移步:http://blog.csdn.net/hu_zhenghui/article/details/27584047 相关文章: <今天你买到票了吗?--从铁道部12306.cn站点漫谈电子商务站点的"海量事务快速处理"系统> 不能简单套用"实物电商系统"对"大型票务系统"做需求分析 "大型票务系统"和"实物电商系统"在不能提供商品(服务)时给消费者带来的影响有巨大差异 "大

“大型票务系统”和“实物电商系统”按系统边界分析各种业务形式

讨论请移步至:http://www.zhiliaotech.com/ideajam/idea/detail/191 相关文章: <今天你买到票了吗?--从铁道部12306.cn站点漫谈电子商务站点的"海量事务快速处理"系统> 不能简单套用"实物电商系统"对"大型票务系统"做需求分析 "大型票务系统"和"实物电商系统"在不能提供商品(服务)时给消费者带来的影响有巨大差异 "大型票务系统&

“大型票务系统”和“实物电商系统”的系统边界之间的差别与联系

讨论请移步至:http://www.zhiliaotech.com/ideajam/idea/detail/118 相关文章: <今天你买到票了吗?--从铁道部12306.cn站点漫谈电子商务站点的"海量事务快速处理"系统> 不能简单套用"实物电商系统"对"大型票务系统"做需求分析 "大型票务系统"和"实物电商系统"在不能提供商品(服务)时给消费者带来的影响有巨大差异 "大型票务系统&

“大型票务系统”和“实物电商系统”和企业其它部门的依赖关系对项目管理的影响

讨论请移步至:http://www.zhiliaotech.com/ideajam/idea/detail/408 相关文章: <今天你买到票了吗?--从铁道部12306.cn站点漫谈电子商务站点的"海量事务快速处理"系统> 不能简单套用"实物电商系统"对"大型票务系统"做需求分析 "大型票务系统"和"实物电商系统"在不能提供商品(服务)时给消费者带来的影响有巨大差异 "大型票务系统&

C++程序设计报告(手机资费系统)

<c++程序设计>课程设计报告 设计题目:手机资费系统 班级:  15级信息一班            学号:  20153873       报告人姓名:  辛靓              指导教师:   费玉奎         实验地点:    山东农业大学南校区计算机实验室         完成起止日期:     2015.6.27-2016.7.1       <c++程序设计>课程设计报告 1 一.设计思路: 3 一.数据类和操作类,系统功能规划: 3 二.设计问题解决:

“大型票务系统”中地恶意訪问的处理——“接入管理”部分

讨论请移步:http://www.zhiliaotech.com/ideajam/idea/detail/462 相关文章: <今天你买到票了吗?--从铁道部12306.cn站点漫谈电子商务站点的"海量事务快速处理"系统> 不能简单套用"实物电商系统"对"大型票务系统"做需求分析 "大型票务系统"和"实物电商系统"在不能提供商品(服务)时给消费者带来的影响有巨大差异 "大型票务系统&q

玩转无线电 -- 温哥华天车 RFID 票务系统

0x00 前言 如今物联网 RFID系统已经完全融入了我们的生活当中. 从楼宇门禁到 Apple Pay. 可以说其身影是无处不在.很多网友也分享了自己对RFID系统的安全测试心得.不过大多还是基于门禁卡和 Mifare-Classic 而言. 实际上在 Mifare 系列的大家族中还有着许多其他类别. 比如 Mifare-DESFire 和本文的主角 Mifare-Ultralight. 温哥华交通公司Translink 在 2015年开始逐渐淘汰老旧的打印票务系统. 并全面推广RFID为基础

建立简单的系统模型

通过C语言可以简单编造一个简单的系统,C语言的功能多种多样,编写一个简单的系统是编写一个成熟的系统的前沿技术.今天我通过简单的学生系统编写了一个简单的商品收集系统,但由于本人的技术原因吧,该系统还有些缺陷有待改进,我会在改进来完善这个系统. 以下是我的全部代码 #include"stdio.h" #include"stdlib.h" #include"string.h" #include"conio.h" #define PA