ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:343.33KB ,
资源ID:8453849      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8453849.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生学籍管理说明书.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生学籍管理说明书.docx

1、学生学籍管理说明书*实践教学*兰州理工大学计算机与通信学院2012年春季学期算法与数据结构课程设计题 目: 学籍管理 专业班级: 10级软件工程基地班 姓 名: 学 号: 10500233 指导教师: 王旭阳 成 绩: 目 录摘 要 11. 采用类c语言定义相关的数据类型 22. 各模块的伪码算法 23. 函数的调用关系图 64. 调试分析 75. 测试结果 76. 源程序(带注释) 11总 结 27参考文献 28致 谢 29附件 任务一源程序代码 30摘 要学籍管理系统设计涉及学生信息的录入,显示,查找,删除,修改,统计,保存,退出等功能,从而能够对信息进行处理。程序中运用了相关类的知识,同

2、时定义了一定数量的数据及成员函数。程序使用了数组记录统计的相关数据,运用了指针实现相应功能函数的功能,运用了student ,school两个类实现面向对象的要求。程序的完成涉及到程序的分析,模块的分解,程序的控制,程序的调试。关键词:学籍管理;数据结构;C+;程序控制 1. 采用类c语言定义相关的数据类型类:student 数据成员编号,姓名,年龄,专业,性别,籍贯,民族,生日,政治面貌,身份证,数学成绩,英语成绩,计算机成绩类:school成员函数录入函数Input():输入编号到计算机的成绩;统计函数count():统计各科的总成绩,计算平均成绩,统计各科的及格率;查询函数found()

3、:按学号或姓名查找学生的记录;修改函数mend():修改指定学号学生成绩记录;删除函数del():删除指定学号学生记录;输出函数show():输出班级所有学生成绩记录;2. 各模块的伪码算法2.1定义类:class student protected: variable; public: student *next; student() student() char* getname() return name; int getnumber() return number; double getscore(int i) return scorei; float getg() return (s

4、core0+score1+score2+score3+score4+score5); input:data;output:data。2.2保存函数void school:save() student *p; p=head; ofstream os(student.txt,ios:out); if (school:getkey()=1) while(p-next) (p-next)-output(os); p=p-next; school:setkey(0);2.3修改函数void school:mend() student *p; int num=-1,n; char name20=; if(

5、n=1) 学号if(n=2) 姓名 if( !find(&p,num,name) )(p-next)-output(); (p-next)-input(); school:setkey(1);2.4查找函数void school:found() student *p; int num=-1,n=9; char name20=;if(n=1) :学号if(n=2) :姓名if(!find(&p,num,name) )(p-next)-output();2.5初始化函数/初始化函数void school:begin() student *p,*p2; p=head; clear(); long t

