c++大作业–学籍管理系统–

c++大作业–学籍管理系统–

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

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.程序执行结果截图

反复课程不同意选择。

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

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

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

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/118811.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • nginx 499 产生的原因

    nginx 499 产生的原因

  • linux查看网卡设备名称_linux查看网卡速率命令

    linux查看网卡设备名称_linux查看网卡速率命令linux显示网卡型号#kudzu–probe–class=network范例:[root@localhost~]#kudzu–probe–class=network-class:NETWORKbus:PCIdetached:0device:eth0driver:r8169desc:”RealtekSemiconductorCo.,Ltd.RTL8101E/…

    2022年10月19日
  • 利用jQuery进行三行两列等高布局

    利用jQuery进行三行两列等高布局

  • ResponseBody浅析[通俗易懂]

    ResponseBody浅析[通俗易懂]@[TOC]ResponseBody浅析欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:…

  • HD地址批量生成 java

    HD地址批量生成 java前言:HD钱包全称为是分层确定性(HierarchicalDeterministic)钱包的缩写HDWallets。首次创建HD钱包或者备份钱包时,会产生一个助记词,助记词是一连串的英⽂单词,这一串单词序列就可以创建种子,种子又可以创建所有的私钥。单词顺序也是钱包的备份,可以恢复钱包。而种⼦对应的就是所确定性钱包的随机数。HD钱包的优点在于只需要主公钥,…

  • NFV介绍_NFV技术

    NFV介绍_NFV技术转发自:https://zhuanlan.zhihu.com/p/26259440NFV全称是NetworkFunctionVirtualization。这又是一个与网络相关的故事。先来看看NFV的前世今生吧。在NFV之前,NF(NetworkFunction)是一直存在的,网络中,NF可以看成一个个独立的网元,实现着各自的功能。NF以固定的方式连接起来,统一提供的网络功能和服务。随便在网…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号