2022年C++教务管理系统程序报告 .pdf

上传人:C****o 文档编号:24120015 上传时间:2022-07-03 格式:PDF 页数:33 大小:361.11KB
返回 下载 相关 举报
2022年C++教务管理系统程序报告 .pdf_第1页
第1页 / 共33页
2022年C++教务管理系统程序报告 .pdf_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《2022年C++教务管理系统程序报告 .pdf》由会员分享,可在线阅读,更多相关《2022年C++教务管理系统程序报告 .pdf(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、二一二 二一三学年第二学期信息科学与工程学院面向对象C+ 语言课程设计报告课程名称:面向对象 C+ 语言课程设计名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告2 目录1. 需求分析32. 总体设计43. 详细设计54. 调试测验65. 测试结果66. 心得体会127. 相关附录13名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选

2、学习资料 - - - - - - - - - - - - - - - 第 2 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告3 . 需求分析(1)问题描述 : 设计一个学生信息管理系统,能录入、修改、添加、删除、查询、显示学生信息。并将学生信息在文件中保存。(2)应用价值 :能作为一个有效管理学生信息的系统。可以储存学生的姓名、学号、性别、年龄、住址、各科成绩。这在现实中对学生信息的管理也有极其重要的应用价值。可以有效的保存学生信息,应用于教务管理。(3)限制条件:因为刚接触C 语言不到,两个学期。所以所做程序难免会有一些瑕疵。在次列举其中的一些限制条件。我所设

3、置的录入学生信息的函数必须由学号由小到大录入,这是为了配合后面的修改、添加、删除查询功能。因为后面几个功能实现的方法就是由学号从小到达找所要修改的那一个结点。另一个问题就是学号的首位不可以为零,否则的话就无法显示首位。对于这一问题,我还没有想到更好的解决方法。不过在现实应用中,很少出现学号首位为零的情况。因此也就不会太影响使用价值。最后一个问题,就是如果输入的数据类型与定义的不符,就可能引起系统崩溃。因此,用户在录入信息时应特别注意数据类别。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - -

4、- - - - - 第 3 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告4 总体设计(1)程序设计组成框图(2)流程图4、输入要删除的学生的学号, 删除学生信息菜单1.输入学生信息2.插入学生信息3.修改学生信息4.删除学生信息5.显示学生信息6.查询学生信息7.退出5、显示学生的姓名、性别、学号、地址、成绩2、输入要插入学生的学号,填加信息6、输入你要查找 学 生 姓 名 或学号, 修改学生信息3、按学生的学号或姓名来修改学生的相关信息7、退出系统学生信息管理系统功能模块图1、 输入学生的信息:姓名、性别、学号、地址、成绩名师归纳总结 精品学习资料 - -

5、- - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告5 详细设计函数功能student *creat(void)用于创建链表,不需要参数,返回链表头指针,在输入学生信息时调用。student *del(student*,long)用于删除结点,参数为头指针及要删除学生的学号,返回头指针。在删除学生信息时调用。student *insert(student *,student *)用于插入结点,参数为头指针及类的指针,返回头指

6、针。插入学生信息时调用。student *correct_num(student *,long)用于修改结点,参数为头指针及学号,返回头指针。按学号修改学生信息时调用。student *correct_nam(student *,string)按姓名修改学生信息时调用。student *search_num(student *,long)用于查找结点,参数为头指针及学号,返回头指针。按学号查找学生信息时调用。开始输 入 学 生 信 息修 改插 入删 除查 询退 出显示结束名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - -

7、 - - - - - - - - - - - - 第 5 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告6 student *search_nam(student *,string) 用于查找结点,参数为头指针及学号,返回头指针。按姓名查找学生信息时调用。int save(student *head)用于将指针数据存放到文件中。void print(student*)参数为头指针,用于输出各结点数据。调试测验通过输入学生信息,再修改、删除、添加、查询,最后输出。检查是否满足预期结果,不满足则重新完善。过程中也遇到许多问题。其中之一就是在执行查询、添加等功能是出现

8、程序停止工作的情况。最后才发现在进行判断时,将head=NULL误输为 head=NULL,将链表转化为了空链表,当然无法工作啦。在其他细节方面,也出现了类似的错误。因此,编程要特别仔细,一个小小的错误,都可能使整个程序毁于一旦。测试结果(1)首页名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告7 (2)输入非选项中的的数字(3)录入信息名师归纳总结 精品学习资料 - - - - -

9、- - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告8 (4)插入信息(5)显示信息名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告9 (6)删除信息(7)修改信息名师归纳总结 精品学习资料 - - - - - - - - -

10、- - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告10 (8)查询信息(9)查询学生学号不存在时名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告11 (10)显示信息(11)退出系统名师归纳总结 精品学习资料 - - - - - - - -

11、 - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告12 心得体会耗时将近两周的C+ 程序设计即将画上句号。这也是我接触过的最复杂的程序。 要想一步完成如此繁琐的程序是不可能的。因此必须有合理的规划, 列出框架。再分别用函数来实现各个功能。然后就是细化的工作, 要分别设计各个函数,这也是最关键的一步。既要注意各个函数的独立性,又要注意他们之间的关系和在整个程序中的作用。 最后将各不分有机结合为宜各整体。再通过不断的调试、完善,最后达到预期的效果

12、。当然,最困难的部分就是修改。面对一个个问题,你需要不断的检查,在繁杂的程序中发现那一个错误。这过程虽然是困难的,必须非常仔细,绞尽脑汁想各种错误的原因,最后解决问题。当问题被解决的那一刻, 心中会由然而生出一种成就感。这也是程序设计带给我的快乐。 在今后的学习生活中,我将投入更多时间名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告13 到 C+ 程序设计中,这样设计程序将会更加得心

13、应手。程序设计就是这样一门神奇的课程,只有勤于思考,刻苦钻研,勇于创新才能,才能设计出满意的程序。相关附录#include #include #include #include using namespace std; #define NULL 0 class student /定义类public: long num; char name20; int age; char sex20; char address30; float computer_score; float math_score; float English_score; student *next; ; 名师归纳总结 精品学习

14、资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告14 int n; / 定义主函数int main() student *creat(void); student *del(student*,long); student *insert(student *,student *); student *correct_num(student *,long); student *correct_nam(stud

15、ent *,string); student *search_num(student *,long); student *search_nam(student *,string); int save(student *head); void print(student*); student *head=NULL,*stu; long del_numb,correct_numb,search_numb; int choose,a; string search_name,correct_name; start:cout* 学 生 信 息 管 理系统 * endl;/ goto指向的位置 cout*

16、 * endl; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 14 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告15 cout* 1.输入学生信息*endl; cout* 2.插入学生信息*endl; cout* 3.修改学生信息*endl; cout* 4.删除学生信息*endl; cout* 5.显示学生信息*endl; cout* 6.查询学生信息*endl; cout*7. 退 出*endl; cout 请输入您的选择

17、(1-7):choose; switch(choose) /选择结构,选择要进行的操作 case 1: system(cls); /系统清屏 cout输入学生信息 :endl; head=creat();/调用函数,建立链表 system(cls); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 15 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告16 goto start;/返回目录 break; case 2: system(c

18、ls); coutendl输入要插入的学生信息 :; stu=new student; /新建结点 coutstu-num; coutstu-name; coutstu-age; coutstu-sex; coutstu-address; coutstu-computer_score; coutstu-math_score; coutstu-English_score; while(stu-num!=0) /结点学号不为空时插入名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - -

19、 - 第 16 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告17 head=insert(head,stu);/调用函数,插入结点 save(head);/将数据储存在文件中 coutendl输入要继续插入的学生信息:; stu=new student; coutstu-num; /输入结点相关信息 coutstu-name; coutstu-age; coutstu-sex; coutstu-address; coutstu-computer_score; coutstu-math_score; coutstu-English_score; system(c

20、ls); goto start; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 17 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告18 break; case 3: system(cls); coutendl输入要修改信息学生的学号/ 姓endl; cout按学号查询输入 1, 姓名查询输入 a; if(a=1) coutendlcorrect_numb ; head=correct_num(head,correct_numb);

21、 / 按学号修改学生信息 save(head); if(a=2) coutendlcorrect_name; head=correct_nam(head,correct_name); / 按姓名修改学生信息 save(head); system(cls); goto start; break; case 4: system(cls); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 18 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告

22、19 coutendldel_numb; while(del_numb!=0) head=del(head,del_numb); save(head); coutdel_numb; system(cls); goto start; break; case 5: system(cls); cout学生信息如下: endl; system(cls); print(head); system(pause);/运行停在当前页面 system(cls); goto start; break; case 6: system(cls); coutendl输入要查询信息学生的学号/ 姓名:endl; 名师归纳

23、总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 19 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告20 cout按学号查询输入1,姓名查询输入2:a; system(cls); if(a=1) coutendlsearch_numb; head=search_num(head,search_numb); / 调用按学号查询函数 if(a=2) coutendlsearch_name; head=search_nam(head,search_

24、name); / 按姓名查询学生信息 system(pause); system(cls); goto start; break; case 7: system(cls); cout按任意键退出程序! ; exit(0);break;/调用系统函数 exit,运行结束 default:coutendl请重新选择 1-7 中的数字! ; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 20 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告

25、21 / 输入非选项数字时,返回主菜单 system(pause); system(cls); goto start; break; return 0; / 创建链表的函数 student *creat(void) ofstream outfile(f1.dat,ios:out);/打开文件 if(!outfile) cerr打开失败 endl; exit(0); student *head; student *p1,*p2; n=0; p1=p2=new student;/新建对象 coutp1-num; outfilenum ; /将数据存入文件 coutp1-name; outfilen

26、ame ; coutp1-age; outfileage ; coutp1-sex; outfilesex ; coutp1-address; outfileaddress ; coutp1-computer_score; outfilecomputer_score ; coutp1-math_score; outfilemath_score ; coutp1-English_score; outfileEnglish_scorenum!=0) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - -

27、- - - - - - 第 22 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告23 n=n+1; if(n=1) head=p1; else p2-next=p1;/p1指向下一个结点 p2=p1; p1=new student; coutp1-num; outfilenum ; coutp1-name; outfilename ; coutp1-age; outfileage ; coutp1-sex; outfilesex ; coutp1-address; outfileaddress ; coutp1-computer_score; 名师归纳总结 精品

28、学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 23 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告24 outfilecomputer_score ; coutp1-math_score; outfilemath_score ; coutp1-English_score; outfileEnglish_scorenext=NULL; outfile.close();/关闭文件 return(head); / 保存文件的函数 int save(stud

29、ent *head) ofstream outfile(f1.dat,ios:out); if(!outfile) cerr打开文件出错! endl; exit(0); student *p1=head,*p2; if(head=NULL) cout列表为空! endl;return 0; dooutfilenum name age 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 24 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告2

30、5 sex address computer_score math_score English_score; / 将链表数据存入文件 p2=p1;p1=p1-next; while(p2-next!=NULL); outfile.close(); return 0; / 删除数据的函数 student *del(student *head,long num) student *p1,*p2; if(head=NULL) cout列表为空 !num&p1-next!=NULL)/按学号从小到大查找 p2=p1;p1=p1-next; if(num=p1-num) if(p1=head)head=

