亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? set_phon.c

?? BC3.1編譯,小交換機(jī)計費(fèi)系統(tǒng).使用Dos做出如此好的界面,少有.
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <mem.h>
#include <alloc.h>
#include <graphics.h>

#include <bio.inc>
#include <menu.inc>
#include <key.inc>
#include <g_id.inc>

#include "feedef.h"

#define BK_CLR    7
#define CHR_CLR   0
#define HEAD_CLR  0
#define ITBL_CLR  5

#define NOFRESH  0
#define REFRESH  1

#define ITEM_NUM        10
#define UNUSED_CODE	2048

/* function  : input the phone number
 * calls     :
 * called by : set_data() (set_data.c)
 * output    : sort the phone number, and write to charge.pho
 * date      : 1993.9.21
 */
void set_phone_num(UC mode)
{
    UI pg;
    TABLE_STRUCT  phone_tbl = {52,99,20,18,16,ITEM_NUM, {32, 76,35,35,35,50,50,35,35,35}, ITBL_CLR};
    PHONE_STRUCT  *tbl;

    clr_DialWin(2);

    set_finger_color(Dsp_clr.fng_clr);
    draw_table(&phone_tbl);        /* draw the table frame */

    if(mode == SET_PCODE)
    	outf(170, 76, BK_CLR, BLACK, "分機(jī)內(nèi)碼、級別及計費(fèi)設(shè)定");     /* No. */
    else
   	    outf(170, 76, BK_CLR, BLACK, "立即打印分機(jī)設(shè)定");     /* No.    */

    outf(53, 103, BK_CLR, HEAD_CLR, "序號");     /* No.         */
    outf(90, 103, BK_CLR, HEAD_CLR, "話機(jī)號"); /* phone No    */

    if(mode == SET_PCODE)
    	outf(164, 103, BK_CLR, HEAD_CLR, "內(nèi)碼"); /* pcode now    */
    else
        outf(164, 103, BK_CLR, HEAD_CLR, "打印"); /* pcode now    */

    outf(201, 103, BK_CLR, HEAD_CLR, "級別");
    outf(236, 103, BK_CLR, HEAD_CLR, "市話");
    outf(272, 103, BK_CLR, HEAD_CLR, "農(nóng)話");
    outf(324, 103, BK_CLR, HEAD_CLR, "信息臺");
    outf(375, 103, BK_CLR, HEAD_CLR, "國內(nèi)");
    outf(411, 103, BK_CLR, HEAD_CLR, "國際");
    outf(448, 103, BK_CLR, HEAD_CLR, "時長");

    disp_key_help();       /* display the help information */
    message_disp(8,"根據(jù)右上方彈出提示窗口提示操作");

    load_phone_tbl();

    Oldlen = phone_tbl_len();
    Newlen = Oldlen;
    Count = 1;
    tbl = Phone_top;

    disp_phone_tbl(tbl,Count, mode);          /* display a page of phone number  */

    if(!(Newlen%16) && Newlen)
	 pg = Newlen/16;
    else
	 pg = (UI)(Newlen/16)+1;
    outf(542,397,11,14,"%2u",pg);       /* display the overall page number */

    locate_finger(0,1);

    input_phone_num(mode);

    unload_phone_tbl();

    message_end();
    return;
}

/* function  : display the help information on the screen.
 * calls     : outf()
 * called by : set_phone_num()
 * date      : 1993.9.21
 */
void disp_key_help(void)
{
    /*** PROMPT: ***/
    draw_back1(500, 102, 630, 337, 11);
    outf(505, 142, 11, 0, "F2   存盤");
    outf(505, 162, 11, 0, "F5   刪除");
    outf(505, 182, 11, 0, "F9   分機(jī)號加1");
    outf(505, 202, 11, 0, "←↓→ ↑移動");
    outf(505, 222, 11, 0, "PgUp  向前翻頁");
    outf(505, 242, 11, 0, "PgDn  向后翻頁");
    outf(505, 262, 11, 0, "Enter 輸入");
    outf(505, 302, 11, 0, "Esc   退出");

    /*** PAGE No. AND TOTAL PAGE ***/
    draw_back1(508, 365, 617, 427, 11);
    outf(528, 377, 11, 14, "第");
    outf(585, 377, 11, 14, "頁");
    outf(528, 397, 11, 14, "共");
    outf(585, 397, 11, 14, "頁");

}

/* function  : load charge.pho
 * called by : set_phone_num()
 * date      : 1993.9.21
 */
