c语言大作业登录看菜单栏,C语言必备项目,自带登陆系统界面的学生信息管理系统!...

***前面的准备工作,所需要用到的数据进行相应的定义和头文件的使用***

#include

#include

#include

#include

#define N 10//定义数据总数为10,为了测试方便我们可以将其设置为3进行测试

enum Sex//枚举性别的两种可能

{

male,female

};

struct Student{

char name[20];

int num;//100-109

char sex[10];

int Math;//100分制

}stu[N] = { { "王一", 100, "male", 100 },

{"孙二",101,"female",56},

{"张三",102,"male",85} }; //罗列的测试数据,在自己使用的过程中可以将其删除掉 之后在界面之中重新输入

void PrintUi(){//登陆界面函数

printf("\t╔══════════════════════════════════════════════════════════════╗\n");

printf("\t║ ║\n");

printf("\t║ ║\n");

printf("\t║ ._______________________. ║\n");

printf("\t║ | _____________________ | ║\n");

printf("\t║ | I I | ║\n");

printf("\t║ | I 教学管理系统 I | ║\n");

printf("\t║ | I I | ║\n");

printf("\t║ | I___________________I | ║\n");

printf("\t║ !_______________________! ║\n");

printf("\t║ ._[__________]_. ║\n");

printf("\t║ .___|_______________|___. ║\n");

printf("\t║ |::: ____ | ║\n");

printf("\t║ | 密码: | ║\n");

printf("\t║ !_____________________! ║\n");

printf("\t║ ║\n");

printf("\t║ ║\n");

printf("\t║ ║\n");

printf("\t║ ║\n");

printf("\t╚══════════════════════════════════════════════════════════════╝\n");

}

这个登陆界面其实是我在编写的过程中突然想到的,记得自己以前编辑过一个专门的登陆函数,所以就将其引用到了这里,将完整的一个登陆函数链接附在后面

int Land(){//登陆函数

printf("请输入您的登陆密码:");

int Psssword;//初始化密码数据

int a = 7777777;//设置的密码

for (int n = 1; n <= 3; n++){

scanf("%d", &Psssword);

if (Psssword==a){

system("cls");

printf("您的密码输入正确!\n");

printf("正在登陆,请稍等…………\n");

Sleep(4000);//登陆延时程序,产生短暂的登陆状态

system("cls");

return 1;//登陆成功则返回1

}

else{

printf("您的密码输入错误,请您重新输入!\n",n);

}

if (n == 3){//登陆次数为3时 机会用尽

printf("您的机会已用尽!\n");

return -1;//机会用尽表示登陆失败,则返回-1

}

}

return 0;

}

void PrintMode(){//系统菜单页面

printf("**************************************\n");

printf("**************************************\n");

printf("****** ********\n");

printf("****** 教 学 系 统 ********\n");

printf("****** ********\n");

printf("****** ********\n");

printf("****** 1. 录 入 信 息 ********\n");

printf("****** 2. 输 出 信 息 ********\n");

printf("****** 3. 查 询 信 息 ********\n");

printf("****** 4. 成 绩 排 名 ********\n");

printf("****** 0. 退 出 系 统 ********\n");

printf("****** ********\n");

printf("****** ********\n");

printf("**************************************\n");

printf("**************************************\n");

}

int Welcome()

{//欢迎函数

PrintUi(1);//打印主界面函数

int i = Land(1);//登陆界面的调用

if (i == 1){//当登陆成功则打开菜单页面

PrintMode(1);//打印菜单界面

return 0;

}

else

{

return -1;

}

}

int Search(int i)//查询函数,为了后面输出特定的信息而进行学号的查找

{

int n;

for (n = 0; n < N; n++){

if (i == stu[n].num){//如果所输入的学号和系统内的学号相等,则返回此位的序号

return n;

}

}

return -1;//如果未找到,则返回-1

}

void InPut()

{//输入函数

int i;

printf("提示:姓名 学号(100-109) 性别(male,female) 数学成绩(100分制)\n");

printf("请输入全部的学生信息:\n");

for (i = 0; i < N; i++){

scanf("%s%d%s%f", stu[i].name, &stu[i].num, stu[i].sex, &stu[i].Math);

}

}

void SpecialPut(){

int i,c;

printf("请输入您要查找的学号(100-109):");

while (1){

scanf("%d", &i);

c = Search(i);//调用查找函数来进行学号的查找

if ( c== -1){//若不属于系统中的学号,则返回-1,表示输入有误

printf("您的输入有误!\n");

continue;

}

printf("姓名:%s\n学号:%d\n性别:%s\n数学:%d\n",stu[c].name, stu[c].num, stu[c].sex, stu[c].Math);

break;

}

}

void OutPut(){

int i;

printf("----------------------------------------------\n");

printf("|姓名: |学号: |性别: |数学: |\n");

for (i = 0; i < N; i++){

printf("|%s |%d |%s |%d |\n", stu[i].name, stu[i].num, stu[i].sex,stu[i].Math);

}

printf("----------------------------------------------\n");

}

void Rand(){//在排序的这个函数之中,我们也可以增添英语和语文成绩,其方式是一样的

int i, j, num,math;//设置转换的中介量

char name[20],sex[10];

for (i = 0; i < N - 1; i++){

for (j = i+1; j < N; j++){

if (stu[j].Math>stu[i].Math){//以冒泡法来进行排序

math = stu[j].Math;//将数学成绩进行调换

stu[j].Math = stu[i].Math;

stu[i].Math = math;

strcpy(name, stu[j].name);//对于字符串不能够进行直接转换,因为指针所指向的只是字符串的首地址

strcpy(stu[j].name, stu[i].name);//因此使用strcpy函数来进行字符串的复制

strcpy(stu[i].name, name);

num = stu[j].num;//和成绩类似

stu[j].num = stu[i].num;

stu[i].num = num;

strcpy(sex , stu[j].sex);//性别和名字类似

strcpy(stu[j].sex, stu[i].sex);

strcpy(stu[i].sex, sex);

}

}

}

printf("成绩的排名为:\n");

OutPut();

}

int main(){

int c = Welcome(1);

if (c == 0)

{

int choice;

printf("请输入您要进行的操作序号:");

scanf("%d", &choice);

switch (choice){

case 1: InPut();//信息输入

break;

case 2: OutPut();//信息全部输入

break;

case 3: SpecialPut();//按学号查找并输出此学生的信息

break;

case 4: Rand();//科目成绩排名

break;

case 0://退出系统

system("cls");

printf("您选择退出系统!");

break;

}

}

system("pause");

return 0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值