C语言学生管理系统(原版本)(自编)

Wesley13
• 阅读 672
/*系统特色:(大牛勿笑)
  *颜色提示
  *文字提示
  *功能
*/

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <math.h>
  4 #include <string.h>
  5 #include <windows.h>
  6 #include <conio.h>
  7 
  8 FILE *fp;//定义文件指针
  9 
 10 int count;//这个count在这个系统中起到了莫大的作用,比较参参数,规定参数范围等
 11 
 12 struct add
 13 {
 14     int  SID;
 15     char Name[10];
 16     int Age;
 17     char Gender[10];
 18     double EntranxeScore;
 19 }add1[750], student, *pointer;//定义结构体,最大不得超过750.但我对下面的动态分配还是不清楚
 20 //add1 = (char*)malloc(sizeof(struct add)*100);
 21 void color(const unsigned short color1)
 22 {
 23     if (color1 >= 0 && color1 <= 15)
 24         SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);
 25     else
 26         SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
 27 }//定义一个表示颜色(0~15),当然我们也可以直接用system那种形式
 28 
 29 void printinfor();//菜单函数 
 30 
 31 void wuyu_1();//按学号排序函数 
 32 void wuyu_2();//按总成绩排序函数 
 33 
 34 void function_1();//添加学生信息函数 
 35 void function_2();//删除学生信息函数 
 36 void function_3();//更改学生信息函数 
 37 void function_4();//查询学生信息函数 
 38 void function_5();//显示所有学生信息函数 
 39 void function_6();//附加功能选项函数 
 40 
 41 void findfunction_1();//通过学号查询函数 
 42 void findfunction_2();//通过学生姓名查询函数 
 43 void findfunction_3();//通过学生年龄查询函数 
 44 void findfunction_4();//通过学生分数查询函数 
 45 
 46 int main(void)
 47 {
 48     int num_1, k;
 49     fp = fopen("D:\\studyinfor.txt", "rb+");//打开文本/创建,进行操作 
 50     fread(add1, sizeof(struct add), 750, fp);//读取文本储存信息 
 51     for (k = 0; k<750; k++)//判断文本中储存人数(Age==0表示此处无数据) 
 52     {
 53         if (add1[k].Age == 0)
 54         {
 55             break;
 56         }
 57         count++;
 58     }
 59     fclose(fp);//关闭指针 
 60     printinfor();//显示菜单 
 61     while (1)//使用者操作 
 62     {
 63         do
 64         {
 65             printf("请输入要进行操作的序列号:");
 66             scanf("%d", &num_1);
 67         } while (num_1<0 || num_1>6);
 68         if (num_1 == 0)break;
 69 
 70         switch (num_1)
 71         {
 72         case 1:function_1(); break;
 73         case 2:function_2(); break;
 74         case 3:function_3(); break;
 75         case 4:function_4(); break;
 76         case 5:function_5(); break;
 77         case 6:function_6(); break;
 78         }
 79         system("cls");
 80         printinfor();
 81     }
 82     return 0;
 83 }
 84 
 85 void checkSID(int j)//检查学号大小函数 
 86 {
 87     while (add1[j].SID <= 0 || add1[j].SID>750)
 88     {
 89         color(4);
 90         printf("warning:SID的取值范围在0~750,请重新输入.\n");
 91         color(15);
 92         printf("请输入学生的学号:");
 93         scanf("%d", &add1[j].SID);
 94         if (add1[j].SID > 0 && add1[j].SID <= 750)
 95         {
 96             break;//符合要求就结束循环
 97         }
 98     }
 99 }
100 
101 void checkSID_1(int m)//检查学号是否重复函数 
102 {
103     int k;
104     for (k = 1; k < count; k++)
105     {
106         while (add1[k].SID == m)
107         {
108             color(4);
109             printf("学号重复,请重新输入.\n");//这里不知道为什么不能检查第一个是否与输入的重复
110             color(15);
111             printf("请输入学号:");
112             scanf("%d", &m);
113         }
114     }
115 }
116 //因为选择输入的方式是ab+,从新从i=0开始输入进去,所以想要通过
117 void checkName(int m, char Name[])//检查姓名函数 
118 {
119     while (strlen(Name)>10)
120     {
121         color(4);
122         printf("warning:Name的字数最多为5,请重新输入.\n");
123         color(15);
124         printf("请输入学生的姓名:");
125         scanf("%s", &add1[m].Name);
126     }
127 }
128 
129 void checkAge(int m)//检查年龄函数 
130 {
131     while (add1[m].Age<0 || add1[m].Age>122)
132     {
133         color(4);
134         printf("warning:Age的取值范围在0~122,请重新输入,严肃对待!\n");
135         color(15);
136         printf("请输入学生的年龄:");
137         scanf("%d", &add1[m].Age);
138     }
139 }
140 
141 void checkGender(int i, char a[])//检查性别函数 
142 {
143     while (strcmp(a, "男") && strcmp(a, "女"))
144     {
145         color(4);
146         printf("warning:Gender只能是男或女,请重新输入.\n");
147         color(15);
148         printf("请输入学生的性别:");
149         scanf("%s", &add1[i].Gender);
150     }
151 }
152 
153 checkEntranxeScore(int k)
154 {
155     while (add1[k].EntranxeScore<0 || add1[k].EntranxeScore>750)
156     {
157         color(4);
158         printf("warning:EntranxeScore的取值范围在0~750,请重新输入.\n");
159         color(15);
160         printf("请输入学生的分数:");
161         scanf("%lf", &add1[k].EntranxeScore);
162     }
163 }
164 
165 void getName(char name[]) {
166     while (1) {
167         printf("请输入学生的姓名:");
168         fflush(stdin);//刷新内存,现在对为什么要刷新内存还是迷迷糊糊的
169         scanf("%s", name);
170         if (strlen(name)<10) {
171             break;
172         }
173     }
174 }//刷新内存的方式还有很多种,大家可以在网上搜一下
175 
176 void printinfor()//主菜单
177 {
178     system("date /t");
179     system("TIME /t\n");//显示当前时间,也可以用预定义宏printf("Time : %s\n", __TIME__);
180     printf("            **************欢迎使用学生信息管理系统(当前有%d人)********\n", count);
181     printf("            *\t\t(1)添加学生信息\t\t\t\t*\n");
182     printf("            *\t\t(2)删除学生信息\t\t\t\t*\n");
183     printf("            *\t\t(3)更改学生信息\t\t\t\t*\n");
184     printf("            *\t\t(4)查询学生信息\t\t\t\t*\n");
185     printf("            *\t\t(5)显示所有学生信息\t\t\t*\n");
186     printf("            *\t\t(6)附加功能选项\t\t\t\t*\n");
187     printf("            *\t\t(0)退出学生系统\t\t\t\t*\n");
188     printf("            *\t\t\t\t\t  作者:liu\t*\n");
189     printf("            *********************************************************\n");
190 }
191 
192 void findfunction()
193 {
194     system("cls");
195     system("date /t");
196     system("TIME /t\n");
197     printf("            ***************查询学生信息(当前有%d人)*****************\n", count);
198     printf("            *\t\t(1)通过学生学号查询  \t\t\t*\n");
199     printf("\n");
200     printf("            *\t\t(2)通过学生姓名查询  \t\t\t*\n");
201     printf("\n");
202     printf("            *\t\t(3)通过学生年龄查询  \t\t\t*\n");
203     printf("\n");
204     printf("            *\t\t(4)通过学生分数查询  \t\t\t*\n");
205     printf("            *********************************************************\n");
206 }
207 
208 void Morefunction()
209 {
210     system("cls");
211     printf("            *******************附加功能*****************\n");
212     printf("\t\t\t*\t\t\t\t\t   *\n");
213     printf("            *\t\t(1)按学号进行整理  \t   *\n");
214     printf("\t\t\t*\t\t\t\t\t   *\n");
215     printf("            *\t\t(2)按总分进行整理  \t   *\n");
216     printf("\t\t\t*\t\t\t\t\t   *\n");
217     color(3);
218     printf("\t\t\t*待开发... ...                       *\n");
219     color(15);
220     printf("\t\t\t********************************************\n");
221 }
222 
223 void inputmomo(int i)
224 {
225     printf("请输入学生的学号:");
226     scanf("%d", &add1[i].SID);
227     checkSID(i);
228     checkSID_1(add1[i].SID);
229     color(8);
230     printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
231     color(15);
232     printf("请输入学生的名字:");
233     scanf("%s", &add1[i].Name);
234     checkName(i, add1[i].Name);
235     color(8);
236     printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
237     color(15);
238     printf("请输入学生的年龄:");
239     scanf("%d", &add1[i].Age);
240     checkAge(i);
241     color(8);
242     printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
243     color(15);
244     printf("请输入学生的性别:");
245     scanf("%s", &add1[i].Gender);
246     checkGender(i, add1[i].Gender);
247     color(8);
248     printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
249     color(15);
250     printf("请输入学生的总成绩:");
251     scanf("%lf", &add1[i].EntranxeScore);
252     checkEntranxeScore(i);
253     color(8);
254     printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
255     color(15);
256 }
257 
258 void function_1()//添加学生信息函数 
259 {
260     int n, i, m = count;
261     if ((fp = fopen("D:\\studyinfor.txt", "ab+")) == NULL)//检测文本是否正常打开 
262     {
263         color(8);
264         printf("Can't open the file!");
265         color(15);
266         system("pause");
267         exit(1);
268     }
269     printf("请输入您要添加的学生信息人数:");
270     scanf("%d", &n);
271 
272     for (i = count; i<n + m; i++)
273     {
274         printf("请输入No.%d的信息.\n", i + 1);
275         inputmomo(i - m);//录入学生信息 
276         count++;
277     }
278     fwrite(add1, sizeof(struct add), n, fp);
279     rewind(fp);
280     color(3);
281     printf("添加中");
282     Sleep(200);
283     printf(".");
284     Sleep(300);
285     printf(".");
286     Sleep(300);
287     printf(". ");
288     Sleep(300);
289     printf(".");
290     Sleep(300);
291     printf(".");
292     Sleep(300);
293     printf(".\n");
294     color(2);
295     printf("添加成功!\n");
296     printf("学生信息目录已更新.\n");
297     fread(add1, sizeof(struct add), count, fp);//读取学生信息 
298     color(15);
299     printf("___________________________________________________\n");
300     printf("| 学号 |  姓名  |  年龄  |  性别  |    总分成绩   |\n");
301     for (i = 0; i<count; i++)//打印更新的学生信息 
302     {
303         if (add1[i].SID>0)
304             printf("   %.2d       %-6s    %-3d      %-3s  \t  %5.2lf     \n", add1[i].SID, add1[i].Name, add1[i].Age, add1[i].Gender, add1[i].EntranxeScore);
305     }
306     printf("|-------------------------------------------------|\n");
307     fclose(fp);
308     printf("按任意键返回主菜单... ....\n");
309     system("pause");
310 }
311 
312 void function_2()//删除学生信息 
313 {
314     int m, k, i, j = 0;
315     if ((fp = fopen("D:\\studyinfor.txt", "wb+")) == NULL)
316     {
317         printf("Can't open the file!\n");
318         system("pause");
319         exit(1);
320     }
321     if (count == 0)
322     {
323         color(4);
324         printf("The file is NULL!!!\n");
325         color(15);
326         return;
327     }
328     printf("请输入你要删除的学生的学号:");
329     scanf("%d", &m);
330     fread(add1, sizeof(struct add), count, fp);
331     for (k = 0; k<count; k++)
332     {
333         if (add1[k].SID == m)
334         {
335             printf("_____________________________________________________\n");
336             printf("|  学号  |  姓名  |  年龄  |  性别  |    总分成绩   |\n");
337             printf("   %.2d      %-6s      %-3d      %-3s  \t%5.2lf     \n", add1[k].SID, add1[k].Name, add1[k].Age, add1[k].Gender, add1[k].EntranxeScore);
338             printf("|---------------------------------------------------|\n");
339             for (i = k; i<count - 1; i++)//将要删除的数后面的函数往前进一格,占去要删除的部分 
340             {
341                 add1[i].SID = add1[i + 1].SID;
342                 strcpy(add1[i].Name, add1[i + 1].Name);
343                 add1[i].Age = add1[i + 1].Age;
344                 strcpy(add1[i].Gender, add1[i + 1].Gender);
345                 add1[i].EntranxeScore = add1[i + 1].EntranxeScore;
346             }
347             count--;
348             fwrite(add1, sizeof(struct add), count, fp);
349             rewind(fp);//使指针回到开头 
350             fclose(fp);
351             color(3);
352             printf("删除中");
353             Sleep(200);
354             printf(".");
355             Sleep(300);
356             printf(".");
357             Sleep(300);
358             printf(". ");
359             Sleep(300);
360             printf(".");
361             Sleep(300);
362             printf(".");
363             Sleep(300);
364             printf(".\n");
365             Sleep(300);
366             color(2);
367             printf("删除成功!按任意键继续... ...\n");
368             color(15);
369             j++;
370         }
371     }
372     if (j == 0)
373     {
374         color(4);
375         printf("查无此人!\n");
376         color(15);
377     }
378     system("pause");
379 }
380 
381 void function_3()//更改学生信息 
382 {
383     int m, k, j = 0;
384     if ((fp = fopen("D:\\studyinfor.txt", "rb+")) == NULL)
385     {
386         printf("Can't open the file!\n");
387         getch();
388         exit(1);
389     }
390     if (count == 0)
391     {
392         color(4);
393         printf("The file is NULL!!!\n");
394         color(15);
395         return;
396     }
397     printf("请输入你要更改的学生的学号:");
398     scanf("%d", &m);
399     fread(add1, sizeof(struct add), count, fp);
400     for (k = 0; k<count; k++)
401     {
402         if (add1[k].SID == m)
403         {
404             printf("_____________________________________________________\n");
405             printf("|  学号  |  姓名  |  年龄  |  性别  |    总分成绩   |\n");
406             printf("   %.2d       %-6s    %-3d      %-3s  \t  %5.2lf     \n", add1[k].SID, add1[k].Name, add1[k].Age, add1[k].Gender, add1[k].EntranxeScore);
407             printf("|---------------------------------------------------|\n");
408             printf("请输入你要修改的内容:\n");
409             inputmomo(k);
410             rewind(fp);
411             fwrite(add1, sizeof(struct add), count, fp);
412             //rewind(fp);
413             fclose(fp);
414             color(2);
415             printf("更改成功!按任意键继续... ...\n");
416             color(15);
417             j++;
418         }
419     }
420     if (j == 0)
421     {
422         color(4);
423         printf("查无此人!\n");
424         color(15);
425     }
426     system("pause");
427 }
428 
429 void function_4()//查询学生信息 
430 {
431     int m;
432     findfunction();//进入查询菜单 
433     printf("请输入你查询的方式序列号:");
434     scanf("%d", &m);
435     switch (m)
436     {
437     case 1:findfunction_1(); break;
438     case 2:findfunction_2(); break;
439     case 3:findfunction_3(); break;
440     case 4:findfunction_4(); break;
441     }
442 }
443 
444 void function_5()//显示所有学生信息 
445 {
446     int i;
447     if ((fp = fopen("D:\\studyinfor.txt", "rb")) == NULL)
448     {
449         printf("Can't open the file!\n");
450         getch();
451         exit(1);
452     }
453     fread(add1, sizeof(struct add), count, fp);
454     if (count == 0)
455     {
456         color(4);
457         printf("The file is NULL!\n");
458         color(15);
459         system("pause");
460         return;
461     }
462     else {
463         printf("_____________________________________________________\n");
464         printf("|  学号  |  姓名  |  年龄  |  性别  |    总分成绩   |\n");
465         for (i = 0; i<count; i++)
466         {
467             if (add1[i].SID != 0)
468                 printf("   %.2d       %-6s    %-3d      %-3s  \t  %5.2lf     \n", add1[i].SID, add1[i].Name, add1[i].Age, add1[i].Gender, add1[i].EntranxeScore);
469         }
470         printf("|---------------------------------------------------|\n");
471     }
472     fclose(fp);
473     printf("按任意键返回主菜单... ...\n");
474     system("pause");
475 }
476 
477 void function_6()//附加功能选项 
478 {
479     Morefunction();//附加功能 
480     int k;
481     do {
482         printf("请输入你要操作的序号:");
483         scanf("%d", &k);
484         switch (k)
485         {
486         case 1:wuyu_1(); break;
487         case 2:wuyu_2(); break;
488         default:
489         {
490             color(4);
491             printf("输入有误,请重新输入!\n");
492             color(15);
493         }
494         }
495     } while (k < 1 || k>2);
496 }
497 
498 void findfunction_1()//学生学号查询 
499 {
500     int m, n, i, j = 0;
501     printf("请输入你要搜索的学生学号范围:\n");
502     printf("最小值:");
503     scanf("%d", &m);
504     printf("最大值:");
505     scanf("%d", &n);
506     fp = fopen("D:\\studyinfor.txt", "rb+");
507     fread(add1, sizeof(struct add), count, fp);
508     printf("_____________________________________________________\n");
509     printf("|  学号  |  姓名  |  年龄  |  性别  |    总分成绩   |\n");
510     for (i = 0; i<count; i++)
511     {
512         if (add1[i].SID >= m && add1[i].SID <= n)
513         {
514             printf("   %.2d       %-6s    %-3d      %-3s  \t  %5.2lf     \n", add1[i].SID, add1[i].Name, add1[i].Age, add1[i].Gender, add1[i].EntranxeScore);
515             printf("|---------------------------------------------------|\n");
516             j++;
517         }
518     }
519     if (j == 0)
520     {
521         printf("无相关学生信息.\n");
522     }
523     printf("按任意键返回主菜单... ...\n");
524     system("pause");
525 }
526 
527 void findfunction_2()//学生姓名查询 
528 {
529     int i, n = 0;
530     char name[10];
531     getName(name);//输入学生姓名 
532     rewind(fp);
533     fp = fopen("D:\\studyinfor.txt", "rb+");
534     fread(add1, sizeof(struct add), count, fp);
535     for (i = 0; i<count; i++)
536     {
537         if (strcmp(add1[i].Name, name) == 0) {
538             printf("_____________________________________________________\n");
539             printf("|  学号  |  姓名  |  年龄  |  性别  |    总分成绩   |\n");
540             printf("   %.2d       %-6s    %-3d      %-3s  \t  %5.2lf     \n", add1[i].SID, add1[i].Name, add1[i].Age, add1[i].Gender, add1[i].EntranxeScore);
541             printf("|---------------------------------------------------|\n");
542             ++n;
543             break;
544         }
545     }
546     if (n == 0)
547     {
548         color(4);
549         printf("无相关学生信息!\n");
550         color(15);
551     }
552     printf("按任意键返回主菜单... ...\n");
553     system("pause");
554 }
555 
556 void findfunction_3()//学生年龄查询 
557 {
558     int m, n, i, j = 0;
559     printf("请输入你要查询的学生年龄范围:\n");
560     printf("最小值:");
561     scanf("%d", &m);
562     printf("最大值:");
563     scanf("%d", &n);
564     fp = fopen("D:\\studyinfor.txt", "rb+");
565     fread(add1, sizeof(struct add), count, fp);
566     printf("_____________________________________________________\n");
567     printf("|  学号  |  姓名  |  年龄  |  性别  |    总分成绩   |\n");
568     for (i = 0; i<count; i++)
569     {
570         if (add1[i].Age >= m && add1[i].Age <= n)
571         {
572             printf("   %.2d       %-6s    %-3d      %-3s  \t  %5.2lf     \n", add1[i - 1].SID, add1[i - 1].Name, add1[i - 1].Age, add1[i - 1].Gender, add1[i - 1].EntranxeScore);
573             printf("|---------------------------------------------------|\n");
574             j++;
575         }
576     }
577     if (j == 0)
578     {
579         printf("无相关学生信息!\n");
580     }
581     printf("按任意键返回主菜单... ...\n");
582     system("pause");
583 }
584 
585 
586 void findfunction_4()//学生分数查询 
587 {
588     int m, n, i, j = 0;
589     printf("请输入你要查询的学生总成绩范围:\n");
590     printf("最小值:");
591     scanf("%d", &m);
592     printf("最大值:");
593     scanf("%d", &n);
594     fp = fopen("D:\\studyinfor.txt", "rb+");
595     fread(add1, sizeof(struct add), count, fp);
596     printf("_____________________________________________________\n");
597     printf("|  学号  |  姓名  |  年龄  |  性别  |    总分成绩   |\n");
598     for (i = 0; i<count; i++)
599     {
600         if (add1[i].EntranxeScore >= m && add1[i].EntranxeScore <= n)
601         {
602             printf("   %.2d       %-6s    %-3d      %-3s  \t  %5.2lf     \n", add1[i].SID, add1[i].Name, add1[i].Age, add1[i].Gender, add1[i].EntranxeScore);
603             printf("|---------------------------------------------------|\n");
604             j++;
605         }
606     }
607     if (j == 0)
608     {
609         printf("无相关学生信息!\n");
610     }
611     printf("按任意键返回主菜单... ...\n");
612     system("pause");
613 }
614 
615 void ExchangeFunction(int m, int n)//交换数据结构中两个统一结构的不同下标的结构值 
616 {
617     double max = 0;
618     int max_1 = 0;
619     max = add1[m].EntranxeScore;
620     add1[m].EntranxeScore = add1[n].EntranxeScore;
621     add1[n].EntranxeScore = max;
622     max_1 = add1[m].Age;
623     add1[m].Age = add1[n].Age;
624     add1[n].Age = max_1;
625     max_1 = add1[m].SID;
626     add1[m].SID = add1[n].SID;
627     add1[n].SID = max_1;
628     strcpy(student.Gender, add1[m].Gender);
629     strcpy(add1[m].Gender, add1[n].Gender);
630     strcpy(add1[n].Gender, student.Gender);
631     strcpy(student.Name, add1[m].Name);
632     strcpy(add1[m].Name, add1[n].Name);
633     strcpy(add1[n].Name, student.Name);
634 }
635 
636 void wuyu_1()//按学号查询 
637 {
638     if ((fp = fopen("D:\\studyinfor.txt", "rb+")) == NULL)
639     {
640         printf("Can't open the file!\n");
641         system("PAUSE");
642         exit(1);
643     }
644     int m, n, j;
645     for (m = 0; m < count - 1; m++)//比较学号大小 
646     {
647         for (n = m + 1; n < count; n++)
648         {
649             if (add1[n].SID < add1[m].SID)
650             {
651                 ExchangeFunction(m, n);//交换一个结构体整体值 
652             }
653         }
654     }
655     color(3);
656     printf("排序中");
657     Sleep(200);
658     printf("(");
659     Sleep(300);
660     printf(";");
661     Sleep(300);
662     printf("—");
663     Sleep(300);
664     printf("_");
665     Sleep(300);
666     printf("—");
667     Sleep(300);
668     printf(")\n");
669     Sleep(300);
670     color(6);
671     printf("排序成功!按任意键继续... ...\n");
672     color(15);
673     printf("_____________________________________________________\n");
674     printf("|  学号  |  姓名  |  年龄  |  性别  |    总分成绩   |\n");
675     for (j = 0; j<count; j++)
676     {
677         printf("   %.2d       %-6s    %-3d      %-3s  \t  %5.2lf     \n", add1[j].SID, add1[j].Name, add1[j].Age, add1[j].Gender, add1[j].EntranxeScore);
678         printf("|---------------------------------------------------|\n");
679     }
680     rewind(fp);
681     //fread(add1,sizeof(struct add),count,fp);
682     fwrite(add1, sizeof(struct add), count, fp);
683     fclose(fp);
684     system("pause");
685 }
686 
687 void wuyu_2()//按总分排序 
688 {
689     if ((fp = fopen("D:\\studyinfor.txt", "rb+")) == NULL)
690     {
691         printf("Can't open the file!\n");
692         getch();
693         exit(1);
694     }
695     int m, n, j;
696     for (m = 0; m < count - 1; m++)//比较总分大小 
697     {
698         for (n = m + 1; n < count; n++)
699         {
700             if (add1[n].EntranxeScore > add1[m].EntranxeScore)
701             {
702                 ExchangeFunction(m, n);//交换两个结构体整体值 
703             }
704         }
705     }
706     color(3);
707     printf("排序中");
708     Sleep(200);
709     printf("(");
710     Sleep(300);
711     printf("*");
712     Sleep(300);
713     printf("— ");
714     Sleep(300);
715     printf("з");
716     Sleep(300);
717     printf("—");
718     Sleep(300);
719     printf(")\n");
720     Sleep(300);
721     color(6);
722     printf("排序成功!按任意键继续... ...\n");
723     color(15);
724     printf("_____________________________________________________\n");
725     printf("|  学号  |  姓名  |  年龄  |  性别  |    总分成绩   |\n");
726     for (j = 0; j<count; j++)
727     {
728         printf("   %.2d       %-6s    %-3d      %-3s  \t  %5.2lf     \n", add1[j].SID, add1[j].Name, add1[j].Age, add1[j].Gender, add1[j].EntranxeScore);
729         printf("|---------------------------------------------------|\n");
730     }
731     rewind(fp);
732     //fread(add1,sizeof(struct add),count,fp);加了这句,无法储存,难道会改变内部指针位置?
733     fwrite(add1, sizeof(struct add), count, fp);
734     fclose(fp);
735     system("pause");
736 }
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Nginx反向代理upstream模块介绍
!(https://oscimg.oschina.net/oscnet/1e67c46e359a4d6c8f36b590a372961f.gif)!(https://oscimg.oschina.net/oscnet/819eda5e7de54c23b54b04cfc00d3206.jpg)1.Nginx反
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这