⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 这是一个有关考试登陆系统的程序
💻 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 + -