ImageVerifierCode 换一换
格式:DOC , 页数:43 ,大小:416.54KB ,
资源ID:2827780      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2827780.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(学生成绩信息综合管理系统.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

学生成绩信息综合管理系统.doc

1、 学生成绩信息管理系统 1 引 言 1 1.1 设计目标和要求 1 1.2设计内容 1 2系统需求和功效分析 1 2.1 系统需求分析 2 2.2系统功效分析 2 3总体结构设计 3 3.1系统结构设计 3 3.2系统管理步骤图 3 4 系统具体设计和系统实现 4 5 系统测试 10 6 结束语 15 参考文件 15 附录1:链表结构化设计源程序清单 16 附录2:次序表结构化设计源程序清单............... ... .........................26 1 引 言 1.1 设计目标和要求 该学生信息管理系统采

2、取C++语言开发研制,针对学生成绩及其数据特点,能够全方面实现对学生成绩插入、查询、修改、删除和输出等功效计算机管理。它能使学生信息数据工作人员从繁重工作中解脱出来,大大减轻了工作量,降低人为工作失误,全方面提升学生信息管理效率,从而使学校对于学生成绩管理水平和技术水平跃上一个新台阶。 (1) 程序要添加合适注释,程序书写要采取缩进格式。 (2) 程序要具在一定健壮性,即当输入数据非法时,程序也能合适地做出反应,如插入删除时指定位置不对等等。 (3) 程序要做到界面友好,在程序运行时用户能够依据对应提醒信息进行操作。 (4) 依据试验汇报模板具体书写试验汇报,在试验汇报中给出链表依据姓

3、名进行查找算法和插入算法步骤图。 1.2设计内容 定义一个包含学生信息(学号,姓名,成绩)次序表和链表,使其含有以下功效:   (1) 依据指定学生个数,逐一输入学生信息;   (2) 逐一显示学生表中全部学生相关信息;   (3) 依据姓名进行查找,返回此学生学号和成绩; (4) 依据指定位置可返回对应学生信息(学号,姓名,成绩); (5) 给定一个学生信息,插入到表中指定位置; (6) 删除指定位置学生统计; (7) 统计表中学生个数。 2系统需求和功效分析 2.1 系统需求分析 (1) 能完成学生信息插入、查询、修改、删除、输出等功效; (2)采

4、取单链表和次序表存放结构实现; (3) 全部数据以外部文件方法保留。 2.2系统功效分析 (1)要设计一个学生成绩管理系统,其功效包含: ①插入函数Add():将学生成绩信息插入到链表中; ②查询函数Search():分别能够按学号和按姓名进行学生成绩查询; ③删除函数Delete():当需要删除学号和姓名一致时则删除对应学生统计; ④修改函数Modify():修改指定学生成绩信息; ⑤输出函数Show():输出全部学生成绩信息; ⑥菜单函数Menu():为程序菜单函数为实现多种功效提供便捷; ⑦读取数据函数Read():从外部文件读取学生成绩信息; ⑧保留数据函数Sav

5、e():将数据保留到外部文件中。 3总体结构设计 3.1系统结构设计 经过对学生信息管理系统功效分析,能够定义出系统总体结构模块图,图3.1所表示。 学生成绩管理系统 学生 信息插入 学生 信 息 查询 学生信息删除 学生信息修改 学生信息输出 学生信息读取 学生信息保留 图3.1学生管理系统总体结构设计 3.2系统管理步骤图 前面分析中已经定义了系统各个模块,属于静态建模范围。在系统运行时刻动态模型应该由系统步骤决定。当用户运行该系统后能够来进行学生信息插入管理、学生信息查询管理、学生信息删除管理、学生信息修改管理及学生信息输出等操作,具体步骤图

6、3.2所表示。 进入系统 数据读入 查询 修改 删除 输出 数据保留 退出系统 不保留 Y N 图3.2系统步骤图 主模块应负责应用程序主界面,由它调用其它模块.所以主模块应含有操作性好、界面清楚特点,使用户能够很方便地找到所需功效。 依据功效需求结果分析,主界面应该由学生信息插入管理,学生信息查询管理、学生信息修改管理、学生信息删除管理和学生信息输出管理组成,能够经过输入对应数字进入对应功效模块。4 链表学生信息管理系统具体设计和系统实现 系统总体设计完成后,就能够依据需求对各个模块来进行实现了。在本系统中需要编码实现关键有学生信息插入、学生信息查询、学生信

7、息修改、学生信息删除和学生信息输出等5个模块。 (1)学生信息插入模块 添加信息包含学号(不许可反复)、姓名(不许可反复)、分数。步骤图以下图4.1所表示。 开始插入数据 输入学生信息 调用类组员函数采取单链表保留数据 结束 图4.1插入模块步骤图 本程序采取是尾插法,就是每次将新申请结点插在终端结点后面,其实施过程图4.2所表示。 图4.2尾插法建立单链表操作示意图 (2)学生信息查询模块 按姓名和学号查找学生信息步骤图分别以下图4.3所表示。 结束 输入要查找姓名 判定 抱歉没有该学生 输出该学生信息 按姓名 查找开始 N Y 图4

8、3按姓名查找学生信息步骤图 在单链表中,即使知道被访问结点位置i,也不能像次序表那样直接按序号访问,而只能从头指针出发,设置一个工作指针p,顺next域逐一结点往下搜索。当p指向某个结点时判定是否为第i个结点,若是则查找成功;不然,将工作指针p后移,立即p指向原来所指结点后继结点。直到p为NULL时查找失败。单链表查找过程图4.4所表示。 图4.4单链表查找过程示意图 按学号查询学生信息同按姓名查找学生信息,此处不再具体列出。 (3)学生信息修改模块 首先要查找和要修改数据相匹配信息,若没有则返回失败。不然把对应信息输出,然后再重新输入新数据并保留到单链表。 (4)学生信息删

9、除模块 当选择删除功效时,首先输入要删除同学姓名,然后输入要删除同学学号,假如该同学存在而且姓名和学号匹配上,则进行删除操作,不然返回失败。其步骤图4.5以下: 开始删除操作 输入姓名 输入学号 姓名学号一致 实施删除功效 返回主菜单 N Y 图4.5删除学生信息模块步骤图 删除操作定义为将单链表第i个结点删去。因为在单链表中结点ai存放地址在其前驱结点ai-1指针域,所以必需首先找到ai-1存放地址p,然后令pnext域指向ai 后继结点,即把结点ai 从链上摘下来,最终释放结点ai存放空间,图4.6所表示。 图4.6在单链表中删除结点指针改变情况 (5)

10、学生信息输出模块 从单链表表头遍历整个单链表,将全部数据输出。其部分代码以下: void Function::Show() { char choose; Student *temp; system("cls"); temp=Student_First->Next; if(!temp) { cout<<"文件无数据\n\n "<>choose; while(choose!='1') { cou

11、t<<"1.返回主菜单"<>choose; } Menu(); } else { cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n"; while(temp!=NULL) { temp->Out(); temp=temp->Next; } } cout<<"1.返回主菜单"<>choose; while(choose!='1') { cout<<"1.返回主菜单"<

12、 cin>>choose; } Menu(); } 5 系统测试 在完成了系统各方面设计后,并不是能够运行就完成,为了确保系统性能稳定性跟安全性等,就要对系统做测试。 测试环境以下: l 硬件:P4C 2.4GHz,80GB硬盘,512M内存; l 软件:Windows XP Personal SP2,分辨率1024*768,Microsoft Visual C++ 6.0。 1.这是链表主界面 2.这是次序表主界面 图5.1运行主界面 我就以次序表为例介绍一下我学生信息管理系统吧 ① 选择1清空学生信息

13、功效时,图5.2所表示。 图5.2插入学生成绩信息实现 ②返回主菜单后选择3插入学生成绩信息,4删除学生信息,运行结果按由姓名特定位置删除和按学号删除两种分别图5.3和图5.4所表示。 图5.3按学生学号查找相关信息实现 图5.4按学号查找相关信息实现 ③当在主菜单中选择4时,则进行删除功效。其运行结果图5.5所表示。 图5.5 删除学生信息功效实现 ⑤当在主菜单中选择6时,则进行显示目前信息功效。其运行结果图5.7所表示。 图5.7输出学生信息功效实现 6 结束语 经过这次数据结构课程设计试验,在处理问题过程中,充足体会到了数据结构这门课程对于软件

14、设计关键性,也体会到了数据结构+算法=程序这句话真正含义,一个实际问题处理第一步就是要依靠于良好抽象思维,将实际问题转化为对应数据结构,只有这一步做好了,才能采取对应算法和优化方法处理问题和处理好问题。 参考文件 [1] 钱新贤,杨猛,程兆炜,张少东.Visual C++编程疑难详解[M]. 北京:人民邮电出版社, [2] 王红梅,胡明,王涛.数据结构(C++)[M]. 北京:清华大学出版社, [3] 程学先.数据库原理和技术[M].北京:中国水利水电出版社, [4] Alex Kriegel & Boris M.Trukhnov.SQL Bible[M].北京:电子工业出

15、版社, [5] 郑章,程刚,张勇.Visual C++6.0数据开发技术[M].北京:机械工业出版社,1999.9 [6] F.Brokken and K.Kubat. C++ Annotations. Version 4.4.0m,ICCE,University of Groningen,Netherlands,1990. 250~280 附录1:链表结构化设计源程序清单 // 程序名称:Student.CPP // 程序功效:采取链表和文件实现一个简单学生成绩管理系统。 #include #include #include

16、ring> #include #include using namespace std; struct Class { int Chinese; int Math; int English; }; class Student{ public: Student(); void Ofile(ofstream &of); void Infile(ifstream &f); void Out();

17、 void Set(char *name,int no,Class score); char *GetName(); int GetNo(); Student *Next; protected: char Name[20]; int No; Class Score ; }; Stu

