欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    《C++程序设计语言》课程设计报告(学生学籍管理系统).doc

    • 资源ID:852700       资源大小:871.50KB        全文页数:24页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《C++程序设计语言》课程设计报告(学生学籍管理系统).doc

    1、目 录一、需求分析3二、程序的主要功能4三、程序运行平台5四、系统总框架图5五、程序类的说明6六、模块分析8七、比较有特色的函数9八、存在的不足与对策12九、程序源代码1324一、需求分析 学籍管理现状1、 目前国内大中专院校众多,在校的学生人数占据了社会人口很大一部分,是社会群体中的新生力量;2、 对学生学籍的管理是各大院校日常管理中不可忽视的一个重要环节;3、 随着计算机等高新科技的发展,对学籍的管理早已不能仅仅满足于纸质文件。因此,开发出一套计算机学生学籍管理系统显得很有必要。 本系统存在的价值1、 满足了各大院校对学籍管理的强烈要求;2、 力图用最少的代码完成最多的功能,代码简洁没有冗

    2、余;3、 系统操作简便明了,根据提示即可进行简便常用的日常学籍管理;4、 占用资源少、需求大、简便易操作,多彩的可视化界面。综合以上众多优势,证明了本系统存在的价值。 选择C+的理由C+为了解决程序设计的复杂性,美国贝尔实验室于1980年开始研制一种“带类”的C,到1983年才正式命名为C+。C+语言吸收了C和Simula 67的精髓,具有C无可比拟的优越性。C+结构清晰、易于维护、已于拓展,同时又不失效率。(节选自C+简明教程(皮德常),电子工业出版社)综合以上优点,我们选定C+为本次系统的程序设计语言。二、程序的主要功能 显示全部学生信息显示全部学生的学生信息。包括学号、姓名、电话、住址、

    3、绩点、奖惩信息、学生证预约记录等 查找指定信息通过输入学号,查找并输出指定学生的全部信息 开具学籍证明通过输入学号,开具该学生的学籍证明保存到Apply.txt文件中,并在屏幕上输出 学生证预约登记记录指定学生的学生证预约登记记录 奖惩信息录入记录指定学生的奖惩信息记录 按学号排序后输出按学号排序后输出到屏幕,并保存到PeoInfo.txt文件 按绩点高低排序输出按绩点高低排序后输出到屏幕,并保存到PeoInfo.txt文件 清除数据文件清除PeoInfo.txt文件中的全部信息 学生信息更新/修改通过学号更新/修改该学生的信息 作者&版权信息显示作者及课设的相关信息三、程序运行平台Micro

    4、soft Visual C+ 6.0四、系统总框架图(图4-1)(图4-2)五、程序类的说明 Stu类的说明class Stu /父类,公用类protected:Info *person;fstream people; /创建二进制文件public:Stu();virtual Info *SearNum(char *)=0; /按学号查找学生信息,纯虚函数bool operator(const Info *); /比较成绩高低,重载运算符 friend void InputOne(Info *p1); /友元函数void creat(); /创建链表Stu(); Show类的说明class S

    5、how:public Stu /Stu的子类,显示模块,抽象类public:void ShowOne(Info *); /显示指定的学生信息 void ShowAll(); /显示所有学生的信息Info *SearNum(char *);void ListNum(); /按学号排序输出 void ListMark(); /按绩点高低排序输出; Manage类的说明class Manage:public Show /Show的子类,管理模块,多重继承public:Info *SearNum(char *);void Apply(char *); /学籍证明void Book(char *); /

    6、学生证预约void Change(char *); /信息更新/修改void GoodBad(char *); /奖惩情况录入 ; WrongIn类的说明class WrongIn /用于捕捉输入异常 ;六、模块分析 显示模块显示全部学生的学生信息。包括学号、姓名、电话、住址、绩点、奖惩信息、学生证预约记录等 查找模块通过输入学号,查找并输出指定学生的全部信息 管理模块1、开具学籍证明。通过输入学号,开具该学生的学籍证明保存到Apply.txt文件中,并在屏幕上输出;2、学生证预约登记。记录指定学生的学生证预约登记记录;3、奖惩信息录入。记录指定学生的奖惩信息记录;4、学生信息更新/修改。通过

    7、学号更新/修改该学生的信息; 输出模块1、按学号排序后输出。按学号排序后输出到屏幕,并保存到PeoInfo.txt文件;2、按绩点高低排序输出。按绩点高低排序后输出到屏幕,并保存到PeoInfo.txt文件; 清除模块清除PeoInfo.txt文件中的全部信息 作者&版权信息模块显示作者及课设的相关信息七、比较有特色的函数 纯虚函数SearNumvirtual Info *SearNum(char *)=0; /按学号查找学生信息,纯虚函数 Creat函数void Student:creat() /创建链表Info *head;Info *p1,*p2;int n=0;char GoOn=Y;

    8、p1=p2=new Info;InputOne(p1);people.write(char *)p1, sizeof(*p1); /二进制输出文件head=NULL;while(GoOn=Y|GoOn=y)n+;if(n=1) head=p1;else p2-next=p1;p2=p1; system(COLOR 1e);cout GoOn; cin.ignore();if(GoOn!=Y & GoOn!=y) /判断输入是否结束people.close(); break;p1=new Info;InputOne(p1); people.write(char *)p1, sizeof(*p1)

    9、;p2-next=NULL;person=head;该函数通过指针和链表,动态存储学生信息,并保存到文件中 SearNum函数Info *Student:SearNum(char *a) /按学号查找学生信息system(COLOR 3d);Info *p;cout num,a)=0)ShowOne(p);return p;record=true;p=p-next;if(!record)cout 运算符重载函数bool Student:operator (const Info *right)if(person-mark right-mark)return true;else return fa

    10、lse;该函数重载了运算符,便于直接比较两结构体所存储数据的绩点高低 ListNum函数void Student:ListNum() /按学号排序输出Info *p1,*p2,*temp,*now;int i=0;system(COLOR 3f);cout next;while(p2 & i+num,p1-num)0 & p1=person) /插入到头结点之前temp=p2;p2=temp-next; /在原链表中删除p2的信息person=temp;temp-next=p1; /p2插入到最前 if(strcmp(p2-num,p1-num)0)temp=p2;p2=temp-next;t

    11、emp-next=p1;p1=temp;now=now-next;p1=now;p2=now-next;fstream listnum;listnum.open(PeoInfo.txt,ios:out | ios:binary); p1=person;while(p1)listnum.write(char *)p1, sizeof(*p1);p1=p1-next; listnum.close();ShowAll();运用链表和指针按学号大小排序全部学生信息八、存在的不足与对策 类对象中的信息存储问题描述:类对象中用数组存储所有学生的信息,显得较为复杂,不方便管理和操作。在数据的处理时造成一定的

    12、麻烦。对策:类外部定义Info 结构体,在类内部用结构体+链表的方式存储学生的信息 文件写入的问题描述:用普通文件存储学生信息显得较为复杂,数据录入较为繁琐,不便于操作。对策:采用二进制文件的方式,整块录入结构体数据文件。方便、快捷。 链表排序问题描述:对链表的操作掌握的不够熟练,对创建好的链表进行排序时显得手足无措,不能善于利用指针。对策:参考相关书籍,请教老师等。 程序细节问题描述:由于首次进行比较大规模的程序设计,程序中的很多输入输出细节没有注意到,导致某些格式不统一。对策:小组成员轮流校对程序,发现问题并改进。九、程序源代码另附:1、程序单文件原始代码“学生学籍管理_单文件代码.cpp

    13、”; 2、多文件组织后的“学生学籍管理_多文件组织”工程文件夹。/* 本程序应用了: 布尔类型 格式化输入输出 cin.getline() 引用作为函数参数函数重载 内存的动态分配二进制文件 结构体指针构造函数 析构函数静态数据成员 函数覆盖纯虚函数 抽象类 友元函数 运算符重载继承和多重继承 异常处理通过链表动态存储数据 多文件组织 等C+的特色功能*/#include using namespace std;#include#includestruct Info char num20; /学号char name8; /姓名char phone12; /电话char adres40; /住址

    14、 float mark; /绩点 char other100; /奖惩信息char book; /学生证预约 Info *next;static int N; /记录信息的条数,静态变量class Stu /父类,公用类protected:Info *person;fstream people; /创建二进制文件public:Stu();virtual Info *SearNum(char *)=0; /按学号查找学生信息,纯虚函数bool operator(const Info *); /比较成绩高低,重载运算符 friend void InputOne(Info *p1); /友元函数vo

    15、id creat(); /创建链表Stu();class Show:public Stu /Stu的子类,显示模块,抽象类public:void ShowOne(Info *); /显示指定的学生信息 void ShowAll(); /显示所有学生的信息Info *SearNum(char *);void ListNum(); /按学号排序输出 void ListMark(); /按绩点高低排序输出;class Manage:public Show /Show的子类,管理模块,多重继承public:Info *SearNum(char *);void Apply(char *); /学籍证明v

    16、oid Book(char *); /学生证预约void Change(char *); /信息更新/修改void GoodBad(char *); /奖惩情况录入 ;class WrongIn /用于捕捉输入异常 ;Stu:Stu()N=0; person=new Info; /内存动态分配people.open(PeoInfo.txt,ios:out | ios:binary);if(people.fail()cout创建文件PeoInfo.txt出错! n ; exit(0);Stu:Stu()people.close();void InputOne(Info *p1) /输入一个学生信

    17、息system(COLOR 3f);cout n请输入下面的数据!n ; cout num,20); cout name,8); cout phone,12);cout adres,40); cout p1-mark; cin.ignore(); /略过换行符 cout other,100);cout p1-book; cin.ignore();N+;void Show:ShowOne(Info *p) /显示指定的学生信息system(COLOR 3f);cout =nn;cout 学号: num endl; cout 姓名: name endl; cout 电话: phone endl;c

    18、out 住址: adres endl; cout 绩点: mark endl; cout 备注: other endl;cout 学生证预约办理Y/N: book endl;cout next=p1;p2=p1; system(COLOR 1e);cout GoOn; cin.ignore();if(GoOn!=Y & GoOn!=y) /判断输入是否结束people.close(); break;p1=new Info;InputOne(p1); people.write(char *)p1, sizeof(*p1);p2-next=NULL;person=head;Info *Show:S

    19、earNum(char *a) /按学号查找学生信息system(COLOR 3d);Info *p;cout num,a)=0)ShowOne(p);return p;record=true;p=p-next;if(!record)cout 没有查找到相关数据!n;return NULL;Info *Manage:SearNum(char *a) /按学号查找学生信息system(COLOR 3d);Info *p;cout num,a)=0)ShowOne(p);return p;record=true;p=p-next;if(!record)cout 没有查找到相关数据!n;return

    20、 NULL;void Show:ShowAll() /显示所有学生的信息 char again; fstream showAll;system(COLOR 1e);cout nn* 下面显示所有学生的信息 *n ; showAll.open(PeoInfo.txt,ios:in | ios:binary); if(showAll.fail()cout打开文件PeoInfo.txt出错! n ; exit(0); showAll.read(char *)person, sizeof(*person);while( !showAll.eof() cout 学号: num endl; cout 姓名

    21、: name endl; cout 电话: phone endl;cout 住址: adres endl; cout 绩点: mark endl; cout 备注: other endl;cout 学生证预约办理Y/N: book endl; cout n请按回车键,显示下一条信息!n; cin.get(again);showAll.read(char *)person,sizeof(*person); cout显示完毕!n;showAll.close();void Manage:Apply(char *a) /开具学籍证明Info *p;p=SearNum(a);system(COLOR 2

    22、e); fstream apply;apply.open(Apply.txt,ios:out);cout =nn;cout 证 明 n;cout name 同学(学号:num),系我校在校学生。n;cout 特此证明。nn;cout 南京航空航天大学nn;cout =n;cout endl 已按上述格式保存到Apply.txt文件中!n;apply =nn;apply 证 明 n;apply name 同学(学号:num),系我校在校学生。n;apply 特此证明。nn;apply 南京航空航天大学nn;apply book=Y;system(COLOR 3e);cout =nn;cout 预

    23、约信息已记录!请尽快提交相关证明!nn;cout =n;void Manage:GoodBad(char *a) /学生奖惩情况录入功能Info *p;p=SearNum(a);system(COLOR 5e);cout =nn;cout p-other;fstream GoodBad;GoodBad.open(PeoInfo.txt,ios:out | ios:binary); p=person;while(p)GoodBad.write(char *)p, sizeof(*p);p=p-next; GoodBad.close();cout 奖惩情况录入完毕!感谢使用nn;cout (con

    24、st Info *right) /运算符重载if(person-mark right-mark)return true;else return false;void Show:ListNum() /按学号排序输出Info *p1,*p2,*temp,*now;int i=0;system(COLOR 3f);cout next;while(p2 & i+num,p1-num)0 & p1=person) /插入到头结点之前temp=p2;p2=temp-next; /在原链表中删除p2的信息person=temp;temp-next=p1; /p2插入到最前 if(strcmp(p2-num,

    25、p1-num)0)temp=p2;p2=temp-next;temp-next=p1;p1=temp;now=now-next;p1=now;p2=now-next;fstream listnum;listnum.open(PeoInfo.txt,ios:out | ios:binary); p1=person;while(p1)listnum.write(char *)p1, sizeof(*p1);p1=p1-next; listnum.close();ShowAll();void Show:ListMark() /按绩点高低排序输出Info *p1,*p2,*temp,*now;int

    26、i=0;system(COLOR 3f);cout next;now=person;while(p2!=NULL & i+p1 & p1=person) /插入到头结点之前temp=p2;p2=temp-next; /在原链表中删除p2的信息person=temp;temp-next=p1; /p2插入到最前 if(p2p1)temp=p2;p2=temp-next;temp-next=p1;p1=temp;now=now-next;p1=now;p2=now-next;fstream listnum;listnum.open(PeoInfo.txt,ios:out | ios:binary)

    27、; p1=person;while(p1)listnum.write(char *)p1, sizeof(*p1);p1=p1-next; listnum.close();ShowAll(); void Manage:Change(char *a) /学生信息更新/修改Info *p;system(COLOR 4e);p=SearNum(a);cout =nn;cout 请输入该同学更新/修改后的信息:n; cout 学号: num endl; cout name,8); cout phone,12);cout adres,40); cout p-mark; cin.ignore(); /略过

    28、换行符 cout other,100);cout p-book; cin.ignore();fstream Change;Change.open(PeoInfo.txt,ios:out | ios:binary); p=person;while(p)Change.write(char *)p, sizeof(*p);p=p-next; Change.close();cout 该同学信息更新/修改完毕!感谢使用nn;cout =n;void main()system(COLOR 1e);Info *p; Manage manage;Show show;int want;char use=Y;ch

    29、ar sear20; cout 【欢迎使用学生学籍管理系统】n请先录入要管理的学生信息n;show.creat();cout n学生信息已正常录入,并保存到PeoInfo.txt文件中n;while(use=y | use=Y)cout n*学生学籍管理系统*n; cout 请输入要使用功能的数字代码n; cout 【 1】 显示全部学生信息n; cout 【 2】 查找指定信息n; cout 【 3】 开具学籍证明n; cout 【 4】 学生证预约登记n; cout 【 5】 奖惩信息录入n; cout 【 6】 按学号排序后输出n; cout 【 7】 按绩点高低排序输出n; cout 【 8】 清除数据文件n;


    注意事项

    本文(《C++程序设计语言》课程设计报告(学生学籍管理系统).doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922