C课程设计报告学生选修课程系统设计.doc_第1页
C课程设计报告学生选修课程系统设计.doc_第2页
C课程设计报告学生选修课程系统设计.doc_第3页
C课程设计报告学生选修课程系统设计.doc_第4页
C课程设计报告学生选修课程系统设计.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计 报 告课程名称 C语言程序设计 课题名称 学生选修课程系统设计 专 业 软件工程 班 级 1班 小组成员 指导教师 章 2015年 6 月 26 日目 录一、需求分析4.总体功能设计4.各模块功能设计4二、总体模块功能框图5三、总流程图及各模块流程图6四、各模块主要功能的实现9显示模块9追加模块9查询模块9删除模块9修改模块9统计模块9五、程序调试9显示程序10添加程序10查询程序10删除程序10修改程序10统计程序10五、总结与心得体会17六、附件18.源程序18.注释30一、需求分析:.总体功能设计: 高校中学生信息包括:学号、姓名、性别、年龄、系别、班级、联系方式等信息。课程信息包括:课程代码、课程名称、课程性质、总学时、学分、开课学期、选修人数等信息。学生可对课程信息进行查询,选修符合要求的课程。根据课程信息和学生信息完成对课程的选修,需要专门的一个管理类来完成选修工作。.各模块功能:.显示模块:通过设计一个模块,可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。.添加模块: 通过设计一个模块,当要加入新的学生的信息的时候,来实现新学生信息的加入。iii.查询模块: 通过设计一个模块,这个模块可以按学生的学号、姓名、编号、名称来查询信息,显示学生的所有信息,课程的相关信,以便查询者阅读。 iv.删除模块: 通过设计一个模块,当输入一个学生的学号或者姓名的时候,可以通过这个模块,将输入学号或者姓名的学生的所有信息从数据库中删除出去。以后,这个学生的信息将不再会出现再数据库中。v.修改模块:通过设计一个模块,当某个人的信息发生变化的时候,可以通过修改模块来进行修改。vi.统计模块:通过设计一个模块,能根据多种参数进行统计。能按课程设计题目名称统计出学生选择该题目的人员的信息。二.总体模块框图: 主函数显示模块添加模块删除模块查询模块统计模块退出模块修改模块退出三、总流程图及各模块流程图.总流程图:.各模块流程图:1.删除程序:3查询程序:4录入程序5.添加程序6.统计程序四、各模块主要功能的实现I.添加模块创建一个myfile文件夹,确定文件夹的打开方式,向文件中添加学生信息,课程信息,一个信息一行,使信息显示清晰,一目了然,录入一个完整的信息后,提示是否继续录入,可以选择或者不继续。录入成功后,关闭文件,II.修改模块在主菜单界面时,输入3,先查找到所要修改的信息,然后确定修改,输入正确的信息,如果找不到信息则显示信息为空。III.查询模块定义函数searchsid,以学生学号来查询;定义函数searchsname,以学生姓名来查询;定义函数searchcid,以课程编号来查询;定义函数searchcname,以课程名称来查询;在查询时,如果没有所输入的学号,姓名,编号或者其他的,会显示查询出错,找不到所查询的信息。IV删除模块定义一个i,输入要删除的学生学号,然后按回车键,进行信息的查找,如果找不到,则显示记录为空,如果找到了,则显示删除成功,然后返回所删除的信息。V显示模块 定义一个display的函数,使其在主菜单界面时,输入6,开始显示所有信息。VI统计模块在主菜单中,输入5,则进入统计程序,输入需要查找的题目名称,如果找不到,则显示信息为空,如果找到了,则显示所有信息,一条信息一行,清晰明了。 五程序调试I.添加程序:1如果运行程序,将出现如下的界面:图1-12此时如果输入1,并按回车键,程序将开始进行信息的录入,举个例子,信息输入完成后,其显示界面如下:图12II查询程序:1 当在图12的前提下输入2,则程序开始查询,以学号来查询,若输入学号错误,则出现如下的界面:图2-12.在图1-2的前提下,输入2,则程序开始查询,输入正确的学号,则出现如下的界面:2-2III修改程序:1在图1-2的前提下,输入3,则程序开始修改,以张三为例,此时将正确的学生信息重新输入,输入完后将出现以下界面:图13IV删除程序:1 如果你在图11的界面下选择4,则进入删除程序,输入学号1,程序则将学号为1的人信息删除,并显示如下: 图41V. 统计程序:1.在4-1的基础上,选择5,则进入统计程序,输入诶木名称,显示界面如下;图5-1VI. 显示程序1.如果你在图51 界面下选择6,则进入显示程序,其界面如下:图6-1VI. 退出程序在6-1的基础上,选择0,则退出程序,显示如下;五.总结与心得体会 本课程设计中,我们终于成功地实现了一个学生课程设计选题系统的程序,一个一开始看来很难完成的任务。在做这个课程设计之前,我们对课程设计都有一种笼统的恐怕与抗拒,但在通过查阅资料,有了大概的纹路,一步步开展我们自己的课程设计时,我们们发现看上去的困难并不那么无法攻略,只要有耐心,细致往下做,悉心请教同学与老师,我们们能够完成看似无从下手的设计。在课程设计之前对C+程序的认识仅停留在看的阶段,而对编程实现的认识很模糊,只知道大概的意思,在课程设计期间才知道离独立编程还有很远的距离。通过这次课程设计,一点点解决所碰到的问题,我们们学到了很多在课堂和书本上学不到的知识。而且,我们对面向对象编程、类、数组,指针等一系列概念也都有了更进一步的认识,也初步意识到所学知识在实际应用中的作用。因为本人水平有限,在做课程设计是参考了很多资料,并在一些书籍中找到了解决问题的方法,在查阅书籍的同时进行学习,经过多次的修改与调试,最后交出了一份自己比较满意的答卷。通过这次课设,让我们进一步掌握了C+程序设计语言,更好的理解了面向对象的程序设计思想。我们相信这会对以后的学习有帮助作用。在以后的学习中应当继续努力。 通过课程设计,使我们对C+的运用有了更深刻的认识。使我们对C+的实践应用更加期待,更加好奇,我们相信C+对我们以后的人生将有很大痹益。在对C+的使用中,使我们对软件的认识也有了初步的了解。更是为我们以后学习的微机原理以及单片机原理奠定了基础。我们的专业是软件工程,主要是跟电子产品打交道,后面用到C+的地方还有许多,所以说,学好C+,为我们以后专业知识的学习有很大好处。在学习C+中更使我们体会到了学习计算机技术的乐趣,我们将更加努力多学,学好计算机技术。六.附件I.源程序类实现#include #include #include #include #include class Student public: int stuid;/学号char stuname10; /姓名char sex2; /性别int age; /年龄char clas10; /班级char specialty10; /专业int couid; /题目编号char couname10; /题目名称char keyword20; /关键词char technology30; /实现技术stu50; class Guanliprivate:Student stu50; public:void add(); /添加学生信息void search(); /查询信息void searchsid(); /按学号查询信息void searchsname(); /按名字查询信息void searchcid(); /按题目编号查询信息void searchcname(); /按题目名称查询信息void alter(); /修改信息void del(); /删除信息void total(); /统计信息void display(); /显示信息void write(int n); /向文件中写入数据int read(); /从文件中读数据;函数实现/* /向文件中写入数据void Guanli:write(int i)fstream myfile;myfile.open(student.txt,ios:out|ios:binary); if(!myfile)cout该文件不能打开!endl;abort();myfile.write(reinterpret_cast(&stui),sizeof(stui);myfile.close();/* /从文件中读数据int Guanli:read()fstream myfile;myfile.open(student.txt,ios:in|ios:binary);if(!myfile)cout该文件不能打开!endl;abort();int count=0,i=0;while(myfile.peek()!= EOF)myfile.read(reinterpret_cast(&stui),sizeof(stui);coutendl;i+;count+;myfile.close();return count;/* /添加学生信息void Guanli:add()int n=read();int i=0;char sign;coutendl请输入增加的学生的相关信息: endl;while(sign!=N)loop:coutstui.stuid;cout endl;int c=0;while(cn)c+;if(stui.stuid=stui-c.stuid)cout你输入的学号已经存在!请重新输入endl;goto loop;coutstui.stuname;coutendl;coutstui.sex;coutendl; coutstui.age;coutendl;coutstui.clas;coutendl; coutstui.specialty;coutendl; coutstui.couid;coutendl;coutstui.couname;coutendl;coutstui.keyword;coutendl;coutstui.technology;coutendl;coutsign; /输入判断write(i);i+; /* /查询信息void Guanli:search()int n=read();cout* (1)根据学号查询*endl;cout* (2)根据姓名查询*endl;cout* (3)根据编号查询*endl;cout* (4)根据名称查询*endl;coutendl;int c;Guanli g;coutc;switch(c)case 1:g.searchsid();break;case 2:g.searchsname();break;case 3:g.searchcid();break;case 4:g.searchcname();break;default:cout输入错误,请重新输入!endl;g.write(n);/* /按学生学号查询 void Guanli:searchsid() int n=read(); int s; int i=0; coutendl查找学生信息:endl; cout请输入需要查找学生的学号:s; while(stui.stuid-s)!=0&in) i+; /查找判断 if(i=n) cout提示:对不起,无法找到该学生的信息!endl; else cout*endl; cout学号: stui.stuidendl; cout姓名: stui. stunameendl; cout性别: stui.sexendl; cout年龄: stui. ageendl; cout班级: stui.clas endl; cout专业: stui. specialtyendl; cout题目编号: stui.couidendl; cout题目名称: stui.counameendl; cout关键词: stui.keywordendl; cout实现技术: stui.technologyendl; /* /按学生姓名查询 void Guanli:searchsname() 、 int n=read(); char a10; cout请输入需要查找学生的姓名:a; 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. specialtyendl; cout题目编号: stui.couidendl; cout题目名称: stui.counameendl; cout关键词: stui.keywordendl; cout实现技术: stui.technologyendl; /* /按题目编号查询 void Guanli:searchcid() int n=read(); int b; int i=0; cout请输入需要查找的题目编号:b; while(stui.couid-b)!=0&in) i+; /查找判断 if(i=n) cout提示:对不起,无法找到该信息!endl; else cout*endl; cout学号: stui.stuidendl; cout姓名: stui. stunameendl; cout性别: stui.sexendl; cout年龄: stui. ageendl; cout班级: stui.clas endl; cout专业: stui. specialtyendl; cout题目编号: stui.couidendl; cout题目名称: stui.counameendl; cout关键词: stui.keywordendl; cout实现技术: stui.technologyendl; /* /按题目名称查询 void Guanli:searchcname() int n=read(); char 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. specialtyendl; cout题目编号: stui.couidendl; cout题目名称: stui.counameendl; cout关键词: stui.keywordendl; cout实现技术: stui.technologyendl; /* /修改学生信息 void Guanli:alter() int n=read(); int s; int i=0; coutendl修改学生信息:endl; cout请输入需要修改学生的学号:s; while(stui.stuid-s)!=0&in) i+; /查找判断 if(i=n) cout提示:对不起,无该学生的信息!endl; /输入失败信息 else cout该学生的信息:endl; cout学号stui.stuidn姓名stui.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. specialty; coutendl; coutstui.couid; coutendl; coutstui.couname; coutendl; coutstui.keyword; coutendl; coutstui.technology; coutendl; char c; cout是否保存数据?(y/n)c; if(c=y) cout修改成功!endl; write(n); /* /删除学生信息 void Guanli:del() int n=read(); int s; int i=0,j; coutendl删除学生信息:endl; cout请输入需要删除学生的学号:s; while(stui.stuid-s)!=0&in) i+; /查找判断 if(i=n) cout提示:记录为空!endl; /返回失败信息 else for(j=i;jn-1;j+) /删除操作 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,stuj+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; write(n-1); /* /统计信息 void Guanli:total() int n=read(); char 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.counameendl; cout关键词:stui.keywordendl; cout实现技术:stui.technologyendl; else cout没有此条记录!endl; /* /显示学生信息 void Guanli:display() int n=read(); coutendl显示全部学生信息:endl; if(!s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论