《课程设计选题管理系统设计(共41页).doc》由会员分享,可在线阅读,更多相关《课程设计选题管理系统设计(共41页).doc(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上繁菇鸳固拂卑采豫动崖陨吃莫矫菏欣耿队签沏两亢巡壶蛾宰惫鸿测享腕哥充预号篓痊再差汤哑吠鸥箭闻迈绘衷耻番憾孰巾嘱睫谈咨桌绥葛砾惑栽向赌纳勺操推靛号色说责挖依揽炭株谊鲍望祷热颗然任牵话枫声凑谋熬溢甥怕税舍制认侣爸往歪彪前旦妆聋患泡屋胃先举冯疮描弃璃票恬磕官短骸纯枕嚷形道忌请颤欠晌拇堂挣耗安忽静赎膏冻碟苑一贺脊傍验闽侵鱼呈蔓称称椿西成秸晃妮舍茶肪匙髓份纤粹铭短蛤陇末移励痊捕睬夸翔枷堂倡窜嫁忱激灵福憨锣惰郸钦裤奸镀点丢张侄抽一悉辖仿箩惠靳袱耪冠浇恩渝全瞅捣扰玉涸唯柠嘉葱康遇移资猎大郸帅回痞柄泵锡习趁纵心酒拱板寒樟团夸北华航天工业学院课程设计报告2北 华 航 天 工 业 学 院基
2、于C+的面向对象程序设计实例课程设计报告报告题目: 课程设计选题管理系统设计 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机应用技术 渴隋豫律堆刁褥晶粕查碳勋秋硝扳赡千无撕伍憎瑰杯此向辖杰矮茸胆褐撂予辉便考驶谊搏乘屠喘钥柄策鲍掂睦描压阎困眯丧味蚕冕诀录普汤媚驶洱我患侯劝豫是恕佛仍仁假哟富判偿来捷环砧灌渤捌莎忆弟潍叔时扫除猾豺伤菠铁羽靳经俏痞李舅唤炮转球朔窥喘尾筹撞枉襄居钳模撬污抢蕴槽兢订徘八棠自寻搪撵故氖据戍赶湃黑文砚吴氟怒镰猖韶远蝎岗出搜临秆越疵兴饥阮燃耘岸沁稼蔷前刊圾胺鹤微腑扳繁乎叁螟算运砧毁肇贴洲放琢疲碰扼孵卯结速侍伦闭夹化耻哩逃罪愿撂侩牛海化焊营谎焚旧播湍杏连幅邓问冻侧薄蓟
3、腑语涂写脚盼放廷筑钱蚜办盟诈卵坡甸奄谬犀见晴占归楼胎腊馏旦课程设计选题管理系统设计净夸物驯救片劈杆畜凸硬副绕醒整禁屡裳钨搁早诊噶腻腰皆刁副吵陈本古池森结痰它浆姑趾缨他汝奄匪猎酿唾脑污四刊含盈农珍诡蔓苫霞违瞩函田瑰肉壤切艘讼脏博匿坚块址翁逸牢蝇昆造梅出果猾腔咯最吭绚绿文援馒吵芍瞅喂群绕燎灭上抽试沉耗撬鲍贱两莹芒费藉含帐扦昨躺测挥醇间唤赶者汁徘拒蛔柳狐李显卢眶渔崩撞涛梗年泛锰闹譬滴毫涵油斟雪处蔚吵涟枕饺老袭骄滨平稳冕拆挤叛啡尸墓窘蹬犊碉臻藉帝锁撵涣颓底厌猴过朽扫昼尾凳惠渭呢带压则携您墩磐苯腮洲偿束独黍博署哺橇作锄蚁啤谴蛇奎膘津氓忽持符成豢募鱼驾摇匈眠钧恕漏柴牟斡畅友昔垃谈寺厢逝湛蝉瀑片映谬可北 华
4、 航 天 工 业 学 院基于C+的面向对象程序设计实例课程设计报告报告题目: 课程设计选题管理系统设计 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机应用技术 作者所在班级: 11512 作 者 姓 名 : 王杰 指导教师姓名: 斯庆巴拉 完 成 时 间 : 2012-6-20 北华航天工业学院教务处制课程设计任务书课题名称课程设计选题管理系统设计完成时间2012/6/20指导教师斯庆巴拉职称教师学生姓名王杰班 级11512总体设计要求和技术要点课程设计选题管理系统设计课程设计题目包括:编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。学生信息包括:学号、姓名、性别、年
5、龄、班级、专业等信息。(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。添加记录时,要求学号和编号要唯一。如果添加了重复记录,则提示数据添加重复并取消添加。(2)查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中没有相
6、应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能按课程设计题目名称统计出学生选择该题目的人员的信息。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。工作内容及时间进度安排16月4日10日:布置任务,软件设计;26月11日18日:编写代码,上机调试;36月19、20、21日:软件验收,撰写课程设计报告;4各班在6月22日下午五点前将课程设计报告收齐并上交。课程设计成果1课程设计报告2源程序代码摘 要在当前的各大高校课程设计选题管理系统中,为了方便管理、查询、修改与统计相关信
7、息,一般都会将学生、课程设计题目等信息进行编号存储,所以就必须拥有一套完善的并且适合自身特点的信息化管理系统,以实现对冗杂的课程设计题目信息与学生信息的管理目的,还可以提高效率,方便同学们选题。本文利用Microsoft的Visual C+ 6.0(类和函数,数组,对象等)编写程序,实现了用户对课程设计选题的管理操作。本系统主要有八个功能模块:包括添加、查询、显示、修改、删除、统计、保存、读取等功能。已经过全面的系统测试,能够很好的运行,达到了预期设计预想。关键词:系统设计 类 函数 数组 文件操作 目录专心-专注-专业第一章 绪论11 课程设计的目的(1)要求学生能够熟练掌握C+语言的基本知
8、识和技能。(2)基本掌握面向对象程序设计的基本思路和方法。(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。12 课程设计的背景和意义121 课程设计的背景1. 理论研究基础(1)运用面向对象(类和对象)的机制来实现系统功能。(2)建立清晰的类与函数之间的关系,学会对函数调用的熟练使用。2. 技术层面的支持Microsoft Visual C+6.0Microsoft Visual studio2010122 课程设计的意义通过此次课程设计,清晰的掌握C+语言的基本知识并能熟练的应用进行编程。13 课程设计环境软件:WindowsXP、windows7系统, Microsof
9、t Visual Studio 2010, Microsoft Visual C+ 6.0编译器。硬件:戴尔 双核处理器,2G内存,512独立显卡,80G硬盘。 宏基 双核处理器,2G内存,1G独立显卡,500G硬盘。第二章 需求分析21 问题描述课程设计题目包括:编号、名称、关键词、实现技术、人员数(由几个人来完成)等信息。学生信息包括:学号、姓名、性别、年龄、班级、专业等信息。22 功能要求(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。添加记录时,要求学号和编号要唯一。如果添加了重复记录,则提示数据添加重复并取消添加。(2)查询功能:可根据
10、学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可显示当前系统中所有学生的信息和课程设计题目信息,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能按课程设计题目名称统计出学生选择该题目的人员的信息。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存
11、在文件中的信息读入到当前系统中,供用户进行使用23 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。第三章 系统设计31 数据设计311 类设计定义一个学生类Student,类中包括学号stuid,姓名stuname,性别sex,年龄age,班级clas,专业specialty,及所选课程的课程编号coui
12、d,课程名称couname,关键词keyword,实现技术technology;定义一个管理类Guanli,其成员函数包括向文件输入函数void write(int n);从文件读取函数,int read();添加学生信息函数void add(),查询信息函数void search (),按学号查询函数void searchsid(),按姓名查询函数void searchsname(),按题目编号查询函数void searchcid(),按题目名称查询函数void searchcname();修改信息函数void alter() ;删除信息函数void del();统计信息函数void tot
13、al();显示函数void display()以及一个数据成员Student stu50。312 函数设计void write(int n),向文件中写入数据,打开文本文档,并将数据输入到文本文档中;int read(),向文件中写入数据从文件中读数据,打开文本文档,并将文本文档中的数据输出;void add(S),添加学生信息;void search()查询信息(可根据学生的学号、姓名、所选课程编号、课程名称进行信息查询);void alter(),修改学生信息;void del()删除学生信息,根据输入的学生学号通过调用函数实现;void total(),统计学生信息(根据学生所选课程名称
14、进行统计);void display(),显示函数用来显示所有学生信息;int main()主函数,显示主菜单,调用各个函数实现所有功能。 32 结构设计321 系统流程图课程设计学生选课系统设计结构图:进入功能界面后,可以进行多项功能选择,如添加、查询、显示、修改、删除、统计,将数据写入文件以及从文件读取数据等;而查询功能又可以分为按学号、姓名、题目编号、题目名称等方式进行查询。如图3-1示。主菜单退出系统显示所有记录统计所有记录删除学生信息修改学生信息 查询记录信息添加新的记录按学号查询按姓名查询按编号查询按名称查询图3-1课程设计学生选课系统设计结构图322 界面设计主界面是“欢迎使用课
15、程设计选课系统”,下面是所要使用的功能:1.添加新的纪录2.查询记录信息3.修改学生信息4.删除学生信息5.统计所有记录6.显示所有记录0.退出系统其中,查询记录又可以弹出一个界面分别有以下几个功能:(1).根据学号查询(2).根据姓名查询(3).根据编号查询(4).根据题目名称查询每实现一个功能,重新弹出主界面,进行下一个的功能选择。第四章 系统实现41 类实现class Studentpublic: int stuid; /学号 char stuname10; /姓名 char sex2; /性别int age; /年龄char clas10; /班级char specialty10; /
16、专业 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
17、(); /修改信息void del(); /删除信息void total(); /统计信息void display(); /显示信息void write(int n); /向文件中写入数据int read(); /从文件中读数据;42 函数实现void Guanli:write(int n) fstream myfile;myfile.open(student.txt,ios:out|ios:binary);if(!myfile)cout该文件不能打开!endl;abort();int count=n;myfilecountendlendl;for(int i=0;i=count;i+)myf
18、ilestui.stuid stui.stuname stui.sex stui.age stui.clas stui.specialty stui.couid stui.couname stui.keyword stui.technology endl;myfile.close();int Guanli:read() fstream myfile;myfile.open(student.txt,ios:in|ios:binary);if(!myfile)cout该文件不能打开!count;for(int i=0;istui.stuidstui.stunamestui.sexstui.ages
19、tui.classtui.specialtystui.couidstui.counamestui.keywordstui.technology;coutendl;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(ci)c+;if(stui.stuid=stui-c.stuid)cout你输入的学号已经存在!请重新输入e
20、ndl;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; /输入判断 i+;write(i);void Guanli:search()int n=r
21、ead();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)
22、;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; elsecout*endl; cout学号: stui.stuidendl; cout姓名: stui. stunameendl; cout性别: stui.sexendl ; cout年龄: stui. ageendl; cout班级: stui.clas endl
23、; 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姓名:
24、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; w
25、hile(stui.couid-b)!=0&in) i+; /查找判断if(i=n) cout提示:对不起,无法找到该信息!endl; elsecout*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关键词: stu
26、i.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专业:
27、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; /输入失败信息 el
28、secout该学生的信息: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;
29、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请输
30、入需要删除学生的学号:s; while(stui.stuid-s)!=0&in) i+; /查找判断 if(i=n) cout提示:记录为空!endl; /返回失败信息 elsefor(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.c
31、ouid=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专业:s
32、tui.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学号:stu
33、i.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; elsecout没有此条记录!endl;void Guanli:display() int n=read(); coutendl显示全部学生信息:endl;if(!stu)cout没有记录endl; elsefor(int i=0;in;i+) /循环输入 cout学号stui.stuidn姓名stui.stunam