SCAU课程课设教务信息管理系统

SCAU课程课设教务信息管理系统

题目:

设计一个教务信息管理系统,该程序具有以下功能:

(1)录入如下信息:

学生基本信息:如学号、姓名、性别、年龄、宿舍号码、电话号码等。

课程基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。如果重修,需要考虑重

修学期、重修成绩,并且要考虑多次重修的情况。

(2)录入选课信息

(3)录入学生成绩

(3)按班统计学生选课情况及考试成绩。

(4)按课程统计学生名单及考试成绩。

(5)统计并输出每个同学已修学分及不及级课程。

(6)实现单词组合查询课程名,例如输入“JAVA+设计”查询,可以查到如下课程

《JAVA语言与程序设计》

《JAVA程序设计》

《JAVA语言与算法设计》

注:因为上面课程名中均包含“设计”和“教程”两个单词

同理,输入“JATA+算法+设计”查询,则只能查到《JAVA语言与算法设计》

任务要求:

(1) 按照分析、设计、编码、调试和测试过程完成应用程序;

(2)学习并使用流程图等工具,并在撰写报告中使用;

(3)程序的各项功能在程序运行时,以菜单方式选择并执行;

(4)要求用户输入数据时,要给出清晰、明确的提示,包括:输入数据的内容、格式及结束方式等

(5)所有的信息存储在文件中,并实现文件读写操作。

(6)记录添加删除操作时,先从文件载入数据,用链表存放,批量操作完后,数据从链表写入文件。

(7)[加分选做]根据学生的选课,能够生成一个学生的课表(形式与我校教务处系统中的课表相似),并将时间有冲突的课程标记为红色

代码:

#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<string.h>
#include <windows.h>
using namespace std;
/*
************************************************************************
管理员账号:admin#教师账号:课程编号(1,2,3...)#教师密码及管理员密码:666
************************************************************************
课程编号     课程名称
    01       大学语文
    02       高等数学
    03       大学英语
    04       大学物理
    05       数据结构
    06       大学体育
    07       物理实验
    08       程序设计
    09       近代史纲
    10       军事理论
    11       JAVA课程
    12       计算智能
    13       算法入门
************************************************************************
*/
#define MANAGER_NAME "admin"
#define MANAGER_PASSWORD "666"

typedef struct Course
{
   
    char course_id[5];//课程编号
    char course_name[50];//课程名称
    int test_score;//考试分数
    int usual_score;//平时分数
    int final_score;//综合分数
    int school_score;//学分
    int term;//学期
    int restudy_score;//分数
    int times;//次数
} COU;
typedef struct Student
{
   
    char id[50];//学号
    char name[50];//姓名
    char sex[50];//性别
    char age[10];//年龄
    char schoolhouse_id[50];//宿舍号
    char number[50];//电话号
    int course_number;//课程数量
    COU course[10];
    struct Student *pNext;
} STU,*PSTU;

size_t iCount = 0;//学生总数
PSTU pHead = NULL;	//信息学生头结点
PSTU pNew = NULL;	//待添加学生信息
char UserName[10];
char UserWord[10];
char Class[13][100]= {
   "大学语文","高等数学","大学英语","大学物理","数据结构","大学体育","物理实验","程序设计",
                      "近代史纲","军事理论","JAVA课程","计算智能","算法入门"
                     };//课程初始化
char name[13][50];

//函数声明
void Init();
void MainMenu();
void ReadData();
void SaveData();
void Quit();
void Lessons_Information();
void Show_Information();
void Add_Information();
void Delete_Information();
void Search_Information();
int Classify_Number(char number[]);
void Class_List(PSTU pHead);
void Quit2();
void SchoolMenu();
void Add_Score(PSTU pHead);
void Course_List(PSTU pHead);
void StudentMenu();
void TeacherMenu();
void Teacher_option();
void Student_option();
void SchoolMenu();
void Encryption(char a[]);
void School_option();
void Add_Course(PSTU pHead);
void Change_Information();
int isLogin1();
int isLogin2();
int isLogin3();
void Find_Class();
void Menu();
void Gather_Class();
int COLOR_PRINT(const char* s, int color);
void Help();
void head();

void head()
{
   
    cout<<"\t\t\t\t\t╭  ╮                   ╭ ```╮  "<<endl;
    cout<<"\t\t\t\t\t(@^o^@) 教务信息管理系统 (⌒:⌒)"<<endl;
    cout<<"\t\t\t\t\t(~):(~)                  (~)v(~) "<<endl;
    cout<<endl;
}

