该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
// 学生信息管理系统.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;
}