精华内容
下载资源
问答
  • C语言结构体实现学生信息统计C语言程序设计作业6梁英华200913201054一.6.1和6.2放在一个程序里实现。1.思路:通过结构体和for()来实现学生数据的输入输出,即学号,名字,年龄和性别,并对相关选项判别。2.源程序:...

    C语言结构体实现学生信息统计

    C语言程序设计作业6

    梁英华

    200913201054

    一.6.1和6.2放在一个程序里实现。

    1.思路:

    通过结构体和for()来实现学生数据的输入输出,即学号,名字,年龄和性别,并对相关选项判别。

    2.源程序:

    #include

    #include

    #define TIME "0%d\t%s\t%d\t%c\n" /*自定义学生输入的格式*/

    #define KAKA "Num\tName\tAge\tGender\n" /*自定义输出的格式*/

    #define MILITO "Boy\tGirl\tAge<18\n" /*自定义统计的输出格式*/

    struct student /* 结构体声明学生统计要素*/

    {

    int num;

    char name[10];

    int age;

    char sex;

    };

    main()

    {

    void input(struct student stu[] ); /* 初始化*/

    void count(struct student stu[]);

    struct student stu[4];

    int i,j,boy=0,girl=0,c=0;

    input(stu); /*调用学生的输入函数input*/

    for(j=0;j<1;j++)

    {

    printf(KAKA); /*调用自定义函数KAKA*/

    }

    for(i=0;i<4;i++) /* 输出学生数据*/

    {

    printf(TIME,stu[i].num,stu[i].name,stu[i].age,stu[i].sex);

    }

    for(j=0;j<1;j++)

    {

    printf(MILITO);

    }

    for(i=0;i<4;i++) /*判别男女,以及年龄小于18的人数*/

    {

    if(stu[i].age<18) c=c+1;

    if(stu[i].sex=='M') boy=boy+1;

    else girl=girl+1;

    }

    printf("%d\t%d\t%d\n",boy,girl,c);

    }

    void input(struct student stu[]) /*学生数据输入的函数input*/

    {

    int i;

    for(i=0;i<4;i++)

    {

    scanf("%d",&stu[i].num);

    getchar();

    scanf("%s",&stu[i].name);

    getchar();

    scanf("%d",&stu[i].age);

    getchar();

    scanf("%c",&stu[i].sex);

    getchar();

    }

    }

    3.运行结果:

    二.共用体的高低8位问题------6.3

    解析:

    十进制16961转换成二进制是 0100 0010 0100 0001

    高8位:0100 0010 ,即66

    低8位:0100 0001,即65.

    源程序:

    #include

    #define KAKA "b[1]\tb[0]\n"

    union inter

    {

    short int a;

    char b[2];

    };

    main()

    {

    union inter num;

    printf("请输入整一个数:\n");

    scanf("%d",&num.a);

    printf(KAKA);

    printf("%d\t%d\n",num.b[1], num.b[0]);

    }

    运行结果:

    展开全文
  • C语言结构体输入学生基本信息

    万次阅读 多人点赞 2019-03-21 22:57:34
    输入学生信息,计算总分以及平均分后输出 #Include<stdio.h> #define N 100 struct Student//创建一个student的结构体 { int num;//学生人数 char name[20];//存储学生姓名的一个数组 cha...

    为了描述不同属性的集合的结构,又不破坏集合之间的个属性之间的关系,需要构造新的数据类型;
    直接上代码,没必要那么多口水话;输入学生的信息,计算总分以及平均分后输出

    #include<stdio.h>
    #include<string.h>
    #define N 100
    struct student
    {
     int sno;
     char name[20];
     char sex[4];
     int age;
     int score[3];
     int sum;
     float average;
    };
    void count(struct student *,int  );
    void count(struct student *st,int num )
    {
     int i; 
     for(i=0;i<num;i++)
     {
      st[i].sum=st[i].score[0]+st[i].score[1]+st[i].score[2];
      st[i].average=st[i].score[0]+st[i].score[1]+st[i].score[2]/3.0;
     }
     //打印
     printf("\n\t学号\t   姓名  \t性别\t语文\t英语\t高数\t总分\t平均分\n");
     for(i=0;i<num;i++)
     {
      printf("\t%d %s        %s\t%d\t%d\t%d\t%d\t%f\n",st[i].sno,st[i].name,st[i].sex,st[i].score[0],st[i].score[1],st[i].score[2],st[i].sum,st[i].average);
      } 
     return;
    }
    int main()
    {
     int i;
     struct student st[N];
     int num1;//需要输入的学生人数
     printf("请输入录入人数:\n");
     scanf("%d",&num1);
     if(N<num1)
     {
      num1=N;
      printf("最大人数为N=100!\n");
      } 
     for(i=0;i<num1;i++)
     {
      printf("姓名:");scanf("%s",st[i].name);
      printf("学号:");scanf("%d",&st[i].sno);getchar();
      printf("性别:");scanf("%s",&st[i].sex);
      printf("语文成绩:");scanf("%3d",&st[i].score[0]);
      printf("英语四级成绩:");scanf("%3d",&st[i].score[1]);
      printf("高数成绩:");scanf("%3d",&st[i].score[2]);
     }
     count(st,num1);
     return 0;
    }
    展开全文
  • printf("4:查询学生信息\n"); printf("5:结果存入文件chengji.txt\n"); printf("6:删除学生信息\n"); printf("7:退出系统\n"); printf("输入选项代码:"); scanf("%d", &m); if (m == 1) { ...
    
    #include <stdio.h>
    #include <string.h>
    #include <math.h>
    #include <stdlib.h>
    
    typedef struct student
    {
    	int stu_num;//学号 
    	char name[20];//姓名 
    	int math;//数学成绩
    	int enl;//英语成绩
    	int ji;//计算机成绩
    	int sum;//总成绩
    	double avg;//平均成绩 
    }Stu;
    Stu stu[10];//十个
    int n;
    int dex = 0;
    int cmp1();
    int cmp2();
    void luru();
    void print();
    void del();
    void search();
    void cun();
    
    void main()
    {
    	int m;
    	while (1)
    	{
    		printf("\t大学生成绩管理系统\n");
    		printf("1:录入十个学生的成绩记录\n");
    		printf("2:显示所有成绩记录\n");
    		printf("3:根据总分和学号排序\n");
    		printf("4:查询学生信息\n");
    		printf("5:结果存入文件chengji.txt\n");
    		printf("6:删除学生信息\n");
    		printf("7:退出系统\n");
    		printf("输入选项代码:");
    		scanf("%d", &m);
    		if (m == 1)
    		{
    			luru();
    		}
    		if (m == 2)
    		{
    			print();
    		}
    		if (m == 3)
    		{
    			int q=0;
    			printf("按学号排序输入1\n按总分排序输入2:");
    			scanf("%d", &q);
    			if (q == 1)
    			{
    				qsort(stu, dex, sizeof(stu[0]), cmp1);
    				print();
    			}
    			else if (q == 2)
    			{
    				qsort(stu, dex, sizeof(stu[0]), cmp2);
    				print();
    			}
    
    		}
    		if (m == 4)
    		{
    			search();
    		}
    		if (m == 5)
    		{
    			cun();
    		}
    		if (m == 6)
    		{
    			del();
    		}
    		if (m == 7)
    		{
    			printf("再见!!!\n");
    			break;
    		}
    		putchar('\n');
    	}
    
    	getchar();
    }
    
    void luru() /* 输入10个学生的信息*/
    {
    	int i;
    	for (i = 0; i < 10; i++)
    	{
    		printf("请输入第%d个学生的学号 姓名 数学成绩 英语成绩 计算机成绩:",i+1);
    		scanf("%d%s%d%d%d", &stu[i].stu_num, stu[i].name, &stu[i].math, &stu[i].enl, &stu[i].ji);
    		stu[i].sum = stu[i].math + stu[i].enl + stu[i].ji;
    		stu[i].avg = stu[i].sum / 3.0;
    		dex++;
    	}
    }
    
    void print()/* 显示所有学生信息*/
    {
    	int i;
    	printf("学号   姓名   数学成绩   英语成绩   计算机成绩  总成绩  平均成绩\n");
    	for (i = 0; i < dex; i++) {
    		printf("%d    %s    %d    %d    %d    %d    %.2lf\n", stu[i].stu_num, stu[i].name, stu[i].math, stu[i].enl, stu[i].ji, stu[i].sum, stu[i].avg);
    	}
    }
    
    void gai()//修改 
    {
    	int i, ch, p;
    	printf("输入要修改的学生学号:");
    	scanf("%d", &ch);
    	for (i = 0; i < dex; i++) {
    		if (stu[i].stu_num == ch) {
    			printf("输入修改后的值:学号   姓名   数学成绩   英语成绩   计算机成绩\n");
    			scanf("%d%s%d%d%d", &stu[i].stu_num, stu[i].name, &stu[i].math, &stu[i].enl, &stu[i].ji);
    		}
    	}
    	printf("修改成功!\n");
    }
    
    void del()//删除学生信息 a为学号 
    {
    	int i, j=0, n;
    	printf("输入你要删除学生的学号:\n");
    	scanf("%d", &n);
    	for (i = 0; i < dex; i++)
    	{
    		if (stu[i].stu_num == n)
    		{
    			j = i;
    			break;
    			n--;
    		}
    	}
    	for (i = j; i < dex; i++)
    	{
    		if (i < dex - 2)
    			stu[i] = stu[i + 1];
    		dex--;
    	}
    
    }
    
    int cmp1(const void* st1, const void* st2) {//学号排序 
    	Stu st3 = *(Stu*)st1;
    	Stu st4 = *(Stu*)st2;
    	if (st3.stu_num - st4.stu_num > 0)
    		return 1;
    }
    
    int cmp2(const void* st1, const void* st2) {//总分排序 
    	Stu  st3 = *(Stu*)st1;
    	Stu  st4 = *(Stu*)st2;
    	if (st3.sum - st4.sum > 0)
    		return 1;
    }
    
    void search()//查询 
    {
    	printf("请输入你要查询的学号:");
    	int i, n;
    	scanf("%d", &n);
    	for (i = 0; i < dex; i++) {
    		if (stu[i].stu_num == n) {
    			printf("%d  %s  %d  %d  %d  %d  %.2lf\n", stu[i].stu_num, stu[i].name, stu[i].math, stu[i].enl, stu[i].ji, stu[i].sum, stu[i].avg);
    		}
    	}
    }
    
    void cun()
    {
    	int i;
    	FILE* fp;
    	fp = fopen("D:\\chengji.txt", "w+");
    	fprintf(fp, "学号        姓名       数学成绩       英语成绩      计算机成绩     总成绩    平均成绩\n");
    	for (i = 0; i < 4; i++)`在这里插入代码片`
    		fprintf(fp, "%d  %s  %d  %d  %d  %d  %.2lf\n", stu[i].stu_num, stu[i].name, stu[i].math, stu[i].enl, stu[i].ji, stu[i].sum, stu[i].avg);
    	fp.close();
    
    	printf("\n\n*******************恭喜,保存完成!*******************\n\n");
    }
    
    展开全文
  • C语言结构体实现学生信息和总成绩

    千次阅读 2019-03-24 14:39:46
    finput()输入每个学生信息 求单科和总分最高的学生信息 代码展示1. #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<stdio.h> #include <string.h> //void ...

    问题简介:

    学生信息:姓名,学号,英语成绩,数学成绩,政治成绩

    • 写出学生结构体信息
    • finput()输入每个学生信息
    • 求单科和总分最高的学生信息

    代码展示1.

    #define _CRT_SECURE_NO_WARNINGS
    #include<iostream>
    #include<stdio.h>
    #include <string.h>
    //void finput();
    struct student{
    	char name[50];
    	int ID[20];
    	int English;
    	int 	Math;
    	int political;
    };
    student finput(struct student std){
    	//struct student std;
    	printf("请输入学生的姓名,学号,成绩(英语,数学,政治):\n");
    	printf("姓名:");
    	scanf("%s", std.name);
    	printf("学号:");
    	scanf("%d", std.ID);
    	printf("英语:");
    	scanf("%d", &std.English);
    	printf("数学:");
    	scanf("%d", &std.Math);
    	printf("政治:");
    	scanf("%d", &std.political);
    	return std;
    }
    int maxScore(int a[]){
    	int j;
    	int max = 0;
    	for (int i = 0; i < 3; i++){
    		if (a[i]>max){
    			max = a[i];
    			j = i;
    		}
    	}
    	return j;
    }
    int compare(int x1, int x2, int x3){
    	int max = 0;
    	if (x1 > x2){
    		max = x1;
    	}
    	else{
    		max = x2;
    	}
    	if (x3 > max){
    		max = x3;
    	}
    	return max;
    }
    int main(){
    	struct student std[3];
    	for (int i = 0; i < 3; i++){
    		std[i] = finput(std[i]);
    		printf("\n");
    	}
    	int sum[3] = {0,0,0};
    	int math[3] = {0,0,0};
    	int english[3] = {0,0,0};
    	int political[3];
    	for (int i = 0; i < 3; i++){
    		sum[i] = std[i].English + std[i].Math + std[i].political;
    		printf("%d \t %d \t %d \n",std[i].English, std[i].Math, std[i].political);
    		printf("%d\n", sum[i]);
    		math[i] = std[i].Math;
    		english[i] = std[i].English;
    		political[i] = std[i].political;
    	}
    	int index = maxScore(sum);
    	int index1 = maxScore(math);
    	int index2 = maxScore(english);
    	int index3 = maxScore(political);
    	printf("总分成绩最高的学生成绩%d,学生名为%s\n", sum[index], std[index].name);
    	//英语
    	printf("英语成绩最高的学生成绩%d,学生名为%s\n", english[index2], std[index2].name);
    	//数学
    	printf("数学成绩最高的学生成绩%d,学生名为%s\n", math[index1], std[index1].name);
    	//政治
    	printf("政治成绩最高的学生成绩%d,学生名为%s\n", political[index3], std[index3].name);
    
    }

    代码展示2.

    //有n个结构体变量,内含学生号, 姓名和三门课成绩。要求输出单科成绩和总成绩最高学生的信息。
    #include <stdio.h>
    #define N 3
    struct Student
    {
    	int num;
    	char name[20];
    	float socre[3];
    	float total_points;
    };
    void input(struct Student stu[])
    {
    	int i;
    	printf("请分别输入各学生的信息:学号,姓名,三门课成绩\n");
    	for(i=0;i<N;i++)
    	//score[0]是英语成绩, score[1]是数学成绩成绩,score[2]是政治成绩 
    	{
    		scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].socre[0],&stu[i].socre[1],&stu[i].socre[2]);
    		stu[i].total_points=(stu[i].socre[0]+stu[i].socre[1]+stu[i].socre[2]);
    	}
    }
    struct Student max(struct Student stu[])
    {
    	int i,m=0;
    	for(i=0;i<N;i++)
    		if(stu[i].total_points>stu[m].total_points)
    			m=i;
    	return stu[m];
    }
    struct Student english_max(struct Student stu[]) 
    {
    	int i,m=0;
    	for(i=0;i<N;i++){
    			if(stu[i].socre[0]>stu[m].socre[0]){
    				m=i;
    		}
    	}
    	return stu[m];
    }
    struct Student math_max(struct Student stu[]) 
    {
    	int i,m=0;
    	for(i=0;i<N;i++){
    			if(stu[i].socre[1]>stu[m].socre[1]){
    				m=i;
    		}
    	}
    	return stu[m];
    }
    struct Student political_max(struct Student stu[]) 
    {
    	int i,m=0;
    	for(i=0;i<N;i++){
    			if(stu[i].socre[2]>stu[m].socre[2]){
    				m=i;
    		}
    	}
    	return stu[m];
    }
    void print1(struct Student stud)
    {
    	printf("单科英语成绩最高的学生是:\n");
    	printf("学号:%d\n姓名:%s\n英语成绩:%6.2f\n",stud.num,stud.name,stud.socre[0]);
    	//printf("单科数学成绩最高的学生是:\n");
    	//printf("学号:%d\n姓名:%s\n英语成绩:%6.2f\n",stud.num,stud.name,stud.socre[1]);
    	//printf("单科政治成绩最高的学生是:\n");
    	//printf("学号:%d\n姓名:%s\n英语成绩:%6.2f\n",stud.num,stud.name,stud.socre[2]);
    		
    }
    void print2(struct Student stud)
    {
    	printf("单科数学成绩最高的学生是:\n");
    	printf("学号:%d\n姓名:%s\n英语成绩:%6.2f\n",stud.num,stud.name,stud.socre[1]);
    
    		
    }
    void print3(struct Student stud)
    {
    	printf("单科政治成绩最高的学生是:\n");
    	printf("学号:%d\n姓名:%s\n英语成绩:%6.2f\n",stud.num,stud.name,stud.socre[2]);
    		
    }
    void print(struct Student stud)
    {
    	
    	printf("成绩最高的学生是:\n");
    	printf("学号:%d\n姓名:%s\n三门课成绩:%5.1f,%5.1f,%5.1f\n总成绩:%6.2f\n",stud.num,stud.name,stud.socre[0],stud.socre[1],stud.socre[2],stud.total_points);
    }
    
    int main()
    {
    	struct Student stu[N],*p=stu;
    	input(p);
    	print1(english_max(p));
    	print2(math_max(p));
    	print3(political_max(p));
    	print(max(p));	
    	return 0;
    }

    第二种方法可改进。留给查看的博友吧!

    展开全文
  • 按1 输入学生信息 按2 输出学生信息 按3 查询学生信息 按4 修改学生信息 按5 删除学生信息 按6 插入学生信息 按7 排序总成绩信息 学生信息主要有姓名,班级,学号,C语言成绩,高数成绩,大学英语成绩,控制台界面...
  • c语言结构体学习整理(结构体初始化,结构体指针)

    万次阅读 多人点赞 2018-11-01 20:22:12
    首先我们为什么要用到结构体,我们都已经学了很多int char …等类型还学到了同类型元素构成的数组,以及取上述类型的指针,在一些小应用可以灵活使用,然而,在我们实际应用中,每一种变量进行一次声明,再结合起来...
  • 要求自定义结构体存储学生信息学生信息包括学生姓名与学生成绩。然后编写函数完成对指定姓名的学生信息的查找,找到后打印学生信息,函数原型为: <code>STU * find(STU * aStu, int n,...
  • #include#include/*简化学生信息,只保留学号,姓名,成绩实现所有功能*///学生结构体typedef struct {char id[32];char name[32];double score;}Stu, *PStu;//由学生数组和学生数目组成的组的结构体typedef struct {...
  • C语言结构体实验报告 《高级语言程序设计》实验报告 实验序号:8 实验项目名称:结构体 学 号 姓 名 专业、班级 实验地点 指导教师 实验时间 一、实验目的及要求 1、掌握结构体变量的定义和使用; 2、掌握结构体数组...
  • C语言结构体与链表 第 10章 CHAPTER 10 结构体与共用体 学习目标 本章主要介绍结构体的定义和使用方法,然后介绍链表的概念和相关操作,最后介绍两种新的数据类型——共用体和枚举。通过本章的学习,需要掌握结构体...
  • #include <stdio.h> struct stu{ float score; }; struct stu info[5];... printf("请输入第%d个学生的成绩:",i+1); scanf("%f",&info[i].score); sum+=info[i].score; j++; } avg=sum/j;
  • 组 人无预习报告(对实验主要内容的认识)得分实验目的: 练习使用C语言的标准I/O函数系列处理文件熟悉二维数组的操作函数、模块化程序设计以及增量测试方法熟悉结构体类型、结构体数组、写钩体数组函数参数、体会...
  • C语言结构体说课稿范例C语言结构体课件说课稿《结构体》说课稿(设计人:教育技术11D 布鲁斯·李)各位老师,各位同行大家好:今天我说课的内容是《结构体》,我将从以下六个方面来说课:1、说教材2、说教学目标3、说...
  • /*结构体*/ #include<stdio.h> #include<Windows.h> struct student { char name[10]; char address[100]; char phone[20]; int score[3]; int num; struct student *next; }; int main() { int ...
  • 学生信息管理系统(C语言结构体版) 学生信息管理系统每个c语言入门者所需掌握的一个操作系统模板。下面就简单来介绍一个该操作系统。 功能介绍 该系统所具备的一般的增、删、查、改。另外,可根据个人需要增加...
  • puts("输入1查看总分最高学生信息输入2查看每科最高分学生信息输入3退出"); do { printf("请输入:"); scanf("%d", &t); switch (t) { case 1: //max(p, n); break; case 2: //every(p, n); break; case 3: ...
  • 该系统要具有如下功能。 (1)显示(2)查询(3)添加(4)修改 (5)删除(6)统计(7)排序(8)备份
  • 总体功能: 大体框架与功能都有,其他功能自行删改嘻嘻... //输入 void amend(struct student stu[]); //修改 void remove(struct student stu[]); //删除 void namefind(struct student stu[]);//按名字查询 void ...
  • C语言结构体例题

    2012-12-27 18:26:29
    C语言结构体例题 可能对初学c语言的同学们有帮助
  • C语言结构体版的学生成绩管理系统

    千次阅读 多人点赞 2020-02-13 21:04:23
    按1 输入学生信息 按2 输出学生信息 按3 查询学生信息 按4 修改学生信息 按5 删除学生信息 按6 插入学生信息 按7 排序总成绩信息 学生信息主要有姓名,班级,学号,C语言成绩,高数成绩,大学英语成绩,控制台界面...
  • C语言结构体实报告《高级语言程序设计》实验报告实验序号:8 实验项目名称:结构体学 号姓 名专业、班级实验地点指导教师实验时间一、实验目的及要求1、掌握结构体变量的定义和使用;2、掌握结构体数组的定义和...
  • 一、结构体的定义1、定义形式struct 结构名{成员列表;}; //定义为语句,分号不能丢2、结构类型变量的声明(1)声明形式1struct student{int number;char name;float score;};struct student st1,st2,st3;(2)声明形式2...
  • C语言结构体

    2021-01-27 09:29:53
    比如一个在校学生的姓名、性别、年龄、年级、身高等等都是单一的信息,而这些单一维度的信息聚合到一起就形成了一个名为学生结构体。 struct student { char name[15]; char sex; int age; int grade; ...
  • C语言 结构体

    2012-11-16 22:31:35
    1、用结构体表示日期,编写程序计算伦敦奥运会的倒计时的天数并输出(2012年8月15日)。   2、某系的成绩登记册中,每个班...设计程序以处理一个班的成绩信息,包括输入、输出、查询(给定分数以上的学生信息)等。
  • c语言结构体

    2018-07-03 09:36:40
    关于c语言结构体的引入; 在前面已经介绍了整形(int,long,….),浮点型(flaot,double),字符型(char),还介绍了数组(存储一组具有相同类型的数据),字符串。但是在实际问题中只有这些数据类型是不够的,...
  • C语言结构体定义

    千次阅读 多人点赞 2018-08-29 16:52:36
    C语言结构体定义在我看来类似数据库的表 如: #include &lt;stdio.h&gt; #include &lt;string.h&gt;   struct st1 {  int id;  char name[30];  char sex;  int score; };     ...
  • c语言结构体实验报告 《高级语言程序设计》实验报告 实验序号:8 实验项目名称:结构体 学 号 姓 名 专业、班级 实验地点 指导教师 实验时间 一、实验目的及要求 1、掌握结构体变量的定义和使用; 2、掌握结构体数组...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,865
精华内容 3,946
关键字:

c语言结构体输入学生信息

c语言 订阅