void system_quit(st_info *buf_head,char *data_name)
{
	char check;
	system("cls");
	printf("\n");
	print_tips("       退出系统     ");
	print_star();
	if(flag_save == TURE)
		printf("\n\n OK!-----可以安全退出!");
	else
	{
		printf("\n\n Warning!-----部分修改并未保存到数据文件!是否继续退出?(确认退出请输入Y)");
		fflush(stdin);
		check = getch();
		if(check != 'Y' || check != 'y')
		{
			save_file(buf_head,data_name,N);
		}
	}
	printf("\n\n OK!-----系统将在三秒后自动退出!感谢您的使用!");
	printf("\n\n Tips:-----您对本程序有任何建议与意见都可发送邮件到[email protected]!");
	print_star();
	printf("\n\n\n\n \t\t\t 学生体检信息管理系统V1.0");
	printf("\n\n \t\t\t       2014.6.7");
	printf("\n\n \t\t\t      作者:任强\n");
	_sleep(3000);
	exit(1);
}
Пример #2
0
float choose_base_salary(void)
{
    char ch;
    print_star();
    printf("Enter the number corresponding to the desired pay rate or action:\n");
    printf("1) $8.75/hr\t2) $9.33/hr\n");
    printf("3) $10.00/hr\t4) $11.20/hr\n");
    printf("5) quit\n");
    print_star();

    while ((ch = getchar()) != EOF) {
	switch(ch)
	{
	    case '1':
		return 8.75;
		//break;
	    case '2':
		return 9.33;
		//break;
	    case '3':
		return 10.00;
		//break;
	    case '4':
		return 11.20;
		//break;
	    case '5':
		exit(0);
		//break;
	    default:
		printf("WRONG choice, please enter 1-5.\n");
		break;
	}
    }
}
Пример #3
0
// report star photometric measurements
// what tells what to print (see cx.h for field definitions)
void report_stars(FILE *fp, struct vs_recipy *vs, struct ccd_frame *fr, int what)
{
	int i;
	int d;
	char *rep;

	if (fp == NULL)
		return;

//	get_ph_solution(vs);

	rep = vs->repstar;
	d = string_has(rep, 'd');

	if (what == REP_HEADER) {
		if ((vs->cnt * strlen(rep) < PER_LINE) || d) { // we put all on one line
			fprintf(fp, "# ");
			for (i = 0; i < vs->cnt; i++) {
				print_header(fp, vs, i);
				if (d && (i != (vs->cnt - 1))) fprintf(fp, ", ");
				else fprintf(fp, "  ");
			}
			fprintf(fp, "\n");
		} else { // one per line
			fprintf(fp, "#================================\n");
			fprintf(fp, "# Run format\n");
			for (i = 0; i < vs->cnt; i++) {
				fprintf(fp, "# ");
				print_header(fp, vs, i);
				fprintf(fp, "\n");
			}
			fprintf(fp, "#================================\n");
		}
	}
	if (what == REP_STARS) {
		print_info(fp, vs, fr);
		if ((vs->cnt * strlen(rep) < PER_LINE) || d) { // we put all on one line
			for (i = 0; i < vs->cnt; i++) {
				print_star(fp, vs, i);
				if (d && (i != (vs->cnt - 1))) fprintf(fp, ", ");
				else fprintf(fp, "  ");
			}
			fprintf(fp, "\n");
		} else { // one per line
			fprintf(fp, "\n");
			for (i = 0; i < vs->cnt; i++) {
				print_star(fp, vs, i);
				fprintf(fp, "\n");
			}
			fprintf(fp, "#================================\n");
		}
	}


}
Пример #4
0
void main(){
	double num1, num2;

    num1 = get_double();
	num2 = get_double();
	
	print_star();
	printf("두 실수의 합 : %.2f \n", add(num1, num2));
	printf("두 실수 중 큰 값 : %.2f \n", get_max(num1, num2));
	print_star();
}
Пример #5
0
// Return 1 if it was shown, -1 on error, 0 otherwise.
static int show_rbuf(const char *rbuf, struct config *conf, int sel, char **client, int *count, int details, const char *sclient)
{
	int rbuflen=0;
	if(!rbuf) return 0;
	rbuflen=strlen(rbuf);
#ifdef DBFP
	if(dbfp) { fprintf(dbfp, "%s\n", rbuf);  fflush(dbfp); }
#endif

	if(rbuflen>2
		&& rbuf[rbuflen-1]=='\n'
		&& rbuf[rbuflen-2]=='\n')
	{
		int row=24;
		int col=80;
#ifdef HAVE_NCURSES_H
		if(actg==ACTION_STATUS) getmaxyx(stdscr, row, col);
#endif
		if(parse_rbuf(rbuf, conf, row, col,
			sel, client, count, details, sclient))
				return -1;
		if(sel>=*count) sel=(*count)-1;
		if(!details) print_star(sel);
#ifdef HAVE_NCURSES_H
		if(actg==ACTION_STATUS) refresh();
#endif
		return 1;
	}
	return 0;
}
int baseprint(st_info *buf_head,char *data_name)
{
	unsigned int i = 0,j = 0,check;
	st_info *p1 = buf_head->next;
	system("cls");
	print_tips("  浏览学生体检信息  ");
	printf(menu_print);
	if(p1 == NULL)
	{
		printf("\n\n\n Error!-----没有数据可以显示!请录入!按任意键返回");
		fflush(stdin);
		getch();
		return 0;
	}
	while(p1)
	{
		++j;
		p1 = p1->next;
	}
	p1 = buf_head->next;
	while(p1!= NULL)
	{
		++i;
		printf("\n");
		printf(STINFO);
		p1 = p1->next;
		if(i % flag_page == 0 || i == j)
		{
			print_star();
			if(i == j) 
				printf("\n****************************          输出完毕          ***********************");
			printf("\n 1.按身高升序         2.按体重升序          3.按肺活量升序        4.按学号升序");
			printf("\n 5.按身高降序         6.按体重降序          7.按肺活量降序        8.按学号降序");
			printf("\n **共%u页***************ESC键:返回菜单********字母键:翻页***********第%u页****\r",j/flag_page + 1,(i/flag_page + (( i==j )?1:0)));
			fflush(stdin);
			check = getch();
			if(check <= 56 && check >= 49)
			{
				sort_info(buf_head,data_name,check - 48);
				getch();
				p1 = buf_head->next;
			}
			switch (check)
			{
			case 0:math_info(buf_head);break;
			case 27:return 1;
			default:if(i == j)
						return 1;
					break;
			}
			system("cls");
			print_tips("  浏览学生体检信息  ");
			printf(menu_print);
		}
	}
	getch();
	return 1;
}
Пример #7
0
int main(void)
{
    int N;
    scanf("%d", &N);

    set_star(N);
    print_star(N);
    
    return 0;
}
int find_print(find_link *find_head,unsigned int flag_find)
{
	//unsigned int flag_print = 0;
	find_link *q1 = find_head;
	st_info *p1;
	if(find_head ==NULL)
	{
		print_star();
		printf("\n Tips:-----没有找到任何记录,请仔细核对关键词!按任意键返回主菜单!");
		fflush(stdin);
		return 0;
	}
	do
	{
		q1 = q1->next;
		p1 = (q1->buf_find)->next;
		printf(STINFO);
	}while(q1->next);
	print_star();
	printf("\n OK!-----查找完成!共找到%u条记录!",flag_find);
	return 1;
}
int sort_print(sort_link *sort_head,char *data_name)
{
	sort_link *r1 = sort_head,*r2 = NULL;
	st_info *p1 = NULL;
	unsigned int i = 0,j = 0;
	char check;
	system("cls");
	print_tips("  学生体检信息排序 ");
	printf(menu_print);
	while(r1)
	{
		++j;
		r1 = r1->next;
	}
	for (r1 = sort_head->next;r1;r1 = r1->next)
	{
		++i;
		p1 = r1->sort_point;
		printf("\n");
		printf(STINFO);
		if(i % flag_page == 0)
		{
			print_star();
			printf(" Tips:-----数据过多,当前页面可能无法完全显示,请按任意键翻页!");
			printf(" \n  共%u页          按S键:更新排序到文件        按ESC键:返回    第%7u   页",j/flag_page + 1,i/flag_page);
			printf("\r");
			if((check = getch()) == 27)
			{
				sort_free(sort_head);
				return 0;
			}
			if (check == 's' || check == 'S')
			{
				system("cls");
				save_file(sort_head,data_name,T_T);
				getch();
			}
			system("cls");
			print_tips("  学生体检信息排序 ");
			printf(menu_print);	
		}
	}
	printf("\n**************************          输出完毕            ***********************");
	sort_free(sort_head);
	return 1;
}
Пример #10
0
local int print_binary_recursive(hdyn *b, vec dc_pos, vec dc_vel,
	real &U, real &B, real &V, real &R, real &I, bool verbose) { 

  int nb = 0;
  if (b->get_oldest_daughter()) {
    
    // Not relative to COM SPZ@27 Aug 2004
    //    vec r_com  = b->get_pos();
    //    vec v_com  = b->get_vel();
    vec r_com  = b->get_pos() - dc_pos;
    vec v_com  = b->get_vel() - dc_vel;
//    vec r_com  = dyn_something_relative_to_root(b, &dyn::get_pos) -dc_pos;
//    vec v_com  = dyn_something_relative_to_root(b, &dyn::get_vel) -dc_vel;

    real m_tot = b->get_starbase()->conv_m_dyn_to_star(b->get_mass());
    //    PRC(m_tot);PRC(r_com);PRL(v_com);

    for_all_daughters(hdyn, b, bb)
      if (bb->n_leaves() >= 2) {
	if(verbose) cout << "\nBinary: ";
	else cout << "\n2 ";
	U=B=V=R=I=VERY_LARGE_NUMBER;
	nb += print_binary_recursive(bb, dc_pos, dc_vel, U, B, V, R, I,
				     verbose);
      }
      else {
	if (bb->get_parent()==bb->get_root()) {
	  U=B=V=R=I=VERY_LARGE_NUMBER;
	  if(verbose) cout << "\nStar:: ";
	  else cout << "\n1 ";
	}

	// Specific for star clusters which are not at the COM.
	// Such as Arches star cluster models.
	//        print_star(bb, bb->get_pos()-r_com, bb->get_vel()-v_com,
	//           U, B, V, R, I, verbose);
	vec nul = 0;
	bool bound = star_is_bound(bb, nul);
	// includ correction for density center position.
        print_star(bb, bound, bb->get_pos()-dc_pos, bb->get_vel()-dc_vel,
	           U, B, V, R, I, verbose);
//	if (bb->get_parent()==bb->get_root())
//	   cerr << endl;
      }

  }
Пример #11
0
int find(st_info *buf_head,const int flag_num)
{
	char check[21];
	st_info *p1 = buf_head,*p2 = NULL,*p3 = NULL;
	find_link *q1,*q2,*find_head=NULL;
	unsigned int flag_find = 0;
	system("cls");
	switch (flag_num)
	{
	case 0:print_tips("  查询学生体检信息  ");break;
	case 2:print_tips("  修改学生体检信息  ");break;
	case 1:print_tips("  删除学生体检信息  ");break;
	}
	if(buf_head->next == NULL)
	{
		printf("\n Error!-----没有数据可供查询!请录入!");
		return 0;
	}
	printf("\n\n\n\n Tips:-----请输入姓名或者学号:");
	fflush(stdin);
	scanf("%20s",check);
	print_star();
	printf(menu_print);
	while (p1->next)
	{
		p2 = p1;
		p1 = p1->next;
		if(strcmp(p1->name,check) == 0 || strcmp(p1->num,check) == 0)
		{
			++flag_find;
			if(flag_find == 1)
			{
				find_head = (find_link *)malloc(M);
				q1 = (find_link *)malloc(M);
				find_head->next = q1;
			}
			q1->buf_find = p2;
			q2 = q1;
			q1 = (find_link *)malloc(M); 
			q2->next = q1;
		}
	}
	if(flag_find != 0)
	{
		free(q1);
		q2->next = NULL;
	}
	printf("\n\n");
	if(flag_find > 10)
	{
		free_find(find_head);
		printf("\n\n Warning!-----系统检测到您的查询结果已超过10个,数据文件可能存在问题!请检查!");
		return 0;
	}
	find_print(find_head,flag_find);
	if(find_head == NULL)
	{
		return 0;
	}
	switch (flag_num)
	{
	case 0:free_find(find_head);break;
	case 1:del_info(find_head,flag_find);free_find(find_head);break;
	case 2:change_info(find_head,flag_find);free_find(find_head);break;
	}
	return 1;
}
Пример #12
0
int status_client_ncurses(struct config *conf, enum action act, const char *sclient)
{
	int fd=0;
        int ret=0;
	int sel=0;
	char *rbuf=NULL;
	char buf[512]="";
	int count=0;
	int details=0;
	char *last_rbuf=NULL;
	int srbr=0;
	char *client=NULL;
	int enterpressed=0;
//	int loop=0;
	int reqdone=0;

#ifdef HAVE_NCURSES_H
	int stdinfd=fileno(stdin);
	actg=act; // So that the sighandler can call endwin().
#else
	if(act==ACTION_STATUS)
	{
		printf("To use the live status monitor, you need to recompile with ncurses support.\n");
		return -1;
	}
#endif

	setup_signals();

	/* NULL == ::1 or 127.0.0.1 */
	if((fd=init_client_socket(NULL, conf->status_port))<0)
		return -1;
	set_non_blocking(fd);

#ifdef HAVE_NCURSES_H
	if(actg==ACTION_STATUS)
	{
		initscr();
		start_color();
		init_pair(1, COLOR_WHITE, COLOR_BLACK);
		init_pair(2, COLOR_WHITE, COLOR_BLACK);
		init_pair(3, COLOR_WHITE, COLOR_BLACK);
		raw();
		keypad(stdscr, TRUE);
		noecho();
		curs_set(0);
		halfdelay(3);
		//nodelay(stdscr, TRUE);
	}
#endif
#ifdef DBFP
	dbfp=fopen("/tmp/dbfp", "w");
#endif

	while(!ret)
	{
		int l;
		int mfd=-1;
		fd_set fsr;
		fd_set fse;
		struct timeval tval;

		// Failsafe to prevent the snapshot ever getting permanently
		// stuck.
		//if(act==ACTION_STATUS_SNAPSHOT && loop++>10000)
		//	break;

		if(sclient && !client)
		{
			client=strdup(sclient);
			details=1;
		}

		if((enterpressed || need_status()) && !reqdone)
		{
			char *req=NULL;
			if(details && client) req=client;
			if(request_status(fd, req, conf))
			{
				ret=-1;
				break;
			}
			enterpressed=0;
			if(act==ACTION_STATUS_SNAPSHOT)
				reqdone++;
		}

		FD_ZERO(&fsr);
		FD_ZERO(&fse);

		tval.tv_sec=1;
		tval.tv_usec=0;

		add_fd_to_sets(fd, &fsr, NULL, &fse, &mfd);
#ifdef HAVE_NCURSES_H
		if(actg==ACTION_STATUS)
			add_fd_to_sets(stdinfd, &fsr, NULL, &fse, &mfd);
#endif

		if(select(mfd+1, &fsr, NULL, &fse, &tval)<0)
		{
			if(errno!=EAGAIN && errno!=EINTR)
			{
				logp("select error: %s\n",
					strerror(errno));
				ret=-1;
				break;
			}
			continue;
		}

		if(FD_ISSET(fd, &fse))
		{
			ret=-1;
			break;
		}

#ifdef HAVE_NCURSES_H
		if(actg==ACTION_STATUS)
		{
			if(FD_ISSET(stdinfd, &fse))
			{
				ret=-1;
				break;
			}
			if(FD_ISSET(stdinfd, &fsr))
			{
				int quit=0;
				
				switch(getch())
				{
					case 'q':
					case 'Q':
						quit++;
						break;
					case KEY_UP:
					case 'k':
					case 'K':
						if(details) break;
						sel--;
						break;
					case KEY_DOWN:
					case 'j':
					case 'J':
						if(details) break;
						sel++;
						break;
					case KEY_ENTER:
					case '\n':
					case ' ':
						if(details) details=0;
						else details++;
						enterpressed++;
						break;
					case KEY_LEFT:
					case 'h':
					case 'H':
						details=0;
						break;
					case KEY_RIGHT:
					case 'l':
					case 'L':
						details++;
						break;
					case KEY_NPAGE:
					{
						int row=0, col=0;
						getmaxyx(stdscr, row, col);
						sel+=row-TOP_SPACE;
						break;
					}
					case KEY_PPAGE:
					{
						int row=0, col=0;
						getmaxyx(stdscr, row, col);
						sel-=row-TOP_SPACE;
						break;
					}
				}
				if(quit) break;

				if(sel<0) sel=0;
				if(sel>=count) sel=count-1;

				// Attempt to print stuff to the screen right
				// now, to give the impression of key strokes
				// being responsive.
				if(!details && !sclient)
				{
				  if((srbr=show_rbuf(last_rbuf,
					conf, sel, &client,
					&count, details, sclient))<0)
				  {
					ret=-1;
					break;
				  }
				  if(!details) print_star(sel);
				
				  refresh();
				}
			}
		}
#endif

		if(FD_ISSET(fd, &fsr))
		{
			// ready to read.
			if((l=read(fd, buf, sizeof(buf)-1))>0)
			{
				size_t r=0;
				buf[l]='\0';
				if(rbuf) r=strlen(rbuf);
				rbuf=(char *)realloc(rbuf, r+l+1);
				if(!r) *rbuf='\0';
				strcat(rbuf+r, buf);
			}
			else
				break;

			if(act==ACTION_STATUS_SNAPSHOT)
			{
				if(rbuf)
				{
					if(!strcmp(rbuf, "\n"))
					{
						// This happens when there are
						// no backup clients.
						break;
					}
					if(strstr(rbuf, "\n-list end-\n"))
					{
						printf("%s", rbuf);
						break;
					}
				}
				continue;
			}

			//if(rbuf) printf("rbuf: %s\n", rbuf);
/*
			if(l<0)
			{
				ret=-1;
				break;
			}
*/
		}

		if((srbr=show_rbuf(rbuf, conf,
			sel, &client, &count, details, sclient))<0)
		{
			ret=-1;
			break;
		}
		else if(srbr)
		{
			// Remember it, so that we can present the detailed
			// screen without delay, above.
			if(last_rbuf) free(last_rbuf);
			last_rbuf=rbuf;
			rbuf=NULL;
		}

		if(sclient) details++;

		usleep(20000);
#ifdef HAVE_NCURSES_H
		if(actg==ACTION_STATUS)
		{
			flushinp();
			continue;
		}
#endif
		if(count)
		{
			printf("\n");
			break;
		}
	}
#ifdef HAVE_NCURSES_H
	if(actg==ACTION_STATUS) endwin();
#endif
	close_fd(&fd);
	if(last_rbuf) free(last_rbuf);
	if(rbuf) free(rbuf);
#ifdef DBFP
	if(dbfp) fclose(dbfp);
#endif
	return ret;
}