📄 1[anank].txt
字号:
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std ;
class Student
{
public:
Student() ;
public:
char No[10] ;
char Name[20] ;
char Sex[3] ;
int Math ;
int English ;
int Program ;
int PE ;
} ;
Student::Student() /* Constructor Of Student */
{
for (int i=0; i<9; i++)
No[i] = 'N' ;
for (int i=0; i<19; i++)
Name[i] = 'N' ;
for (int i=0; i<2; i++)
Sex[i] = 'N' ;
Math = 0 ;
English = 0 ;
Program = 0 ;
PE = 0 ;
}
Student student[200] ; /* 建立200个学生信息 */
void Init() ; /* 加载文件信息 */
void Main_Print() ; /* 主界面打印函数 */
void Search() ; /* 查询学生信息函数 */
void Read_All() ; /* 函数-读取全部信息 */
void Read_Math() ; /* 函数-读取数学文件 */
void Read_English() ; /* 函数-读取英语文件 */
void Read_Program() ; /* 函数-读取程序文件 */
void Read_PE() ; /* 函数-读取体育文件 */
void Insert() ; /* 函数--插入学生信息 */
int main()
{
Init() ;
Main_Print() ;
return 0 ;
}
void Init()
{
FILE* infile = fopen( "Stu.DAT", "r" ) ;
if ( infile==NULL )
{
cout << "原始数据文件不存在,现在将要新建..." << endl << endl ;
FILE* outfile = fopen( "Stu.DAT", "w" ) ;
if ( outfile != NULL )
{
ofstream outfile1 ;
outfile1.open( "Stu.DAT", ios::out ) ;
for (int i=0; i<200; i++)
{
outfile1<< student[i].No << endl
<< student[i].Name << endl
<< student[i].Sex << endl
<< student[i].Math << endl
<< student[i].English << endl
<< student[i].Program << endl
<< student[i].PE << endl ;
}
cout << "原始数据文件新建成功..." << endl << endl ;
}
}
ifstream InFile ;
InFile.open( "Stu.DAT", ios::in ) ;
if ( InFile == NULL )
{
cout << "打开数据文件时出现异常,现在要退出程序..." << endl << endl ;
exit(1) ;
}
else
{
for ( int i=0; i<200; i++ )
{
InFile >> student[i].No ;
InFile >> student[i].Name ;
InFile >> student[i].Sex ;
InFile >> student[i].Math ;
InFile >> student[i].English ;
InFile >> student[i].Program ;
InFile >> student[i].PE ;
}
cout << "加载数据成功..." << endl << endl ;
}
}
void Main_Print()
{
int Select = 0 ;
cout << "----------------学生学籍管理程序----------------" << endl << endl
<< " 1 : 查询学生信息 " << endl << endl
<< " 2 : 读取全部学生信息 " << endl << endl
<< " 3 : 打印数学成绩文件 " << endl << endl
<< " 4 : 打印英语成绩文件 " << endl << endl
<< " 5 : 打印程序成绩文件 " << endl << endl
<< " 6 : 打印体育成绩文件 " << endl << endl
<< " 7 : 增添学生信息 " ;
cin >> Select ;
cout << endl ;
switch (Select)
{
case 1: Search() ; break ;
case 2: Read_All() ; break ;
case 3: Read_Math() ; break ;
case 4: Read_English() ; break ;
case 5: Read_Program() ; break ;
case 6: Read_PE() ; break ;
case 7: Insert() ; break ;
default:
cout << "您的选择不正确,请重新选择!" << endl << endl ;
Main_Print() ;
break ;
}
}
void Search_By_No()
{
int flag = 0 ;
char str[10] = "\0" ;
cout << "-----------------------学号查询---------------------------" << endl << endl ;
cout << "请输入要查询的学号 :" ;
cin >> str ;
cout << endl ;
for ( int i=0; i<200; i++ )
{
if ( strcmp(student[i].No, str) == 0 )
{
flag = 1 ;
cout << "找到该学生信息,信息如下:" << endl
<< "-----------------------------" << endl
<< " 学号 :" << student[i].No << endl
<< " 姓名 :" << student[i].Name << endl
<< " 性别 :" << student[i].Sex << endl
<< " 数学 :" << student[i].Math << endl
<< " 英语 :" << student[i].English << endl
<< " 程序 :" << student[i].Program << endl
<< " 体育 :" << student[i].PE << endl
<< "-----------------------------" << endl ;
}
if ( flag==0 )
if ( i==199 )
if ( strcmp(student[199].No, str) != 0 )
cout << "无此学生信息..." << endl << endl ;
}
Search() ;
}
void Search_By_Name()
{
int flag = 0 ;
char str[20] = "\0" ;
cout << "-----------------------姓名查询---------------------------" << endl << endl ;
cout << "请输入要查询的姓名 :" ;
cin >> str ;
cout << endl ;
for ( int i=0; i<200; i++ )
{
if ( strcmp(student[i].Name, str) == 0 )
{
flag = 1 ;
cout << "找到该学生信息,信息如下:" << endl
<< "-----------------------------" << endl
<< " 学号 :" << student[i].No << endl
<< " 姓名 :" << student[i].Name << endl
<< " 性别 :" << student[i].Sex << endl
<< " 数学 :" << student[i].Math << endl
<< " 英语 :" << student[i].English << endl
<< " 程序 :" << student[i].Program << endl
<< " 体育 :" << student[i].PE << endl
<< "-----------------------------" << endl ;
}
if ( flag==0 )
if ( i==199 )
if ( strcmp(student[199].No, str) != 0 )
cout << "无此学生信息..." << endl << endl ;
}
Search() ;
}
void Search()
{
int Select = 0 ;
cout << "-----------------------学生查询------------------------" << endl << endl ;
cout << "请选择要查询的依据 :" << endl << endl
<< "<1> 根据学号查询" << endl << endl
<< "<2> 根据姓名查询 <退出请按0> " ;
cin >> Select ;
cout << endl ;
switch (Select)
{
case 0: Main_Print() ; break ;
case 1: Search_By_No() ; break ;
case 2: Search_By_Name() ; break ;
default:
cout << "您的输入不正确,请重新输入!" << endl << endl ;
Search() ;
break ;
}
Main_Print() ;
}
void Read_All()
{
cout << "-----------------------全部信息------------------------" << endl << endl ;
cout << setw(10) << setiosflags(ios::left) << "学号"
<< setw(20) << setiosflags(ios::left) << "姓名"
<< setw(10) << setiosflags(ios::left) << "性别"
<< setw(8) << setiosflags(ios::left) << "数学"
<< setw(8) << setiosflags(ios::left) << "英语"
<< setw(8) << setiosflags(ios::left) << "程序"
<< setw(8) << setiosflags(ios::left) << "体育"
<< setw(8) << setiosflags(ios::left) << "平均" << endl ;
for ( int i=0; i<200; i++ )
{
if ( strcmp(student[i].No, "NNNNNNNNN") != 0 )
cout<< setw(10) << setiosflags(ios::left) << student[i].No
<< setw(20) << setiosflags(ios::left) << student[i].Name
<< setw(10) << setiosflags(ios::left) << student[i].Sex
<< setw(8) << setiosflags(ios::left) << student[i].Math
<< setw(8) << setiosflags(ios::left) << student[i].English
<< setw(8) << setiosflags(ios::left) << student[i].Program
<< setw(8) << setiosflags(ios::left) << student[i].PE
<< setw(8) << setiosflags(ios::left) << (student[i].Math+student[i].English+student[i].Program+student[i].PE)/4 ;
else
break ;
}
cout << "------------------------------------------------------" << endl << endl ;
Main_Print() ;
}
void Read_Math()
{
cout << "-----------------------数学打印------------------------" << endl << endl ;
ofstream outfile ;
outfile.open( "Math.txt", ios::out ) ;
if ( outfile==NULL )
{
cout << "I/O异常,系统将退出程序..." << endl << endl ;
exit(1) ;
}
else
{
outfile << setw(10) << setiosflags(ios::left) << "学号"
<< setw(20) << setiosflags(ios::left) << "姓名"
<< setw(10) << setiosflags(ios::left) << "性别"
<< setw(10) << setiosflags(ios::left) << "数学" << endl ;
for ( int i=0; i<200; i++ )
{
if ( strcmp(student[i].No, "NNNNNNNNN") != 0 )
{
outfile << setw(10) << setiosflags(ios::left) << student[i].No
<< setw(20) << setiosflags(ios::left) << student[i].Name
<< setw(10) << setiosflags(ios::left) << student[i].Sex
<< setw(10) << setiosflags(ios::left) << student[i].Math << endl ;
}
else
break ;
}
cout << "打印结束..." << endl << endl
<< "--------------------------------------------------" << endl << endl ;
}
Main_Print() ;
}
void Read_English()
{
cout << "-----------------------英语打印------------------------" << endl << endl ;
ofstream outfile ;
outfile.open( "English.txt", ios::out ) ;
if ( outfile==NULL )
{
cout << "I/O异常,系统将退出程序..." << endl << endl ;
exit(1) ;
}
else
{
outfile << setw(10) << setiosflags(ios::left) << "学号"
<< setw(20) << setiosflags(ios::left) << "姓名"
<< setw(10) << setiosflags(ios::left) << "性别"
<< setw(10) << setiosflags(ios::left) << "英语" << endl ;
for ( int i=0; i<200; i++ )
{
if ( strcmp(student[i].No, "NNNNNNNNN") != 0 )
{
outfile << setw(10) << setiosflags(ios::left) << student[i].No
<< setw(20) << setiosflags(ios::left) << student[i].Name
<< setw(10) << setiosflags(ios::left) << student[i].Sex
<< setw(10) << setiosflags(ios::left) << student[i].English << endl ;
}
else
break ;
}
cout << "打印结束..." << endl << endl
<< "--------------------------------------------------" << endl << endl ;
}
Main_Print() ;
}
void Read_Program()
{
cout << "-----------------------程序打印------------------------" << endl << endl ;
ofstream outfile ;
outfile.open( "Program.txt", ios::out ) ;
if ( outfile==NULL )
{
cout << "I/O异常,系统将退出程序..." << endl << endl ;
exit(1) ;
}
else
{
outfile << setw(10) << setiosflags(ios::left) << "学号"
<< setw(20) << setiosflags(ios::left) << "姓名"
<< setw(10) << setiosflags(ios::left) << "性别"
<< setw(10) << setiosflags(ios::left) << "程序" << endl ;
for ( int i=0; i<200; i++ )
{
if ( strcmp(student[i].No, "NNNNNNNNN") != 0 )
{
outfile << setw(10) << setiosflags(ios::left) << student[i].No
<< setw(20) << setiosflags(ios::left) << student[i].Name
<< setw(10) << setiosflags(ios::left) << student[i].Sex
<< setw(10) << setiosflags(ios::left) << student[i].Program << endl ;
}
else
break ;
}
cout << "打印结束..." << endl << endl
<< "-------------------------------------------------" << endl << endl ;
}
Main_Print() ;
}
void Read_PE()
{
cout << "-----------------------体育打印------------------------" << endl << endl ;
ofstream outfile ;
outfile.open( "PE.txt", ios::out ) ;
if ( outfile==NULL )
{
cout << "I/O异常,系统将退出程序..." << endl << endl ;
exit(1) ;
}
else
{
outfile << setw(10) << setiosflags(ios::left) << "学号"
<< setw(20) << setiosflags(ios::left) << "姓名"
<< setw(10) << setiosflags(ios::left) << "性别"
<< setw(10) << setiosflags(ios::left) << "体育" << endl ;
for ( int i=0; i<200; i++ )
{
if ( strcmp(student[i].No, "NNNNNNNNN") != 0 )
{
outfile << setw(10) << setiosflags(ios::left) << student[i].No
<< setw(20) << setiosflags(ios::left) << student[i].Name
<< setw(10) << setiosflags(ios::left) << student[i].Sex
<< setw(10) << setiosflags(ios::left) << student[i].PE << endl ;
}
else
break ;
}
cout << "打印结束..." << endl << endl ;
cout << "-------------------------------------------------" << endl << endl ;
}
Main_Print() ;
}
void Insert()
{
int i = 0 ;
cout << "-------------插入学生信息------------" << endl << endl ;
while (true)
{
for ( i=0; i<200; i++)
if ( strcmp(student[i].No, "NNNNNNNNN") == 0 )
break ;
cout << "学号 :" ; cin >> student[i].No ;
cout << "姓名 :" ; cin >> student[i].Name ;
cout << "性别 :" ; cin >> student[i].Sex ;
cout << "数学 :" ; cin >> student[i].Math ;
cout << "英语 :" ; cin >> student[i].English ;
cout << "程序 :" ; cin >> student[i].Program ;
cout << "体育 :" ; cin >> student[i].PE ;
/**********更新数据到磁盘***********/
ofstream outfile1 ;
outfile1.open( "Stu.DAT", ios::out ) ;
for (int i=0; i<200; i++)
{
outfile1<< student[i].No << endl
<< student[i].Name << endl
<< student[i].Sex << endl
<< student[i].Math << endl
<< student[i].English << endl
<< student[i].Program << endl
<< student[i].PE << endl ;
}
/**********更新数据到磁盘***********/
cout << endl ;
cout << "一条记录已经输入完成,是否还想继续插入记录?(Y/N) " ;
char c = 0 ;
cin >> c ;
cout << endl ;
if (c=='N'||c=='n')
break ;
}
Main_Print() ;
} /* Insert */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -