📄 test.cpp
字号:
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "time.h"
#include "string.h"
#include "iostream.h"
#include "ctype.h"
const short Persons=10;//学生总数
const char loginstr[6]={"in118"}; //约定登录号
//各学生学号
char StudentNo[Persons][6]={"8c001","8c002",
"8c003","8c004",
"8c005",
"8c006","8c007",
"8c008","8c009",
"8c010"
};
//三门功课的成绩
short Lesson1[Persons]={87,96,70,97,98,77,86,82,91,90};
short Lesson2[Persons]={54,68,80,92,79,58,95,99,82,73};
short Lesson3[Persons]={71,82,98,96,57,77,90,79,68,53};
bool login(); // 登录
void mainmenu(); //菜单操作
int main(int argc, char* argv[])
{
if(!login())
{
cout<<"非法用户,退出!"<<endl;
return 1;
}
mainmenu();
return 0;
}
bool login()
{
register short logintimes=0;
char no[6];
while(logintimes<3) //三次限定
{
cout<<"\n\t\t上机登录"<<endl;
cout<<"-----------------------------------------"<<endl;
cout<<"\t请输入登录密码:"<<endl;
memset(no,0,6);
for(int i=0;i<5;i++)
while(!isdigit(no[i]=getch()) && !isalpha(no[i]));
// 读取登录号 -- 只接收数字和字母
/*for(i=0;i<Persons;i++)
{
if(strcmp(no,StudentNo[i])==0)
return true;
}*/ //学号作为登录号
//登录号为约定串
if(strcmp(no,loginstr)==0)
return true;
logintimes++;
}
return false;
}
char displaymenu()
{
char chosen;
cout<<"\n\t\t功能选择:"<<endl;
cout<<"-----------------------------------------"<<endl;
cout<<"\t1:..........显示学生成绩单"<<endl;
cout<<"\t2:..........学生成绩查询"<<endl;
cout<<"\t3:..........显示平均分大于80分的成绩单"<<endl;
cout<<"\t4:..........显示有一门成绩不及格的学生成绩"<<endl;
cout<<"\t5: ..........退出"<<endl;
chosen=getche();
return chosen;
}
bool realyexit()
{
char ch;
cout<<"\n真的退出吗(Y/N)?"<<endl;
ch=getche();
if(toupper(ch)=='Y')
return true;
else
return false;
}
void displayallperson()
{
cout<<"\n\t全部学生成绩"<<endl;
cout<<" 学号\t课程1\t课程2\t课程3"<<endl;
cout<<"---------------------------------------"<<endl;
for(int i=0;i<Persons;i++)
{
cout<<StudentNo[i];
cout<<"\t"<<Lesson1[i];
cout<<"\t"<<Lesson2[i];
cout<<"\t"<<Lesson3[i]<<endl;
}
}
void querydata()
{
char personno[6];
cout<<"\n请输入要查询的学生学号:"<<endl;
cin>>personno;
for(int i=0;i<Persons;i++)
{
if(strcmp(personno,StudentNo[i])==0)
{
cout<<"\n该学生的成绩为:"<<endl;
cout<<" 学号\t课程1\t课程2\t课程3"<<endl;
cout<<"-======================================"<<endl;
cout<<StudentNo[i];
cout<<"\t"<<Lesson1[i];
cout<<"\t"<<Lesson2[i];
cout<<"\t"<<Lesson3[i]<<endl;
return;
}
}
cout<<"对不起,您输入的学号不存在!"<<endl;
}
void displays80g()
{
cout<<"\n\t平均分大于80的学生的成绩单"<<endl;
cout<<" 学号\t课程1\t课程2\t课程3"<<endl;
cout<<"---------------------------------------"<<endl;
for(int i=0;i<Persons;i++)
{
if((Lesson1[i]+Lesson2[i]+Lesson3[i])/3.0>80.0)
{
cout<<StudentNo[i];
cout<<"\t"<<Lesson1[i];
cout<<"\t"<<Lesson2[i];
cout<<"\t"<<Lesson3[i]<<endl;
}
}
}
void display60s()
{
cout<<"\n\t有一门不及格的学生的成绩单"<<endl;
cout<<" 学号\t课程1\t课程2\t课程3"<<endl;
cout<<"---------------------------------------"<<endl;
for(int i=0;i<Persons;i++)
{
if((Lesson1[i]<60 && Lesson2[i]>=60 && Lesson3[i]>=60) ||
(Lesson1[i]>=60 && Lesson2[i]<60 && Lesson3[i]>=60) ||
(Lesson1[i]>=60 && Lesson2[i]>=60 && Lesson3[i]<60)) // 只有一门不及格
{
cout<<StudentNo[i];
cout<<"\t"<<Lesson1[i];
cout<<"\t"<<Lesson2[i];
cout<<"\t"<<Lesson3[i]<<endl;
}
}
}
void mainmenu()
{
char chosen ;
while(1)
{
chosen=displaymenu();//接收菜单输入
if(chosen<0x31 || chosen>0x35) // 1....5,用十六进制表示字符1~5
continue;//针对while而言,继续本次循环
switch(chosen)
{
case '1':
displayallperson();
break;
case '2':
querydata();
break;
case '3':
displays80g();
break;
case '4':
display60s();
break;
case '5':
if(realyexit())
return;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -