1、学籍信息管理系统汇编成绩 课程设计报告 题 目 学籍信息管理系统 课 程 名 称 面向对象程序设计课程设计 院 部 名 称 软件工程 专 业 软件工程 班 级 13软件工程1班 学 生 姓 名 学 号 课程设计地点 A203 课程设计学时 20学时 指 导 教 师 李尤丰 金陵科技学院教务处制一、课程设计的目的和要求目的:该课程设计的目的采用面向对象的程序设计语言,开发实现一个应用程序,主要目的是使学生更好的掌握面向对象程序设计语言及其开发工具,掌握如何使用面向对象的程序设计语言设计一个小的软件系统。通过该课程设计培养学生分析和解决实际问题的能力,培养学生综合应用基本概念,基本原理,和技术方法
2、的能力,真正做到学以致用,使课本上抽象的理论,方法与具体的实践应用相结合。要求:1.课程设计任务完成选定的题目的开发工作,并接受程序运行检查。要求提交报告一份。2.在本课程设计过程中要求学生:(1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;(2)按照课程设计的题目要求,独立地完成各项任务,不允许相互抄袭;(3)按时到计算中心上机,并接受教师的检查;(4)认真撰写课程设计报告。.2、系统需求分析本系统功能主要针对一个班级新生入学、中途学生转入转出学校以及学生考试成绩的录入查询等等进行有效的管理。这些学生的各项信息,帮主学校和老师及时准确地掌握学生的情况。基本功能:(
3、1)学生信息添加:添加学生的基本信息,包括学号、姓名、性别、出生日期、政治面貌、家庭住址等;(2)学生信息查询:选择(1)根据学生的姓名查找,调用strcmp()函数,找出后从文件中输出学生的信息;选择(2)根据学号进行查找,调用指针,查找出后将信息从文件中输出;(3)学生信息修改:该模块分为两步,调用strcmp()函数按照学生姓名进行查找,查找是否存在该学生,若不存在则输出“该学生不存在,请重新输入”,若存在则调用该学生信息,重新输入对原信息进行覆盖;(4)学生信息删除:调用指针链表根据学生的学号进行数据的删除;(5)学生信息显示:显示出所有录入的学生的信息;(6)学生信息保存:将学生信息
4、写入文件;(7)学生信息读取:从文件中读取学生的信息;三、总体设计框架结构:学籍管理系统应便于对学籍进行分类和管理,提高工作效率,便于操作,此软件由于只是一个初级产品,只要能构建一个结构,达到一些帮助查询、索引等基本功能和要求即可。整体设计了一个学生类,在学生类中完成各项操作。4、详细设计修改学生数据模块:void student:change(date *head) char name9; char c; do bool flag2=0; date *stu=head ; coutname; do if(strcmp(name,stu-name)=0) /使用字符串比较学生姓名 flag2=
5、1; /标记,表示找到对应学生 coutstu-yearstu-monthstu-day; coutstu-zhengzhi ; coutstu-adress; cout 学号 姓名 性别 出生年月日 政治面貌 家庭住址endl; cout=endl; coutsetw(7)num; coutsetw(12)name; coutsetw(9)sex; coutsetw(12)yearsetw(1)monthsetw(1)day; coutsetw(13)zhengzhi; coutsetw(14)adress; coutendl; coutnext; while(stu!=NULL); if(
6、flag2=0) /找不到输入学生时的输出 cout对不起!您要修改的学生不存在!请检查重新输入!endl; coutc; if(c!=y&c!=n) /规范输入 cout指令错误!请重新输入!; cinc; while(c=y); 此处调用strcmp()通过字符串的比较来找出对应的学生,直接在原来的数据上进行覆盖修改,在if(c!=y&c!=n)中进行输入完成时后是否进行输入的字符的规范输入。五、测试、调试过程软件测试运行图:初始界面:添加学生信息:查询学生信息: 根据姓名查询 根据学号查询:修改学生数据:学生数据删除:学生数据显示:学生数据保存:学生数据读取:6、结论与体会知道课题后我们
7、选择了使用链表,它可以实现无序的在内存中存放,只要有一个头结点,就可以对整个链表进行相关的操作,在调式时遇到了很多问题,最多的是有些程序看起来很简单但是要把所有的连接在一起就有很多问题出现了,结果我发现链表的建立、查找、删除、插入以及修改还有指针这一块知识还得好好的加强,当我在编写学生成绩管理系统时,出现了许多问题,我到处查找资料同时也向老师和同学请教,经过一个星期的努力我总算实现了基本功能。我现在体会到程序的调试是相当的重要的。在使用指针时要特别注意用过后的指针不使用就要删除,以防出错。链表的尾部要指向NULL,这点是很重要的。我们所做的设计“学生学籍管理信息系统”是集聚了全组每一位设计成员
8、的心思。在我们的成果里,可以看到我们每一位设计者所做出的努力。在系统的设计过程中,我们也遇到了一些困难和迷惑。但是在我们全组设计成员的齐心协力与不同组同学之间的互相的帮助下,我们克服了一个又一个的问题,保证了设计作业的顺利进行。通过完成本次C+程序设计的任务,使我熟练和掌握了所学的有关c+中的一些主要知识点和应用点,如类的定义,类的实现,对象的定义,类的继承等等。可以所学有所学,所有所用,不至于自己所学知识由于没有经历可用过程,而放弃对它的兴趣。我们遇到的问题这些问题,又都是课本上很少提到的、更深一层的知识领域和应用领域。这些问题,并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对
9、难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。更使我加强了灵活应用理论知识的能力。当然,此次任务的完成,也体现出同学之间的团结精神。所遇种种难以解决的问题,大家都会把它当作共同遇到的问题,在一起共同探讨,共同发挥自己所学和所知,投入式的互相帮助和解决困难。七、参考文献 1谭浩强编,C+面向对象程序设计,清华大学出版社,2005年7月出版2韩滨魏海萍,C+类库使用手册,电子工业出版社,2007年7月出版3文件的输入输出(XX百科附录:源程序#include #include #include #includedouble amount=0; struct date char
10、name9; char sex3; char zhengzhi5; char adress20; double num; double year; double month; double day; date *next; ;class student public: date d; void add(date *head); void change(date *head); void del(date *head); void search1(date *head); void search2(date *head); void load(date *head); void menu();
11、void show(date *head); void save(date *head); void chushihua(date *head); ;/*主函数*/int main() student s; char x; bool flag2=0; date *head=new date; /初始化学生数据 head-next=NULL; coutx; if(x=0&x=8) flag2=1; else cout指令错误!endl; cout 请选择相应的数字进行操作: ; while(flag2=0); switch(x) case 0:cout*现在进行学生信息添加*n; s.add(head); cout输入的学生信息为:n; s.show(head); cout*n; s.menu(); break; /添加结束后返回菜单 case 1: char z; cout*现在进行学生信息查询*n; cout请选择查询方式:; coutz; while(z!=0&z!=1) cou
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1