收藏 分销(赏)

学生毕业设计管理系统-课程设计报告书.doc

上传人:精**** 文档编号:2145910 上传时间:2024-05-20 格式:DOC 页数:31 大小:392.54KB 下载积分:12 金币
下载 相关 举报
学生毕业设计管理系统-课程设计报告书.doc_第1页
第1页 / 共31页
学生毕业设计管理系统-课程设计报告书.doc_第2页
第2页 / 共31页


点击查看更多>>
资源描述
学生毕业设计管理系统_课程设计报告书 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 《C++面向对象程序设计》 综合项目报告 项目名称: 学生毕业设计管理系统 专 业: 班 级: 项目成员: 报告日期:2010年12月 31 设计任务 一、基本要求 (1)要求学生达到熟练掌握C++语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 (4)要求利用面向对象的方法以及C++的编程思想来完成系统的设计; (5)要求在设计的过程中,建立清晰的类层次; (6)在系统中至少要定义三个类,每个类中要有各自的属性和方法; 二、创新要求: 在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。 三、设计方法和基本原理: 1、问题描述(功能要求): 某学校,主要有四类学生:专科生、本科生、硕士研究生和博士研究生.现在,需要存储这些学生的编号、姓名、年级和班级、级别、论文题目、指导老师和成绩,并显示全部信息。 要求: 1)其中,学生编号在生成学生信息时同时生成,每输入一个学生信息编号顺序加1. 2)程序对所有学生都有提升级别的功能 3)能按姓名或者编号显示、查找、增加、删除和保存各类学生的信息 2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告以及系统使用说明书。 四、程序设计和调试: ; 以对话框的形式,展现程序的实现。 1、设计思路: 根据对学生信息的增删改查,为四个基本的模块,然后展开,运用文件流的方法,实现数据的保存。在原有基础上增加4个基本模块的一些功能,如以不同形式查看学生的信息。 系统功能模块图 类的层次图 学生类 学生信息结构体 姓名 学位 学号 调试过程 --—————--—-——-——--—-Configuration: Test — Win32 Debug-----———-—-—--—-—--— Compiling... Test.cpp H:\C++项目\学生毕业设计管理系统\Test。cpp(50) : error C2039: 'next’ : is not a member of 'student’ H:\C++项目\学生毕业设计管理系统\Test.cpp(23) : see declaration of 'student’ H:\C++项目\学生毕业设计管理系统\Test.cpp(159) : error C2039: 'next’ : is not a member of ’student' H:\C++项目\学生毕业设计管理系统\Test.cpp(23) : see declaration of ’student’ H:\C++项目\学生毕业设计管理系统\Test.cpp(159) : fatal error C1903: unable to recover from previous error(s); stopping compilation 执行 cl。exe 时出错。 Test。obj — 1 error(s), 0 warning(s) 程序代码 #include 〈iostream〉 #include 〈string> #include〈cmath> #include<fstream> #include<iomanip> using namespace std; int amount=0; int num=100; //当前最高学号 ofstream *file[50]; struct info //学生信息结构体 { string xy; string zy; string bj; string teacher; string lw; string score; struct info *next; }; class student //学生数据类 { public: int id; string mun; string name; info sc3; class student *next; }; void input(student *head); //录入 //函数声明// void search1(student *head); //姓名查询 void search2(student *head); //学号查询 void change(student *head); //修改 void shanchu(student *head); //删除 void get(student *head); //取数据 void display(); //显示菜单 void show(student *head); //显示数据 void readin(student *head); //保存数据 string int_char(int); void main() ////主函数 { system(”color f0"); char x; bool flag2=0; student *head=new student; //初始化学生数据 head—>next=NULL; cout<<” ╭═══════════════╮ "<〈endl; cout〈〈” ║ 学生毕业管理设计系统 ║ ”〈<endl; cout<〈” ╭══════┤ =—=-=-=-=—=—=—=—=—=— ├══════╮”〈〈endl; cout<<" ║ ║ 软件0921 -_-!!! ║ ║"<〈endl; cout〈<" ║ ╰═══════════════╯ ║"〈〈endl; cout〈<” ║ ╭───────────────────────╮ ║”<〈endl; cout<<" ╰══┤ 作者: 王雪亮 毛亚明 陈晓琴 ├══╯”<<endl; cout〈<" ╰───────────────────────╯ "〈<endl; display(); //显示菜单 do { do { cin〉>x; if((x〉=’0’&&x<='8')) flag2=1; else { cout〈〈”指令错误!!!!!!!!!!”〈〈endl; cout〈〈” 请选择相应的数字进行操作: "; } }while(flag2==0); switch(x) { case '1’:cout〈<”******************************现在进行学生信息录入******************************\n”; input(head); cout〈〈"输入的学生信息为:\n”; show(head); cout<〈endl; display(); break; case '2': { char z; cout<<"******************************现在进行学生信息查询******************************\n"; cout〈<”请选择查询方式:"; cout〈<”(0).姓名查询;(1)。学号查询:”; cin〉>z; while(z!=’0’&&z!=’1’) { cout〈〈"指令错误<请选择(0)或者(1)!〉!!!!!!!"〈〈endl; cout〈<”请选择查询方式:(0)。姓名查询;(1).学号查询:"; cin>>z; } switch(z) { case ’0’: search1(head);break;//按姓名查询 case '1’: search2(head);break;//按学号查询 } cout<<endl; display(); break; } case ’3': cout<〈"******************************现在进行学生信息修改******************************\n"; change(head); cout<〈endl; display(); break; //按姓名修改 case '4’: cout〈〈”******************************现在进行学生信息删除******************************\n”; shanchu(head); show(head); cout〈〈endl; display(); break; //删除 case ’5': cout〈<"******************************现在进行显示学生信息******************************\n”; show(head); cout〈〈endl; display(); break; //显示数据 case ’6’:cout〈〈"******************************现在进行提取学生信息******************************\n"; get(head); cout〈<endl; display(); break; case ’7’:cout〈〈”******************************现在进行保存学生信息******************************\n”; readin(head); cout<<endl; display(); break; case ’8': cout〈<endl; cout<〈" &您已退出学生信息管理系统, 谢谢您的使用!& \n”; cout<<endl; exit(0); break; } }while(flag2==1); } void display() //显示菜单 { cout<〈”请选择你需要的项目: \n"; cout<〈” [1]-录入; [2]-查询; \n”; cout<〈” [3]—修改; [4]—删除; \n"; cout<<” [5]—显示; [6]—提取; \n"; cout〈<” [7]-保存; [8]—退出; \n"; cout<〈" 请选择你需要的数字进行操作: "; } void show(student *head) //显示学生数据 { student *stu=head; cout<〈”| 学号 | 学位 | 姓名 | 学院 | 专业 | 班级 | 导师 | 论文 | 成绩| ”<<endl; while(stu—〉next!=NULL) { stu=stu—〉next; cout〈<”| ”<<setw(9)〈〈(*stu).id; cout〈<"| "〈〈setw(4)〈〈(*stu).mun; cout〈〈" | "<〈setw(6)<<(*stu).name; cout〈〈” | ”<<setw(4)〈〈(*stu).sc3。xy; cout<<” | "<〈setw(4)〈〈(*stu).sc3.zy; cout<〈” | ”<<setw(4)<〈(*stu)。sc3。bj; cout〈〈" | "〈〈setw(4)〈〈(*stu)。sc3。teacher; cout〈〈” | "<〈setw(4)<<(*stu).sc3.lw; cout〈<" | "〈〈setw(4)<〈(*stu).sc3.score; cout〈<"|"<〈endl; } } void readin(student *head) //保存学生数据 { char a; student *stu=head—>next; cout<〈"现在保存输入学生数据,是否继续操作?(y/n)"; cin〉>a; ofstream outfile(”D:\\课设\\学生信息.txt”,ios::out); if(! outfile) { cout〈<”打开文件错误!!!!!!!\n”; exit(0); } while(a!=’n’) { while(stu!=NULL) { outfile<<"************************第"<〈amount<<"个学生的数据:*************************\n”; outfile<<cout〈〈"| 学号 | 学位 | 姓名 | 学院 | 专业 | 班级 | 导师 | 论文 |成绩|”〈<endl; outfile<〈" 学生信息: \n” <<" | ”<<setw(9)〈<(*stu)。id〈〈"| ”〈<setw(4)〈<(*stu).mun<〈” | "<〈setw(6)<<(*stu)。name〈<" | "<<setw(4)<< (*stu).sc3。xy〈〈 " | ”〈〈setw(4)<〈(*stu).sc3.zy<<" | ”〈<setw(4)<<(*stu)。sc3。bj〈<" | ”〈<setw(4)〈〈(*stu)。sc3。teacher 〈〈" | ”<〈setw(4)<〈(*stu).sc3.lw<<” | ”〈〈setw(4)〈<(*stu).sc3.score<<endl; amount++; num++; (*stu).id=num; stu=stu—〉next; } break; } cout〈<”。。....成功将学生数据保存到<学生信息.txt〉中! "; outfile。close(); } void input(student *head) //录入学生数据 { char c; int j=0; student *p=head; file[j]=new ofstream("D:\\课设\\学生信息。txt",ios::app); do { student *stu=new student; (*stu)。id=num+1; num++; cout〈<”请输入学位(专科生,本科生,硕士研究生,博士研究生):"<〈setw(9); cin>>(*stu)。mun; cout<<”请输入姓名:”〈〈setw(20); cin>>(*stu).name; cout<<”请输入该生所在学院:"<〈setw(20); cin〉〉(*stu)。sc3.xy; cout<<”请输入该生所在专业:"<〈setw(20); cin〉>(*stu)。sc3。zy; cout〈<”请输入该生所在班级:”<<setw(20); cin〉>(*stu)。sc3。bj; cout<〈”请输入该生导师姓名:”〈〈setw(20); cin〉>(*stu).sc3。teacher; cout<<”请输入该生论文标题:”〈<setw(20); cin>>(*stu).sc3。lw; cout〈〈"请输入该生加权成绩:"<〈setw(20); cin〉>(*stu)。sc3.score; stu->next=p—〉next; p—〉next=stu; amount++; cout〈<"数据录入成功,想继续录入吗(y/n)”; cin>>c; p=p—>next; while(c!='y'&&c!='n') { cout<〈”指令错误<请输入y/n!>!!!!!!”〈<endl; cout〈<"数据录入成功,想继续录入吗(y/n)"; cin〉>c; } }while(c==’y'); j++; cout<<"输入了 "〈<amount〈〈"个学生的信息.”<〈endl; } void search1(student *head) //使用姓名查询学生数据 { char c; string name; do { student *stu=head—〉next; bool flag=0; cout〈<”请输入你要查询的学生姓名:"; cin〉>name; do{ if(stu!=NULL&&name==(*stu)。name) //输出总成绩 { flag=1; cout〈<”您要查询的学生是:”〈<stu->name<〈endl; cout〈<"| 学号 | 学位 | 姓名 | 学院 | 专业 | 班级 | 导师 | 论文 |成绩| ”<〈endl; cout〈<"| ”〈〈setw(9)〈〈(*stu).id; cout〈<"| ”〈<setw(4)<<(*stu).mun; cout〈〈" | ”<〈setw(6)〈<(*stu).name; cout〈〈” | ”〈〈setw(4)<〈(*stu)。sc3。xy; cout<〈” | "〈〈setw(4)<〈(*stu)。sc3.zy; cout<<” | ”<<setw(4)<〈(*stu)。sc3。bj; cout<<" | ”<〈setw(4)<〈(*stu)。sc3。teacher; cout<〈" | ”〈〈setw(4)〈<(*stu)。sc3。lw; cout〈<" | "<<setw(4)〈<(*stu)。sc3.score; cout<〈” | ”〈〈endl; } stu=stu—〉next; }while(stu!=NULL); if(flag==0) cout<<"对不起!您要查询的学生不存在!!!!!!!”<<endl; cout<<"您想继续查询吗?(y/n)"; cin>>c; while(c!='y'&&c!=’n') { cout〈〈”指令错误〈请输入y/n!>!!!!!!!”〈<endl; cout〈〈"您想继续查询吗?(y/n)"; cin〉>c; } } while(c==’y'); } void search2(student *head)//用学号查询学生数据 { char c;int no; do { student *stu=head-〉next; int flag=0; cout〈〈”请输入你要查询的学生学号:”; cin>>no; do { if(stu!=NULL&&no==(*stu)。id) { flag=1; cout〈<”您要查询的学生是:"〈<stu-〉name<〈endl; cout<<”| 学号 | 学位 | 姓名 | 学院 | 专业 | 班级 | 导师 | 论文 |成绩| "<〈endl; cout〈<”| ”<〈setw(9)〈<(*stu).id; cout〈〈”| ”〈〈setw(4)〈<(*stu).mun; cout<<” | "<〈setw(6)〈<(*stu).name; cout〈<" | ”<〈setw(4)〈〈(*stu)。sc3.xy; cout〈<” | "〈<setw(4)〈<(*stu)。sc3。zy; cout〈〈” | ”〈<setw(4)<〈(*stu)。sc3。bj; cout<<" | "〈<setw(4)〈<(*stu)。sc3.teacher; cout<<" | ”〈〈setw(4)〈<(*stu)。sc3。lw; cout<<” | "<<setw(4)<<(*stu)。sc3.score; cout〈〈"|”〈<endl; } stu=stu-〉next; }while(stu!=NULL); if(flag==0) cout〈<”对不起!您要查询的学生不存在!!!!!!!"〈〈endl; cout<〈"您想继续查询吗?(y/n)”; cin>>c; while(c!=’y'&&c!='n') { cout〈〈”指令错误<请输入y/n!>!!!!!!!”〈〈endl; cout〈<"您想继续查询吗?(y/n)"〈<endl; cin>〉c; } }while(c=='y'); } void change(student *head) //修改学生数据 { string name; char c; do { bool flag2=0; student *stu=head ; info sc3; string mu; cout<〈"请输入您要修改的学生的姓名:"; cin>〉name; do { if(name==(*stu).name) { flag2=1; cout〈<”请输入新学位信息:”; cin>〉mu; cout<〈”请输入新学院信息:"; cin〉>sc3。xy; cout〈〈"请输入新专业信息:"; cin〉〉sc3。zy; cout〈<"请输入新班级信息:”; cin〉>sc3。bj; cout〈〈”请输入新导师信息:"; cin>〉sc3。teacher; cout<<"请输入新论文信息:”; cin〉〉sc3.lw; cout<〈"请输入新加权成绩信息:”; cin>>sc3.score; (*stu).mun=mu; (*stu).sc3.xy=sc3.xy; (*stu).sc3。zy=sc3。zy; (*stu)。sc3。bj=sc3。bj; (*stu).sc3.teacher=sc3.teacher; (*stu).sc3.lw=sc3。lw; (*stu)。sc3.score=sc3.score; cout〈〈”| 学号 | 学位 | 姓名 | 学院 | 专业 | 班级 | 导师 | 论文 | 成绩 | "<〈endl; cout〈〈”| ”〈<setw(9)〈<(*stu).id; cout<〈"| "<<setw(4)<<(*stu).mun; cout〈〈" | "<〈setw(6)<〈(*stu).name; cout<<” | "〈<setw(4)<〈(*stu)。sc3。xy; cout<<" | ”〈<setw(4)〈<(*stu)。sc3.zy; cout〈<” | "<<setw(4)<<(*stu).sc3.bj; cout〈<” | ”<<setw(4)<〈(*stu).sc3。teacher; cout<〈" | ”〈<setw(4)<<(*stu).sc3.lw; cout〈<" | ”〈〈setw(4)〈〈(*stu).sc3。score; cout<<"|"<<endl; cout<<".....。。数据修改成功!\n"; break; } stu=stu-〉next; }while(stu!=NULL); if(flag2==0) { cout<<"对不起!您要修改的学生不存在!请检查重新输入!!!!!!!"〈<endl; } cout〈<”想继续修改吗?(y/n)"; cin〉〉c; if(c!=’y'&&c!=’n’) { cout<〈"指令错误!请重新输入<y/n>!!!!!!!"; cin〉〉c; } }while(c==’y'); } void shanchu(student *head)//删除学生数据 { char c;int no; do { int flag=0; cout<<"请输入你要删除的学生学号:”; cin〉〉no; student *q,*p; q=head; while(q—〉next!=NULL&&q->next—>id!=no) q=q-〉next; if(q—〉next!=NULL) { flag=1; p=q—〉next; q—>next=q—>next—>next; amount—-; free(p); cout<〈"...。。.成功删除! ”; } if(flag==0) cout<<”对不起!您要删除的学生不存在!!!!!!!"<〈endl; cout<<"您想继续删除吗?(y/n)"; cin〉〉c; while(c!='y’&&c!='n’) { cout<〈”指令错误〈请输入y/n!>!!!!!!!”<〈endl; cout〈<"您想继续删除吗?(y/n)"; cin>〉c; } }while(c==’y'); } void get(student *head) //提取学生数据 { student *p; p=head; int j=0; string no; cout<〈"请输入您想提取的学号前3位:"; cin〉>no; string aa; aa=int_char(p—>next—〉id); while(p—>next!=NULL) { if(no==aa.substr(0,7)) { cout〈〈"管理系统有您要提取的信息!”<〈endl; j=1; } else p=p—>next; if(j==1) break; } if(j==1) { int c,m=0; string b,b1,e,infoma[6]={"xueyuan”,"zhuanye”,”banji”,”daoshi”,”lunwen",”jiaquan”}; string kemu[6]={"学院","专业",”班级",”导师",”论文",”加权"}; cout<<”输入您想提取的信息代码:"<<endl; cout〈〈”1-—〉学院 2—->专业 3—-〉班级"<<endl; cout〈<”4—->导师 5—-〉论文 6——>加权"<<endl; cout〈<”选择:”; cin>〉c; string cla=”class”; e=no。substr(6,1); b1=cla+e; b=b1+infoma[c-1]; char *f=new char[20]; for(int i=0;i〈20;i++) f[i]=b[i]; f=strcat(f,".txt”); ofstream outfile(f,ios::out); if(! outfile) { cout〈<"打开错误!!!!!!!"<<endl; exit(1); } outfile〈<"\t您要提取的信息\t\t\t”<〈endl; outfile〈<" ——-———--—-———--—————-——-—-—-—"〈<endl; outfile<〈”| 学号 | 姓名 | "; outfile〈〈kemu[c-1]〈<” |"<<endl; while(p—>next!=NULL) { outfile<<" -—--————-——--—————-——-—--————"〈〈endl; outfile〈<”|”〈〈setw(11)<〈p->next-〉id〈<” | ”〈<setw(6)〈<p->next—>name<〈” |"; switch(c) { case 1:outfile〈<setw(5)<<p->next->sc3.xy〈<" |”; outfile<<endl; break; case 2:outfile<〈setw(5)<〈p->next—〉sc3。zy<<" |”; outfile<〈endl; break; case 3:outfile〈<setw(5)<<p->next—>sc3。bj<<" |"; outfile〈<endl; break; case 4:outfile<<setw(5)〈<p—>next—〉sc3.teacher<<” |"; outfile〈〈endl; break; case 5:outfile<<setw(5)〈<p—〉next—〉sc3。lw〈<” |”; outfile<〈endl; break; case 6:outfile〈〈setw(5)<〈p—>next-〉sc3.score<〈” |”; outfile<〈endl; break; } p=p—>next; } outfile〈〈" —————--—--—--——-—--———---————”<<endl; outfile.close(); cout<〈"。.。...已经保存在”<<f<〈"文本文档中!”〈<endl; } if(j==0) cout〈<"管理系统中没有您要提取的数据!!!!!!!!”<〈endl; } string int_char(int) { int a,b,i; char
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服