void Help()
{
   
    cout<<endl;
    head();
    cout<< "\t\t\t\t系统简介:"<<endl;
    cout<< "\t\t\t\t本程序为教务信息管理系统,通过输入学生地相关信息"<<endl;
    cout<<"\t\t\t\t对数据进行处理和统计,并按需要输入统计处理后地数据到文件中"<<endl;
    cout<<"\t\t\t\t从而实现可写可读的功能。"<<endl;
    cout<<endl;
    cout<< "\t\t\t\t开发人员:郑少"<<endl;
    cout<<endl;
}
int isLogin1()//管理员登录
{
   
    cout<<" \t\t\t\t请输入您的账号:"<<endl;
    cout<<" \t\t\t\t";
    cin>>UserName;
    cout<<" \t\t\t\t密码:"<<endl;
    cout<<" \t\t\t\t";
    Encryption(UserWord);
    cout<<endl;
    if(strcmp(UserName, MANAGER_NAME) == 0 && strcmp(UserWord, MANAGER_PASSWORD) == 0)
        return 1;
    else
    {
   
        cout<<"\t\t\t\t\t!!账号或密码输入错误,请重新登录!!"<<endl;
        Quit();
    }
}

int isLogin2()//教师登录
{
   
    char Name0[50],Name1[50];
    int i;
    cout<<" \t\t\t\t请输入您的账号:"<<endl;
    cout<<" \t\t\t\t";
    cin>>Name0;
    cout<<" \t\t\t\t密码:"<<endl;
    cout<<" \t\t\t\t";
    Encryption(Name1);
    cout<<endl;
    PSTU pCurrent = pHead->pNext;	//指向第一个节点 如果链表为 NULL pCurrent为 NULL
    if(pCurrent==NULL)
    {
   
        cout<<"\t\t\t\t\t!!系统中未存入任何教师信息!!"<<endl;
        Quit();
    }
    while (pCurrent != NULL)	//遍历所有学生
    {
   
        for(i=0; i<pCurrent->course_number; i++)
        {
   
            if (strcmp(pCurrent->course[i].course_id,Name0 ) == 0)
            {
   
                if(strcmp(Name1,MANAGER_PASSWORD)==0)return 1;
                else
                {
   
                    cout<<"\t\t\t\t\t!!账号或密码输入错误,请重新登录!!"<<endl;
                    Quit();
                }
            }
        }
        pCurrent=pCurrent->pNext;//下一个学生
    }
    pCurrent = NULL;
    cout<<"\t\t\t\t\t!!该账号不存在,请重新登录!!"<<endl;
    Quit();
}

int isLogin3()//学生登录
{
   
    char Name0[50],Name1[50];
    cout<<" \t\t\t\t请输入您的账号:"<<endl;
    cout<<" \t\t\t\t";
    cin>>Name0;
    cout<<" \t\t\t\t密码:"<<endl;
    cout<<" \t\t\t\t";
    Encryption(Name1);
    cout<<endl;
    PSTU pCurrent = pHead->pNext;	//指向第一个节点 如果链表为 NULL pCurrent为 NULL
    if(pCurrent==NULL)
    {
   
        cout<<"\t\t\t\t\t!!系统中未存入任何学生信息!!"<<endl;
        Quit();
    }
    else if(strcmp(Name0,Name1)!=0)
    {
   
        cout<<"\t\t\t\t\t!!账号或密码输入错误,请重新登录!!"<<endl;
        Quit();
    }
    else
    {
   
        while (pCurrent != NULL)	//遍历所有学生
        {
   
            if (strcmp(pCurrent->id,Name0 ) == 0)return 1;
            pCurrent=pCurrent->pNext;//下一个学生
        }
        pCurrent = NULL;
        cout<<"\t\t\t\t\t!!该账号不存在,请重新登录!!"<<endl;
        Quit();
    }
}

void Encryption(char a[])//密码加密
{
   
    int i=0;
    while((a[i]=getch())!='\r')
    {
   
        if(a[i]=='\b')//此处'\b'指退格键
        {
   
            printf("\b \b");
            i--;
        }
        else
        {
   
            printf("*");
            i++;
        }
    }
    a[i]='\0';//’\0’是判定字符数组结束的标识,表示这串字符到结尾了('\0'是占有位置的的)
}

int main()
{
   
    pHead = (PSTU)malloc(sizeof(STU));
    pHead->pNext = NULL;
    ReadData();
    Menu();
    MainMenu();
}

void School_option()//管理员的选项
{
   
    int opt;
    while(1)
    {
   
        Menu();
        SchoolMenu();
        cout<<" \t\t\t\t请输入数字:";
        cin >> opt;
        switch(opt)
        {
   
        case 1:
            system("cls");
            Menu();
            Add_Information();
            Quit2();
            break;
        case 2
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值