1.题目描写叙述

学籍管理系统:

依据信息管理系统的业务流程、要求以及所要实现的目标,完毕下面功能:

(1)建立学生档案的管理和维护。实现计算机自己主动化管理体制。

(2)建立学生成绩管理机制,在计算机的支持下高速的完毕学生成绩的查询和改动。

(3)建立课程设置管理,在计算机的支持下实现课程的加入�、改动。

(4)建立班级设置管理,在计算机的支持下实现班级的加入�、删除和改动。

(5)实现系统的权限设置管理,保证系统安全性。(登录password输错3次不同意登录)

(6)使用姓名学号查找学生信息。

(7)将学生信息保存在文件里。

2.分析思路

使用类来储存学生信息,实现学生信息的管理改动。

3. 输入:

1,password的设置输入及登录输入。

2,功能选择的输入。

3,学生信息输入

void sr()                   //////初始化输入学生信息
{
cout<<"请输入姓名";
cin>>xm;
cout<<"请输入入学日期中间用空格隔开";
time.shuru();
ll=shurupanduan(time.year,time.month,time.day);
if(ll==0)
time.shuru();
cout<<"请输入班级";
cin>>bj;
cout<<"请输入课程(5门)中间用空格隔开";
for(int i=0;i<5;i++)
{
cin>>kc[i];
for(intj=0;j<i;j++)
{
while(kc[i]==kc[j])
{
cout<<"您已经选过该课程请又一次输入"<<endl;
cin>>kc[i];
}
}
}

4.输出:

1,学生信息的输出。

2,学生信息的文件储存。

5.程序代码:

#include<iostream>
#include <string>
#include<conio.h>
#include<iomanip>
#include<time.h>
# include<fstream>
void bangzhu();
void bcxx(int);
void dqsj();
bool pdxhcf(int,int);
int shurupanduan(int,int,int);
int runnian(int );
using namespace std;
struct sj
{ intyear,month,day; ////////时间结构体
void shuru()
{cin>>year>>month>>day;
}
};
class student ////////////学生类
{ public :
string xm,kc[5];
int bj,xh,cj[5],ll;
sj time;
voidsrxhh()
{
cout<<"请输入学号";
cin>>xh;
} void sr() //////初始化输入学生信息
{
cout<<"请输入姓名";
cin>>xm;
cout<<"请输入入学日期中间用空格隔开";
time.shuru();
ll=shurupanduan(time.year,time.month,time.day);
if(ll==0)
time.shuru();
cout<<"请输入班级";
cin>>bj;
cout<<"请输入课程(5门)中间用空格隔开";
for(int i=0;i<5;i++)
{
cin>>kc[i];
for(intj=0;j<i;j++)
{
while(kc[i]==kc[j])
{
cout<<"您已经选过该课程请又一次输入"<<endl;
cin>>kc[i];
}
}
}
system("cls");
}
void chengji() ///////成绩录入
{
int i;
for(i=0;i<5;i++)
{
cout<<"请输入"<<kc[i]<<"的成绩"<<endl;
cin>>cj[i];
}
}
void chengjisc() ///////成绩输出
{
inti;
for(i=0;i<5;i++)
{
cout<<kc[i]<<" ";
cout<<cj[i]<<' ';
}
} };
void cxkb(student t)
{
intn;
cout<<"继续查询课程表请输入1,结束请输入0"<<endl;
cin>>n;
if(n==1)
for(int i=0;i<5;i++)
cout<<t.kc[i]<<' ';
}
string mima() ////////初始化设置password
{
cout<<"****************************学籍管理系统*********************************"<<endl;
dqsj();
cout<<"请设置password:";
string mm1,mm2;
char ch;
while ((ch=_getch())!=13)
{
mm1+=ch;
cout<<"*";
}
cout<<endl;
cout<<"请再次确认password:";
while ((ch=_getch())!=13)
{
mm2+=ch;
cout<<"*";
}
system("cls");
if(mm1==mm2)
return mm1;
else
mima();
}
int denglu(string mm) /////////登陆程序
{
cout<<"****************************学籍管理系统*********************************"<<endl;
dqsj();
cout<<"请输入登录password:";
string mm1,mm2,mm3;
char ch;
while ((ch=_getch())!=13)
{
mm1+=ch;
cout<<"*";
}
system("cls");
cout<<"****************************学籍管理系统*********************************"<<endl;
dqsj();
if(mm==mm1)
return 1;
else
{
cout<<"password错误,您还有两次机会,请重试";
while ((ch=_getch())!=13)
{
mm2+=ch;
cout<<"*";
}
system("cls");
if(mm==mm2)
return 1;
else
{
cout<<"password错误,您另一次机会,请重试";
while ((ch=_getch())!=13)
{
mm3+=ch;
cout<<"*";
}
system("cls");
if(mm==mm3)
return 1;
else
{
cout<<"password错误,请明天再试";
return 0;
}
}
}
}
student chazhaoxg(student t) //信息改动
{cout<<"改动姓名请输入1,改动入学时间请输入2,改动班级请输入3."<<endl;
cout<<"改动课程请输入4,改动成绩请输入5";
int a,i;
string xk;
cin>>a;
switch(a)
{
case 1:cin>>t.xm;break;
case2:cin>>t.time.year>>t.time.month>>t.time.day;break;
case 3:cin>>t.bj;break;
case 4:for(i=0;i<5;i++)cin>>t.kc[i];break;
case 5:
cout<<"请输入课程名"<<endl;
cin>>xk;for(i=0;i<5;i++)
{
if(t.kc[i]==xk)
{cout<<"请输入成绩"<<endl;
cin>>t.kc[i];
}
}break;
} return t; }
void shuchuxinxi(student t) //输出学生信息
{
cout<<t.xh<<' '<<t.xm<<''<<t.time.year<<t.time.month<<t.time.day<<t.bj<<'';
}
student stu[500];
int main() ////主函数..................
{
intn=0,i,xh;
string mm,xm; //password
mm=mima(); //password设置
i=denglu(mm);
if(i)
{
int a;
system("cls");
while(1)
{
cout<<"****************************学籍管理系统*********************************"<<endl;
dqsj();
bangzhu();
cin>>a;
system("cls");
cout<<"****************************学籍管理系统*********************************"<<endl;
dqsj();
if(a==0)
break;
else
{
switch(a)
{
case1:
stu[n].srxhh();
while(!pdxhcf(n,stu[n].xh))
{
cout<<"已存在该学生请又一次输入"<<endl;
stu[n].srxhh();
}
stu[n].sr(),n++;
break;
case 2:
for(i=0;i<n;i++)
{
cout<<stu[i].xh<<'';
cout<<stu[i].xm<<endl;
}
break;
case 3:
cout<<"请输入学号 ";
cin>>xh;
for(i=0;i<n;i++)
if(stu[i].xh==xh)
stu[i]=chazhaoxg(stu[i]);break;
case 6:
cout<<"请输入学号 ";
cin>>xh;
for(i=0;i<n;i++)
if(stu[i].xh==xh)
stu[i].chengji();break;
case7:
cout<<"请输入学号 ";
cin>>xh;
for(i=0;i<n;i++)
if(stu[i].xh==xh)
stu[i].chengjisc();
break;
case4:
cout<<"请输入学号 ";
cin>>xh;
for(i=0;i<n;i++)
if(stu[i].xh==xh)
{
shuchuxinxi(stu[i]);
cxkb(stu[i]);
}break;
case5:
cout<<"请输入姓名 ";
cin>>xm;
for(i=0;i<n;i++)
if(stu[i].xm==xm)
{shuchuxinxi(stu[i]);
cxkb(stu[i]);
}break;
case 9:bangzhu();break;
case8:bcxx(n);break;
}
} }
}
return 0;
}
void bangzhu() //操作指令提示
{ cout<<"请输入下面指令"<<endl<<endl; cout<<" 1.加入�学生 "; cout<<" 2.输出全部学生 "<<endl;
cout<<"============================";
cout<<"============================"<<endl;
cout<<" 3.输入学号改动学生信息 "; cout<<" 4,用学号查找学生信息 "<<endl;
cout<<"============================";
cout<<"============================"<<endl;
cout<<" 5,用姓名查找学生信息 " ; cout<<" 6,成绩输入 "<<endl;
cout<<"============================";
cout<<"============================"<<endl;
cout<<" 7,成绩查询 "; cout<<" 8,保存学生信息"<<endl;
cout<<"============================";
cout<<"============================"<<endl;
cout<<" 9.菜单 "; cout<<" 0.结束本程序 "<<endl ;
cout<<"============================";
cout<<"============================"<<endl;
}
int shurupanduan(int a,int b,int c=1) //推断输入年月日是否正确
{int l=1,q,ll;
if(a<=0||b<=0||b>12||c<0)
{l=0;
cout<<"您的输入有误请又一次输入"<<endl;} switch(b)
{
case 1:q=31;break;
case 2:q=28;break;
case 3:q=31;break;
case 5:q=31;break;
case 7:q=31;break;
case 8:q=31;break;
case 10:q=31;break;
case 12:q=31;break;
case 4:q=30;break;
case 6:q=30;break;
case 9:q=30;break;
case 11:q=30;break;
}
ll=runnian(a);
if(ll)
q++;
if(c>q)
{
l=0;
cout<<"您的输入有误请又一次输入"<<endl;}
return l;
} int runnian(int a) //推断是是否为闰年
{
intl=0;
if((a%4==0&&a%100!=0)||(a%400==0))
l=1;
return l;
}
void bcxx(int n)
{
cout<<"请输入文本名称和后缀名:";
char s[20];
cin>>s;
ofstream outfile(s,ios::out);
inti=0;
studentt;
outfile<<" 学号"<<" 姓名"<<" 出生日期"<<" 班级"<<endl;
for(i=0;i<n;i++)
{
t=stu[i]; outfile<<fixed<<setw(12)<<t.xh<<''<<fixed<<setw(6)<<t.xm<<' '
<<fixed<<setw(7)<<t.time.year<<t.time.month<<t.time.day<<""
<<fixed<<setw(4)<<t.bj<<'';
} }
void dqsj() //输出如今时间以及当前月份日历
{
time_t t = time(NULL);
struct tm *local = localtime(&t);
int year = local -> tm_year + 1900;
int month = local -> tm_mon + 1;
int day = local -> tm_mday;
int hour = local -> tm_hour;
int minute = local -> tm_min;
int second = local -> tm_sec;
cout <<"当前时间: "<<" "<<year<<"年"<<month<<"月"<<day<<"日"<<'';
cout <<endl<<" "<<hour<<":"<<minute<<":"<<second<<endl<<endl;
}
bool pdxhcf(int n,int a)//推断学号是否反复
{
booll=1;
inti;
for(i=0;i<n;i++)
{
if(a==stu[i].xh)
{
l=0;
break;
}
}
returnl;
}

 

6.程序执行结果截图

反复课程不同意选择。

能够将学生信息保存到文件

能够使用姓名和学号查询学生信息

能够实现成绩的输入和改动

 

 

c++大作业--学籍管理系统--的更多相关文章

  1. #006 C语言大作业学生管理系统第三天

    还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...

  2. #004 C语言大作业学生管理系统试着做

    链表不会用 文件不会使 在这种情况下就边写边做 希望这个月能做完这个作业 #include<stdio.h> #include<stdlib.h> #include<st ...

  3. 在Web大作业——红十字会管理系统里出现的一个Error

    工程描述:根据用户在前端网页的操作对后台数据库进行查询或更新. 错误描述:当对网页进行多次操作后,网页会报错:“数据库超过最大连接数”. 错误分析:每次打开某一网页,都会运行一段JAVA代码连接数据库 ...

  4. 大一上C语言期末大作业-成绩管理系统

    都过了半年的作业了,觉得做过去得留下点什么,所以整理了代码发一下博客. 声明:程序在DevC++下用c文件模式可以正常编译使用.(控制台程序) 程序结构:

  5. #007 C语言大作业学生管理系统第四天

    第四天还差恢复已删除学生功能 对于我来说,已经开始很复杂了. 小细节太重要了,边写边出错 1 #include<stdio.h> #include<stdlib.h> #inc ...

  6. python大作业-图书管理系统

    #缺少循环执行和错误处理 #add()函数 添加了循环执行 #错误处理:regist()函数 登录和退出选择的时候添加了错误处理 import sys import importlib importl ...

  7. C++大作业——教职工管理系统

    教职工信息管理系统 1.问题描述: 设计一个学校职工管理系统,要求实现如下功能:建立职工信息数据, 包括职工编号.姓名. 性别.工资.出生时间.岗位.参加工作时间和年 龄(必须计算得到),初始模拟数据 ...

  8. 【C】C语言大作业——学生学籍管理系统

    文章目录 学生管理系统 界面 主界面 登陆界面 注册界面 管理界面 学生界面 退出界面 链接 注意 学生管理系统 学C语言时写的一个大作业,弄了一个带图形界面的,使用的是VS配合EasyX图形库进行实 ...

  9. 期末Java Web大作业----简易的学生管理系统

    学生信息管理系统(大作业) 2018-12-21:此文章已在我的网站更新,添加视图介绍等信息,源码请移步下载https://www.jeson.xin/javaweb-sims.html PS:首先不 ...

随机推荐

  1. mongodb的副本集总结

    主节点A.备份节点B.仲裁者C.是否真的需求仲裁者? 需要. 怎样才算大多数表格如下: 怎样才算大多数表格 副本集中的成员总数 副本集中的大多数 1 1 2 2 3 2 4 3 5 3 6 4 7 4 ...

  2. 使用linux操作系统的公司服务器有哪些品牌

    服务器硬件是什么牌子的? 操心系统有哪些?cpu是哪些?

  3. Eclipse+maven发布ee项目jar包未发布

    背景:在Eclipse中搭建好EE环境后,发布时,出现ClassNotFoundException: XX.XX.ConfigureListener,查看时,对应的jar包都引入了,项目没也没出错,但 ...

  4. MySQL递归查询所有子节点,树形结构查询

    --表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAUL ...

  5. phpcms v9教程 联动搜索在房地产网站开发中的应用

    开发简述:使用phpcms v9系统,修改源文件5个,创建模型:楼盘.出售.出租.中介.小区,增加联动菜单:楼盘,增加用户组:房产中介.实现功能:游客发布信息.会员申请中介.楼盘全方位展示.报名团购. ...

  6. php错误处理和php异常处理机制

    php错误处理  当我们开发程序时,有时候程序出现了问题,我们就可以用以下几种办法找出错误.  开发阶段:开发时输出所有的错误报告,有利于我们进行程序调试  运行阶段:我们不要让程序输出任何一种错误报 ...

  7. Day02

    1.os.system()和os.popen() os.popen() 功能强于os.system() , os.popen() 可以返回回显的内容,以文件描述符返回 eg: import os re ...

  8. nodejs 在headers添加内容发送到后端

    app.all('*', function(req, res, next){ req.headers['COOKIE'] = 'Your Cookie' next() })

  9. OSSEC配置

    http://gavinshaw.blog.51cto.com/385947/1020540

  10. WPF自定义控件与样式(15)-终结篇

    原文:WPF自定义控件与样式(15)-终结篇 系列文章目录  WPF自定义控件与样式(1)-矢量字体图标(iconfont) WPF自定义控件与样式(2)-自定义按钮FButton WPF自定义控件与 ...