⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 comment.cpp

📁 这是unix下的图形库,是文本图形库 非常好
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		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("",fp);		fclose(fp);		sprintf(tmp,"cat %s>>%s",file,filetmp);		system(tmp);		if( (fp=fopen(filetmp,"a"))==(FILE *)NULL ){			showmessage(17,24,"    不能创建临时文件!    "); 			return;		}		fputs("",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 + -