31、p1-next;/如果找到 else p2-next=p1-next; cout删除的学号: numendl; n=n-1; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 25 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告26 else cout不能找到此学号的学生:next=NULL; else while(p0-nump1-num)&(p1-next!=NULL) p2=p1; p1=p1-next; if(p0-numnum

32、) if(head=p1)head=p0;/p1学号最小,则作为头指针 else p2-next=p0;/否则插入中间 p0-next=p1; else p1-next=p0;p0-next=NULL;/如果最大,则放在最后 n=n+1;/记录结点数名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 26 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告27 return(head); / 按学号修改学生信息的函数 student *cor

33、rect_num(student *head,long num) student *p; if(head=NULL) cout列表为空 !num&p-next!=NULL) p=p-next; if(num=p-num)/遭到后重新录入学生的信息 coutp-num; coutp-name; coutp-age; coutp-sex; coutp-address; coutp-computer_score; coutp-math_score; coutp-English_score; else cout不能找到此学号的学生:num; return(head); /按姓名修改学生信息的函数 st

34、udent *correct_nam(student*head,string name) student *p; if(head=NULL) cout列表为空 !name&p-next!=NULL) p=p-next; if(p-name=name) coutendl请重新输入此学生的信息; coutp-num; coutp-name; coutp-age; coutp-sex; coutp-address; coutp-computer_score; coutp-math_score; coutp-English_score; else cout不能找到此学号的学生:name; return

35、(head); / 按学号查询学生信息的函数student *search_num(student *head,long num) student *p; if(head=NULL) cout列表为空 !num&p-next!=NULL) p=p-next; if(num=p-num) /找到后输出学生信息 cout学生的学号: ; coutnumendl; cout学生的姓名: ; coutnameendl; cout学生的年龄: ; coutageendl; cout学生的性别: ; coutsexendl; cout学生的住址: ; coutaddressendl; cout学生的电脑成

36、绩: ; coutcomputer_scoreendl; cout学生的数学成绩: ; coutmath_scoreendl; cout学生的英语成绩: ; coutEnglish_scoreendl; else cout不能找到此学号的学生: num; return(head); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 30 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告31 / 按姓名查询学生信息的函数 student *

37、search_nam(student *head,string name) student *p; if(head=NULL) cout列表为空 !name&p-next!=NULL) p=p-next; if(name=p-name) cout学生的学号: ; coutnumendl; cout学生的姓名: ; coutnameendl; cout学生的年龄: ; coutageendl; cout学生的性别: ; coutsexendl; cout学生的住址: ; coutaddressendl; cout学生的电脑成绩: ; coutcomputer_scoreendl; cout学生的

38、数学成绩: ; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 31 页,共 33 页 - - - - - - - - - C+语言课程设计设计报告32 coutmath_scoreendl; cout学生的英语成绩: ; coutEnglish_scoreendl; else cout不能找到此学号的学生: name; return(head); / 输出函数 void print(student *head) student *p; if(head=NULL)

39、/头指针为空时提示重新录入 cout还没有录入学生信息 endl; if(head!=NULL) /头指针不为空时输出学生信息 cout 这n 个学生的信息如下: endl; p=head; do cout学生的学号: ; coutnumendl; cout学生的姓名: ; coutnameendl; cout学生的年龄: ; coutageendl; cout学生的性别: ; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 32 页,共 33 页 - - - -

40、- - - - - C+语言课程设计设计报告33 coutsexendl; cout学生的住址: ; coutaddressendl; cout学生的电脑成绩: ; coutcomputer_scoreendl; cout学生的数学成绩: ; coutmath_scoreendl; cout 学生的英语成绩: coutEnglish_scorenext; /指向下一个结点 while(p!=NULL); /结点不为空时,继续输出 ?版权所有,仿冒必究 ? 如有雷同,不胜荣幸 。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 33 页,共 33 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