首页 - 币安app > 学生信息的输入输出(学生信息输入输出编程c语言)

学生信息的输入输出(学生信息输入输出编程c语言)

发布于:2022-12-16 作者:沫沫 阅读:13

今天给各位分享学生信息的输入输出的知识,其中也会对学生信息输入输出编程c语言进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

c++链表 学生信息输入输出

哥们,我给你个链表头文件吧,这些东西还是得自己学学的,这个VC2010编译无错的,希望你仔细研究研究,然后稍微的修改就可以完成你的需求了,我这个就相当于帮你解决查错和写代码的时间了,学语言还是得细心看看的,至少了解下大思路~~~加油

/* 本头文件为一个单链表模板,包括各种操作函数以及链表单元数据的修改建立,

链表数据的编辑在Elemtype结构体中,现在仅含测试成员,使用时个别操作函数需要加以修改。*/

#pragma once

#include stdlib.h

#include iostream

typedef struct Elemtype

{

//在此编辑链表数据成员

int a ;

}Elemtype;

typedef struct LinkList

{

int number;

Elemtype elem;

static long Length ;

struct LinkList *next;

}LinkList;

long LinkList::Length = 0;

//操作函数声明

LinkList* InitList(LinkList L, long InitLength); //链表的建立以及初始化

int DestroyList(LinkList *L ); //销毁链表

int ListEmpty(LinkList L ); //检验链表是否为空

long ListLength(LinkList L ); //输出链表的长度

int ListDisplay(LinkList L ); //显示链表

LinkList* ListSearch(LinkList L, int num); //查询

void ListInsert(LinkList L, int k, LinkList* newl);//插入第k个元素之前插入

void ListDelete(LinkList L, int num); //删除

void ListReverse(LinkList L ); //链表的逆置

//函数定义

LinkList* InitList(LinkList L, long InitLength)

{

LinkList* head = L, *p, *str = head;

str = (LinkList*)malloc(sizeof(LinkList));

head = str;

p = str;

for(int i = 1; i = InitLength; i++)

{

str = (LinkList*)malloc(sizeof(LinkList));

p - next = str;

p = str;

p - number = i;

p - elem.a = i;

}

head - Length = InitLength;

p - next = NULL;

return head;

}

int DestroyList(LinkList *L )

{

LinkList *p1 =L, *p2 = p1;

while(p1 -next)

{

p2 = p1 -next;

free(p1);

p1 = p2;

}

free(p1);

return 1;

}

int ListEmpty(LinkList L)

{

if(L.next == NULL)

{ return 1; }

else

return -1;

}

long ListLength(LinkList L)

{ return L.Length; }

int ListDisplay(LinkList L)

{

LinkList* p = L;

int i = 1;

while(p - next != NULL)

{

printf("Number %d is:", i++);

printf("%d\n", p - next - number);

p = p - next;

}

return 1;

}

LinkList* ListSearch( LinkList L, int num)

{

LinkList * p = L;

while(p - next != NULL)

{

if(p - number == num)

{ printf("成功查找\n");return p; }

else

p = p - next;

}

printf("查找失败\n");

return NULL;

}

void ListInsert(LinkList L, int k, LinkList* newl)

{

LinkList *p = L;

for(int i = 1; i k; i++)

{ p = p - next; }

newl - next = p - next;

p - next = newl;

p - Length += 1;

printf("插入成功\n");

}

void ListDelete(LinkList L, int num)

{

LinkList *head = L, *p = head, *q;

while( p - next != NULL)

{

if( p - next - number == num )

{

q = p - next;

p - next = p - next - next;

free(q);

printf("成功删除:\n");

}

else

p = p - next;

}

}

void ListReverse(LinkList L) //两种成功的逆置方法

{

LinkList *p = L, *q;

q = p -next;

p = q -next-next;

q -next -next = q;

q -next = NULL;

q = p;

while(p)

{

p = p-next;

q -next = L.next;

L.next = p;

p = p-next;

L.next-next = q;

q = p;

}

/*LinkList *p = L.next,*s;

L.next= NULL;

while(p)

{

s = p- next;

p- next=L.next;

L.next=p;

p=s;

}

*/

}

//测试头文件的主函数

#include "LinkList.h"

int main()

{

/*检验代码

LinkList head, *p, *p1, *p2;

LinkList *newl =(LinkList*)malloc(sizeof(LinkList));

newl-number = 99;

newl-elem.a = 99;

p = InitList(head, 10); //创建并初始化列表序号

head = *p;

if (ListEmpty(head)==1) //ListEmpty函数的检验

printf("链表为空\n");

else printf("链表不为空\n");

printf("%d\n",ListLength(head)); //ListLength函数的检验

if (ListDisplay(head)==1) //ListDisplay函数的检验

printf("输出成功\n");

else printf("输出失败\n");

;

p1 = ListSearch(head, 5); //ListSearch函数的检验

printf("所得指针指向LinkList-number = %d\n", p1-number);

ListInsert(head, 5,newl); //ListInsert函数的检验

p2 = ListSearch(head, 99);

ListDelete(head, 99); //ListDelete函数的检验

p2 = ListSearch(head, 99);

printf("逆置前:\n"); //ListReverse函数的检验

printf("head指向的第一个元素的序号为%d,地址为%0x\n ",p-next-number,head.next);

ListReverse(head);

printf("逆置后:\nhead指向的第一个元素的序号为%d,地址为%0x\n ",head.next-number,head.next);

if (DestroyList(p)==1)//DestroyList函数的检验

printf("链表销毁成功\n");

*/

return 0;

}

C语言试编写输入、输出学生信息的函数,设学生信息包括学号、姓名和5门课程的成绩。

#includestdio.h

struct{

int num;

char name[10];

int s1,s2,s3,s4,s5;

}student[1000];

int main()

{

int number,i;

printf("请输入学生总人数:");

scanf("%d",number);

for(i=0;inumber;i++){

printf("请输入第%d名学生的信息\n",i+1);

printf("学号:");

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

printf("姓名:");

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

printf("成绩一:");

scanf("%d",student[i].s1);

printf("成绩二:");

scanf("%d",student[i].s2);

printf("成绩三:");

scanf("%d",student[i].s3);

printf("成绩四:");

scanf("%d",student[i].s4);

printf("成绩五:");

scanf("%d",student[i].s5);

}

printf("学生信息如下:\n");

for(i=0;inumber;i++){

printf("学号:%3d",student[i].num);

printf("姓名:%3s",student[i].name);

printf("成绩一:%3d",student[i].s1);

printf("成绩二:%3d",student[i].s2);

printf("成绩三:%3d",student[i].s3);

printf("成绩四:%3d",student[i].s4);

printf("成绩五:%3d\n",student[i].s5);

}

return 0;

}

JAVA学生信息的输入

正规的写法,创建Student类,要有构造方法,重写toString方法,这个可以改为你需要的格式

public class Student {

private String number;

private String name;

private char sex;

private double[] score=new double[3];

private double ave;

private double sum;

public String getNumber() {

return number;

}

public void setNumber(String number) {

this.number = number;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public char getSex() {

return sex;

}

public void setSex(char sex) {

this.sex = sex;

}

public double[] getScore() {

return score;

}

public void setScore(double[] score) {

this.score = score;

}

public double getAve() {

return ave;

}

public void setAve(double ave) {

this.ave = ave;

}

public double getSum() {

return sum;

}

public void setSum(double sum) {

this.sum = sum;

}

@Override

public String toString() {

return "Student [number=" + number + ", name=" + name + ", sex=" + sex

+ ", score=" + Arrays.toString(score) + ", ave=" + ave

+ ", sum=" + sum + "]";

}

public Student() {

}

public Student(String number, String name, char sex, double[] score,

double ave, double sum) {

super();

this.number = number;

this.name = name;

this.sex = sex;

this.score = score;

this.ave = ave;

this.sum = sum;

}

然后你另外写一个类,里面有input 和 output方法来操作你的这个学生类。

C语言 从键盘输入10个学生信息(学号,姓名,年龄,性别)

#includestdio.h

void main()

{

struct

{

char name[10];

int num;

char sex[2];

int age;

}s[10];

int i;

for(i=0;i10;i++)

{

printf("请依次输入学生的姓名,学号,性别,年龄等信息");

scanf("%s%d%s%d",s[i].name,s[i].num,s[i].sex,s[i].age);

}

for(i=0;i10;i++)

{

printf("姓名:%s\t学号:%d\t性别:%s\t年龄:%d\n",s[i].name,s[i].num,s[i].sex,s[i].age);

}

}

扩展资料:

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。

结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。定义与声明

结构体的定义如下,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。

作用:

1,结构体和其他类型基础数据类型一样,例如int类型,char类型 只不过结构体可以做成你想要的数据类型。以方便日后的使用。

2,在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。

3,结构体在函数中的作用不是简便,其最主要的作用就是封装。

参考资料来源:百度百科-结构体

用C语言编写一个通过键盘或文件输入学生信息,并将学生信息输出到文件和屏幕的程序

#include iostream

#include string.h

#include ctime

#include conio.h

using namespace std;

struct student //定义学生类

{

int num; //学号

char name[8]; //姓名

char classes[20]; //班别

int math,english,computer,sum; //数学,英语,计算机,平均总成绩

};

int s=0; //全局变量

class student1

{

private:

student stu[40]; //结构体变量

char name, classes;

int num;

int math,english,computer,sum;

public:

void input(int, char *, char *, int, int, int);

void output(int);

int check(int stu_num)

{

int m=0;

while(m=s+1)

if(stu_num==stu[m++].num)

{

return 1;

break;

}

if(ms+1)

return 0;

else

return 1;

}

void search(int);

void search1(int);

void deleted(int);

void deleted1(int);

void desc(int);

void desc1(int);

void desc2(int);

};

void student1::input(int stu_num,char *stu_name, char *stu_classes, int stu_math, int stu_english, int stu_computer) //输入模块

{

stu[s].num=stu_num;

strcpy(stu[s].name, stu_name);

strcpy(stu[s].classes, stu_classes);

stu[s].math=stu_math;

stu[s].english=stu_english;

stu[s].computer=stu_computer;

}

void student1::output(int s) //输出模块

{

cout s "\t";

cout stu[s].num "\t";

cout stu[s].name "\t";

cout stu[s].classes "\t";

cout stu[s].math "\t\t";

cout stu[s].english "\t\t";

cout stu[s].computer "\t\n";

}

void student1::search(int s) //查找模块

{

int stu_num,p;

while (s==0)

{

cout "没有记录,请先输入记录!" endl;

break;

}

if (s!=0)

{

cout "请输入你要查找的学号:";

cin stu_num;

while (stu_num100000 || stu_num999999) //判断学号是否正确

{

cin.clear();

rewind(stdin);

cout "你输入的学号不正确,请输入一个六位数的学号" endl;

cin stu_num;

}

while (s!=0) //查找是否有符合条件的记录

{

p=1;

if (stu_num==stu[s].num)

{

cout "学号\t姓名\t班级\t数学成绩\t英语成绩\t计算机成绩\t" endl;

cout stu[s].num "\t";

cout stu[s].name "\t";

cout stu[s].classes "\t";

cout stu[s].math "\t\t";

cout stu[s].english "\t\t";

cout stu[s].computer "\t\n";

getch();

break;

}

else

p=0;

s--;

}

if (p==0)

cout "没有找到你要查找的记录!" endl;

}

getch();

}

void student1::search1(int s) //按姓名查找模块

{

char stu_name[8],p;

while (s==0)

{

cout "没有记录,请先输入记录!" endl;

break;

}

if (s!=0)

{

cout "请输入你要查找的姓名:";

cin stu_name;

while (s!=0) //查找是否有符合条件的记录

{

p=1;

if (strcmp(stu_name, stu[s].name)==0)

{

cout "学号\t姓名\t班级\t数学成绩\t英语成绩\t计算机成绩\t" endl;

cout stu[s].num "\t";

cout stu[s].name "\t";

cout stu[s].classes "\t";

cout stu[s].math "\t\t";

cout stu[s].english "\t\t";

cout stu[s].computer "\t\n";

getch();

break;

}

else

p=0;

s--;

}

if (p==0)

cout "没有找到你要查找的记录!" endl;

}

getch();

}

void student1::deleted(int n) //删除模块

{

int stu_num,p;

char yes;

while (s==0)

{

cout "没有记录,请先输入记录!" endl;

break;

}

if (s!=0)

{

cout "请输入要删除的学号:";

cin stu_num;

while (stu_num100000 || stu_num999999)

{

cin.clear();

rewind(stdin);

cout "你输入的学号不正确,请输入一个六位数的学号" endl;

cout "学号:";

cin stu_num;

}

for (int i=1;i=n;i++)

{

if (stu[i].num!=stu_num)

p=0;

if (stu[i].num==stu_num)

{

cout "学号\t姓名\t班级\t数学成绩\t英语成绩\t计算机成绩\t" endl;

cout stu[i].num "\t";

cout stu[i].name "\t";

cout stu[i].classes "\t";

cout stu[i].math "\t\t";

cout stu[i].english "\t\t";

cout stu[i].computer endl;

cout "你确定要删除此学生记录吗?(y/n)";

cin yes;

if (yes == 'y' || yes == 'Y')

{

for (int j=1; j=n-1; j++) //删除记录

{

stu[j].num=stu[j+1].num;

strcpy(stu[j].name, stu[j+1].name);

strcpy(stu[j].classes, stu[j+1].classes);

stu[j].math=stu[j+1].math;

stu[j].english=stu[j+1].english;

stu[j].computer=stu[j+1].computer;

}

cout "学生记录删除成功" endl;

s=s-1;

p=1;

break;

}

else

{

cout "学生记录删除失败" endl;

p=1;

}

}

}

if (p==0)

cout "没有找到你要查找的记录!" endl;

}

getch();

}

void student1::deleted1(int n) //按姓名删除模块

{

char stu_name[8],p;

char yes;

while (s==0)

{

cout "没有记录,请先输入记录!" endl;

break;

}

if (s!=0)

{

cout "请输入要删除的姓名:";

cin stu_name;

for (int i=1;i=n;i++)

{

if (strcmp(stu[i].name, stu_name)0 || strcmp(stu[i].name, stu_name)0)

p=0;

if (strcmp(stu[i].name, stu_name)==0)

{

cout "学号\t姓名\t班级\t数学成绩\t英语成绩\t计算机成绩\t" endl;

cout stu[i].num "\t";

cout stu[i].name "\t";

cout stu[i].classes "\t";

cout stu[i].math "\t\t";

cout stu[i].english "\t\t";

cout stu[i].computer endl;

cout "你确定要删除此学生记录吗?(y/n)";

cin yes;

if (yes == 'y' || yes == 'Y')

{

for (int j=1; j=n-1; j++) //删除记录

{

stu[j].num=stu[j+1].num;

strcpy(stu[j].name, stu[j+1].name);

strcpy(stu[j].classes, stu[j+1].classes);

stu[j].math=stu[j+1].math;

stu[j].english=stu[j+1].english;

stu[j].computer=stu[j+1].computer;

}

cout "学生记录删除成功" endl;

s=s-1;

p=1;

break;

}

else

{

cout "学生记录删除失败" endl;

p=1;

}

}

}

if (p==0)

cout "没有找到你要查找的记录!" endl;

}

getch();

}

void student1::desc1(int s) //按学号排序

{

int temp;

int sum[40];

while (s==0)

{

cout "没有记录,请先输入记录!" endl;

break;

}

if (s!=0)

{

cout "学号\t姓名\t班级\t数学成绩\t英语成绩\t计算机成绩\t" endl;

for (int k=1;k=s;k++)

sum[k]=stu[k].num;

for (int i=1;i=s;i++) //利用冒泡法对sum[]进行排序

for (int j=1;j=s-i;j++)

if (sum[j]sum[j+1])

{

temp=sum[j];

sum[j]=sum[j+1];

sum[j+1]=temp;

}

for (int x=1;x=s;x++) //输出与sum[]中相同总分所对应的内容

for (int y=1;y=s;y++)

if (sum[x]==stu[y].num)

{

cout stu[y].num "\t";

cout stu[y].name "\t";

cout stu[y].classes "\t";

cout stu[y].math "\t\t";

cout stu[y].english "\t\t";

cout stu[y].computer "\t\t";

cout endl;

}

}

getch();

}

void student1::desc2(int s) //按姓名排序

{

char sum[40][8];

char temp[8];

while (s==0)

{

cout "没有记录,请先输入记录!" endl;

break;

}

if (s!=0)

{

cout "学号\t姓名\t班级\t数学成绩\t英语成绩\t计算机成绩\t" endl;

for (int k=1;k=s;k++)

strcpy(sum[k], stu[k].name);

for (int i=1;i=s;i++) //利用冒泡法对sum[]进行排序

for (int j=1;j=s-i;j++)

if (strcmp(sum[j], sum[j+1])0)

{

strcpy(temp, sum[j]);

strcpy(sum[j], sum[j+1]);

strcpy(sum[j+1], temp);

}

for (int x=1;x=s;x++) //输出与sum[]中相同总分所对应的内容

for (int y=1;y=s;y++)

if (strcmp(sum[x], stu[y].name)==0)

{

cout stu[y].num "\t";

cout stu[y].name "\t";

cout stu[y].classes "\t";

cout stu[y].math "\t\t";

cout stu[y].english "\t\t";

cout stu[y].computer "\t\t";

cout endl;

}

}

getch();

}

void student1::desc(int s) //平均成绩排序模块

{

int temp;

int sum[40];

while (s==0)

{

cout "没有记录,请先输入记录!" endl;

break;

}

if (s!=0)

{

cout "学号\t姓名\t班级\t数学成绩\t英语成绩\t计算机成绩\t平均成绩" endl;

for (int k=1;k=s;k++)

{

sum[k]=(stu[k].math+stu[k].english+stu[k].computer)/3; //平均成绩

stu[k].sum=(stu[k].math+stu[k].english+stu[k].computer)/3;

}

for (int i=1;i=s;i++) //利用冒泡法对sum[]进行排序

for (int j=1;j=s-i;j++)

if (sum[j]sum[j+1])

{

temp=sum[j];

sum[j]=sum[j+1];

sum[j+1]=temp;

}

for (int x=1;x=s;x++) //输出与sum[]中相同总分所对应的内容

for (int y=1;y=s;y++)

if (sum[x]==stu[y].sum)

{

cout stu[y].num "\t";

cout stu[y].name "\t";

cout stu[y].classes "\t";

cout stu[y].math "\t\t";

cout stu[y].english "\t\t";

cout stu[y].computer "\t\t";

cout stu[y].sum endl;

}

}

getch();

}

int main(int argc, char *argv[])

{

student1 st;

char yes,choice;

char *name,*classes;

int math, english, computer, num;

time_t t;

time(t);

while (1)

{

system("cls");

cout "\t--------------------------学生成绩管理系统--------------------------"endl;

cout" yuzhu8912@163.com "endl;

cout"--------------------------------------------------------------------------------\n"

" 1.增加学生成绩记录\n"

" 2.显示学生成绩记录\n"

" 3.查询学生成绩记录——按学号\n"

" 4.查询学生成绩记录——按姓名\n"

" 5.删除学生成绩记录——按学号\n"

" 6.删除学生成绩记录——按姓名\n"

" 7.排序学生成绩记录——按学号\n"

" 8.排序学生成绩记录——按姓名\n"

" 9.排序学生成绩记录——按平均成绩\n"

" 0.退出学生成绩管理系统\n"

"--------------------------------------------------------------------------------\n";

cout"提示:按0-6进行选择您要的服务";

cin choice;

t:

if (choice=='0')

break;

switch(choice)

{

case '1':

{

last:

cout "请依次输入学生的学号,姓名,班级,数学成绩,英语成绩,计算机成绩——学号为6位数字"endl;

name = new char[];

classes =new char[];

cin num name classes math english computer;

while (num10000 || num999999)

{

cin.clear();

rewind(stdin);

cout "学号必须为6位数字,请重新输入学生信息" endl;

cin num name classes math english computer;

}

while (st.check(num)) //调用CHECK模块判断学号是否重复

{

cin.clear();

cout "学号重复,请重输入!" endl;

cout "学号:";

cin num;

}

s=s+1;

st.input(num,name,classes,math,english,computer);

cout "是否要继续输入?(y/n)";

cin yes;

while (yes == 'y' || yes == 'Y')

{

goto last;

}

getch();

};break;

case '2':

{

if (s==0) //判断是否有记录输入

{

cout "没有学生记录,请先输入记录!" endl;

getch();

break;

}

if (s!=0)

{

cout "序号" "\t";

cout "学号" "\t";

cout "姓名" "\t";

cout "班级" "\t";

cout "数学成绩" "\t";

cout "英语成绩" "\t";

cout "计算机成绩" "\t";

for (int i=1;i=s;i++)

st.output(i);

getch();

}

};break;

case '3':st.search(s);break;

case '4':st.search1(s);break;

case '5':st.deleted(s);break;

case '6':st.deleted1(s);break;

case '7':st.desc1(s);break;

case '8':st.desc2(s);break;

case '9':st.desc(s);break;

default:

{

while (choice=='0'||choice'6')

{

cout "错误选项, 请重新选择!" endl;

cin choice;

}

goto t;

}break;

}

}

cout "谢谢您的使用!" endl;

return 0;

}

编个c程序,输入学生信息给txt文件再输出出来

#include stdio.h

#include string.h

#include stdlib.h

int main(void)

{

printf("输入学生的信息,分别是班级,姓名,学号:");

FILE * student = fopen( "student.txt","wb+");

if( student == NULL )

{

printf("文件打开失败!");

system("pause");

return 0;

}

char a[100] ;

gets(a);

fwrite( a,(strlen(a)+1)*sizeof(char),1,student);

char szbuffer[100];

fseek(student,0L,0);

fread( szbuffer,(strlen(a)+1)*sizeof(char),1,student);

printf("写入的student.txt文件的内容为:%s\n",szbuffer);

fclose(student);

system("pause");

return 0;

}

这个题目考察的是fread和fwrite ,本来文本不应该用这两个函数.但是既然用了,要注意的是中间的文件指针,用fread的时候,需要fseek回到起始点,否则会出现乱码,经本人探测证明是对的.

学生信息的输入输出的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于学生信息输入输出编程c语言、学生信息的输入输出的信息别忘了在本站进行查找喔。

二维码

扫一扫关注我们

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件至举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签: #学生信息的输入输出

相关文章

发表评论