18、dent::Student():Next(0){} char *Student::GetName(){return Name;} int Student::GetNo(){return No;} void Student::Set(char *name,int no,Class score) { strcpy(Name,name); No=no; Score=score; } void Student::Infile(ifstream &f) { f>>Name>>No>>Score.Chinese>>Score

19、Math>>Score.English; //将数据输入到文件 } void Student::Ofile(ofstream &of) { of<<" "<

20、English<<"\t"<

21、 void Search(); //查询学生成绩函数 void Delete(); //删除学生成绩函数 void Modify(); //修改学生成绩函数 void Show(); //显示学生成绩函数 private: Student *Student_First; void Read();

22、 //读取学生成绩函数 void Save(); //保留学生成绩信息函数 }; Function::Function() { Student_First=new Student; Read(); } Function::~Function() { delete Student_First; } void Function::Add() //录入学生

23、成绩信息函数 { char name[20]; int no; Class score; char choose; Student *f1,*p,*f2; system("cls"); f1=Student_First; f2=Student_First->Next; while(f1->Next) f1=f1->Next; do { p=new Student; cout<<"请输入您

24、要添加学生成绩信息:"<>name; while(f2) { if(strcmp(f2->GetName(),name)==0) { cout<<"该学生已存在,请确定姓名!\n\n"; cout<<"请输入姓名:"; cin>>name; break; } f2=f2->Next; } cout<<"请输入学号:"; cin>>no;

25、 cout<<"请输入语文成绩:"; cin>>score.Chinese; cout<<"请输入数学成绩:"; cin>>score.Math; cout<<"请输入英语成绩:"; cin>>score.English; p->Set(name,no,score); f1->Next=p; p->Next=NULL; f1=f1->Next; cout<<"是否继续输入信息?(Y\\N) "<>choose;

26、 }while(choose=='y'||choose=='Y'); Save(); cout<<"1.返回主菜单"<>choose; while(choose!='1') { cout<<"1.返回主菜单"<>choose; } Menu(); } void Function::Delete() //删除信息函数 { char name[20]; int no; char choose; Student *temp,*p; syste

27、m("cls"); p=temp=Student_First->Next; cout<<"请输入姓名:"; cin>>name; cout<<"输入学号:"; cin>>no; while(temp) { if(strcmp(temp->GetName(),name)==0&&temp->GetNo()==no) //判定该学生信息是否存在 { cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n"; temp->Out(); cout<<"\n是否删除(Y/N)";

28、 cin>>choose; if(choose=='y'||choose=='Y') { p->Next=temp->Next; delete temp; cout<<"删除成功:\n"; } break; } p=temp; temp=temp->Next; } Save(); cout<<"1.返回主菜单\n2.继续删除"<>cho

