版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、成绩 课程设计报告题 目 学籍管理系统 课 程 名 称 面向对象程序设计课程设计 院 部 名 称 信息技术学院 专 业 计算机科学与技术(本)班 级 09计算机科学与技术(1) 学 生 姓 名 周浩 学 号 0905101005 课程设计地点 a203 课程设计学时 20 指 导 教 师 李慧 金陵科技学院教务处制【注:根据课程设计大纲第四项具体要求撰写课程设计报告】一 需求分析随着计算机的发展,越来越多的学校有自己的学籍管理系统。这样更方便数据的长期保存,更适用于数据的集中处理。通过这个简单的学籍管理系统,可以添加新成员的基本信息,通过其姓名,学号,班级等信息查询这个人的基本信息。可以很方便
2、的进行数据修改,以及数据删除。本系统主要是通过二进制的文件读取,进行输入,输出,以及修改,删除等基本功能。一共涉及到两个类,第一个类是person类,主要是成员数据,只有一个添加数据的公有接口。主要是方便第2个类student对其的继承,继承它的所有成员函数及其成员数据。person 类的数据成员1 姓名2 性别系统功能包括:1 添加函数二 概要设计class personpublic: void add();protected:char name10;char sex3;这个类设计得很简单,因为它包含student类的基本信息,通过公有继承,直接应用person类的成员函数及其变量。其中的数
3、据成员含义如下:用户姓名:用name字符数组来表示,或者直接使用string类型的变量来存放用户性别:用sex字符数组来表示,或者直接使用string类型的变量来存放为了对person类的信息进行必要的操作,最主要是添加函数:void add();/主要是输入姓名,性别的基本信息。为了实现学生管理系统的基本功能,主要是通过建立一个student类的成员函数来实现它。所以每个student类的成员函数都非常重要,它直接影响要功能的实现。class student:public person/继承 person 类public: void add();void add2();void addban
4、();void del();void change();void menue();void reader();void searchname();void searchban();void searchnumber();void disp();private:int number;char xibie10;int ban;/定义学号 系别 班级;其中数据成员的含义如下:number: 用来存放一个学生的学号。xibie:用来存放一个学生的系别。ban:用来存放一个学生的班级。其中的成员函数解释如下:void add();/写入函数void add2();/写入函数void addban();/
5、增加班void del();/删除函数void change();/改变函数void menue();/主菜单void reader();/次菜单void searchname();/查询姓名void searchban();/查询班级void searchnumber();/查询学号void disp();/显示类体外定义了一个比较函数bool comp(char s1,char s2);/比较两个字符串相等 三 详细设计person类的实现void add()/写入函数cout请输入姓名:name;cout请输入性别:sex;student类的实现void student:disp()/显
6、示cout姓名:name ;cout性别:sex ;cout班级:ban ;cout学号:number ;cout系别:xibieendl;void student:add()cout请输入学生信息:endl;person:add();/写入函数cout请输入学号:number;/输入学号cout请输入系别:xibie;/输入系别cout请输入班级 ban;/输入班级void student:add2()/写入函数student a;a.add();fstream file(student.txt,ios:binary|ios:out|ios:app); /二进制打开文件,指针指向文件尾fil
7、e.write(char*)&a,sizeof(a);/把类信息写入文件file.close(); /关闭文件void student:searchname()/按姓名查询coutname2;student a;fstream file(student.txt,ios:binary|ios:in);/二进制打开文件,指针在文件头file.read(char*)&a,sizeof(a); /读取类信息while(!file.eof() /判断文件指针是否到文件尾if(comp(,name2) /判断输入的字符是否与文件重点一样a.disp(); /如一样的话,显示信息file.rea
8、d(char*)&a,sizeof(a);/如果指针没到文件尾,继续读取file.close(); /关闭文件void student:searchban()/按班级查询coutban2; /输入年龄student a; /第一个学生类的对象fstream file(student.txt,ios:binary|ios:in); /二进制打开文件。指针在文件头file.read(char*)&a,sizeof(a); /读取类信息while(!file.eof() /判断指针是否在文件尾if(a.ban=ban2) /判断输入年龄是否与文件中的年龄一样a.disp(); /如果一样的话,显示信
9、息file.read(char*)&a,sizeof(a); /如果指针没到文件尾,继续读取file.close(); /关闭文件void student:searchnumber()/按学号查询coutnumber2; /输入学号student a; /第一个学生类的对象fstream file(student.txt,ios:binary|ios:in); /二进制打开文件。指针在文件头file.read(char*)&a,sizeof(a); /读取类信息while(!file.eof() /判断指针是否在文件尾if(a.number=number2) /判断输入的学号是否与文件中的一样
10、a.disp(); /如一样的话,显示信息file.read(char*)&a,sizeof(a);/如果指针没到文件尾,继续读取file.close(); /关闭文件void student:del()/删除函数 static char read_name10; /定义静态变量 static char read_sex3; static int read_ban; static int read_number; static char read_xibie10; int n; int recsize=sizeof(read_name)+sizeof(read_sex)+sizeof(int)
11、+sizeof(int)+sizeof(read_xibie); /一个人的信息的长度strcpy(name,); /删除用空字符和0来代表的,strcpy(sex,);ban=0; number=0;strcpy(xibie,); fstream file(student2.txt,ios:binary|ios:in); /二进制打开文件。指针在文件头coutendln;/输入第几个学生file.seekp(n-1)*recsize,ios:beg);/指向功能file.write(name,10);/把空字符写入文件file.write(sex,3);file.write(char*)&b
12、an,sizeof(int);file.write(char*)&number,sizeof(int);file.write(xibie,10); file.close();coutendl该学生删除成功endlendl; /提示coutendl;void student:change() /修改函数static char read_name10; /定义静态变量 static char read_sex3; static int read_year; static int read_number; static char read_xibie10;int n;int recsize=size
13、of(read_name)+sizeof(read_sex)+sizeof(int)+sizeof(int)+sizeof(read_xibie); /一个人的信息的长度fstream file(student.txt,ios:binary|ios:in|ios:out); /二进制打开文件。指针在文件头coutendln;cout输入你要修改的信息:endl;student a;/定义学生对象a.add(); /调用写入函数file.seekp(n-1)*recsize,ios:beg);/指向功能file.write(char*)(&a),sizeof(a);/写入对象file.close
14、();/关闭文件 cout该学生信息修改成功endl; coutendl;void student:addban()int c;student a;char b;char y;cout输入你要建立的班级c;cout输入这个班的成员endl;cout继续,输入yb;while(b=y)a.add2(); cout继续?输入yb;void student:menue() cout1 添加学生信息 endl;cout2 修改学生信息 endl;cout3 删除学生信息 endl;cout4 查询学生信息 endl;cout5 新建班级 endl; cout6 退出系统 endl;void stude
15、nt:reader()cout1 按姓名查询endl;cout2 班级查询endl;cout3 按学号查询endl;cout4 退出 endl;类外函数的实现bool comp(char s1,char s2) /比较文件中字符和输入的字符是否相同int i=0; while(s1i!=0&s2i!=0&s1i=s2i) i+; if(s1i=0 &s2i=0) return 1; else return 0;四 程序测试/* * 测试主函数*/ void main() student a;int x1,x2;doa.menue();/主菜单coutx1;/输入选项switch(x1)/主菜单
16、选择case 1:a.add2 ();break;case 2:a.change();break;case 3:a.del();break;case 4:do a.reader(); cout请输入操作号:x2;switch(x2)case 1:a.searchname();break;case 2:a.searchban();break;case 3:a.searchnumber();break;while(x2!=4);break;case 5:a.addban();break;while(x1!=6);部分测试数据与运行结果:五 个人体会通过这次课程设计,我更加深刻的知道了我们学的c+和
17、我们的生活密切相连,所以更应该注意平时上课各种小知识点的积累。然后上机具体操作的情况又与笔试有很大的不同,因为通过键盘操作,更容易出错。所以我们平时在学习的时候,就应该做到边学边编,如果很久没有接触到c+的编译环境,就会出现不知道从何如手。另外,程序的变化太大拉,它需要我们拓展课外知识,所以仅靠在课堂上的时间学好它是不现实的。有很多小的技巧,以及编程思想需要我们自己去领悟,这要求我们要有很好的自学能力。比如说这次变成如果没有掌握好用2进制的方式输入文件的话,就很难编出能实现功能的程序编程最重要的是思路清晰,条理清楚,只有思路比较清楚的条件下,进展才比较顺利。并且,在编译过程中遇到的错误也要耐心
18、去修改,并且记住这相应的错误代码,以便以后遇到相同的情况,知道怎么修正。六 参考资料软件工程导论 第四版 清华大学出版 c#开发实战宝典王小科 编著 清华大学出版社 c#开发大全刘丽霞 编著 清华大学出版数据库系统概论 王珊 萨师煊 编著 浙江大学出版社c语言程序设计实例精粹谭明金、俞海英编著 电子工业出版社七 附件:源程序清单 学生学籍管理系统源程序清单void add()/写入函数cout请输入姓名:name;cout请输入性别:sex;student类的实现void student:disp()/显示cout姓名:name ;cout性别:sex ;cout班级:ban ;cout学号:
19、number ;cout系别:xibieendl;void student:add()cout请输入学生信息:endl;person:add();/写入函数cout请输入学号:number;/输入学号cout请输入系别:xibie;/输入系别cout请输入班级 ban;/输入班级void student:add2()/写入函数student a;a.add();fstream file(student.txt,ios:binary|ios:out|ios:app); /二进制打开文件,指针指向文件尾file.write(char*)&a,sizeof(a);/把类信息写入文件file.clos
20、e(); /关闭文件void student:searchname()/按姓名查询coutname2;student a;fstream file(student.txt,ios:binary|ios:in);/二进制打开文件,指针在文件头file.read(char*)&a,sizeof(a); /读取类信息while(!file.eof() /判断文件指针是否到文件尾if(comp(,name2) /判断输入的字符是否与文件重点一样a.disp(); /如一样的话,显示信息file.read(char*)&a,sizeof(a);/如果指针没到文件尾,继续读取file.clos
21、e(); /关闭文件void student:searchban()/按班级查询coutban2; /输入年龄student a; /第一个学生类的对象fstream file(student.txt,ios:binary|ios:in); /二进制打开文件。指针在文件头file.read(char*)&a,sizeof(a); /读取类信息while(!file.eof() /判断指针是否在文件尾if(a.ban=ban2) /判断输入年龄是否与文件中的年龄一样a.disp(); /如果一样的话,显示信息file.read(char*)&a,sizeof(a); /如果指针没到文件尾,继续读
22、取file.close(); /关闭文件void student:searchnumber()/按学号查询coutnumber2; /输入学号student a; /第一个学生类的对象fstream file(student.txt,ios:binary|ios:in); /二进制打开文件。指针在文件头file.read(char*)&a,sizeof(a); /读取类信息while(!file.eof() /判断指针是否在文件尾if(a.number=number2) /判断输入的学号是否与文件中的一样a.disp(); /如一样的话,显示信息file.read(char*)&a,sizeo
23、f(a);/如果指针没到文件尾,继续读取file.close(); /关闭文件void student:del()/删除函数 static char read_name10; /定义静态变量 static char read_sex3; static int read_ban; static int read_number; static char read_xibie10; int n; int recsize=sizeof(read_name)+sizeof(read_sex)+sizeof(int)+sizeof(int)+sizeof(read_xibie); /一个人的信息的长度st
24、rcpy(name,); /删除用空字符和0来代表的,strcpy(sex,);ban=0; number=0;strcpy(xibie,); fstream file(student2.txt,ios:binary|ios:in); /二进制打开文件。指针在文件头coutendln;/输入第几个学生file.seekp(n-1)*recsize,ios:beg);/指向功能file.write(name,10);/把空字符写入文件file.write(sex,3);file.write(char*)&ban,sizeof(int);file.write(char*)&number,sizeo
25、f(int);file.write(xibie,10); file.close();coutendl该学生删除成功endlendl; /提示coutendl;void student:change() /修改函数static char read_name10; /定义静态变量 static char read_sex3; static int read_year; static int read_number; static char read_xibie10;int n;int recsize=sizeof(read_name)+sizeof(read_sex)+sizeof(int)+sizeof(int)+sizeof(read_xibie); /一个人的信息的长度fstream file(student.txt,ios:binary|ios:in|ios:out); /二进制打开文件。指针在文件头coutendln;cout输入你要修改的信息:endl;student a;/定义学生对象a.add(); /调用写入函数file.seekp(n-1)*recsize,ios:beg);/指向功能file.write(char*)(&a),sizeof(a);/写入对象f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版小桥施工合同正规范本:小桥工程数字化管理服务合同
- 牡丹江2024年黑龙江牡丹江市直事业单位集中选调15人笔试历年参考题库附带答案详解
- 烟台2024年山东烟台市公安局招录警务辅助人员32人笔试历年参考题库附带答案详解
- 潍坊山东潍坊寿光市侯镇中心卫生院招聘8人笔试历年参考题库附带答案详解
- 漯河2024年河南漯河市审计局事业单位引进高层次人才2人笔试历年参考题库附带答案详解
- 温州浙江温州苍南县人武部招聘民兵教练员驾驶员笔试历年参考题库附带答案详解
- 温州浙江温州瓯海区公安分局招聘警务辅助人员41人笔试历年参考题库附带答案详解
- 清远2025年广东清远市清城区招聘事业单位工作人员10人笔试历年参考题库附带答案详解
- 河南2025年河南超硬材料产业技术研究院招聘科研人员45人笔试历年参考题库附带答案详解
- 楚雄云南楚雄州消防救援局招聘6人笔试历年参考题库附带答案详解
- 《风电场项目经济评价规范》(NB-T 31085-2016)
- 拔罐技术操作考核评分标准
- 戒赌法律协议书范本
- 竞选市级三好学生PPT
- 2024届甘肃省兰州市五十一中生物高一上期末检测模拟试题含解析
- 高标准农田建设上图入库(技术培训)
- 火灾隐患整改登记表
- 普通地质学教材
- 天津华宁KTC101说明书
- 【智慧校园】-智慧校园系统方案
- 外研版高中新教材英语单词表(必修一)
评论
0/150
提交评论