对应本组同学,建立档案信息表:数据包括---学号xh,姓名name,性别sex,年龄age,标志bz,职务position。

输入相应的信息,“标志”值为0表示普通同学,在“职务”一项填入分组号码,“标志”值为1表示为班干部,在“职务”一项填入具体职务信息,比如“班长”或“学委”等。

每位同学生成一条档案记录,统一生成档案表。

然后按照学号从小到大的顺序输出----所有同学的档案信息,格式如下:

学生档案信息表

学号         姓名         性别         年龄       标志     职务

00010      张三           男            20           0           1

00011     李思           女            21           1         学委

1、建立关于档案信息的---结构体类型,“职务”成员数据采用---共同体类型变量存储。对总的档案记录数,进行宏定义。此项需要以外部文件方式定义编写。

2、定义相应类型的指针,实现对档案表的遍历访问

3、档案记录的排序及输出----设计为子函数, 由主函数进行调用

以下为我的代码设计

#define JILU 6
#include<stdio.h>
#include"jilu.h"//该数据可用作测试
//6139 张三 男 21 1 组长
//6136 张四 男 20 0 4
//6003 曹五 男 20 0 4
//6102 李六 男 20 0 4
//6130 肖七 男 20 1 宿舍长
//6158 刘八 男 21 0 4union Position//定义共用体
{int num;//组号char posi[10];//职务
};
struct Student//定义结构体
{int xh;//学号char name[10];//姓名char sex[5];//性别int age;//年龄int bz;//标志union Position pos;//嵌套使用共用体
};
void bijiao(struct Student* ps);//比较函数声明
int main()
{int i = 0;struct Student stu[JILU] = { 0 };//初始化结构体printf("请输入%d名成员信息:\n", JILU);for (i = 0; i < JILU; i++)//for循环输入成员信息{scanf("%d %s %s %d %d %s", &stu[i].xh, stu[i].name, stu[i].sex, &stu[i].age, &stu[i].bz, stu[i].pos.posi);}bijiao(&stu);//比较函数调用return 0;
}void bijiao(struct Student *ps)
{int i = 0;int j = 0;struct Student t;//定义临时结构体变量tfor (i = 0; i < JILU; i++)//外层for循环用来控制ps[i] {for (j = i + 1; j < JILU; j++)//内层for循环用来控制ps[j]{if (ps[i].xh > ps[j].xh)//学号比较{//通过中间值t交换t = ps[i];ps[i] = ps[j];ps[j] = t;}}}printf("排序后的结果是:\n");printf("                学生档案信息表                \n");printf("----------------------------------------------\n");printf("    学号    姓名   性别  年龄  标志  职务   \n");for (i = 0; i < JILU; i++)//for循环打印排序后的各成员信息{printf("%10d %6s %4s %5d %5d %5s\n", ps[i].xh, ps[i].name, ps[i].sex, ps[i].age, ps[i].bz, ps[i].pos.posi);}
}

总体说明:

准备部分:首先在外部文件中#define预定义一个JILU为6,之后在主文件当中引用这个外部文件。然后创建共用体和结构体,将共用体Position嵌套进结构体Student中。并对比较函数进行声明。

主函数部分:初始化一个空的结构体数组,输出提示信息,并利用for循环输入6名成员的信息。再调用比较函数,将结构体的地址传递给比较函数。

比较函数部分:定义临时变量i,j,和一个临时的结构体变量t,通过两个for循环嵌套的使用,对不同成员的学号进行比较。具体思路为,i初值为0,j初值为i+1,在内部循环里面,比较stu[i]的学号与stu[j]的学号。如果stu[i]的学号较大,则进入if语句,利用中间值t将stu[j]与stu[i]交换,之后j++,进行下一次的内层循环。内层循环结束后,此时i++,而j也随之发生变化,再做下一次的循环比较。一直等到遍历完整个结构体数组后,进行打印。先打印一些提示信息,再通过for循环,打印排序后的各成员信息。

设计缺陷及改正:

1、在设计共用体时,原本打算在在主函数内通过代码直接定义成员信息,但在测试时最后一个值会出现乱码的情况,之后我选择了在运行函数后输入的办法,有效避免了此情况的发生。同时,我也想到了在输入过程中的顺序是不确定的,那么嵌套的共用体当中的成员就是不定的,也就是说&stu[i].pos.posi这条语句的最后有时为.num有时为.posi,这就使得在使用scanf时,代码是不确定的,但是这个缺陷我并没有有效的解决,最终选择都使用&stu[i].pos.posi来完成信息的输入。

