欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C课程设计报告学生成绩管理系统.docx

    • 资源ID:89033499       资源大小:595.06KB        全文页数:29页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C课程设计报告学生成绩管理系统.docx

    学生成绩管理系统说明:该课程设计包含两个部分,一个为纯dos系统下的控制台程序,用C+编写;另一个为有界面的MFC项目。目录纯dos系统下的控制台程序1、 设计要求.32、 设计分析.33、 调试说明.44、 源代码.85、 实验总结.21有界面的MFC项目1、设计内容.222、设计说明.223、设计步骤.224、运行演示.275、实验总结.29纯dos系统下的控制台程序1、 设计要求现有学生成绩信息,内容如下:姓名    学号   语文  数学   英语     张明明  01     67    78      82李成友  02     78    91      88张辉灿  03     68    82      56王露    04     56    45      77陈东明  05     67    38      47请用C/C+编写一系统,实现学生信息管理,软件的入口界面应包括如下几个方面:功能要求:(1)    信息维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息(2)    信息查询:要求:查询时可实现按姓名查询、按学号查询(3)    成绩统计:要求:A输入任意的一个课程名(如数学)和一个分数段(如60-70),统计出在此分数段的学生情况。(4)    排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)其它要求:(1) 只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档2、 设计分析(1)需求分析:该程序要能实现对学生成绩信息的增加、删除、修改,实现对学生按姓名查询,按学号查询显示,对任意一个课程名和分数段的学生人数进行输出并统计人数,最好还要根据用户的需求对学生成绩排序。(2)系统性能要求: a. 系统安全、可靠; b. 功能齐全; c.操作方便、界面友好; d.易于维护和扩充。(3) 系统功能模块:学生成绩管理系统包括:增加、删除、修改、显示、信息查询、成绩统计、排序几个部分构成。学生成绩管理系统(4)模块框架图排序成绩统计信息查询显示修改删除增加输入课程名和升降序排序输入课程名和分数段统计按姓名查询按学号查询3、 调试说明运行程序后,现出来一个简洁的主界面。若没有学生信息,显示“这是一个新系统,无学生信息,请先输入。”若已存在学生信息,显示“读取学生信息成功!”一秒钟后,自动切入主菜单界面。首先选择1,增加学生信息。录入学生信息后选择4,显示学生信息。选择2,删除学生信息,输入要删除的学生姓名,这里我输入的是王露,显示剩下几位同学的信息。选择3,修改学生信息,输入要修改的学生姓名,然后输入新的学生信息,这里我修改的是张明明,显示修改后的学生信息。将张明明和王露的信息重新输入。输入5,信息查询,出来选择界面,“1、按学生姓名查找”、“2、按学生学号查找”,输入1,运行结果如下:输入2,运行结果如下:输入6,排序,显示选择界面,用户可根据需求选择科目和升降序,这里我是按语文成绩降序排序。输入7,成绩统计,用户自行输入要统计的科目和分数段进行统计。这里我统计的是英语成绩在6090的学生。4、 源程序代码#include<iostream>#include<fstream>#include<iomanip>#include<stdlib.h>#include<Windows.h>#include<conio.h>using namespace std ;#define HEADER1 " -学生成绩-n"#define HEADER2 " | 姓名 | 学号 | 数学 | 语文 | 英语 | 总分 |n"#define HEADER3 " |-|-|-|-|-|-|n"class Student /定义学生类public:char name20 ;char id20 ;int math ;int chinese ;int english ;int sum ;Student *next ;void input() ;void ReadFile(istream & in) ;void show() ; ;void Student:input() /输入学生信息函数cout<<"ntt请输入:"<<endl<<endl ;cout<<"tt姓名:" ;cin>>name ;cout<<"tt学号:" ;cin>>id ;cout<<"tt数学成绩:" ;cin>>math ;cout<<"tt语文成绩:" ;cin>>chinese ;cout<<"tt英语成绩:" ;cin>>english ;sum = math + chinese + english ;void Student:ReadFile(istream & in) /读取文件in>>name>>id>>math>>chinese>>english>>sum ;void Student:show() /输出学生信息cout<<" |"<<setw(8)<<name<<" |"<<setw(6)<<id<<" |"<<setw(6)<<math<<" |"<<setw(6)<<chinese<<" |"<<setw(6)<<english<<" |"<<setw(7)<<sum<<" |"<<endl ;cout<<" |-|-|-|-|-|-|n" ;class StudentMassage /定义学生信息类,包含各项处理功能public:StudentMassage() ;StudentMassage() ;void ShowMenu() ;void Display() ;void AddItem() ;void Find() ;void save() ;void ModifyItem() ;void RemoveItem() ;void Swap(Student *p1 , Student *p2) ;void Sort() ;int ListCount() ;int Count() ;private:Student *Head , *End ;ifstream in ;ofstream out ;Student *FindItem(char *name) ;Student *FindId(char *id) ; ;Student *StudentMassage:FindItem(char *name)Student *p ;for(p = Head ; p->next != End ; p = p->next)if(!strcmp(p->next->name , name)return p ;return NULL ;Student *StudentMassage:FindId(char *id) Student *p ;for(p = Head ; p->next != End ; p = p->next)if(!strcmp(p->next->id , id)return p ;return NULL ;StudentMassage:StudentMassage() /构造函数Head = new Student ;Head->next = new Student ;End = Head->next ;in.open("sort.txt") ;if(!in)cout<<"ntt这是一个新系统,无学生信息,请先输入。"<<endl ;elsewhile(!in.eof()End->ReadFile(in) ;if(End->name0='0')break ;End->next = new Student ;End = End->next ;in.close() ;cout<<"ntt读取学生信息成功!"<<endl ;StudentMassage:StudentMassage() /析构函数Student *temp ;save() ;for(temp ; Head->next != End ; )temp = Head->next ;Head -> next = Head ->next->next ;delete temp ;delete Head , End ;void StudentMassage:ShowMenu() /显示菜单cout<<"nntttt 主菜单"<<endl<<endl<<endl ;cout<<"tt*"<<endl<<endl ;cout<<"tt1、增加学生信息 2、删除学生信息"<<endl<<endl ;cout<<"tt3、修改学生信息 4、显示学生信息"<<endl<<endl ;cout<<"tt5、信息查询 6、排序"<<endl<<endl ;cout<<"tt7、成绩统计 0、安全退出"<<endl<<endl ;cout<<"tt*"<<endl<<endl<<endl ;cout<<"tt请选择:" ;void StudentMassage:Display() /显示学生信息Student *p ;cout<<endl<<HEADER1<<HEADER2<<HEADER3 ;for(p = Head->next ; p != End ; p = p->next)p->show() ;cout<<"nn输入任意字符,继续." ;getch() ;void StudentMassage:AddItem() /添加学生信息End->input() ;End->next = new Student ;End = End->next ;cout<<"ntt添加成功!"<<endl ;cout<<"n输入任意字符,继续." ;getch() ;void StudentMassage:Find() /查找函数char name20 , id20 ;int x ;Student *p = NULL ;cout<<"ntt*n" ;cout<<"ttt 1、按学生姓名查找"<<endl ;cout<<"ttt 2、按学生学号查找" ;cout<<"ntt*nntt请选择:" ;cin>>x ;switch(x)case 1: /按姓名查找cout<<"ntt请输入要查找的学生的姓名:" ;cin>>name ;if(p = FindItem(name)cout<<endl<<HEADER1<<HEADER2<<HEADER3 ;p->next->show() ;cout<<"n请输入任意字符,继续." ;getch() ;elsecout<<"tt没有找到该姓名的学生!"<<endl<<endl ;cout<<"请输入任意字符,继续." ;getch() ; break ;case 2: /按学号查找cout<<"ntt请输入要查找的学生的学号:" ;cin>>id ;if(p = FindId(id)cout<<endl<<HEADER1<<HEADER2<<HEADER3 ;p->next->show() ;cout<<"n请输入任意字符,继续." ;getch() ;elsecout<<"ntt没有找到该学号的学生!"<<endl<<endl ;cout<<"请输入任意字符,继续." ;getch() ; break ;void StudentMassage:ModifyItem() /修改学生信息char name20 ;Student *p = NULL ;cout<<"ntt请输入要修改的学生的姓名:" ;cin>>name ;if(p = FindItem(name)cout<<"ntt已找到该学生,请输入新的信息!"<<endl ;p->next->input() ;cout<<"ntt修改成功!"<<endl ;Display() ;elsecout<<"ntt没有找到!"<<endl ;cout<<"n输入任意字符!继续." ;getch() ;void StudentMassage:RemoveItem() /删除学生信息char name20 ;Student *p = NULL , *temp = NULL ;cout<<"ntt请输入要删除的学生的姓名:" ;cin>>name ;if(p = FindItem(name)temp = p->next ;p->next = p->next->next ;delete temp ;cout<<"ntt删除成功!"<<endl ;Display() ;elsecout<<"tt没有找到!"<<endl ;cout<<"输入任意字符!继续." ;getch() ;int StudentMassage:ListCount() /返回记录的学生总数Student *p ;int n = 0 ;if(!Head)return 0 ;for(p = Head->next ; p != End ; p = p->next)n + ;return n ;int StudentMassage:Count() /成绩统计Student *p ;int x , m , n ,count = 0 ;if(!Head)cout<<"ntt没有资料可以统计!"<<endl ;return 0 ;cout<<"ntt*n" ;cout<<"ttt 1、统计数学成绩"<<endl ;cout<<"ttt 2、统计语文成绩"<<endl ;cout<<"ttt 3、统计英语成绩" ;cout<<"ntt*n"<<endl ;cout<<"tt请选择:" ;cin>>x ;switch(x)case 1 :cout<<"ntt请输入分数段的起始分数和终止分数:" ;cin>>m ;cin>>n ;for(p = Head ; p != End ; p = p->next)if(p->math >=m && p->math <= n)count + ;if(count = 1)cout<<endl<<HEADER1<<HEADER2<<HEADER3 ;p->show() ;cout<<"ntt数学成绩在"<<m<<"-"<<n<<"的学生共有"<<count<<"人!n"<<endl ;cout<<"输入任意字符,继续." ;getch() ; ; break ;case 2:cout<<"ntt请输入分数段的起始分数和终止分数:" ;cin>>m ;cin>>n ;for(p = Head ; p != End ; p = p->next)if(p->chinese >=m && p->chinese <= n)count + ;if(count = 1)cout<<endl<<HEADER1<<HEADER2<<HEADER3 ;p->show() ;cout<<"ntt语文成绩在"<<m<<"-"<<n<<"的学生共有"<<count<<"人!n"<<endl ;cout<<"输入任意字符,继续." ;getch() ; ; break ;case 3:cout<<"ntt请输入分数段的起始分数和终止分数:" ;cin>>m ;cin>>n ;for(p = Head ; p != End ; p = p->next)if(p->english >=m && p->english <= n)count + ;if(count = 1)cout<<endl<<HEADER1<<HEADER2<<HEADER3 ;p->show() ;cout<<"ntt英语成绩在"<<m<<"-"<<n<<"的学生共有"<<count<<"人!n"<<endl ;cout<<"输入任意字符,继续." ;getch() ; ; break ;void StudentMassage:Swap(Student *p1 , Student *p2) /交p1,p2学生信息Student *temp = new Student ;strcpy(temp->name , p1->name) ;strcpy(temp->id , p1->id) ;temp->math = p1->math ;temp->chinese = p1->chinese ;temp->english = p1->english ;temp->sum = p1->sum ;strcpy(p1->name , p2->name) ;strcpy(p1->id , p2->id) ;p1->math = p2->math ;p1->chinese = p2->chinese ;p1->english = p2->english ;p1->sum = p2->sum ;strcpy(p2->name , temp->name) ;strcpy(p2->id , temp->id) ;p2->math = temp->math ;p2->chinese = temp->chinese ;p2->english = temp->english ;p2->sum = temp->sum ;void StudentMassage:Sort() /排序Student *p = NULL , *p1 = NULL , *k = NULL ;int n = StudentMassage:ListCount() , x , y ;if(n < 2)cout<<"数据较少,无法排序!"<<endl ;return ;cout<<"ntt*n" ;cout<<"ttt 1、按数学成绩排序"<<endl ;cout<<"ttt 2、按语文成绩排序"<<endl ;cout<<"ttt 3、按英语成绩排序"<<endl ;cout<<"ttt 4、按总分排序" ;cout<<"ntt*nnt请选择:" ;cin>>x ;switch(x)case 1:cout<<"ntt*n" ;cout<<"ttt 1、按降序排序nttt 2、按升序排序" ;cout<<"ntt*nnt请选择:" ;cin>>y ;if(y = 1)for(p = Head->next ; p != End ; p = p->next)for(k = p->next ; k != End ; k = k->next)if(p->math < k->math)StudentMassage:Swap(p , k) ;cout<<"ntt排序完成!"<<endl ;StudentMassage:Display() ;getch() ;elsefor(p = Head->next ; p != End ; p = p->next)for(k = p->next ; k != End ; k = k->next)if(p->math > k->math)StudentMassage:Swap(p , k) ;cout<<"ntt排序完成!"<<endl ;StudentMassage:Display() ;getch() ; ; break ;case 2:cout<<"ntt*n" ;cout<<"ttt 1、按降序排序nttt 2、按升序排序" ;cout<<"ntt*nnt请选择:" ;cin>>y ;if(y = 1)for(p = Head->next ; p != End ; p = p->next)for(k = p->next ; k != End ; k = k->next)if(p->chinese < k->chinese)StudentMassage:Swap(p , k) ;cout<<"ntt排序完成!"<<endl ;StudentMassage:Display() ;getch() ;elsefor(p = Head->next ; p != End ; p = p->next)for(k = p->next ; k != End ; k = k->next)if(p->chinese > k->chinese)StudentMassage:Swap(p , k) ;cout<<"ntt排序完成!"<<endl ;StudentMassage:Display() ;getch() ; ; break ;case 3:cout<<"ntt*n" ;cout<<"ttt 1、按降序排序nttt 2、按升序排序" ;cout<<"ntt*nnt请选择:" ;cin>>y ;if(y = 1)for(p = Head->next ; p != End ; p = p->next)for(k = p->next ; k != End ; k = k->next)if(p->english < k->english)StudentMassage:Swap(p , k) ;cout<<"ntt排序完成!"<<endl ;StudentMassage:Display() ;getch() ;elsefor(p = Head->next ; p != End ; p = p->next)for(k = p->next ; k != End ; k = k->next)if(p->english > k->english)StudentMassage:Swap(p , k) ;cout<<"ntt排序完成!"<<endl ;StudentMassage:Display() ;getch() ; ; break ;case 4:cout<<"ntt*n" ;cout<<"ttt 1、按降序排序nttt 2、按升序排序" ;cout<<"ntt*nnt请选择:" ;cin>>y ;if(y = 1)for(p = Head->next ; p != End ; p = p->next)for(k = p->next ; k != End ; k = k->next)if(p->sum < k->sum)StudentMassage:Swap(p , k) ;cout<<"ntt排序完成!"<<endl ;StudentMassage:Display() ;getch() ;elsefor(p = Head->next ; p != End ; p = p->next)for(k = p->next ; k != End ; k = k->next)if(p->sum > k->sum)StudentMassage:Swap(p , k) ;cout<<"ntt排序完成!"<<endl ;StudentMassage:Display() ;getch() ; ; break ;void StudentMassage:save() /存入文件out.open("sort.txt");for(Student *p=Head->next;p!=End;p=p->next)out<<p->name<<"t"<<p->id<<"t"<<p->math<<"t"<<p->chinese<<"t"<<p->english<<"t"<<p->sum<<'n'out.close();void main()int x ;bool quit = false ;cout<<"nnnnnnnn" ;cout<<"tt*"<<endl ;cout<<"tt 欢迎使用学生成绩管理系统!"<<endl ;cout<<"tt*"<<endl ;StudentMassage Grade ;Sleep(1000) ;while(!quit)system("cls") ;Grade.ShowMenu() ;cin>>x ;switch(x)case 0:quit = true ; break ;case 1:Grade.AddItem() ; break ;case 2:Grade.RemoveItem() ; break ;case 3:Grade.ModifyItem() ; break ;case 4:Grade.Display() ; break ;case 5:Grade.Find() ; break ;case 6:Grade.Sort() ; break ;case 7:Grade.Count() ; break ;5、 实验总结通过编写这个纯dos系统下的控制台程序,加深了我对如何用C+编写一个简单的应用程序的理解。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的菜单界面,将各个功能集中出来按照程序编写原则,便于查询。 

    注意事项

    本文(C课程设计报告学生成绩管理系统.docx)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开