void load_phone_tbl(void)
{
    FILE         *fp;
    PHONE_STRUCT *tbl;
    UL           ss;
    int          i, num = 0;

    if(Phone_top != NULL) /* already loaded */
    	return;

    Phone_top = (PHONE_STRUCT *) farcalloc(MAX_USERS, sizeof(PHONE_STRUCT));
    if( !Phone_top )
    {
	ss = (UL)(MAX_USERS*sizeof(PHONE_STRUCT));
	exit_scr(1,"Out of memery ERROR: %ld bytes.\n\nGFS system shutdown abnormally.\n\n\n\n",ss);
    }
    tbl = Phone_top;

    fp = fopen(ChargeDataFile[PHONE_CASH], "rb");
    if(fp != NULL)      /* the file exists */
    {
	while(fread(tbl, sizeof(PHONE_STRUCT), 1, fp) == 1)
	{
	     tbl++;
	     num++;
	}
	fclose(fp);
    }
    for(i=num;i<MAX_USERS;i++) {
	tbl->phone_no[0] = '\0';
        tbl->code = UNUSED_CODE;
	tbl->class = 0;
	tbl->feeflag[0] = 0;
	tbl->feeflag[1] = 0;
	tbl->feeflag[2] = 0;
	tbl->feeflag[3] = 0;
	tbl->feeflag[4] = 0;
    tbl->max_min = 0;
    tbl++;
    }

    return;
}

/* function  : free the memory for the phone number table
 * called by : set_phone_num()
 * date      : 1993.9.21
 */
void unload_phone_tbl(void)
{
       farfree(Phone_top);
       Phone_top = NULL;

       return;
}

/* function  : calculate the length of phone number table
 * called by : set_phone_num()
 * date      : 1993.9.21
 */
UI phone_tbl_len(void)
{
    PHONE_STRUCT *tbl;
    UI tbllen = 0;

    tbl = Phone_top;

    while(strlen(tbl->phone_no) && tbllen<MAX_USERS)
    {
	tbllen++;
	tbl++;
    }

    return(tbllen);
}

/* function  :     Display a page of phone num table.
 * calls     :     None
 * called by :     rate_set,pgup_phone_tbl,pgdn_phone_tbl,
 *			loc_phone_tbl,loc_page
 * input     :     tbl -- a pointer pointing the page
 *                 num -- the No. of the first item of
 *			  the page
 * date      :     1993.9.21
 */
void disp_phone_tbl(PHONE_STRUCT *tbl, UI num, UC mode)
{
    UI i, j;
    UI x, y;
    UI pg;
    UNIT_STRUCT cer_unit;
    UC color;

    for(i=0; i<16; i++)          /* DISPLAY No. IN THE TABLE */
    {
	 if(num+i > MAX_USERS)
	     break;
	 outf(55, i*19+123, BK_CLR, HEAD_CLR, "%-3u", num+i);
    }

    pg = (UI)(num/16)+1;         /* DISPLAY THIS PAGE No. */
    setfillstyle(1,11);
    bar(554, 393, 580, 377);
    outf(562, 377, 11, 14, "%2u", pg);

    for(i=0; i<16; i++)
    {
	 if(!strlen(tbl->phone_no) || (num+i > MAX_USERS))
	     break;

	 for(j=1;j<ITEM_NUM;j++)
	 {
	      cer_unit.unit_x = i;
	      cer_unit.unit_y = j;
	      get_certain(&cer_unit);
	      x = cer_unit.dot_sx+8;
	      y = cer_unit.dot_sy+1;

	      switch(j)
	      {
		   case 1:    /* telephone no */
		       if(!strcmp(tbl->phone_no,""))
			      break;
		       outf(x-3,y,BK_CLR,CHR_CLR,"%-s",tbl->phone_no);
		       break;
		   case 2:    /* pcode */
		       if(mode == SET_PCODE)
		       {
			   if( tbl->code != UNUSED_CODE){
				if(tbl->set_flag == 1)
					color = LIGHTRED;
				else
					color = 0;

			       outf(x-8,y,BK_CLR,color,"%3u",tbl->code);
			   }
		       }
		       else
		       {
			   if(tbl->flag == FALSE)
			       outf(x,y,BK_CLR,CHR_CLR, "否");
			   else
			       outf(x,y,BK_CLR,CHR_CLR, "打");
		       }
		       break;
		   case 3:   /* class */
			if( tbl->code != UNUSED_CODE){
			    if(tbl->set_flag == 2)
				color = LIGHTRED;
			    else
				color = 0;

			    outf(x-2,y,BK_CLR,color,"%u",tbl->class);
			}
			break;
                   case 4:
                   case 5:
                   case 6:
                   case 7:
                   case 8:
                        if(!tbl->feeflag[j-4])
                            outf(x+3,y,BK_CLR,YELLOW,"否",0);
            		else
                            outf(x+3,y,BK_CLR,CHR_CLR,"計",0);
                        break;
                   case 9:   /* maxinum minutes of a call */
                        if(tbl->max_min != 0)
	   	    	    outf(x-2,y,7,0,"%u",tbl->max_min);
                   	break;

		   default:
			break;
	      }    /* END SWITCH */
	 }         /* END FOR2   */

	 tbl++;
    }    /* END FOR1 */

    return;

}

