C语言学生档案表设计——作业
对应本组同学,建立档案信息表:数据包括---学号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语言学生档案表设计——作业相关推荐
- c语言学生档案管理课设作业,2019-2020年c语言课程设计学生档案管理系统实验报告.doc...
2019-2020年c语言课程设计学生档案管理系统实验报告.doc 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: *********C 语 ...
- 期末作业成品代码——威海影视(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码
HTML5期末大作业:影视网站设计--威海影视(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 ...
- DIV布局——人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 w
HTML5期末大作业:网页制作代码 网站设计--人电影网站(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计 ...
- HTML5期末大作业:管理系统网站设计——蓝色OA企业员工管理系统(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源
HTML5期末大作业:管理系统网站设计--蓝色OA企业员工管理系统(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常 ...
- 静态HTML网页设计作品 仿唯品会购物商城(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 商城网站设计
HTML5期末大作业:仿唯品会购物网站设计--仿唯品会购物商城(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 商城网站设计 常见网页设计作业题材有 个人. 美食. 公司. ...
- HTML期末大作业 学生DW静态网页设计 动画漫展学习资料电影模板(6页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源
HTML5期末大作业`动画漫影视网站设计--动画漫展学习资料电影模板(6页) HTML+CSS+JavaScript 学生DW网页设计作业成品 wHTML期末大作业 学生DW静态网页设计 html大作 ...
- HTML+CSS期末大作业:动漫网站设计——悬崖上的金鱼姬(5页) / 动漫网页设计作业,网页设计作业 / 动漫网页设计成品 学生DW网页设计作业成品 web课程设计网页规划与设计...
HTML+CSS期末大作业:动漫网站设计--悬崖上的金鱼姬(5页) 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人. 美食. 公司. 学校 ...
- HTML5期末大作业:电影网站设计——电影资讯博客(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码
HTML5期末大作业:电影网站设计--电影资讯博客(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码 常见网页设计作业 ...
- HTML5期末大作业:餐饮饮食美食主题网站设计——重庆火锅(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码...
常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体育. 化妆品. 物流. 环保. 书籍. 婚纱. 军 ...
- HTML5期末大作业:轮滑运动体育类人物介绍主题网站设计(12页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计
HTML5期末大作业:轮滑运动体育类人物介绍主题网站设计(12页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web学生网页设计作业源码 常见网页 ...
最新文章
- 区块链教程Fabric1.0源代码分析scc(系统链码)
- squid反向代理(实现缓存)加速web
- 测试php数字范围_你不知道的接口测试之拾遗
- 朗文3000词汇表带音标_英语零基础音标语法都不会词汇量3000 学雅思到6/6.5分 需要多久 该如何做?...
- 地图的四着色 (CSU-1508)
- BZOJ 1502:月下柠檬树
- 嵌入式电路设计(从电路到系统)
- linux如何安装php,Linux下如何安装配置PHP
- python标准库说明_Python标准库详细介绍与基本使用方式,超详细!
- 汇编Masm更改颜色
- 基于stm32的两轮自平衡小车2(原理篇)
- 小学英语计算机融合,小学英语作业盒电脑版
- 云计算教程入门视频课件:云计算中心怎么选址?
- php 插件推荐,Typecho实用插件推荐(一)
- 最新AppStore审核被拒常见条例,及解决方案(内购、切支付篇)
- html 链接excel,如何把excel表格中的文本链接变成可点击打开的网址链接(超链接)?...
- 《Web前端工程师修炼之道》学习笔记
- 简单的CSV文件读取,C语言实现
- Python标准库第三方库
- 基于网页在线图书小说电子书阅读系统 毕业设计毕设源码毕业论文开题报告参考(1)系统功能概要