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

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

题目:

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

(1)录入如下信息:

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

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

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

(2)录入选课信息

(3)录入学生成绩

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

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

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

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

《JAVA语言与程序设计》

《JAVA程序设计》

《JAVA语言与算法设计》

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

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

任务要求:

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

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

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

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

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

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

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

代码:

#include
#include
#include
#include
#include 
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为 NULLif(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为 NULLif(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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部