29、ose; while(choose!='1'&&choose!='2') { cout<<"1.返回主菜单\n2.继续删除"<>choose; } if(choose=='1') Menu(); else if(choose=='2') Delete(); } void Function::Modify() //修改学生信息函数 {

30、 char choose,name[20]; Student *temp,*p; int no; Class score; system("cls"); temp=p=Student_First; cout<<"请输入您要修改学生姓名:"; cin>>name; while(temp) { if(strcmp(temp->GetName(),name)==0) { cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n";

31、temp->Out(); cout<<"请输入姓名:"; cin>>name; cout<<"请输入学号:"; cin>>no; cout<<"请输入语文成绩:"; cin>>score.Chinese; cout<<"请输入数学成绩:";

32、 cin>>score.Math; cout<<"请输入英语成绩:"; cin>>score.English; temp->Set(name,no,score); break; } temp=temp->Next; } Save(); cout<<"修改成功!"<>choose; while(choose!='1'&&cho

33、ose!='2') { cout<<"1.返回主菜单\n2.继续修改"<>choose; } if(choose=='1') Menu(); else if(choose=='2') Modify(); } void Function::Read() //读取信息函数 { Student *p,*p2; p=Student_First; long t; ifstream is("Student.tx

34、t",ios::in); if(!is) { ofstream os("Student.txt",ios::out); os.close(); return ; } while(!is.eof()) { p2=new Student; p2->Infile(is); p->Next=p2;

