📄 comment.cpp
字号:
case 7: case 8: case 10: case 12: mbase = 31; break; case 2: if (Isleapyear(year)) mbase = 29; else mbase = 28; break; case 4: case 6: case 9: case 11: mbase = 30; break; } if (rqlong > mbase ) rqlong = rqlong - mbase; else break; } day = rqlong; sprintf(rqchr, "%4d/%2d/%2d", year, mon, day); for (i = 0; i < 10; i++) if (rqchr[i] == '/' && rqchr[i+1] == ' ') rqchr[i+1] = '0'; return 0;}/* *浏览打印模块 */int getyn_cxdy(int y, int x){ /*** void framewin(WINDOW * ,int ,char * ,int); void outstr(WINDOW * ,int ,int ,int ,char *); void wclrscr(WINDOW *); ***/ WINDOW * win = newwin(5, 40, y, x); int ch, flag = 1; keypad(win, 1); framewin(win, '\070', " 请选择 ", '\017'); while (1) { outstr(win, 2, 2, 36, " 浏览查阅 确认打印 放弃退出 "); wattron(win, COLOR_PAIR('\047') | A_STANDOUT); switch (flag) { case 1: outstr(win, 2, 4, 8, "浏览查阅"); break; case 2: outstr(win, 2, 16, 8, "确认打印"); break; case 3: outstr(win, 2, 28, 8, "放弃退出"); break; } wattroff(win, COLOR_PAIR('\047') | A_STANDOUT); ch = wgetch(win); switch (ch) { case 260: case 259: flag--; if (flag < 1) flag = 3; break; case 261: case 258: flag++; if (flag > 3) flag = 1; break; case 4: wclrscr(win); wrefresh(win); delwin(win); return(3); case 10: if (flag == 3) { wclrscr(win); wrefresh(win); delwin(win); } return(flag); default: beep(); break; } }}int getyn_cxdy1(int y, int x){ /*** void framewin(WINDOW * ,int ,char * ,int); void outstr(WINDOW * ,int ,int ,int ,char *); void wclrscr(WINDOW *); ***/ WINDOW * win = newwin(5, 40, y, x); int ch, flag = 1; keypad(win, 1); framewin(win, '\070', " 请选择 ", '\017'); while (1) { outstr(win, 2, 2, 36, " 下 一 条 修改记录 放弃退出 "); wattron(win, COLOR_PAIR('\047') | A_STANDOUT); switch (flag) { case 1: outstr(win, 2, 4, 8, "下一条记录"); break; case 2: outstr(win, 2, 16, 8, "修改记录"); break; case 3: outstr(win, 2, 28, 8, "放弃退出"); break; } wattroff(win, COLOR_PAIR('\047') | A_STANDOUT); ch = wgetch(win); switch (ch) { case 260: case 259: flag--; if (flag < 1) flag = 3; break; case 261: case 258: flag++; if (flag > 3) flag = 1; break; case 4: wclrscr(win); wrefresh(win); delwin(win); return(3); case 10: if (flag == 3) { wclrscr(win); wrefresh(win); delwin(win); } return(flag); default: beep(); break; } }}int getyn_cxdy2(int y, int x){ /*** void framewin(WINDOW * ,int ,char * ,int); void outstr(WINDOW * ,int ,int ,int ,char *); void wclrscr(WINDOW *); ***/ WINDOW * win = newwin(5, 40, y, x); int ch, flag = 1; keypad(win, 1); framewin(win, '\070', "缴纳话费请选择 ", '\017'); while (1) { outstr(win, 2, 2, 36, " 不含当月 含 当 月 放弃退出 "); wattron(win, COLOR_PAIR('\047') | A_STANDOUT); switch (flag) { case 1: outstr(win, 2, 4, 8, "不含当月"); break; case 2: outstr(win, 2, 16, 8, "含 当 月"); break; case 3: outstr(win, 2, 28, 8, "放弃退出"); break; } wattroff(win, COLOR_PAIR('\047') | A_STANDOUT); ch = wgetch(win); switch (ch) { case 260: case 259: flag--; if (flag < 1) flag = 3; break; case 261: case 258: flag++; if (flag > 3) flag = 1; break; case 4: wclrscr(win); wrefresh(win); delwin(win); return(3); case 10: if (flag == 3) { wclrscr(win); wrefresh(win); delwin(win); } return(flag); default: beep(); break; } }}/* *主控台或终端文件打印 *入口参数: 欲打印文件的文件名 */void printfile(char *file){ /*void _showmessage(int ,int ,char * ,int);*/ int i; char tmp[80]; char filetmp[80]; FILE *fp; randstr("print",filetmp); strcpy(tmp,ttyname(1)); if(strncmp(tmp,"/dev/tty0",9)==0) sprintf(tmp, "lp %s 1>/dev/null 2>&1", file); else { if( (fp=fopen(filetmp,"w"))==(FILE *)NULL ){ showmessage(17,24," 不能创建临时文件! "); return; } fputs("[5i",fp); fclose(fp); sprintf(tmp,"cat %s>>%s",file,filetmp); system(tmp); if( (fp=fopen(filetmp,"a"))==(FILE *)NULL ){ showmessage(17,24," 不能创建临时文件! "); return; } fputs("[4i",fp); fclose(fp); sprintf(tmp,"cat %s",filetmp); } i = system(tmp); if (i) showmessage(17, 24, " 打印机有故障 ,打印失败 "); else showmessage(17, 28, " 打印完毕 "); remove(filetmp);}/* *字符串加密 */void addmm(char *Sh, char *Dh, char *Pass){ int i, len, base; len = strlen(Dh); for (i = 0, base = 0; i < len; i++) base = Dh[i] + base; len = strlen(Sh); for (i = 0; i < len; i++) base = Sh[i] + base; len = strlen(Pass); for (i = 0; i < len; i++) Pass[i] = Pass[i] + i * i + base + 223;}/* *字符串解密 */void unaddmm(char *Sh, char *Dh, char *Pass){ int i, len, base, ch; len = strlen(Dh); for (i = 0, base = 0; i < len; i++) base = Dh[i] + base; len = strlen(Sh); for (i = 0; i < len; i++) base = Sh[i] + base; len = strlen(Pass); for (i = 0; i < len; i++) { Pass[i] = Pass[i] - i * i - base - 223; if (!isalpha(Pass[i]) && (Pass[i] < '0' || Pass[i] > '9') ) { Pass[i] = '\0'; break; } }}/*初始化调色板*/int initpair(){ if (start_color() == ERR) return ERR; if (init_pair('\001', 0, 1) == ERR) return ERR; if (init_pair('\002', 0, 2) == ERR) return ERR; if (init_pair('\003', 0, 3) == ERR) return ERR; if (init_pair('\004', 0, 4) == ERR) return ERR; if (init_pair('\005', 0, 5) == ERR) return ERR; if (init_pair('\006', 0, 6) == ERR) return ERR; if (init_pair('\007', 0, 7) == ERR) return ERR; if (init_pair('\010', 1, 0) == ERR) return ERR; if (init_pair('\012', 1, 2) == ERR) return ERR; if (init_pair('\013', 1, 3) == ERR) return ERR; if (init_pair('\014', 1, 4) == ERR) return ERR; if (init_pair('\015', 1, 5) == ERR) return ERR; if (init_pair('\016', 1, 6) == ERR) return ERR; if (init_pair('\017', 1, 7) == ERR) return ERR; if (init_pair('\020', 2, 0) == ERR) return ERR; if (init_pair('\021', 2, 1) == ERR) return ERR; if (init_pair('\023', 2, 3) == ERR) return ERR; if (init_pair('\024', 2, 4) == ERR) return ERR; if (init_pair('\025', 2, 5) == ERR) return ERR; if (init_pair('\026', 2, 6) == ERR) return ERR; if (init_pair('\027', 2, 7) == ERR) return ERR; if (init_pair('\030', 3, 0) == ERR) return ERR; if (init_pair('\031', 3, 1) == ERR) return ERR; if (init_pair('\032', 3, 2) == ERR) return ERR; if (init_pair('\034', 3, 4) == ERR) return ERR; if (init_pair('\035', 3, 5) == ERR) return ERR; if (init_pair('\036', 3, 6) == ERR) return ERR; if (init_pair('\037', 3, 7) == ERR) return ERR; if (init_pair('\040', 4, 0) == ERR) return ERR; if (init_pair('\041', 4, 1) == ERR) return ERR; if (init_pair('\042', 4, 2) == ERR) return ERR; if (init_pair('\043', 4, 3) == ERR) return ERR; if (init_pair('\045', 4, 5) == ERR) return ERR; if (init_pair('\046', 4, 6) == ERR) return ERR; if (init_pair('\047', 4, 7) == ERR) return ERR; if (init_pair('\050', 5, 0) == ERR) return ERR; if (init_pair('\051', 5, 1) == ERR) return ERR; if (init_pair('\052', 5, 2) == ERR) return ERR; if (init_pair('\053', 5, 3) == ERR) return ERR; if (init_pair('\054', 5, 4) == ERR) return ERR; if (init_pair('\056', 5, 6) == ERR) return ERR; if (init_pair('\057', 5, 7) == ERR) return ERR; if (init_pair('\060', 6, 0) == ERR) return ERR; if (init_pair('\061', 6, 1) == ERR) return ERR; if (init_pair('\062', 6, 2) == ERR) return ERR; if (init_pair('\063', 6, 3) == ERR) return ERR; if (init_pair('\064', 6, 4) == ERR) return ERR; if (init_pair('\065', 6, 5) == ERR) return ERR; if (init_pair('\067', 6, 7) == ERR) return ERR; if (init_pair('\070', 7, 0) == ERR) return ERR; if (init_pair('\071', 7, 1) == ERR) return ERR; if (init_pair('\072', 7, 2) == ERR) return ERR; if (init_pair('\073', 7, 3) == ERR) return ERR; if (init_pair('\074', 7, 4) == ERR) return ERR; if (init_pair('\075', 7, 5) == ERR) return ERR; if (init_pair('\076', 7, 6) == ERR) return ERR; else return OK;}/* 画横线 */void h_line(WINDOW *win, int y1, int x1, int num){ int i; wmove(win, y1, x1); for (i = 0; i < num; i++) waddstr(win, "━");}/* 画竖线 */void v_line(WINDOW *win, int y1, int x1, int y2, int x2){ int i, num; wmove(win, y1, x1); num = y2 - y1; for (i = 0; i < num; i++) { wmove(win, y1 + i, x1); waddstr(win, "┃"); }}/*画粗线框*/void draw_box(WINDOW *win, int y1, int x1, int y2, int x2){ /*** void h_line(WINDOW *win, int y1, int x1, int num) ; void v_line(WINDOW *win, int y1, int x1, int y2, int x2) ; ***/ if (((x2 - x1) % 2) != 0) x2 = x2 + 1; wmove(win, y1, x1); waddstr(win, "┏"); h_line(win, y1, x1 + 2, ((x2 - x1 - 2) / 2)); wmove(win, y1, x2); waddstr(win, "┓"); wmove(win, y2, x1); waddstr(win, "┗"); h_line(win, y2, x1 + 2, ((x2 - x1 - 2) / 2)); wmove(win, y2, x2); waddstr(win, "┛"); v_line(win, y1 + 1, x1, y2, x1); v_line(win, y1 + 1, x2, y2, x2);}/* *此模块必须包括的头文件 * *#include <termio.h> *#include <time.h> * *时钟模拟器 *main() *{ *initscr(); *while(1){ *disptime(); *if (xdelay()==4) break; *} *endwin(); *} *//* *显示当前系统时间 * *void disptime() *{ * int x=0,y=58; * time_t now; * WINDOW *hwin=newwin(1,10,x,y); * struct tm *tmstruct; * time(&now); * tmstruct = localtime(&now); * wmove(hwin,x,y); * wprintw(hwin,"%2d时",tmstruct->tm_hour); * wprintw(hwin,"%2d分%2d秒 ",tmstruct->tm_min,tmstruct->tm_sec); * wrefresh(hwin); ************** * signal(SIGALRM,disptime); * alarm(1); *********** * delwin(hwin); *}/* *延迟 *//***int xdelay(){ struct termio term,save; int ch=0; ioctl(0,TCGETA,&term); save=term; term.c_lflag&=~ICANON; term.c_cc[VMIN]=0; term.c_cc[VTIME]=10; ioctl(0,TCSETA,&term); read(0,&ch,1); ioctl(0,TCSETA,&save); return(ch);}***//* * 判断*//**//**/int str_isalpha(const char *s){ for (; (*s) != '\0'; s++) { if ((*s) < 'A' || (*s) > 'z' || (*s) > 'Z' && (*s) < 'a') return - 1; } return 0;}/* * 判断字符串是否全为十进制数字 * 返回值: -1 -- 判断错误 * 0 -- 判断正确 */int str_isdigit(const char *s){ for (; (*s) != '\0'; s++) { if ((*s) < '0' || (*s) > '9' ) return - 1; } return 0;}/* * 把字母字符串转化为大写 */void str_toupper(char *s){ for (; (*s) != '\0'; s++) (*s) = ( ( ((*s) >= 'A') && ((*s) <= 'Z') ) ? (*s) : ((*s) - 32) ) ;}/* * 把字母字符串转化为小写 */void str_tolower(char *s){ for (; (*s) != '\0'; s++) (*s) = ( ( ((*s) >= 'a') && ((*s) <= 'z') ) ? (*s) : ((*s) + 32) ) ;}/* * 把字符串datestr转化成整数型年,月,日 * datestr -- 日期型字符串 * y -- 年的整数形式 * m -- 月的整数形式 * d -- 日的整数形式 * fmtflag -- 0 代表datestr格式为年月日(yyyy/mm/dd) * 1 代表datestr格式为月日年(mm/dd/yyyy) */void datetoint(char *datestr, int *y, int *m, int *d, int fmtflag){ char year[5], month[3], day[3]; if (fmtflag == 0) { year[0] = datestr[0]; year[1] = datestr[1]; year[2] = datestr[2]; year[3] = datestr[3]; year[4] = '\0'; month[0] = datestr[5]; month[1] = datestr[6]; month[2] = '\0'; day[0] = datestr[8]; day[1] = datestr[9]; day[2] = '\0'; } else { month[0] = datestr[0]; month[1] = datestr[1]; month[2] = '\0'; day[0] = datestr[3]; day[1] = datestr[4]; day[2] = '\0'; year[0] = datestr[6]; year[1] = datestr[7]; year[2] = datestr[8]; year[3] = datestr[9]; year[4] = '\0'; } (*y) = atoi(year); (*m) = atoi(month); (*d) = atoi(day);}/* * 判断datestr(格式yyyy/mm/dd)的合理性 */static int Isdatetype(char *datestr, int i, int j){ int Isleapyear(int ); int year, month, day, leapyear; datetoint(datestr, &year, &month, &day, 0); if ( (i == 6) && ( *(datestr + i - 1) == '0') && (j == '0') ) return 1; if ( (i == 9) && ( *(datestr + i - 1) == '0') && (j == '0') ) return 1; if ( year < 1000 ) return 1; leapyear = Isleapyear(year); switch ( month ) { case 1: case 3: case 5: case 7: case 8:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -