【解剖麻雀】通过一道小型课题解答一些常见问题
这道课题,是论坛上一个学生的作业,比较典型,通过这道题目,实际上很多编程中常见的问题,都会遇见,所以不妨在这里集中讲解一下。下面是题目:
不超过 100 位同学的信息存放在 ASCII 文件StudentInfo.txt 中;不超过10 个学院的信息存放在CodeInfo.txt 中,性
别代码存放在 SexInfo.txt 中, 均为代码和其对应的名称。
要求:
1. 定义至少包含以上学生信息和学院代码的结构体类型和指针(或数组)变量。
2. 函数实现从文件中输入信息到定义的数据中
3. 函数实现排序(1): 学生平均成绩的降序排序,并输出所有信息到显示屏。
4. 函数实现排序(2) :学生姓名的升序排序,并输出所有信息到显示器。
5. 函数实现查询(1) :根据学号查询学生信息,并输出该生信息,并输出所有信息到显示器
CodeInfo.txt的内容:
程序代码:
1 信息学院 2 计算机学院 3 文法学院 4 外国语学院 5 数理学院 6 会金学院 7 化工学院 8 商学院 9 航空学院 10 艺术学院
SexInfo.txt的内容:
0 男 1 女
StudentInfo.txt的内容:
程序代码:
140510 洪旅玻 0 5 25 43 64 96 89 38 16 28 48 93 140207 汪桓矶 1 2 98 68 67 62 84 60 79 86 63 86 140908 钮达浚 1 9 72 69 70 68 72 83 78 66 84 99 140501 邱嶙解 1 5 66 96 76 63 72 79 100 99 96 95 140202 叶建林 1 2 71 97 76 92 76 94 84 63 64 87 140401 巴隆九 1 4 60 89 94 70 86 61 95 75 87 64 140901 俞法复 1 9 68 97 87 64 76 73 87 97 83 92 140609 唐寒丛 0 6 90 61 70 94 75 79 93 67 82 91 140110 班慷刚 1 1 53 81 89 64 46 96 76 2 22 82 140607 鄂宽佼 1 6 63 94 97 60 70 77 73 62 96 75 140605 施俭倍 1 6 68 77 95 97 72 79 67 76 63 79 140910 水奔横 0 9 95 89 48 76 100 81 12 1 85 88 140109 水昌瀑 1 1 99 18 21 74 82 25 32 85 24 92 140703 潘弼宽 1 7 60 80 79 87 73 77 61 92 91 82 140310 邢端地 1 3 91 3 40 71 60 10 67 60 27 73 140909 周桓环 1 9 19 30 21 47 20 99 65 22 3 61 140603 柳钽钩 1 6 86 99 82 66 76 88 83 62 79 71 140206 宓强进 1 2 79 87 81 96 66 83 67 75 75 95 140105 毕镔百 1 1 94 60 92 97 96 62 64 87 89 87 140601 麻俚历 1 6 65 77 64 78 92 95 72 70 84 93 140406 黎辽利 1 4 76 74 93 71 74 61 82 99 96 81 140902 嵇灿处 1 9 91 96 85 82 69 83 79 74 82 94 140504 诸秉栊 1 5 71 80 60 94 68 87 93 72 90 90 140101 荣国宏 1 1 69 80 84 88 69 69 92 74 95 89 140103 钱复阜 1 1 66 82 76 66 65 91 95 79 65 67 140205 雷留狄 1 2 84 80 92 90 84 83 97 69 60 68 140010 吴祷举 0 0 100 98 93 95 88 77 99 72 85 99 140404 解琥俚 1 4 77 95 88 100 82 99 91 74 74 71 140005 裴桓价 1 0 63 65 79 68 74 63 78 76 87 65 140307 苏胞按 1 3 64 84 69 88 87 83 66 71 72 69 140405 阮笃璀 1 4 79 93 90 61 81 88 91 73 75 78 140805 司径晋 1 8 82 85 95 68 89 70 96 84 88 90 140608 乔恳火 1 6 80 75 91 66 74 96 75 61 94 61 140705 褚磊并 1 7 87 69 93 83 61 86 87 62 80 62 140802 董得管 1 8 88 74 92 99 94 88 68 63 70 75 140604 祁浜复 1 6 64 80 71 91 99 93 95 63 74 98 140801 俞筹浩 1 8 75 79 70 90 100 73 68 65 73 97 140903 张积京 1 9 78 65 77 82 98 64 77 64 94 94 140502 伍煅居 1 5 99 93 88 72 66 84 65 70 64 63 140106 童俭棰 1 1 92 60 65 87 82 95 70 80 66 65 140602 范斐畴 1 6 89 82 88 79 90 100 71 60 75 85 140806 齐晁笃 1 8 91 91 88 85 93 88 64 67 97 76 140905 嵇鸿连 1 9 88 98 61 66 97 65 97 88 66 92 140204 龚贵归 1 2 85 91 87 73 100 94 93 98 96 65 140807 米大淋 1 8 67 70 86 66 70 99 80 66 71 82 140104 陈慷沥 1 1 70 65 83 95 96 73 83 83 67 85 140906 贲琮看 1 9 83 61 81 74 91 68 87 97 60 68 140402 苏嘉瀚 1 4 73 77 85 82 95 94 77 89 94 76 140209 酆谅卢 0 2 24 56 1 62 17 17 11 15 13 44 140409 甄宽观 0 4 74 33 91 38 25 51 14 10 86 60 140506 班曝临 0 5 77 99 67 84 61 82 74 70 86 87 140001 杭登陵 1 0 65 62 76 75 97 82 79 64 65 68 140810 王理磷 1 8 89 45 27 60 88 34 89 34 50 0 140809 花陵阜 0 8 82 99 77 96 82 93 82 88 66 75 140610 单材洪 1 6 78 46 36 67 76 75 3 35 81 57 140706 裘顾昂 1 7 86 79 71 64 62 100 71 96 100 90 140308 焦科皓 0 3 64 77 69 83 63 71 89 93 72 100 140002 范藩尖 1 0 63 63 61 66 93 73 61 88 82 66 140007 山按率 0 0 95 74 89 75 90 82 97 94 67 61 140309 米赋皎 0 3 83 34 44 13 86 36 95 86 70 57 140904 邓进灏 1 9 61 92 63 65 76 97 90 63 86 76 140305 马绸岗 1 3 79 78 80 95 95 63 76 87 98 81 140201 郭琛矿 1 2 65 99 64 87 100 61 88 99 92 100 140503 和策近 1 5 69 90 80 78 86 65 95 94 97 93 140704 许焕广 1 7 89 86 62 76 64 100 80 79 96 73 140403 邬贵键 1 4 68 69 76 71 72 93 65 70 89 85 140009 芮瀚火 1 0 80 97 89 76 97 71 94 73 84 65 140210 蔡峦彻 0 2 27 75 80 77 76 25 82 100 16 1 140107 周律枫 0 1 43 69 58 98 72 30 49 66 87 67 140304 仇晖介 1 3 81 100 67 87 94 81 95 91 70 74 140302 郝矶里 1 3 67 83 74 85 91 82 73 98 83 91 140407 柏洹博 0 4 86 97 97 80 95 74 83 81 87 86 140507 祝奎斑 1 5 74 100 89 100 70 91 91 82 96 84 140303 马觉杠 1 3 69 94 73 82 68 63 90 97 94 97 140410 雷留君 0 4 7 63 14 82 85 89 5 53 23 72 140301 巴廖甘 1 3 74 72 82 76 78 73 65 76 68 90 140707 邹荆辟 1 7 88 80 72 78 62 66 92 97 65 74 140004 米川杰 1 0 97 76 61 73 77 62 79 86 90 100 140306 孙炮恒 0 3 91 84 95 77 72 99 72 80 79 82 140108 屈霭季 1 1 48 96 6 10 35 54 0 27 47 39 140710 计家诀 1 7 92 89 91 96 95 93 89 61 66 97 140208 戴财利 1 2 78 43 77 21 100 29 16 20 40 82 140708 赖钧瀚 1 7 95 68 96 85 79 68 76 82 79 98 140907 成技檗 1 9 71 69 63 83 100 75 97 100 89 84 140003 博朗百 1 0 83 97 75 86 91 77 77 78 73 61 140509 胥勃雕 1 5 9 37 35 5 27 93 94 73 3 60 140701 荣君锤 1 7 87 60 79 75 71 66 68 96 100 78