35、 p2->Next=NULL; p=p->Next; } } void Function::Save() //保留学生成绩信息函数 { ofstream of("Student.txt",ios::out); Student *p=Student_First->Next; while(p) { p->Ofile(of);

36、 p=p->Next; } of.close(); } void Function::Search() { int flag(0); char choose; char t1[20]; int t2; system("cls"); Student *temp=Student_First->Next; do { c

37、out<<"输入查询方法:\n1.按姓名查询\n2.按学号查询\n"; cin>>choose; if(choose=='1') { cout<<"请输入您要查询姓名:"; cin>>t1; while(temp) { if(strcmp(t1,temp->GetName())==0) { flag=1; break; } temp=temp->Next; } if(flag==0) cout<<"\n无该学生信息\n"<

38、se { cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n"; temp->Out(); } break; } else if(choose=='2') { cout<<"请输入您要查询学号"; cin>>t2; while(temp) { if(t2==temp->GetNo()) { flag=1; break; } temp=temp->Next; } if(flag==0) c

39、out<<"\n无该学生信息\n"<Out(); } break; } }while(choose!='1'||choose!='2'); cout<<"\n1.返回主菜单\n2.继续查询"<>choose; while(choose!='1'&&choose!='2') { cout<<"1.返回主菜单\n2.继续查询"<>choose; } i

40、f(choose=='1') Menu(); else if(choose=='2') Search(); } void Function::Show() { char choose; Student *temp; system("cls"); temp=Student_First->Next; if(!temp) { cout<<"文件无数据\n\n "<

41、 cin>>choose; while(choose!='1') { cout<<"1.返回主菜单"<>choose; } Menu(); } else { cout<<"姓名\t学号\t语文成绩\t数学成绩\t英语成绩\n"; while(temp!=NULL) { temp->Out(); temp=temp->Next; } } cout<<"1.返回主菜单"<>c

42、hoose; while(choose!='1') { cout<<"1.返回主菜单"<>choose; } Menu(); } void Function::Menu() { time_t t; time(&t); char choose; system("cls"); cout<<" ------------------------版权全部:李卉-------------------------"<

43、endl; cout<<"***********************************************************"<

44、"<

45、 5 显示全部学生成绩信息:\n"<>choose; switch(choose) { case '1': Add();break; case '2': Search();break; case '3': Delete();break; case '4': Modify();break; case '5': Show();break; case '6': exit(1);break;

46、 default: { cout<<"请按要求输入选择项!"<#include #include #include //ge

47、tch() #include typedef struct student { //学生信息结构体类型 char No[100]; char name[7]; float score; }; typedef struct{ //定义次序类型sqlist student *stu; //指向数据元素基地址 int length; //线性表目前长度 int listsize; }sqlist; //下面是函数原型申明 int Initlist(sqlist &sl); //次序表初始化

48、 int creat(sqlist &sl);//次序表建立 int insertlist(sqlist &sl,student elem,int pos);//次序表插入操作 int search(sqlist sl,int pos);//按指定位置删除 int dele_elem1(sqlist &sl,int pos,student &elem);//次序表按位置删除操作 int dele_elem2(sqlist &sl,char *num,student &elem);//次序表按学号删除 int out_list(sqlist sl);//次序表输出操作 //////

49、//主函数/////////// void main() { cout<<"\n\n欢迎使用学生信息查询系统,请按提醒使用!\n\n\n"; sqlist sl; Initlist(sl); student s; char number[9]; int pos; while(1) { cout<<" \n 以下程序是使用次序表实现:\n"; cout<<" \n 0126程正炉请您选择您要实施操作:\n"; cout<

50、 4、删除信息 5、查找信息 6、显示目前信息 0、退出系统`\n"; cout<<" \n请从序号0--6中选择,继续你所需要工作"; int n; char c; cin>>n; if(n==0)//退出 { cout<<"\n谢谢您使用,该系统是11电商一班程正炉设计,多谢你使用!\n"; break; } else if(n==1)//清空 { cout<<"此操作将清空次序表,您是否继续?输入n表示你要退出,输入其它任意键继续你需要工作\n";

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服