/* Function :       Run commands user input.
 * calls    :          save_phone_tbl,sort_phone_tbl,loc_phone_tbl,
 *		     loc_page,pgup_phone_tbl,pgdn_phone_tbl,
 *		      modi_phone_tbl,del_phone_tbl,set_trunk
 * called by:      rate_set()
 * date     : 1993.9.21
 */
void input_phone_num(UC mode)
{
    UI  input,pos;
    UC  *title = "注意:";
    UC  *warn = "最多只能有這么多分機(jī)號碼!";
    UC  result;
    UNIT_STRUCT cur_unit;

    while(1)
    {
	input=get_key1();

	get_current(&cur_unit);
	pos = Count+cur_unit.unit_x;

	switch(input)
	{
	    case ESC:   /* QUIT */
		 result=select_1in3();
		 switch(result)
		 {
		     case 1:     /* DON'T QUIT */
			 break;

		     case 2:     /* SAVE AND QUIT */
			 save_phone_tbl(NOFRESH, mode);
			 recover_screen(2);
			 return;

		     case 3:     /* QUIT AND DON'T SAVE */
			 recover_screen(2);
			 return;
		 }
		 break;

	    case UP:    /* GO TO THE LAST ROW */
		move_finger(0,1);
		break;

	    case DOWN:  /* GO TO THE NEXT ROW */
		 if(pos == MAX_USERS )
		 {
	              warn_mesg(title, warn);
		      break;
		 }

		 if(pos <= Newlen )
		     move_finger(1,1);
		 else
		     sound_bell();
		 break;

	    case LEFT:
		 if(cur_unit.unit_y > 1)        /* left a step   */
		     move_finger(2,1);
		 else
		     sound_bell();
		 break;

	    case RIGHT:
	         if( strlen(Phone_top[pos-1].phone_no) )
		      move_finger(3,1);            /* right a step */
		 else
		      sound_bell();
		 break;

	    case PAGEUP:
		 pgup_phone_tbl(mode);
		 break;

	    case PAGEDOWN:
		 pgdn_phone_tbl(mode);
		 break;

	    case F2:    /* SAVE THE PHONE TABLE */
		 save_phone_tbl(REFRESH, mode);
		 break;

	    case F5:    /* DELETE */
		 delete_num(mode);
		 break;

	    case F9:
		 auto_add_one(mode);
		 break;

	    case ENTER:
		 modi_phone_tbl(mode);    /* MODIFY THE PHONE TABLE */
		 break;

	    default:
		    sound_bell();
		    break;
	}/* END OF SWITCH */
    }/* END OF WHILE */
}

/* function  :  Modify the phone number table.
 * calls     :  phone_tbl_len,maxnum
 * called by :  input_phone_num()
 * date      :
 */