2、起初我是在主函数内进行信息输入这一部分的,但是调试时,发现比较函数内的stu未定义。于是我直接在比较函数内定义了一个空的结构体数组后,但是打印出现了乱码。我发现,在结构体传参时,我使用的是void bijiao(struct Student *ps),而在函数内部我用的却是stu,这才导致了,stu未定义的情况发生,而直接定义空的stu更是不可以的,因为里面没有值,必定会出现乱码的情况,之后我把比较函数内所有的stu都改成了ps,这才使得代码正常运行。

3、在最后打印时,表头等提示信息本来是在主函数内进行打印的,但考虑到代码的美观性,我们将打印信息包含在了比较函数内部。

C语言学生档案表设计——作业相关推荐

  1. c语言学生档案管理课设作业,2019-2020年c语言课程设计学生档案管理系统实验报告.doc...

    2019-2020年c语言课程设计学生档案管理系统实验报告.doc 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: *********C 语 ...

  2. 期末作业成品代码——威海影视(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码

    HTML5期末大作业:影视网站设计--威海影视(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 ...

  3. DIV布局——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 w

    HTML5期末大作业:网页制作代码 网站设计--人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计 ...

  4. HTML5期末大作业:管理系统网站设计——蓝色OA企业员工管理系统(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源

    HTML5期末大作业:管理系统网站设计--蓝色OA企业员工管理系统(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常 ...

  5. 静态HTML网页设计作品 仿唯品会购物商城(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 商城网站设计

    HTML5期末大作业:仿唯品会购物网站设计--仿唯品会购物商城(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 商城网站设计 常见网页设计作业题材有 个人. 美食. 公司. ...

  6. HTML期末大作业 学生DW静态网页设计 动画漫展学习资料电影模板(6页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源

    HTML5期末大作业`动画漫影视网站设计--动画漫展学习资料电影模板(6页) HTML+CSS+JavaScript 学生DW网页设计作业成品 wHTML期末大作业 学生DW静态网页设计 html大作 ...

  7. HTML+CSS期末大作业:动漫网站设计——悬崖上的金鱼姬(5页) / 动漫网页设计作业,网页设计作业 / 动漫网页设计成品 学生DW网页设计作业成品 web课程设计网页规划与设计...

    HTML+CSS期末大作业:动漫网站设计--悬崖上的金鱼姬(5页) 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人. 美食. 公司. 学校 ...

  8. HTML5期末大作业:电影网站设计——电影资讯博客(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码

    HTML5期末大作业:电影网站设计--电影资讯博客(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码 常见网页设计作业 ...

  9. HTML5期末大作业:餐饮饮食美食主题网站设计——重庆火锅(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码...

    常见网页设计作业题材有 ​​个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体育. 化妆品. 物流. 环保. 书籍. 婚纱. 军 ...

  10. HTML5期末大作业:轮滑运动体育类人物介绍主题网站设计(12页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计

    HTML5期末大作业:轮滑运动体育类人物介绍主题网站设计(12页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码 常见网页 ...

最新文章

  1. 区块链教程Fabric1.0源代码分析scc(系统链码)
  2. squid反向代理(实现缓存)加速web
  3. 测试php数字范围_你不知道的接口测试之拾遗
  4. 朗文3000词汇表带音标_英语零基础音标语法都不会词汇量3000 学雅思到6/6.5分 需要多久 该如何做?...
  5. 地图的四着色 (CSU-1508)
  6. BZOJ 1502:月下柠檬树
  7. 嵌入式电路设计(从电路到系统)
  8. linux如何安装php,Linux下如何安装配置PHP
  9. python标准库说明_Python标准库详细介绍与基本使用方式,超详细!
  10. 汇编Masm更改颜色
  11. 基于stm32的两轮自平衡小车2(原理篇)
  12. 小学英语计算机融合,小学英语作业盒电脑版
  13. 云计算教程入门视频课件:云计算中心怎么选址?
  14. php 插件推荐,Typecho实用插件推荐(一)
  15. 最新AppStore审核被拒常见条例,及解决方案(内购、切支付篇)
  16. html 链接excel,如何把excel表格中的文本链接变成可点击打开的网址链接(超链接)?...
  17. 《Web前端工程师修炼之道》学习笔记
  18. 简单的CSV文件读取,C语言实现
  19. Python标准库第三方库
  20. 基于网页在线图书小说电子书阅读系统 毕业设计毕设源码毕业论文开题报告参考(1)系统功能概要

热门文章

  1. 可以免费自学编程的12个网站
  2. 信息流项目计划和思路
  3. Poi-tl通过word模板生成文件页眉页脚冲突问题
  4. 查询中接受的主体参数
  5. CCF NOI1097 数列
  6. 基于MIPS指令集的单周期处理器设计
  7. 除了加速上币,OKEx在DeFi热潮中还能做什么?
  8. MySQL什么情况会导致索引失效?
  9. 制作bt种子(非pt站私有种)
  10. 关于tomcat报错500的问题记录(classnotfoundexception)