📄 main.c
字号:
closefile(f_ret); //关闭文件
return;
}
void
Void_Download_data()
{
char option[2],passwd[9],ret;
init_rs232(3);
while(1){
cls();
display_cen(1,"下传售票基础数据");
display_cen(2,"------------------------------");
display(3,"1. 下传站点票价信息");
display(4,"2. 下传售票员信息");
display(5,"3. 下传车辆信息");
display(6,"4. 下传字库");
display(7,"5. 输入设备号");
display(8,"0. 退出并关机");
display(9,"请选择:");
getstrn( 9, 9, 0, 0, 1, option);
cls();
switch(option[0]){
case '1':
display_cen(1,"下传站点票价信息");
Void_Download( "F_STAT" );
break;
case '2':
display_cen(1,"下传售票员信息");
Void_Download( "F_MANS" );
break;
case '3':
display_cen(1,"下传车辆信息");
Void_Download( "F_DRIV" );
break;
case '4':
cls();
memset( passwd, 0,sizeof(passwd));
display( 4, "请输入设置密码");
display( 6, "密码:");
do{
keyoff();
ret = getstrn(6,7,0,0,8,passwd);
keyon();
if( passwd[0] == ( char )0xff && ret == 1)
return;
}while( ret != 8 );
if ( memcmp( passwd, "01234567", 8 ) == 0 ){
cls();
display_cen(1,"下传字库");
load_dots( );
}
break;
case '5':
cls();
memset( passwd, 0,sizeof(passwd));
display( 4, "请输入设置密码");
display( 6, "密码:");
do{
keyoff();
ret = getstrn(6,7,0,0,8,passwd);
keyon();
if( passwd[0] == ( char )0xff && ret == 1)
return;
}while( ret != 8 );
if ( memcmp( passwd, "01234567", 8 ) == 0 ){
cls();
memset( sbh, 0,sizeof(sbh));
display( 4, "请输入设备号(不能重复):");
display( 6, "设备号:");
do{
ret = getstrn(6,7,0,1,1,sbh);
if( sbh[0] == (char )0xff && ret == 1)
return;
}while( ret > 5 || ret < 1 );
}
cls();
display( 4, "该设备号为%s",sbh);
break;
case '0':
power_off();
return;
default:
break;
}
}
}
void
Void_make_ticket_data()
{
long ticket_no;
char buffer[10];
int len, f_ret;
cls();
display_cen(1,"售票员作废客票");
display(2,"售票员: %8.8s",Busman.busman_name);
display(4,"请输入作废客票号");
display(5,"客票号:");
getstrn(5,9,0,1,8,buffer);
if( buffer[0] == ( char )0xff )
return( US_FAIL );
ticket_no = atol( buffer );
f_ret=openfile("F_STLS");
if (check_openfile( f_ret ) == US_FAIL ){
cls();
display_cen ( 4 , "流水文件系统出错" ) ;
display_cen ( 5 , "不能正常工作");
display_cen ( 6 , "按任意键将自动关机" ) ;
systemsound ( 400 ) ;
inkey(0);
enable_poweroff();
power_off();
}
seekfile(f_ret,0,SEEK_SET);
do{
memset( (char *)&trans_rec, 0, LEN_Sale_Ticket);
readfile (f_ret, LEN_Sale_Ticket, (char *)&trans_rec);
if ( trans_rec.ticket_no == ticket_no ){
if( trans_rec.settle_flag == 1){
cls();
display_cen ( 4 , "此客票已经结算不能作废" ) ;
display_cen ( 5 , "按任意键返回");
inkey(0);
closefile( f_ret );
return;
}
break;
}
}while( eoffile( f_ret ) != 1);
if ( trans_rec.ticket_no == ticket_no ){
trans_rec.void_flag = 1;
seekfile(f_ret,(long)(0L-LEN_Sale_Ticket), SEEK_CUR);
len=writefile(f_ret, LEN_Sale_Ticket, (char*)&trans_rec);
if ( len != LEN_Sale_Ticket ){
cls();
display_cen ( 4 , "流水文件系统出错" ) ;
display_cen ( 5 , "不能正常工作");
display_cen ( 6 , "按任意键将自动关机" ) ;
systemsound ( 400 ) ;
inkey(0);
enable_poweroff();
power_off();
}
cls();
display_cen ( 5 , "作废客票操作成功" ) ;
display_cen ( 6 , "按任意键返回");
inkey(0);
closefile( f_ret );
return;
}
cls();
display_cen ( 4 , "流水文件中无此票号" ) ;
display_cen ( 5 , "按任意键返回");
inkey(0);
closefile( f_ret );
return;
}
void
Void_print_Sale_Data()
{
char bus_bc[6], bus_no[7];
char buffer[50], buffer1[50];
long l;
int i, sum, f_ret, len;
if ( get_printer_status() != 0 ){
cls();
display_cen(5,"请安装好打印纸");
display_cen(6,"按任意键,重新操作");
inkey(0);
return;
}
cls();
display_cen(1,"售票员打印交款单");
display(2,"售票员: %8.8s ",Busman.busman_name);
display_cen(5,"正在统计中");
f_ret=openfile("F_STLS");
if (check_openfile( f_ret ) == US_FAIL ){
cls();
display_cen ( 4 , "流水文件系统出错" ) ;
display_cen ( 5 , "不能正常工作");
display_cen ( 6 , "按任意键将自动关机" ) ;
systemsound ( 400 ) ;
inkey(0);
enable_poweroff();
power_off();
}
seekfile(f_ret,0,SEEK_SET);
for ( i = 0; i < LINE_ST_MAX ; i++ ){
memset( settle_name[i], 0, sizeof( settle_name[i] ));
settle_data[i] = 0L;
settle_num[i] = 0L;
}
do{
memset( (char *)&trans_rec, 0, LEN_Sale_Ticket);
readfile (f_ret, LEN_Sale_Ticket, (char *)&trans_rec);
// if( trans_rec.jk_flag == 1)
// continue;
if(strcmp( trans_rec.busman, Busman.busman) != 0 )
continue;
if( trans_rec.void_flag == 1){
settle_data[1] += trans_rec.bus_fare;
settle_num[1] += 1;
continue;
}
settle_data[0] += trans_rec.bus_fare;
settle_data[2] += trans_rec.stat_fare;
settle_num[0] += 1;
// trans_rec.jk_flag = 1;
// seekfile(f_ret, (long)(0L-LEN_Sale_Ticket), SEEK_CUR);
// len=writefile(f_ret, LEN_Sale_Ticket, (char*)&trans_rec);
// if ( len != LEN_Sale_Ticket ){
// break;
// }
}while( eoffile( f_ret ) != 1);
init_printer( 638 );
clear_printer();
fill_ticket_dot(12,0,"---售票员交款单---",DOT40);
fill_ticket_dot(12,44,"售票员",DOT32);
fill_ticket_dot(12,57,Busman.busman,DOT32);
sprintf( buffer, "售票张数:%03ld 售票金额:%ld.%01ld元", settle_num[0], settle_data[0]/10, settle_data[0]%10);
fill_ticket_dot(20,0,buffer,DOT32);
sprintf( buffer, "废票张数:%03ld 废票金额:%ld.%01ld元", settle_num[1], settle_data[1]/10, settle_data[1]%10);
fill_ticket_dot(24,0,buffer,DOT32);
sprintf( buffer, "站 务 费:%ld.%01ld元", settle_data[2]/10, settle_data[2]%10);
fill_ticket_dot(28,0,buffer,DOT32);
get_date( buffer1 );
sprintf( buffer, "售票日期:%4.4s年%2.2s月%2.2s日", buffer1, buffer1+4, buffer1+6);
fill_ticket_dot(36,4,buffer ,DOT32);
get_time( buffer1 );
sprintf( buffer, "交款时间:%2.2s时%2.2s分%2.2s秒", buffer1, buffer1+2, buffer1+4);
fill_ticket_dot(41,4,buffer ,DOT32);
set_printer();
feed_printer(32);
return;
}
void
main(){ //1
char option[2], f_ret, ret, passwd[9],ret1;
if( getproflag() == 0 ){
kpph=0;
jsdh=0;
memset( sbh, 0,sizeof(sbh));
memset( (char *)&config, 0, LEN_Config);
memset( (char *)&trans, 0, LEN_Sale_Ticket);
if ( first_setup() == US_FAIL)
return;
}
test_vol();
cls ( ) ;
display_inv ( 1 , "系统自检" ) ;
display_cen ( 4 , "系统正在");
display_cen ( 5, "工作前的自检" ) ;
display_cen ( 6 , "请稍候" ) ;
init_rs232( 3 );
cls();
display( 5 , "设备正常 设备号为%s",sbh);
if ( inkey (9) == (char)0x1D ){
cls();
display( 4, "请输入设置密码");
display( 6, "密码:");
do{
keyoff();
ret = getstrn(6,7,0,0,8,passwd);
keyon();
if( passwd[0] == ( char )0xff && ret == 1)
return;
}while( ret != 8 );
if ( memcmp( passwd, "12345678", 8 ) == 0 )
Void_Download_data();
}
///////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
config.terminal_login_flag = NOLOGIN;
if ( get_line_name() == US_FAIL )
Void_Download_data();
disable_poweroff();
while(1){
check_printer();
if ( config.terminal_login_flag != LOGIN){
busman_login();
continue;
}
f_ret=openfile("F_MANS");
if (check_openfile( f_ret ) == US_FAIL )
return;
seekfile(f_ret,0,SEEK_SET);
do{
memset( (char *)&Busman1, 0, LEN_Busman );
readfile (f_ret, LEN_Busman, (char *)&Busman1);
if ( strcmp ( Busman1.busman, "9999") == 0){
//config.terminal_login_flag = LOGIN1 ;
break;
}
}while( eoffile( f_ret ) != 1);
closefile( f_ret );
while(1){
cls();
display_cen(1,"**************主菜单**************");
display(2,"售票员: %8.8s",Busman.busman_name);
display(3,"1. 售票员销售客票");
display(4,"2. 售票员作废客票");
display(5,"3. 售票员打印交款单");
display(6,"4. 进退打印纸");
display(7,"5. 交款上传售票数据");
display(8,"0. 售票员结束售票关机");
display(9,"请选择:");
getstrn( 9, 9, 0, 0, 1, option);
cls();
switch(option[0]){
case '1':
VOID_Sale_Ticket();
break;
case '2':
Void_make_ticket_data();
break;
case '3':
Void_print_Sale_Data();
break;
case '4':
cls();
while(1){
display(5,"按进纸键 前进 按退纸键 后退");
ret1=inkey(10);
if ( ret1 == (char)0x11 )
feed_printer (8);
if ( ret1 == (char)0x10 )
back_printer (8);
if ( ret1 == (char)0x03 ){
cls();
break;
}
}
cls();
break;
case '5':
Void_Up_Sale_Ticket_Data();
break;
case '0':
config.terminal_login_flag = NOLOGIN;
enable_poweroff();
display_cen( 5,"稍候将自动关机");
display_cen( 6, "或按关机键关机");
inkey(3);
power_off();
break;
default:
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -