1 学生信息管理c语言作业,【求助】期末作业学生信息管理系统查询显示乱码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

// 学生信息管理系统.cpp: 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include

#include

#include

#include

using namespace std;

void menu();

void queryall();

void queryid();

void queryname();

class student

{

char name[20];

int age;

char sex[2];

int number;

float cn, math, en;

float all = cn + math + en;

public:

char n[20];

int a;

char s[2];

int nu;

float sc, sm, se;

void setname1() { cout << "请输入该学生的姓名:" << endl; cin >> n; }

void setname2() { strcpy_s(name, strlen(n) + 1, n); }//vs准备弃用strcpy的,安全性较低,所以微软提供了strcpy_s来代替

char getname() { return name[20]; }

void setage1() { cout << "请输入该学生的年龄:"; cin >> a; }

void setage2() { age = a; }

int getage() { return age; }

void setsex1() { cout << "请输入该学生的性别(f/m):" << endl; cin >> s; }

void setsex2() { strcpy_s(sex, strlen(s) + 1, s); }

char getsex() { return sex[2]; }

void setnumber1() { cout << "请输入该学生的学号:"; cin >> nu; }

void setnumber2() { number = nu; }

int getnumber() { return number; }

void setcn1() { cout << "请输入该学生的语文成绩:" << endl; cin >> sc; }

void setcn2() { cn = sc; }

float getcn() { return cn; }

void setmath1() { cout << "请输入该学生的数学成绩:" << endl; cin >> sm; }

void setmath2() { math = sm; }

float getmath() { return math; }

void seten1() { cout << "请输入该学生的英语成绩:" << endl; cin >> en; }

void seten2() { en = se; }

float geten() { return en; }

float getall() { return all; }

};

void add()

{

int i=0;

system("cls");

student s;

s.setname1();

s.setname2();

s.setage1();

s.setage2();

s.setsex1();

s.setsex2();

s.setnumber1();

s.setnumber2();

s.setcn1();

s.setcn2();

s.setmath1();

s.setmath2();

s.seten1();

s.seten2();

fstream file("student.dat", ios::app | ios::binary);

if (!file)

{

cerr << "open error!" << endl; abort();

}

file.write((char *)&s, sizeof(s));

file.close();

cout << "\n*****输入0返回主菜单*****" << endl;

cin >> i;

if (i == 0)

{

system("CLS");

getchar();

menu();

}

};

void queryall()

{

system("cls");

int i ;

student s;

fstream file("student.dat", ios::in | ios::binary);

while (file.peek() != EOF)

{

file.read((char *)&s, sizeof(s));

cout << "学生名字为:" << s.getname() << endl;

cout << "学生年龄为:" << s.getage() << endl;

cout << "学生性别为:" << s.getsex() << endl;

cout << "学生学号为:" << s.getnumber() << endl;

cout << "学生语文成绩为:" << s.getcn() << endl;

cout << "学生数学成绩为:" << s.getmath() << endl;

cout << "学生英语成绩为:" << s.geten() << endl;

cout << "学生总成绩为:" << s.getall() << endl;

}

cout << "\n*****输入0返回主菜单*****" << endl;

cin >> i;

if (i == 0)

{

system("CLS");

getchar();

menu();

}

}

void query()

{

system("cls");

cout << "***********查询菜单*************" << endl;

cout << "*******1、查询所有学生**********" << endl;

cout << "*******2、按照学号查询**********" << endl;

cout << "*******3、按照姓名查询**********" << endl;

cout << "*******0、返回主菜单************" << endl;

getchar();

switch (getchar())

{

case '1': queryall(); system("CLS"); break;

//case '2': queryid(); break;

//case '3': queryname(); break;

default: system("CLS");

getchar();

menu();

}

};

void change()

{

system("cls");

cout << "尚未完成" << endl;

};

void del()

{

system("cls");

cout << "尚未完成" << endl;

};

void menu()

{

cout << "********* 欢迎进入学生成绩管理系统 *************\n" << endl;

cout << " ********* 1.录入学生信息 ********* \n" << endl;

cout << " *** ***\n" << endl;

cout << " ********* 2.查询学生信息 ********* \n" << endl;

cout << " *** ***\n" << endl;

cout << " ********* 3.修改学生信息 ********* \n" << endl;

cout << " *** ***\n" << endl;

cout << " ********* 4.删除学生信息 ********* \n" << endl;

cout << " *** ***\n" << endl;

cout << " ********* 0.退出系统 *********\n" << endl;

cout << " 请输入您的选择: " << endl;

switch (getchar())

{

case '1':add(); break;

case '2': query(); break;

case '3': change(); break;

case '4': del(); break;

default: exit(0);

}

}

int main()

{

menu();

return 0;

}

e9a94263d713f13bb8a89f201768959f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值