《2023年课设实验报告.docx》由会员分享,可在线阅读,更多相关《2023年课设实验报告.docx(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、北华航天工业学院基于C+的面向对象程序设计实例课程设计报告报告题目:课程设计选题管理系统设计作者所在系部:计算机科学与工程系作者所在专业:计算机应用技术作者所在班级:11512作者姓名:生亚军指导教师姓名:斯庆巴拉完成时间 :2 0 23 / &16北华航天工业学院教务处制1 .根据学号查询2 .根据姓名查询3 .根据题目编号查询.根据题目名称查询每实现一个功能,重新弹出主界面,进行下一个的功能选择。第四章系统实现4. 1类实现class Stu den t(pu b I i c:字符串数组学生/友元函数添加学生信息char stu 100;。friend vo i d ad d (St u
2、d ent stu);friend v o id ch a x un(S t u d ent s t u);友元函数查询学生信息f ri e n d vo i d chaxunl( S t ud e nt s tu );/ /查询学生信息(按学号)trie n d void c h axun2(S t u d ent stu );查询学生信息(按姓名)friend void chaxu n 3(S t udent s t u );查询学生信息(按题目编号)友元函数修改学f rien d voi d c h a xun 4 (S t u d ent s t u); 查询学生 信息(按题目名称)f
3、ri e nd voi d xiugai( S t u d e nt s t u);生信息友元函数删除学生。f rie n d v o id de 1 ( S tudent st u );信息friend vo i d t o tal(S t udent stu );/友元函数记录学生信息frie n d void display (S t ud e nt s t u );友元函数显示所有学生信息of r i e n d voi d Write ( S tudent s tu,i n t n);/ / 向文献中写入数据f r i end int Re a d(Stude n t stu );/
4、从文献中读数据p r i v ate:i n t n u m;/ / 学号charname10; / 姓名o ch a r x b 2 ;性别int ag e ; 年龄char clasl 0 ;班级 char profess 1 0;专业int bianhao; / /题目编号 c harxn amel 0 ;题目名称 s t u100: 定义对象4.2函数实现v oid Wr i t e (S t ude n t stu, int n ) 向文献中写入数据f stream myfil e ;myf i 1 e. o pe n (D: s t udent. txt , ios:out| i
5、os:bi n ar y );if(!m y f ile) cout”该文献不能打开!” e nd 1 ;。a b ort();i nt c o u n t = n;3 myfile count e n dlendl;for( i n t i = 0;i=c o unt;i+ + )m y f i I e s t ui. n um s tu i.n a me stui.xb stu i.age stu i . clas * stu i .profess stu i .b i anhao s tu i .x n ame end 1 ;myfile. closed;)in t ReadfStud
6、ent s t u) /从文献中读数据(f st ream m y f i I e ;myfil e . o pen( n D: s t udent.t x tz i o s : i n| i os:bina r y );。 if(!myfi 1 e )QCOutVV ”该文献不能打开!vcount;fo r ( i n t i = 0 ;i s t ui .numst u i . n am e s t u i.xbs t ui.a g est u i.clas s tu i.pr o fes s stu i .bian h aostu i.xnam e ;c o u ten d I; myf
7、ile.cl o s e ();re t u rn co u n t ;)void add (Stu d ent st u ) 添加学生信息(int n = R e ad (stu);int i=0;char sign;c outendl请输入增长的学生的相关信息:end 1 ;w h ile(si g n!=/ N)I o op:6 c o u t stu i .num;c o ut e n d I;int c = 0;。whi 1 e ( c i)(c+;。 。i f (stu i .num=s t ui -c .num)c O utV你输入的学号已经存在!请重新输入 s t u i. n
8、 a me;c out endl;cou t 性别:”;c in stui. xb;c o u t endl;cout “年龄:”;c i n s t u i. age;cout e n dl;cout s t u i . clas;cout e n d 1 ;cout ”专业:;c in st u i.p r o f ess;cout end 1 ;cou t V 题目编号:ci n s tui .bian h a o ;c o ut endl;cout s t u i . xnam e ;c out endl;C OU t 提醒:是否继续写入学生信息?(Y/N)”;0SC i nsig n
9、 ; / /输入判断。i+;Wri t e ( s tuj);)vo i d chaxun(Stude n t st u ) 查询学生信息(。in t n = R e ad(stu); cout * 1 根据学号查询* end 1 ;c o ut*2根据姓名查询 * u e n d I;co u t * 3 根据编号查询*endl;cou t n *【4】根据名称查询 *e n dl;。co u t e n d I;int c;coutc;sw i t c h(c)。case 1:c h a x un 1 (stu);。 b reak;ca s e 2 :ch a xun2(s t u );b
10、r e ak;c ase 3:c haxu n 3 (st u );o b r eak;c a se 4:cha x un4(stu);b r eak;default:3 c输入错误,请重新输入!”endl;。W rite(s t u,n);)void chaxu n l(Stu d ent s t u ) 按学号查询(int n = R e ad(s t u);。i nt s;3 int i =0;cou t en d l 查找学生信息:en d I;ocou t ”请输入需要查找学生的学号: Vs;while( stu i. num-s)! = 0&iocout V”提醒:对不起,无法找到
11、该学生的信息! Ve ndl;)。elseendl;。cout c o u t 学号:nstu i . n umen d I;c o u t “姓名:nameendl;cout 性别:stu i.xbendl ;c ou t 年龄:11 s t u i. a geendl;c o ut 班级: s t ui.clas e n d 1 ;c o ut 专业:stui . p r of e ss e n d I;c o ut ”题目编号:stu i .bianhaoe ndl;c out ”题目名称:stui.xnameend 1 ;。)vo i d chax u n 2( S tud e nt
12、s t u )/ /按姓名查询intn = Read(stu);cha r a 1 0;。co u t“请输入需要查找学生的姓名:“endl;ci n a:for(int i = 0; in;i+ + )。if (strcm p (stu i .nameza)=0)(c o u t- - - - - - - - - V e nd 1 ;cou t 学号:Vstui.numendl;co ut 姓名:stu i . nameen d I;cout “性别:stu i.x b e n dl;cout“年龄:s t ui. a gee n dl;co u t 班级:s t u i.clas e n
13、dl;c o u t “专业:s t u i. pro f essendl;cout 题目编号: s tu i.bianhaoe n d 1 ;cout 题目名称:st u i.x name end I;)v oid cha x un3( S tudent s t u )按题目编号查询(in t n =R e a d ( s t u );int b;i n t i = 0;c o ut”请输入需要查找的题目编号:e n dl;cinb;whi 1 e(stui . b i a nh a o- b ) != 0 &i n ) i+; / / 查找判断 if(i=n)(。co utV提醒:对不起,
14、无法找到该信息!”Ve n d 1 ;。e 1 se。cout-V e n dl;oocou t “学号:stu i .numendl;c out 姓名:namee n d 1 ;c ou t 性别:stui. xb e n dl;cout “年龄:s t u i . a gee n dl ;c o ut “班级:Vstui.c 1 as en d I;c o ut V 专业:stui. p rofe s sen d I;cou t v”题目编号:st u i. b i a nhaoe n d I;co u t ”题目名称:Vs t u i. x name e nd 1 ;)vo i d ch
15、axun 4 (S t udent s t u)/按题目名称查询 i n t n = Read(stu);char c 1 0 ;。cou t 请输入需要查找的题目名称: endl;o cinc;for (i n t i =0; in;i + +)if( s trcm p (stui.x n ame,c) = =0)(c o u t V- - e ndl;oocout 学号: stui. num end 1 ;co u t 姓名: s tu i . name e ndl;cout 性别:st u i ,x b e n d 1 ;c out V 年龄:. a ge e ndl;co u t 班级
16、:s t ui.cl a s end 1 ;c out “专业:stui. prof e s sen d I;cout 题目编号:stui.b i an h aoendl;cout ”题目名称:V V s tu i .x n a meendl;)void xi u gai(St u den t stu)修改学生信息在当前的高校课程选课系统中,往往需要对学生进行编号以便于管理和记录工作,所 以就必须拥有一套完善的并且适合自身特点的信息化管理系统,以实现对冗杂的选课及编号 的管理忖的,还可以变得更有效率。本文运用Micros。f t V i sual C+(类和函数,数组,对象等)编写程序,实现了
17、学 生选课系统的统一管理。本系统重要有八个功能模块:涉及添加,查询,修改,删除,记录,保存,读取等功能。已 通过全面的系统测试,可以很好的运营,达成了预期的效果。关键词:程序设计 类 函数记录友元i n t n= Re a d( s t u );。i nt s ;* i n t i=0;couten d l修改学生信息:V end 1 ;3 C o ut请输入需要修改学生的学号:endl;ci n s;while ( s t u i .num-s)!= 0 &in) i+;查找判断i f (i=n)(c outV”提醒:对不起,无该学生的信息!en d I; 输入失 败信息。el s e。c
18、o ut该学生的信息:vV e ndl;c o u tV“学号 ” st u i. n umnV V姓名V s tui .name n 性别i .xb, n “ 年龄”stui.ageV 班级 V stu i .clasn, Vv专业Vstui. p rofes s “题目编号stui.bia n h aon题目名称stui.x n am e r nend 1 ;。co u t 请重新输入该学生的信息”endl;ocout V“学号:;cin stui. num ;co u t e n d 1 ;cout “姓名:”; c in s tui. name;c o ut end 1 ;cout s
19、tu i .xb;co u t e n dl;c o u t 年龄:;cin st u i . a ge;cou t end 1 ;co u t ”班级:;c in stui. cl a s ;cout e ndl;cou t ”专业:;cin st u i, pro fes s ;cout e n dl;c o ut s t u i . b i anha o ;cout end 1 ;c ou t ”题目名称:;c i n s t u i.xname;cout e n d I;char c;cout是否保存数据? ( y/n)c;i f (c=y)8 111修改成功!“。ndl;W r it
20、e( stu ,n);v oid de 1 (Stud ent stu )int n =R e a d(stu);3 i nt s;in t i =0J;cout end I V”删除学生信息:Ve n d I;c。请输入需要删除学生的学号:s; whil e ( s tui. n ums) !=0& &i n ) i+; 查找判断0 i f(i=n)c out”提醒:记录为空! ! e nd 1 ;/返回失败信息)e Ise。,for(j二i; jVnl;j+) 删除操作6 stuj. n u m=stuj+l. n um;strep y ( s t u j. name,st u j+l .
21、 n a me);s trepy (stuj. x b ,st u j+l.xb);。stu j. a g e=stu j +l.age;flstr cpy(s t uj.clas,st u j + l.cla s );strepyf stu j.profe s s,stuj+l . p r of e s s );s tu j . b i a n ha o =s t uj+l.b i a n h ao;s trc p y(stu j . xname, s tuj + l. x name);o coutiggg:已成功删除!“endl;/返回成功信息。 cout 你要删除的信息如下: e n d
22、l;c out 姓名 : stui.n a m e e n dl;cou t 学号 : stui. n um e n d I;cout 性别:H s tu i .xb en d 1 ;cout 年龄 :V stu i.age endl;c o ut 班级 :s t ui.c 1 a s endl; o co u t ”专业 : st u i .p r o f e s s endl;cou t 题目编号 : s t ui. bianhao e ndl; cout 题目名称:V stu i . x name e ndl;Wr i te( s t u , n-1);)void tota 1 ( St
23、 u dent s tu)记录学生信息(int n =Rea d ( s tu);char c10;。c out 请输入需要查找的题目名称:c;for(int i =0;i n ; i + +)iff s t r cmp(stui. xname,c) =0)。cout 学号:stu i .num e n d I;c o u t 姓名:stu i. nameendl;cout ”性别:n stui. x b end 1;cout V 年龄: s tu i. ageendl;co u t 班级:stu i .clas e n d I;cou t 专业:stu i . pro f esse n dl
24、;cout ”题目编号:stui .bianhao e ndl;cout ”题目名称: s t u i .xn a meendl;。cout选择该题目的人数为: Vi+le n dl;)vo i d d isplay(Stude n t stu ) / /显示所有学生信息 i n t n=Re a d(stu);c o u t e ndlV V”显示所有学生信息: Ven d I;if(!stu)c out没有记录V e ndl;el s efor(int i = 0;in; i +)循环输入ocoutVc”学号stui .num, n姓名stu i .name 性别 s tu i.xbn,年
25、龄stu i .agen 班级”V。 s tu i .cla s V n V“专业i . p ro f e s s nz题目编号stu i .bianhao n 题目名称 st u i. xname4. 3主函数实现int xmenu ()c o u t e n dl u*欢迎使用课程设计选课系统* *“ e nd 1 ;cout”t 1 .添加新的记录endl;cout t 2 .查询记录 Vvendl;cout t3.修改学生相关信息”V e nd 1 ;co u t t 4.删除学生记录”en d I;cout t 5.记录所有记录e n d I;cout t 6.显示所有记录Vendl
26、;c o ut t 0 .退出系统Vve n dl;c o ut* * * *coutVV”请输入您的选择:”;c i nc;。whil e (c6);return(c);)void ma i n ()o f o r (;)/* * * * * * * * * * *主菜单循环* switch (xmenu() c a se 1:a d d ( stu);b r eak;。case 2 :ch a x u n ( s t u );break;ca s e 3:。x i ugai(s t u);。b r eak;c a se 4:d el (stu);。bre a k;c ase 5:。t o
27、ta 1 (stu);o break;。case 6:o d is p 1 ay( s tu);sob reak;。c ase 0:coutendl *感谢使用课程设计选课系统,再见!*e n d 1 ;exit (0);第五章系统测试5. 1模块测试1.添加功能添加学生信息界面如图5T示。兴兴兴兴兴兴兴兴欢迎使用课程设计选课系统共兴兴兴兴兴兴兴.添加新的记录1 .查询记录.修改学生相关信息2 .删除学生记录.统一所有记泉3 .显示所有记录。.退出系统请输入您的选择:1请输入增加的学生的相关信息:学号:1姓名:张三性别:男年龄:21班级:11231专业:金融题目编号:2题目名称:应用提示:是否
28、继续写入学生信息?(Y/N)Y学号:2图5-1添加学生信息2.查询功能查询学生信息的界面如图5-2示。* 【1】根据学号查询兴兴 【2】根据姓名查询 * 【3】根据编号查询兴m 【4】根据名称查询共请输入选择:.图5-2 查询学生信息(1)根据学生学号进行查询,界面如图5-3示。1根据学号查询2根据姓名查询3根据编号查询【4】根据名称查询请输入选择:1生需1张男21W金号称学入编名找输号名别龄级业目目查请学姓性年班专题题信要三号 学 的 生 学 .找 息查图5-3根据学生学号查询学生信息(2)根据学生姓名进行查询,界面如图5-4示。目录摘要。1第一章绪论。错误!未定义书签。1 . 1课程设计的
29、目的错误!未定义书签。1.2课程设计的背景和意义错误!未定义书签。1.2. 1课程设计的背景,错误!未定义书签。1. 2.2课程设计的意义错误!未定义书签。1.3课程设计环境错误!未定义书签。第二章需求分析错误!未定义书签。2.1 问题描述错误!未定义书签。2.2 功能规定。错误!未定义书签。2.3 问题的解决方案。错误!未定义书签。第三章系统设计错误!未定义书签。3.1 数据设计。错误!未定义书签。3. 1. 1类设计。错误!未定义书签。3.1. 2函数设计。错误!未定义书签。3. 2结构设计。错误!未定义书签。系统流程图。错误!未定义书签。3. 2. 2界面设计错误!未定义书签。第四章系统
30、实现。错误!未定义书签。4.1 类实现错误!未定义书签。4.2 函数实现错误!未定义书签。请输入选择:2查找学生信息请输入需要看找学生的姓名:李四学号:2姓名:李四性别:男.年龄:22班级:11112% 3k:机械题目编号:1题目名称:选择图5 4根据学生姓名查询学生信息根据题目编号进行查询,界面如图5-5示。请输入选择:31 2 E 信要三23融.: 生需1张男2111金号称 学入编名 找输号名别龄级业目目 查请学姓性年班专题题1 2 E 信要三23融.: 生需1张男2111金号称 学入编名 找输号名别龄级业目目 查请学姓性年班专题题图5-5根据题目编号查询学生信息(4)根据题目名称进行查询
31、,界面如图5-6示。请输入选择:4查找学生信息请输入需要骞莪的题目名称:选择 学号:2 姓名:李四 性别:男.年龄:22 班级:“112 专业:机械 版目编号:1 题目名称:选择 学号:3 _ 姓名:王丽 性别:女F 年龄:20 班级:11321 专业:会计 麻目编号:1 题目名称:选择图5 -6根据题目名称查询学生信息3.修改功能修改学生的相关信息,界面如图5-7示。修改学生信息:请输入需要修改学生的学号:3 该学生的信息: 学号3 _ 姓名王丽性别女V 年龄20 班级11 321 专业会计 题目编号1 题目名称选择请重新输入该学生的信息 学号:12姓名:we性别:mam年龄:22班级:11
32、251专业:经管题目编号:4题目名称:辨析是否保存数据?(y/n)修改成功!图5-7修改学生的相关信息4.删除功能删除学生的信息,界面如图5-8示。删除学生信息:请输入需要删除学生的学号:1提示:已成功删除!你要删除的信息如下:姓名:李四学号:2性别:男.年龄 :22班级 :11112专业:机械施自编号:1 题目名称:选择图5-8删除学生的信息5 .记录功能根据题目名称记录学生的信息,界面如图5-9示。要 25管:目 需12klema2211经号称题 入 编名该 输析号名别龄级业目目荐 请辨学姓性年班专题题选图5- 9根据题目名称记录学生的信息显示所有学生的信息,界面如图5 -1 0 /Ko息
33、俘生 择 学 2 1选 部四11械号称 全2李男2211机编名 示号名别龄级业目目 显学姓性年班专题题学号12 旌名we 性别同 年龄22 班级11251 专业经管 独自编号4 题目名称辨析图5-10显示所有学生的信息0.退出系统退出使用系统,界面如图5T1示请输入您的选择:。感谢使用课程设计选课系统,再见豚右Press any key to continue图5-10退出使用系统5.2课程设计过程中碰到的问题类的定义要声明对象,此外,在定义函数时,必须要声明为友元类,否则不能调用。 此外,写入文献的数据在显示时只能显示第一个数据,需要用到f。r循环语句。 注意数据成员的类型,字符串型或整形等
34、,一定要注意数据类型的匹配,否则不报 错,但是在执行程序时却不能对的执行等等。th 幺上心 +口本系统完毕了学生选课信息的所有功能,添加学生信息,查询学生信息,修改学 生信息,删除学生信息,记录学生信息,显示所有学生的所有信息等功能,并将所 有信息写入文献,并在需要时从文献读出。由于以前没有作过课设,也没有任何经 验,刚刚接手这个程序设计题目时,对自己学的知识不知道该如何的去运用。通 过两星期的C+ +语言程序设计实习,逐渐对C+语言程序设计这一门课程有 了更深一步的结识。此程序的优点在于操作简朴,易懂,且界面清楚。在文献的操作时有过一些错 误,在文献的输入输出方面欠缺颇多。致谢课程设计比平时
35、上课时要难,没有认真分析就开始写代码,都是想到哪写到 哪,没有完整的思绪,以至错误百出。结识到自己的错误后踏下心来认真分析程序的规定,对其中各种函数用到 的知识进行回忆与查找,并借助图书馆的一些参考资料。编写程序的时候碰到 了很多问题,有的自己解决,有的求助于老师和同学。在大家的帮助下完毕了课 设,感到不久乐。所以,在此真挚的感谢帮助我的所有人,谢谢你们!参考文献1 蒋立翔.C+程序设计技能百练.北京:中国铁道出版社,2 02 32刘丽华.C+面向对象程序设计.北京:人们交通出版社,2 02 33张莉,段清玲,陈雷.c/c + +程序设计教程.北京:清华大学出版社,202 34董宁,陈丹.C+
36、面向对象程序设计.北京:中国水利水电出版社,2 0 2 35安志远,贾振华.c + +程序设计基础.北京:高等教育出版社,2023# include # i n clu d e # in c lud e / a bo r t, e x i 函数# i n clud e / /#includ e vst d io.h /C 语言/u s in g namespace std;cl a ss Stu dentpubli c :f r iend v oid a d d( S tu d ent stu);f riend v oid c h ax u nfStudent s tu 口);friend v
37、 o id c h axunl( S tudent s tu);trie n d v o id c hax u n 2 (Student s tu );fr i en d vo i d chaxun3( S t ud e n t s tu);frien d void ch a x un4(Studen t st u );f rien d void x i u g a i (Stu d ent st u );f rie n d vo i d del (Student stu );f r iend v o i d t o tai (Student stu);friend void d i s p
38、lay(Stud e nt stu ); friend voi d Write(Stud e n t s t u, i n t n );/向文献中写入数据f r ie n d i nt Re a d(Stud e n t stu );从文献中读数据p r i v ate:i nt num;c har n ame 20;char xb 2;n t age; char c 1 as10; char p ro f e s sl 0 ;int bianh a o ;cha r xname10; s t u 10 0; /定义对象v o id Writ e (Stud e nt s t u Jnt n
39、)向文献中写入数据4.3主函数实现错误!未定义书签。第五章 系统测试。错误!未定义书签。5. 1模块测试。错误!未定义书签。5. 2课程设计过程中碰到的问题错误!未定义书签。总 结错误!未定义书签。致谢。错误!未定义书签。参考文献错误!未定义书签。附录错误!未定义书签。fst r earn m y f i Ie;myfile. o pen( D :stud e nt. txt,ios:o u t| io s : : b i n ary) ; / /以 二进制写的方式打开文献if(! myfile)c out 该文献不能打开!”end 1 ;o o a b ort();i nt count= n
40、 ;m y f ilec o unten d len d I;o r (i n t i=0;i=cou n t; i +)myfi 1 e stui.num s tui. n a m e s tui .xb stu i.age s t ui.c 1 a s s t u i.prof e s s stui.bi a nhao stu i . xname endl;myf i Ie. c I o s e ();)i nt Read (Stud ent s tu) 从文献中读数据(fstrea m myf i I e ;my f ile.op e n(D:student.t x t ,i o s:: i n I i os:bin a r y ); / / 以二进制写的方式打开文献。i f (!myfiIe)0 colit该文献不能打开!e n d 1 ;。abo r t(); )o int c o u n t ;。m y fil e . se e kg(