《课程设计汇本选题管理系统报告.pdf》由会员分享,可在线阅读,更多相关《课程设计汇本选题管理系统报告.pdf(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 课程设计汇本选题管理系统报告 目录 1.设计目的和任务.2 一、本课程设计的目的 2 2.本课程设计任务 2 2.设计方案.3 一、整体设计 3 2.系统设计 3 三、系统实现 5 4.系统测试 16 3.经验 20 _ 一、设计目的与任务 一、本课程的目的 1)课程设计是实践教学环节。设置课程设计的目的是加强学生对本课程及相关课程知识的理解,培养学生综合运用理论知识分析解决实际问题的能力。有助于提高学生的创新能力和创新意识。做好课程设计和教学工作,对实现专业培养目标、提高学生综合素质具有重要作用。2)通过课程设计进一步了解C+的基础知识。3)培养软件开发系统的观点和软件开发的总则规则,在此
2、过程中培养严谨的科学态度和良好的工作作风。初步掌握软件开发过程中的问题分析、系统设计、程序编码、调试、测试等基本方法和技能。4)精通C+知识在程序中的应用,了解书本知识在解决实际问题中的应用。2.本课程设计任务(一)问题描述 课程设计主题包括:编号、名称、关键词、实施技术、人员数量(由几个人完成)等信息。学生信息包括:学生证、性别、年龄、班级、专业等信息。(2)功能要求 添加功能:程序可以添加学生记录和课程设计主题记录,并提供选择界面供用户选择要添加的类别。添加记录时,学生ID和ID必须是唯一的。如果添加重复记录,则提示数据添加重复并取消添加。查询功能:可根据学号、学号、姓名等信息查询已添加的
3、学生及课程设计题目。如果没有找到,会给出相应的提示信息。如果找到,将显示相应的记录信息。显示功能:可以显示当前系统中所有学生的信息和课程设计主题信息,每条记录占一行。编辑功能:可以根据查询结果修改对应的记录,修改时注意学号的唯一性。删除功能:主要实现添加学生和课程设计主题记录的删除。如果当前系统中没有对应的记录,会提示“记录为空!”并返回操作。统计功能:可根据各种参数进行统计。根据课程设计题目的题目,可以统计选择题目的学生信息。保存功能:可以将当前系统中的各种记录保存到文件中,保存方式可以任意。读取功能:文件中保存的信息可以读取到当前系统中供用户使用。二、设计 1.整体设计 我们设计了一个程序
4、来保存学生的课程设计主题信息,并对学生的主题信息进行各种操作。该程序包括以下功能模块:1)学生信息添加模块:可以输入学生基本信息并保存到文件中间。2)查询模块:显示所有符合要求的课程设计信息。3)编辑模块:可以修改学生信息。4)删除模块:可以删除相应的学生信息。5)统计模块:可以根据各种参数进行统计。6)查看模块:显示所有课程设计主题的信息。7)退出系统。为了完善系统,我们还添加了登录界面。2.系统设计 1)类设计 定义一个学生班级Student,班级包括学号stuid、stuname、性别、年龄、班级、专业,以及所选课程的课程号couid、课程名couname、关键字keyword、实现技术
5、;Guanli,其成员函数包括输入函数到文件void write(int n);从文件中读取函数,int read();添加学生信息函数void add(),查询信息函数void search(),查询函数 void searchsid()按学号,查询函数void searchsname(),查询函数void searchcid()按标题号,查询函数void searchcname()按标 题名称;修改信息函数 void alter();删除信息函数 void del();统计函数 void total();显示函数 void display()和数据成员 Student stu50。2)功能
6、设计 void write(int n),将数据写入文件,打开文本文档,将数据输入到文本文档中;int read(),向文件写入数据,从文件中读取数据,打开文本文档,并输出文本文档中的数据;void add(),添加学生信息;void search()查询信息(可以根据学生的学号、所选课程号、课程名称查询信息);void alter(),修改学生信息;void del(),删除学生信息,根据输入的学生ID调用函数;void total(),统计学生信息(根据学生选择的课程名称统计);void display(),显示函数 用于显示所有学生信息;int main()主函数,显示主菜单,调用各个函
7、数实现所有功能。3)系统流程图 课程设计 学生选课系统设计结构图:进入功能界面后,可选择添加、查询、显示、修改、删除、统计、写入文件、读取文件等多项功能;查询功能 也可以分为按学号、科目号、科目名称等查询。如下图。主菜单 4)界面设计 主界面是“欢迎使用课程设计选课系统”,以下是要使用的功能:1.添加新记录 2.查询记录信息 3.修改学生信息 4.删除学生信息 5.统计所有记录 6.显示所有记录 0.退出系统 退出系统 显示所有记录 统计所有记录 删 除学 生信息 修 改学 生信息 查 询记 录信息 添 加新 的记录 按学号查询 按姓名查询 按编号查询 按名称查询 其中,查询记录可以弹出一个界
8、面,功能如下:1.按学号查询 2.根据查询 3.按号码查询 4.按主题名称搜索 每次执行一个功能,都会再次弹出主界面选择下一个功能。三、系统实现 1)类实现 班级学生 上市:int stuid;/学生号码 字符 stuname10;/字符性2;/性别 年龄;/年龄 字符类10;/班级 字符专业10;/专业的 整数;/标题号 字符 couname10;/标题名称 字符关键字20;/关键词 炭技术30;/实现技术 stu50;/定义对象 关里班 私人的:学生学习50;上市:无效添加();/添加学生信息 无效搜索();/查询信息 无效的searchsid();/根据学号查询信息 无效搜索名称();/
9、按名称查询信息 无效的搜索();/按主题号查询信息 无效搜索名称();/按主题名查询信息 无效改变();/修改信息 无效的德尔();/删除信息 无效总计();/统计数据 无效显示();/显示信息 无效写入(int n);/将数据写入文件 整数读取();/从文件中读取数据;2)功能实现 void Guanli:write(int n)fstream myfile;myfile.open(student.txt,ios:out|ios:binary);如果(!我的文件)cout文件无法打开!endl;中止();整数计数=n;我的文件countendlendl;for(int i=0;i=count
10、;i+)我的文件stui.stuid stui.stuname stui.sex stui.age stui.clas stui.specialty stui.couid stui.couname stu i.keyword stui.technology endl;我的文件.close();int冠礼:read()fstream myfile;myfile.open(student.txt,ios:in|ios:binary);如果(!我的文件)cout文件无法打开!计数;for(int i=0;istui.stuidstui.stunamestui.sexstui.agestui.clas
11、sstui.specialty stui.couidstui.counamestui.keywordstui.technology;coutendl;我的文件.close();返回计数;无效官立:add()int n=read();诠释我=0;字符符号;coutendl请输入已添加学生的相关信息:endl;而(符号!=N)环形:coutstui.stuid;cout endl;诠释 c=0;而(ci)C+;如果(stui.stuid=stuic.stuid)cout您输入的学号已经存在!请重新输入endl;转到循环;coutstui.stuname;coutendl;coutstui.sex;
12、coutendl;coutstui.age;coutendl;coutstui.clas;coutendl;coutstui.specialty;coutendl;coutstui.couid;coutendl;coutstui.couname;coutendl;coutstui.keyword;coutendl;coutstui.技术;coutendl;cout符号;/输入判断 我+;写(一);无效官立:search()int n=read();cout*(1)根据学号查询*endl;cout*(2)根据查询*endl;cout*(3)按号码查询*endl;cout*(4)按名称查询*end
13、l;coutendl;诠释 c;官立克;coutc;开关(c)情况1:g.searchsid();休息;案例2:g.searchsname();休息;案例3:g.searchcid();休息;案例4:g.searchcname();休息;默认:cout输入错误,请重新输入!endl;g.写(n);void Guanli:searchsid()int n=read();整数;诠释我=0;coutendl查找学生信息:endl;cout请输入您要查找的学生的学号:s;while(stui.stuid-s)!=0&in)i+;/寻找判断 如果(我=n)cout提示:对不起,找不到学生信息!endl;
14、别的 cout*endl;cout学生编号:stui.stuidendl;cout:stui.stunameendl;cout性别:stui.sexendl;cout年龄:stui.ageendl;cout类:stui.clas endl;cout专业:stui.专业endl;cout标题编号:stui.couidendl;cout标题名称:stui.counameendl;cout关键字:stui.keywordendl;cout实现技术:stui.technologyendl;void Guanli:searchsname()int n=read();字符 a10;cout请输入您要查找的
15、学生:一个;for(int i=0;in;i+)if(strcmp(stui.stuname,a)=0)cout*endl;cout学生编号:stui.stuidendl;cout:stui.stunameendl;cout性别:stui.sexendl;cout年龄:stui.ageendl;cout类:stui.clasendl;cout专业:stui.专业endl;cout标题编号:stui.couidendl;cout标题名称:stui.counameendl;cout关键字:stui.keywordendl;cout实现技术:stui.technologyendl;无效官立:sear
16、chcid()int n=read();诠释 b;诠释我=0;cout请输入您要查找的主题编号:b;while(stui.couid-b)!=0&in)i+;/寻找判断 如果(我=n)cout提示:对不起,找不到信息!endl;别的 cout*end l;cout学生编号:stui.stuidendl;cout:stui.stunameendl;cout性别:stui.sexendl;cout年龄:stui.ageendl;cout类:stui.clas endl;cout专业:stui.专业endl;cout标题编号:stui.couidendl;cout标题名称:stui.counamee
17、ndl;cout关键字:stui.keywordendl;cout实现技术:stui.technologyendl;void Guanli:searchcname()int n=read();字符 c10;cout请输入您要查找的主题的标题:c;for(int i=0;in;i+)if(strcmp(stui.couname,c)=0)cout*endl;cout学生编号:stui.stuidendl;cout:stui.stunameendl;cout性别:stui.sexendl;cout年龄:stui.ageendl;cout类:stui.clas endl;cout专业:stui.专业
18、endl;cout标题编号:stui.couidendl;cout标题名称:stui.counameendl;cout关键字:stui.keywordendl;cout实现技术:stui.technologyendl;void Guanli:alter()int n=read();整数;诠释我=0;coutendl修改学生信息:endl;cout请输入要修改学生的学号:s;while(stui.stuid-s)!=0&in)i+;/寻找判断 如果(我=n)cout提示:对不起,没有该学生的信息!endl;/输入失败信息 别的 cout学生信息:endl;cout学号stui.stuidnstu
19、i.stunamen性别stui.sexn年龄stui.agen班级 stui.clasn专业stui.specialtyn题目号stui.couidn 标题名称stui.counamen 关键字stui.keywordn实施技术stui.technologynendl;cout请重新输入学生信息endl;coutstui.stuid;coutendl;coutstui.stuname;coutendl;coutstui.sex;coutendl;coutstui.age;coutendl;coutstui.clas;coutendl;coutstui。专业;coutendl;coutstui
20、.couid;coutendl;coutstui.couname;coutendl;coutstui.keyword;coutendl;coutstui.技术;coutendl;字符 c;cout保存数据?(y/n)c;如果(c=y)cout修改成功!endl;写(n);无效官立:del()int n=read();整数;诠释 i=0,j;coutendl删除学生信息:endl;cout请输入要删除学生的学号:s;while(stui.stuid-s)!=0&in)i+;/寻找判断 如果(我=n)cout提示:记录为空!endl;/返回失败信息 别的 for(j=i;jn-1;j+)/删除操作
21、 stuj.stuid=stuj+1.stuid;strcpy(stuj.stuname,stuj+1.stuname);strcpy(stuj.sex,stuj+1.sex);stuj.age=stuj+1.age;strcpy(stuj.clas,stuj+1.clas);strcpy(stuj.specialty,stuj+1.specialty);stuj.couid=stuj+1.couid;strcpy(stuj.couname,stuj+1.couname);strcpy(stuj.keyword,stuj+1.keyword);strcpy(stuj.technology,st
22、uj+1.technology);cout提示:删除成功!endl;/返回成功信息 cout要删除的信息如下:endl;cout:stui.stunameendl;cout学生编号:stui.stuidendl;cout性别:stui.sexendl;cout年龄:stui.ageendl;cout类:stui.clasendl;cout专业:stui.specialtyendl;cout标题编号:stui.couidendl;cout标题名称:stui.counameendl;cout关键字:stui.keywordendl;cout实现技术:stui.technologyendl;写(n-
23、1);无效冠礼:total()int n=read();字符 c10;cout请输入您要查找的主题的标题:c;for(int i=0;in;i+)if(strcmp(stui.couname,c)=0)cout你要统计的信息如下:endl;cout:stui.stunameendl;cout学生编号:stui.stuidendl;cout性别:stui.sexendl;cout年龄:stui.ageendl;cout类:stui.clasendl;cout专业:stui.specialtyendl;cout标题编号:stui.couidendl;cout标题名称:stui.counameend
24、l;cout关键字:stui.keywordendl;cout实现技术:stui.technologyendl;别的 cout没有这样的记录!endl;无效官立:display()int n=read();coutendl显示所有学生信息:endl;如果(!stu)cout无记录endl;别的 for(int i=0;in;i+)/循环输入 cout学号stui.stuidnstui.stunamen性别stui.sexn年龄stui.agen班级 stui.clasn专业stui.specialtyn题目号stui.couidn 标题名称stui.counamen 关键字stui.keywo
25、rdn实施技术stui.technologynendl;3)主要功能实现 主函数()字符选择;coutnnt*欢迎使用课程设计课题管理系统*nn;coutt 1.*添加新记录*n;coutt 2.*查询记录信息*n;coutt 3.*修改学生信息*n;coutt 4.*删除学生信息*n;coutt 5.*统计所有记录*n;coutt 6.*显示所有记录*n;coutt 0.*退出系统*n;cout选择;官立克;如果(选择=0)coutntt 你正在使用这个系统!nnendl;退出(0);否则如果(选择=1)g.add();系统(“暂停”);主要的();否则如果(选择=2)g.搜索();系统(“
26、暂停”);主要的();否则如果(选择=3)g.alter();系统(“暂停”);主要的();否则如果(选择=4)g.del();系统(“暂停”);主要的();否则如果(选择=5)g.total();系统(“暂停”);主要的();否则如果(选择=6)g.display();系统(“暂停”);主要的();别的 coutt输入错误,请重新输入您的选择:;主要的();返回0;4.系统测试 1)添加功能 添加学生信息的界面如下图所示:2)查询功能 学生信息查询界面如下图所示:按学号查询:基于学生的查询:根据题目编号查询:根据题目的标题搜索:3)修改功能 修改学生相关信息,界面如下图:4)删除功能 删除指
27、定学生的信息,界面如下图:5)统计功能 根据题目标题统计学生信息,界面如下图:6)显示功能 显示所有学生信息,界面如下图:7)退出系统 退出使用系统,界面如下图:三、经验 在这次课程设计中,我终于成功实现了一个学生课程设计选 题系统的程序,这个任务一开始似乎很难完成。在做这个课程设计之前,我对课程设计有一种普遍的恐惧和抗拒,但是在查阅资料后,我们得到了一个大致的模式,当我们一步步开发自己的课程设计时,我们发现似乎很难不难。所以没有什么策略,只要我们有耐心,认真去做,认真询问同学和老师,我们就可以完成看似不可能的设计。在课程设计之前,对C+程序的理解只停留在阅读阶段,对编程实现的理解非常模糊。我只知道大概的意思。在课程设计的过程中,我意识到离独立编程还有很长的路要走。通过这次课程设计,我们一点一点的解决了遇到的问题,也学到了很多课堂和书本上学不到的知识。而且,我们对面向对象编程、类、数组、指针等一系列概念有了进一步的理解,也初步意识到了这些知识在实际应用中的作用。由于本人水平有限,在课程设计中参考了很多资料,在一些书籍中找到了解决问题的办法。我一边看书一边学习。经过多次修改和调试,我终于交出了一份自己的副本。比较满意的回答。通过这门课程,我进一步掌握了C+编程语言,对面向对象编程的思想有了更深入的了解。相信这对以后的学习会有帮助。在今后的学习中要继续努力。
限制150内