6、; ifstream is(student.txt,ios:in); if(!is) ofstream os(student.txt,ios:out); os.close(); return ; int num=-1; while(1) num=-1; t=is.tellg(); isnum; is.seekg(t); if(numinput(is); p-next=p2; p2-next=NULL; p=p-next; 2.6清空函数:void school:clear() student *p,*p2; p=head-next; while( p ) p2=p; p=p-next; del

7、ete p2; 3. 函数的调用关系图系统组织结构图:系统功能结构图:4. 调试分析a、 调试中遇到的问题及对问题的解决方法 此次课程设计所研究的问题不是很难,即进行学籍管理,所以总的高度比较顺利。但在最初的设计过程中犯了一个致命的错误,即没有很好的进行整体布局,也没有定义统一的函数接口,以致程序的结构与函数的混乱。当各模块组合在一起的时候更是无没进行调试。故只有一切从头开始,重新分配任务,以及统一定义各函数的接口。在调试的过程中发现当输入错误的时会发生想不到的错误,为了避免这样意外的发生,写了一个判断函数judge()以及输入函数input()对其进行改进。当一段相同的代码在程序中多次使用并

8、且功能相对单一时,有必要将其写成一个函数,以减少工作量,并且使程序具有更好的可读性。在编写程序的过程中,及时对重要和难懂的程序段写注释是一个很好的习惯,无论是以后的测试还是以后的维护都能够节省相当多的时间。调试时最先进行各函数的调试,确保无误时再进行各模块的调试,最后才是将各模块组合在一起测试完整的程序。在调试的过程中不断地进行改进、完善。在序能够正确运行的基础上,再对各函数进行格式的优化,加强程序的结构性,并增强程序的可读性,包括给运行界面增加相应的操作提示等,使操作界面简单而又美观。b、算法的时间复杂度和空间复杂度本算法采用类对象的列表,假设实例化为n,则其时间复杂度和空间复杂度都是 O(

9、n)。5. 测试结果5.1 主菜单: 5.2录入信息界面5.3显示信息界面:5.4查找学生界面:5.5修改学生信息界面:5.6统计成绩界面:5.7保存学生信息界面:6. 源程序(带注释)#include#include#include#include using namespace std;class student protected: int number; int age; char name20; char sex6; char zhy20; char place20; char nation6; char birth20; char party10; char id20; float

10、 score6;public: student *next; student() student() char* getname() return name; int getnumber() return number; double getscore(int i) return scorei; float getg() return (score0+score1+score2+score3+score4+score5); void input() int e=1; coutttt按提示输入:endl; coutnumber; coutage; coutname; do coutsex; if

11、(strcmp(sex,男)=0 | strcmp(sex,女)=0) coutzhy; coutplace; coutnation; coutbirth; coutparty; coutid; coutscore0; coutscore1; coutscore2; coutscore3; coutscore4; coutscore5; e=0; else coutttt无此性别类型!重新输入!numberagenamesexzhyplacenationbirthpartyid score0score1score2score3score4score5; is.get(); void outpu

12、t() cout 学生基本信息如下:endl; cout 学号:number 年龄:age 姓名:name 性别:sex 籍贯:placeendl 民族:nation 专业:zhy 生日:birthendl 政治面貌:party 身份证号:idendl 数学:score0 英语:score1 计算机:score2endl 语文:score3 算法与数据结构:score4 物理:score5 总分:getg()endlendl; void output(ofstream & os) ossetw(6)number setw(6)age setw(15)name setw(6)sex setw(2

13、0)zhy setw(20)place setw(6)nation setw(20)birth setw(20)party setw(20)id setw(6)score0 setw(6)score1 setw(6)score2 setw(6)score3 setw(6)score4 setw(6)score5next=NULL; key=0; school() delete head; void input(); void mend(); void del(); int find(student *p,int num,char *pn=); void found(); void show()

14、; void count(); void save(); void begin(); void clear(); char mainmenu(); int getkey() return key; void setkey(int k) key=k; private: student *head; int key;/录入函数void school:input() student *p,*p2=NULL; p=head; int n; while(p-next) p=p-next; while(n) p2=new student; p2-input(); p-next=p2; p2-next=NU

15、LL; p=p-next; school:setkey(1); coutn; /子查找函数int school:find(student *p1,int num,char *pn) student *p; p=head; while(p-next) (*p1)=p; if( (p-next)-getnumber()=num|!strcmp( (p-next)-getname(),pn ) ) return 1; p=p-next; return 0;/查找函数void school:found() student *p; int num=-1,n=9; char name20=; do cou

16、tn; while(n2); if(n=1) coutnum; if(n=2) coutname; if(!find(&p,num,name) ) couttt找不到你要查找的内容!next)-output();/删除函数void school:del() student *p,*p2; int num; coutnum; if( !find(&p,num,) ) couttt找不到你要删除的内容!next)-output(); p2=p-next; p-next=p2-next; delete p2; school:setkey(1);/显示函数void school:show() stud

17、ent *p; p=head; while(p-next) (p-next)-output(); p=p-next; /修改函数void school:mend() student *p; int num=-1,n; char name20=; do coutn; while(n2); if(n=1) coutnum; if(n=2) coutname; if( !find(&p,num,name) ) couttt找不到你要修改的内容!next)-output(); (p-next)-input(); school:setkey(1);/保存函数void school:save() stud

18、ent *p; p=head; ofstream os(student.txt,ios:out); if (school:getkey()=1) while(p-next) (p-next)-output(os); p=p-next; coutttt文件已保存! num; is.seekg(t); if(numinput(is); p-next=p2; p2-next=NULL; p=p-next; /清空函数 void school:clear() student *p,*p2; p=head-next; while( p ) p2=p; p=p-next; delete p2; /统计函数

19、 void school:count() student *p; p=head; int n=0; double g6=0,0,0,0,0,0; float j6=0,0,0,0,0,0; while(p-next) p=p-next; n+; for(int i=0;igetscore(i) ); (p-getscore(i) )=60? ji+ : 0 ; coutttbbbb数学总分:g0 平均分:g0/n 及格率:j0/nendl ttbbbb英语总分:g1 平均分:g1/n 及格率:j1/nendl ttbbbb计算机总分: g2 平均分: g2/n 及格率:j2/nendl ttb

20、bbb语文总分:g3 平均分:g3/n 及格率:j3/nendl ttbbbb算法与数据结构总分:g4 平均分:g4/n 及格率:j4/nendl ttbbbb物理总分:g1 平均分:g5/n 及格率:j5/nendl;/主选菜单函数char school:mainmenu() char n6; coutnn 欢迎进入高校学籍管理系统endl nn 班级:10级软件工程基地班 姓名:田亚红 endl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * *

21、* * * * * * * * *endl * * 1: 录入学生信息 * *endl * * 2: 显示学生信息 * *endl * * 3: 查找学生信息 * *endl * * 4: 删除学生信息 * *endl * * 5: 修改学生信息 * *endl * * 6: 统计学生成绩 * *endl * * 7: 保存学生信息 * *endl * * 0: 退出系统 * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl n; return n0;/主函数void main() school pp; int k=1; char n; pp.begin(); while(k=1) n=pp.mainmenu(); switch(n) case 1:pp.input(); break; case 2:pp.show(); break; case 3:pp.found(); break; case 4:pp.del(); break; case 5:pp.mend(); break; case 6

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1