纪念一下我的第一个千行代码
Posted Rohlf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了纪念一下我的第一个千行代码相关的知识,希望对你有一定的参考价值。
告别2017的人和事,期待一下2018。SEE YOU
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <conio.h> 4 #include <string.h> 5 #include <windows.h> 6 7 void mygotoxy( int x, int y, char c ) /* 移动光标函数,方便输入时进行修改 */ 8 { 9 HANDLE hOut = GetStdHandle( STD_OUTPUT_HANDLE ); 10 COORD pos = { x*2, y }; 11 SetConsoleCursorPosition( hOut, pos ); 12 putchar( c ); 13 } 14 15 16 int delay() /* 逐字输出welcome! */ 17 { 18 printf( "\\n\\n\\n" ); 19 printf( "\\t\\t\\t\\t W " ); 20 Sleep( 150 ); 21 printf( "E " ); 22 Sleep( 150 ); 23 printf( "L " ); 24 Sleep( 150 ); 25 printf( "C " ); 26 Sleep( 150 ); 27 printf( "O " ); 28 Sleep( 150 ); 29 printf( "M " ); 30 Sleep( 150 ); 31 printf( "E " ); 32 Sleep( 150 ); 33 printf( "!" ); 34 printf( "\\n" ); 35 return(0); 36 } 37 38 39 int twinkle() /* 欢迎界面闪烁 */ 40 { 41 for ( int i = 0; i <= 5; i++ ) 42 { 43 system( "color 09" ); 44 Sleep( 100 ); 45 system( "color 0F" ); 46 Sleep( 100 ); 47 system( "color 0E" ); 48 Sleep( 100 ); 49 system( "color 02" ); 50 Sleep( 100 ); 51 } 52 return(0); 53 } 54 55 56 /* 结构体的定义 */ 57 struct PERSON { 58 char username[21]; 59 char userpassword[7]; 60 char ID_card[20]; 61 char B_Day[20]; 62 }; 63 struct TICKETS { 64 char train_number[20]; 65 char B_time_day[20]; 66 char B_time[20]; 67 char E_time[20]; 68 char B_station[20]; 69 char E_station[20]; 70 float price; 71 int tickets_number_out; 72 int tickets_number_remain; 73 }; 74 struct ADMIN { 75 char admin_username[20]; 76 char admin_pwd[20]; 77 }; 78 struct PERSON person[1000] = { 79 { "张三", "123456", "330723199904248818", "1999.4.24" }, 80 { "李四", "123456", "330723199905248889", "1999.5.24" } 81 }; 82 struct TICKETS tickets[1000] = { 83 { "G1108", "1.16", "12:02", "1.16 13:31", "长沙", "武汉", 164.5, 87, 13 }, 84 { "T253", "1.18", "7:40", "1.18 15:37", "长沙", "广州", 98, 87, 12 }, 85 { "G6481", "1.17", "10:00", "1.17 13:31", "长沙", "深圳", 397, 120, 16 }, 86 { "G1482", "1.23", "8:40", "1.23 14:59", "长沙", "南京", 502.5, 120, 110 }, 87 { "G2122", "1.21", "5:30", "1.21 23:10", "长沙", "成都", 215, 87, 13 }, 88 }; 89 struct ADMIN GM[10] = { 90 { "admin", "123456" } 91 }; 92 93 94 /* 函数定义 */ 95 void mygotoxy( int x, int y, char c ); /**/ 96 97 98 int getIndexByTId( char id[] ); /**/ 99 100 101 int delay(); /**/ 102 103 104 int twinkle(); /**/ 105 106 107 void f_show(); /**/ 108 109 110 void login_show(); /* */ 111 112 113 void item_select_1( int sele ); /* 第一个菜单的选择 */ 114 115 116 int main_show_1(); /* 第一个菜单的展示 ,return 一个int值 */ 117 118 119 void user_login_show(); /* 用户登录函数 */ 120 121 122 void admin_login_show(); /* 管理员登录函数 */ 123 124 125 void user_register(); /* 用户注册 */ 126 127 128 bool isLogin( char name[], char pwd[] ); /* 比对模块 */ 129 130 131 int main_show_2(); /* 用户菜单 的展示,return 一个int */ 132 133 134 void item_select_2( int sele ); /* 用户菜单的选择 */ 135 136 137 void inquire_tickets(); /* 用户查询,订票 */ 138 139 140 void return_show(); /* */ 141 142 143 void alter_show(); /* 查看已购票务 */ 144 145 146 void alter_pwd(); /* */ 147 148 149 int getIndexById( char id[] ); /* */ 150 151 152 bool isLogin1( char name[], char pwd[] ); /* 管理员专属密码比对函数 */ 153 154 155 int main_show_3(); /* 管理员 菜单的展示 ,return 一个int值 */ 156 157 158 void item_select_3( int sele ); /* 管理员 菜单的选择 */ 159 160 161 void add_tickets(); /* 加车票 */ 162 163 164 void alter_tickets(); /* 改车票 */ 165 166 167 void delete_tickets(); /*删车票 */ 168 169 170 void add_person(); /* 加人 */ 171 172 173 void alter_person(); /* 改人 */ 174 175 176 void delete_person(); /*删人 */ 177 178 179 int getIndexByTTId( char id0[], char id1[], char id2[] ); 180 181 182 void printfPersonInfoToFile( char file_path[] ); /* 写入 人的数据 */ 183 184 185 void scanfPersonInfoToFile( char file_path[] ); /* 读出 人的数据 */ 186 187 188 void printfTicketsInfoToFile( char file_path[] ); /* 写入 车票数据 */ 189 190 191 void scanfTicketsInfoToFile( char file_path[] ); /* 读出 车票数据 */ 192 193 194 /* 全局变量 */ 195 #define USERS_SIZE 2 196 #define TRAIN_SIZE 5 197 int flag = -1; /* 用于订票后记录该用户买的票的下标*/ 198 /* 声明全局变量 表示人的实际数量 */ 199 int person_number = 2; 200 int train_number = 5; 201 FILE *fp; 202 203 204 /* 205 * long N_tickets,N_person; 206 * 主函数 207 */ 208 int main() 209 { 210 system( "color 02" ); 211 SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_INTENSITY | FOREGROUND_GREEN ); 212 long length; 213 214 215 /* fp=fopen("Person.dat","a+"); 216 * fseek(fp,0,SEEK_END); 217 * length=ftell(fp); 218 * N_person=length/sizeof(person[0]); 219 * fp=fopen("Tickets.dat","a+"); 220 * fseek(fp,0,SEEK_END); 221 * length=ftell(fp); 222 * N_tickets=length/sizeof(tickets[0]);*/ 223 scanfPersonInfoToFile( "Person.dat" ); 224 scanfTicketsInfoToFile( "Tickets.dat" ); 225 226 227 /* 228 * printfPersonInfoToFile("Person.dat"); 229 * printfTicketsInfoToFile("Tickets.dat"); 230 */ 231 232 f_show(); 233 234 235 return(0); 236 } 237 238 239 /* 函数声明 */ 240 void f_show() 241 { 242 delay(); 243 printf( "\\t\\t\\t******************************************\\n" ); 244 printf( "\\t\\t\\t**\\t\\t\\t\\t\\t**\\n" ); 245 printf( "\\t\\t\\t**\\t 欢迎来到火车票售票系统!\\t**\\n" ); 246 printf( "\\t\\t\\t**\\t\\t\\t\\t\\t**\\n" ); 247 printf( "\\t\\t\\t******************************************\\n" ); 248 twinkle(); 249 SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_INTENSITY | FOREGROUND_GREEN ); 250 printf( "\\t\\t\\t\\t 按任意键进入系统..." ); 251 252 getch(); 253 254 item_select_1( main_show_1() ); /* 进入登陆界面 */ 255 } 256 257 258 int main_show_1() 259 { 260 int sele = 0; 261 system( "cls" ); 262 printf( "\\n\\n\\n" ); 263 printf( "\\t\\t\\t******************************************\\n" ); 264 printf( "\\t\\t\\t\\t\\t管理菜单\\n\\n" ); 265 printf( "\\t\\t\\t\\t★1、用户登录\\n" ); 266 printf( "\\t\\t\\t\\t★2、管理员登录\\n" ); 267 printf( "\\t\\t\\t\\t★3、用户注册\\n" ); 268 printf( "\\t\\t\\t\\t★0、退出系统\\n" ); 269 printf( "\\t\\t\\t******************************************\\n" ); 270 271 printf( "\\t\\t\\t\\t请输入你的选择:\\t" ); 272 scanf( "%d", &sele ); 273 return(sele); 274 } 275 276 277 void item_select_1( int sele ) 278 { 279 switch ( sele ) 280 { 281 case 1: { 282 user_login_show(); 283 break; 284 } 285 case 2: { 286 admin_login_show(); 287 break; 288 } 289 case 3: { 290 user_register(); 291 break; 292 } 293 case 0: { 294 exit( 0 ); 295 } 296 } 297 } 298 299 300 /* 用户注册(增加) */ 301 302 void user_register() 303 { 304 char password[7]; 305 system( "cls" ); 306 printf( "\\n\\n\\n" ); 307 printf( "\\t\\t\\t******************************************\\n" ); 308 printf( "\\t\\t\\t\\t\\t管理菜单\\n\\n" ); 309 printf( "\\t\\t\\t用户名:\\t" ); 310 scanf( "%s", person[person_number].username ); 311 printf( "\\t\\t\\t密 码:\\t" ); 312 for ( int i = 0; i < 6; i++ ) /* 密码统一6位 */ 313 { 314 if ( (password[i] = getch() ) == 8 ) 315 { 316 i -= 2; 317 printf( "\\b \\b" ); 318 continue; 319 } 320 printf( "*" ); 321 } 322 strcpy( person[person_number].userpassword, password ); 323 324 printf( "\\n\\t\\t\\t身份证:\\t" ); 325 scanf( "%s", person[person_number].ID_card ); 326 printf( "\\t\\t\\t生 日:\\t" ); 327 scanf( "%s", person[person_number].B_Day ); 328 person_number++; 329 printfPersonInfoToFile( "Person.dat" ); 330 printf( "\\n\\t\\t\\t***********************************\\n" ); 331 SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_INTENSITY | FOREGROUND_BLUE ); 332 printf( "\\t\\t\\t注册成功,按任意键进入界面菜单.....\\t" ); 333 SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_INTENSITY | FOREGROUND_GREEN ); 334 getch(); 335 item_select_1( main_show_1() ); 336 } 337 338 339 /* -----------------------------------华丽的分割线lllll接下来是用户环节----------------------------------------------// */ 340 bool isLogin( char name[], char pwd[] ) 341 { 342 bool ls = false; 343 for ( int i = 0; i < 100; i++ ) 344 { 345 if ( !strcmp( name, person[i].username ) && !strcmp( pwd, person[i].userpassword ) ) 346 { 347 ls = true; 348 } 349 } 350 return(ls); 351 } 352 353 354 void user_login_show() 355 { 356 system( "cls" ); 357 char username[11]; 358 char userpassword[我的第一个Go web程序 纪念一下