void modi_phone_tbl(UC mode)
{
    int result;
    UI xs,ys,xe,ye;
    UC res;
    UI num;
    UI pos;
    UI back_in=3;
    UC phone_buf[10] = "";
    UC *title = "注意:";
    UC *warn = "該分機(jī)號碼已有, 請重新輸入!";
    PHONE_STRUCT *tbl;
    UNIT_STRUCT  cur_unit;
    UL value;

    get_current(&cur_unit);
    if(mode == SET_IMPRN && cur_unit.unit_y != 2)
        return;

    xs = cur_unit.dot_sx;
    ys = cur_unit.dot_sy;

    pos = Count+cur_unit.unit_x;

    hide_finger();

    switch(cur_unit.unit_y)
    {
        case 1:
            if(pos <= Oldlen)
            {
	        sound_bell();          /* add only, do not change */
	        echo_finger();
	        break;
            }

	    message_disp(8," 輸入數(shù)字   Enter 確認(rèn)");      /*number*/
	    do
	    {
		strcpy(phone_buf,"");
		set_get_color(0, 10, 10, BK_CLR, CHR_CLR);
		res = get_account(xs, ys, 18, 60, 4, 8, phone_buf, 0);

	        if(!res)        /* ESC or not change phone_buf */
	            break;

	        tbl = Phone_top;
	        num = 0;
	        do
	        {
	            result = strcmp(tbl->phone_no, phone_buf);

	            /*** THE phone No. INPUTTED ALREADY EXIST, REINPUT ***/
	            /* Phone_top[pos-1] is the item being
	             * editted, so not judge it
	            */
	            if((!result) && (tbl != &Phone_top[pos-1]))
	            {
		         UNIT_STRUCT  cur;

			 warn_mesg(title, warn);

			 /* clear the current item */
		         get_current(&cur);
		         xs = cur.dot_sx;
		         ys = cur.dot_sy;
		         xe = cur.dot_ex;
		         ye = cur.dot_ey;
		         setfillstyle(1, BK_CLR);
		         bar(xs, ys, xe, ye);

		         break;
	             }

	             tbl++;
	             num++;
	        }while(strlen(tbl->phone_no) && num<MAX_USERS);
            }while(strlen(tbl->phone_no) && num<MAX_USERS);

            /***** RECORD THE phone No. AND LENGTH INPUTTED. *****/
	    if(res)
	    {
		strcpy(Phone_top[pos-1].phone_no, phone_buf);
                move_finger(3,1);
            }
            else
	        echo_finger();

            Newlen = phone_tbl_len();

            message_end();

            break;
	case 2:
            if(mode == SET_PCODE)
            {
//                message_disp(8,"請輸入內(nèi)碼");     /* input inner code*/

		do {
		    do {
			value = -1;
				set_get_color(0, 10, 10, BK_CLR, LIGHTRED);
				result = get_dec(xs,ys,18,24,back_in,3,&value,0x0);
                    }while(result &&(value > MAX_USERS-1 || !Sys_mode.com_m[(UC)(value/PhonesPerPort)]));

                    tbl = Phone_top;
		    num = 0;
		    do {
		      if(tbl->code == value && tbl!=&Phone_top[Count+cur_unit.unit_x-1])
		      {
			UNIT_STRUCT  cur;
			UC *title = "注意:";
			UC *warn = "該碼已有, 請重新輸入!";

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产高清在线| 欧美一区二区黄| 亚洲自拍偷拍综合| 日韩一区二区视频| 波多野结衣亚洲| 免费在线视频一区| 亚洲精品ww久久久久久p站| 精品久久久久久久人人人人传媒| av亚洲产国偷v产偷v自拍| 美女视频黄a大片欧美| 亚洲最新在线观看| 国产精品卡一卡二| 精品国产a毛片| 4438成人网| 欧美日韩综合色| www.亚洲色图.com| 国产精品77777| 美美哒免费高清在线观看视频一区二区 | 精品免费一区二区三区| 欧美日韩精品高清| 色一情一伦一子一伦一区| 高清成人免费视频| 国产精品一卡二卡在线观看| 久久精品国产亚洲5555| 日韩电影在线免费看| 亚洲国产精品人人做人人爽| 亚洲欧洲成人精品av97| 欧美经典一区二区| 久久久久9999亚洲精品| 久久综合久色欧美综合狠狠| 久久国产精品免费| 夜夜操天天操亚洲| 亚洲美女区一区| 亚洲私人影院在线观看| 国产色综合一区| 久久精品在线免费观看| 久久综合九色综合97_久久久 | 国产喂奶挤奶一区二区三区| 欧美大片在线观看| 欧美成人在线直播| 欧美一区二区三区白人| 欧美高清视频一二三区 | 热久久一区二区| 日本aⅴ免费视频一区二区三区| 午夜久久久影院| 午夜精品久久久久久久久久久 | 亚洲在线视频网站| 一区二区三区在线视频观看 | 国产精品一二二区| 精品亚洲porn| 国产一区二区免费在线| 国产精品夜夜嗨| 成人网在线免费视频| 不卡一区二区三区四区| 成人av电影在线观看| 91亚洲精华国产精华精华液| 色综合久久66| 欧美日韩国产一区二区三区地区| 欧美三级视频在线| 欧美一区二区免费| 国产三级一区二区| 亚洲欧洲精品一区二区三区 | 中文字幕一区二区三区不卡| 亚洲三级视频在线观看| 亚洲精品一二三四区| 午夜精品一区二区三区免费视频| 免费在线观看一区| 国产精品99久久久| 欧美在线一二三四区| 欧美日韩久久久久久| 精品动漫一区二区三区在线观看| 国产精品沙发午睡系列990531| 一区二区三区在线高清| 蜜乳av一区二区| www.亚洲免费av| 欧美一区二区视频在线观看2020| 欧美精品一区二区三区在线| 亚洲人成在线观看一区二区| 日日欢夜夜爽一区| 国产a视频精品免费观看| 欧美在线你懂的| 2021久久国产精品不只是精品| 综合久久久久综合| 久久精工是国产品牌吗| 91视频在线看| 精品1区2区在线观看| 亚洲综合一二三区| 麻豆精品国产传媒mv男同| 97久久超碰国产精品| 日韩欧美久久一区| 一区二区三区资源| 国产成人免费视频网站高清观看视频| 色先锋久久av资源部| 久久久综合视频| 视频一区在线视频| 91视频.com| 国产亚洲一区二区三区在线观看| 亚洲午夜在线视频| 白白色亚洲国产精品| 精品成人私密视频| 首页国产欧美久久| 欧洲激情一区二区| 国产一二三精品| 欧美午夜影院一区| 亚洲欧洲一区二区在线播放| 国产麻豆日韩欧美久久| 欧美一级二级在线观看| 亚洲资源中文字幕| 色综合色狠狠综合色| 亚洲国产高清aⅴ视频| 日韩精品一级中文字幕精品视频免费观看 | 中文字幕视频一区二区三区久| 美国欧美日韩国产在线播放| 精品视频在线免费观看| 国产精品免费免费| 国产69精品久久99不卡| 精品国产91乱码一区二区三区| 喷水一区二区三区| 欧美精品免费视频| 一区二区欧美国产| 色婷婷久久一区二区三区麻豆| 亚洲国产精品成人久久综合一区| 国产精品一品二品| 国产农村妇女毛片精品久久麻豆 | 精品一区二区三区在线播放 | 国产精品一区二区久久精品爱涩| 56国语精品自产拍在线观看| 亚洲国产成人精品视频| av动漫一区二区| 国产精品国产三级国产aⅴ中文| 国产成人啪免费观看软件| 亚洲欧美日本韩国| 成人精品视频一区二区三区尤物| 欧美一区二区三区白人| 日本午夜精品一区二区三区电影 | 欧美日免费三级在线| 亚洲国产欧美日韩另类综合| 在线一区二区三区四区| 亚洲欧美一区二区三区极速播放 | 久久久久久99精品| 国产经典欧美精品| 国产精品视频在线看| av资源站一区| 亚洲精品成人在线| 欧美日韩精品一区二区天天拍小说| 亚洲国产精品麻豆| 日韩一区二区三区电影在线观看| 蜜桃久久av一区| 国产欧美一区二区精品婷婷| 成人黄色电影在线| 一区二区三区影院| 欧美精品一卡二卡| 精品一区二区三区视频| 国产亚洲欧美日韩俺去了| 成人激情小说乱人伦| 尤物av一区二区| 7777精品伊人久久久大香线蕉 | 国产精品久久精品日日| heyzo一本久久综合| 亚洲男人的天堂在线aⅴ视频| 色噜噜狠狠色综合欧洲selulu| 午夜视频一区二区| 亚洲精品在线电影| 91香蕉国产在线观看软件| 色综合视频在线观看| 毛片av一区二区三区| 国产精品嫩草久久久久| 欧美图片一区二区三区| 全部av―极品视觉盛宴亚洲| 国产亚洲成aⅴ人片在线观看| 91在线免费视频观看| 日韩成人精品在线| 国产欧美日韩另类一区| 91福利视频久久久久| 久久精品国产一区二区三| 国产三级一区二区三区| 欧美精品视频www在线观看| 国内精品在线播放| 亚洲综合一区二区三区| 国产亚洲一本大道中文在线| 欧洲精品视频在线观看| 国产精品一区二区在线观看不卡| 一区二区不卡在线播放 | 亚洲最大的成人av| xnxx国产精品| 欧美在线观看一二区| 亚洲图片欧美一区| 欧美无砖专区一中文字| 亚洲综合无码一区二区| 久久婷婷成人综合色| 欧美视频完全免费看| 国产精品1区2区3区在线观看| 亚洲一区二区精品3399| 国产免费久久精品| 欧美一区二区三区小说| 日本道精品一区二区三区| 国产精品一区在线观看你懂的| 调教+趴+乳夹+国产+精品| 中文字幕一区二区三区不卡在线| 久久一日本道色综合|