收藏 分销(赏)

C课程设计的目的与要求.docx

上传人:a199****6536 文档编号:2967310 上传时间:2024-06-12 格式:DOCX 页数:24 大小:30KB
下载 相关 举报
C课程设计的目的与要求.docx_第1页
第1页 / 共24页
C课程设计的目的与要求.docx_第2页
第2页 / 共24页
C课程设计的目的与要求.docx_第3页
第3页 / 共24页
C课程设计的目的与要求.docx_第4页
第4页 / 共24页
C课程设计的目的与要求.docx_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、概述1.1目的本课程设计的目的是培养应用面向对象程序设计设计方法及思想解决实际问题的能力,掌握使用面向对象程序设计语言C+,熟悉面向对象开发平台Visual C+6.0,提高调查研究、查阅技术资料以及编写技术文献的能力。1.2意义C+是实践性很强的课程。课程设计是加强我们实践能力的一个强有力手段。课程设计规定我们在完毕程序设计的同时可以写出比较规范的设计报告。严格实行课程设计这一环节,对于我们基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。设计方案简述2.1系统框架主菜单学生成绩输入学生成绩记录学生成绩排名成绩的记录结果显示学生成绩的查找学生成绩的添加学生成绩的删除学生

2、数据的读取学生数据的存储2.2功能分析1、用C+语言实现系统;2、对学生信息(涉及学院、学号、姓名、高等数学、c+、大学英语、马列、平均分、总分)进行管理,涉及学生成绩的信息输入、输出、查询、删除、排序、记录、退出。3、规定设计的管理系统可以完毕以下功能:(1)、每一条记录涉及一个学生的学号、姓名、(至少)4门课成绩。(2)、成绩信息录入功能:(成绩信息用文献保存,可以一次完毕若干条记录的输入。)(3)、成绩信息显示浏览功能:完毕所有学生记录的显示。(4)、查询功能:完毕按姓名或学号查找学生记录,并显示。(5)、成绩信息的删除:按姓名或学号进行删除某学生的成绩.(6)、排序功能:按学生学号或总

3、成绩(从小到大)进行排序。(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽也许清楚美观!具体设计3.1模块设计与分析(1)输入学生资料:重要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以对该学生的各科成绩进行录入。该学生各科成绩输入成功后,系统会提醒是否继续进行操作,假如想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。(2)输出学生资料重要功能用来对学生的成绩进行输出。在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生

4、的信息,资料等等。具体涉及学生的班级,学号,姓名和各科成绩。在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。 (3) 添加学生资料重要功能是用来添加学生资料,成绩。假如系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。假如系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。(4)按姓名查找,删除该学生资料重要功能是用来删除学生资料。在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。(5)查找并显示学生资料重要功能是用来查找学生资料。在系统保存了某学生资料的前

5、提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息。(6)储存学生资料并退出系统 重要功能是用来储存学生资料对系统的最新操作进行保存,及时更新系统。 3.2程序代码#include#include#include#include#include#include#includeusing namespace std;typedef classpublic: char num10; char cla10; char name20; char byyl10; char jsjzc20; char sjk10; char jsjyy20; char jsdl20;

6、Student;Student stu80;int menu() char c; for(;c8;) system(cls); cout 欢迎使用本学生成绩管理系统!endl; coutendl; cout* 学生成绩管理系统 * endl; coutsetw(32) 1.输入学生资料endl; coutsetw(32) 2.输出学生资料endl; coutsetw(32) 3.按学生成绩进行排列endl; coutsetw(32) 4.添加学生资料endl; coutsetw(32) 5.按姓名查找,删除该学生资料endl; coutsetw(32) 6.查找并显示学生资料endl; cou

7、tsetw(32) 7.按姓名查找,修改该学生资料endl; coutsetw(32) 8.从文献中读入数据endl; coutsetw(32) 0.储存学生资料并退出系统endl; coutsetfill(=)setw(48)=endl; coutsetw(15) ; cout请选择(0-8):; c=getchar(); return(c-0);int Input(Student stud,int n) /输入数据。 int i=0; char sign,x10; for(;sign != n & sign != N;) coutsetw(15) studn+i.cla; coutsetw

8、(15) studn+i.num; coutsetw(15) studn+i.name; coutsetw(15) studn+i.byyl; coutsetw(15) studn+i.jsjzc; coutsetw(15) studn+i.sjk; coutsetw(15) studn+i.jsjyy; coutsetw(15) studn+i.jsdl; gets(x); coutsetw(10) ; cout&sign; i+; return(n+i); void Display(Student stud, int n) /输出数据。 int i; coutsetw(15) setfil

9、l(-)setw(65)-endl; coutsetw(15) 班级 学号 姓名 数据结构 离散数学 大学物理 大学英语 模拟电路endl; coutsetw(15) ; coutsetfill(-)setw(65)-endl; for(i=1;i1 & i%10=0) coutsetw(15) setfill(-)setw(35)-endl; coutsetw(15) ; system(pause); coutsetw(15) setfill(-)setw(35)-endl; coutsetw(15) ; system(pause);void Sort(Student stud,int n)

10、 /按名字排序。 int i,j; char t20; for(i=0;in-1;i+) for(j=0;j0) strcpy(t,studj+1.cla); strcpy(studj+1.cla,studj.cla); strcpy(studj.cla,t); strcpy(t,studj+1.num); strcpy(studj+1.num,studj.num); strcpy(studj.num,t); strcpy(t,studj+1.name); strcpy(studj+1.name,studj.name); strcpy(studj.name,t); strcpy(t,studj

11、+1.byyl); strcpy(studj+1.name,studj.byyl); strcpy(studj.byyl,t); strcpy(t,studj+1.jsjzc); strcpy(studj+1.name,studj.jsjzc); strcpy(studj.jsjzc,t); strcpy(t,studj+1.sjk); strcpy(studj+1.name,studj.sjk); strcpy(studj.sjk,t); strcpy(t,studj+1.jsjyy); strcpy(studj+1.name,studj.jsjyy); strcpy(studj.jsjyy

12、,t); strcpy(t,studj+1.jsdl); strcpy(studj+1.name,studj.jsdl); strcpy(studj.jsdl,t); coutsetw(15) 排序成功!endl;int Insert(Student stud,int n) /插入一条学生信息。 char x10; coutsetw(15) studn.cla; coutsetw(15) studn.num; coutsetw(15) studn.name; coutsetw(15) studn.byyl; coutsetw(15) studn.jsjzc; coutsetw(15) stud

13、n.sjk; coutsetw(15) studn.jsjyy; coutsetw(15) studn.jsdl; gets(x); n+; coutsetw(15) 插入成功!s; while(strcmp(studi.name,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(ttt没有发现该学生资料!n); /*返回失败信息*/ return(n); for(j=i;jn-1;j+) /*删除操作*/ strcpy(studj.num,studj+1.num); strcpy(studj.name,studj+1.name); strcpy(studj.cla,

14、studj+1.cla); strcpy(studj.byyl,studj+1.byyl); strcpy(studj.jsjzc,studj+1.jsjzc); strcpy(studj.sjk,studj+1.sjk); strcpy(studj.jsjyy,studj+1.jsjyy); strcpy(studj.jsdl,studj+1.jsdl); coutsetw(15) 当前信息已删除成功!endl; /*返回成功信息*/ return(n-1); void Query(Student stud,int n) /按名字查找信息 char s20; int i=0; coutset

15、w(15) s; while(strcmp(studi.name,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(ttt没有发现该学生资料!n); /*输入失败信息*/ return; coutsetw(15) 学号:studi.numendl; coutsetw(15) 数据结构:studi.byylendl; coutsetw(15) 离散数学:studi.jsjzcendl; coutsetw(15) 大学物理:studi.sjkendl; coutsetw(15) 大学英语:studi.jsjyyendl; coutsetw(15) 模拟电路:studi.j

16、sdlendl;int Xiugai(Student stud,int n) /修改信息。 n=Delete(stud,n); coutsetw(15) 输入你要修改的学生资料endl; n=Insert(stud,n); coutsetw(15) 修改完毕endl; return(n);int AddfromText(Student stud, int n) /从文献中读入数据。 int i=0,num; FILE *fp; char filename20; coutsetw(15) filename; if(fp=fopen(filename,rb)=NULL) coutsetw(15)

17、无法打开文献endl; coutsetw(15) ; system(pause); return(n); fscanf(fp,%d,&num); for(;inum;) fscanf(fp,%s%s%s%s%s%s%s,studn+i.cla,studn+i.num,studn+i.name,studn+i.byyl,studn+i.jsjzc,studn+i.sjk,studn+i.jsjyy,studn+i.jsdl); i+; n+=num; fclose(fp); coutsetw(15) 读入成功!endl; coutsetw(15) ; system(pause); return(

18、n); void WritetoText(Student stud,int n) /将所有记录写入文献。 int i=0; FILE *fp; char filename20; coutsetw(15) 将资料输入文献endl; coutsetw(15) filename; if(fp=fopen(filename,w)=NULL) coutsetw(15) 无法打开文献endl; system(pause); return; fprintf(fp,%dn,n); for(;in;) fprintf(fp,%-6s%-5s%-5s%-5s%-5s%-5s%-5sn,studi.cla,stud

19、i.num,studi.name,studi.byyl,studi.jsjzc,studi.sjk,studi.jsjyy); i+; fclose(fp); coutsetw(15) 输入成功!endl; int b; coutsetw(15) 请拟定是否退出系统:endl; coutsetw(15) 0.退出系统endl; coutsetw(15) 1.返回b; if(b=0) coutsetw(15) 谢谢使用!endl; coutsetw(15) ; system(pause); exit(0); void main() /主函数调用。 int n=0; for(;) switch(m

20、enu() case 1: coutsetw(15) 输入学生资料endl; n=Input(stu,n); break; case 2: coutsetw(15) 输出所有学生资料endl; Display(stu,n); break; case 3: coutsetw(15) 按姓名排序endl; Sort(stu,n); coutsetw(15) ; system(pause); break; case 4: coutsetw(15) 插入学生资料endl; n=Insert(stu,n); coutsetw(15) ; system(pause); break; case 5: cou

21、tsetw(15) 删除学生资料endl; coutsetw(15) 输入他(她)的姓名:; n=Delete(stu,n); coutsetw(15) ; system(pause); break; case 6: coutsetw(15) 查找学生endl; Query(stu,n); coutsetw(15) ; system(pause); break; case 7: coutsetw(15) 修改学生资料endl; coutsetw(15) 输入你要修改的学生的姓名:; n=Xiugai(stu,n); system(pause); break; case 8: coutsetw(

22、15) 从文献中读入数据endl; n=AddfromText(stu,n); break; case 0: coutsetw(15) 将所有资料写入文献endl; WritetoText(stu,n); coutsetw(15) ; system(pause); break; 调试分析1.实际完毕的情况说明。通过程序简朴的实现了学生成绩的浏览、增长、删除和修改等操作,可一通过修改其中量的类型来支持多种数据类型的输入、输出。2.程序的性能分析。 程序只能实现一些简朴的浏览、增长、删除和修改操作而不能进一步的对每 个班级或学校全体学生成绩进行分类等的操作。3.上机过程中出现的问题及其解决方案。上

23、机过程中碰到很多问题比如需要用到数据库时每次执行都要连接数据源, 但是一旦工作空间移动则下次再运营时就找不到数据源,无法执行。解决方法:可以把数据库设立成动态的,每次执行程序时通过控制面板“ODBC数据源管理器”把程序与数据源连接起来。4.程序中可以扩充的功能及设计实现构想。总结通过将近几周的课程设计,简朴的学生成绩管理系统基本完毕,系统基本功能基本实现,测试运营也基本正常。该系统基本上可以进行学生成绩信息录入、修改、查询、浏览、删除、记录等操作。在整个课程设计阶段,由于自己动手局限性和对开发工具的陌生,最重要的是,对知识还不是纯熟地掌握,系统碰到了很多大大小小的问题,如如何运用Visual

24、C+ 6.0与数据库的连接技术提高系统性能等,所以我的学生成绩管理系统是一个很简朴的教师用户系统。在一次次克服困难的过程中,我得到了极大的锻炼,获得了许多宝贵的软件开发经验和技巧。同时,我也懂得了一个很重要的道理,那就是说一个程序的产生需要一个对题目规定有一个对的全面的分析。另一方面,就该考虑程序算法的问题了,一个好的算法是一个好程序的灵魂,也决定了一个程序的质量。通过课程设计,我加深了对C+这门课的结识,使自己对软件的使用能力得到提高。我相信这将为我此后的学习工作打下坚实的基础,这对我来说也是一次丰富的收获。参考文献1龚志翔. Visual C+编程实例与技巧集粹M.北京:北京盼望电子出版社,20232孔鹏. Visual c+ 6.0完全自学手册M.北京:机械工业出版社,20233邓华. Visual C+案例教程M.北京中科多媒体电子出版社,20234. 谭浩强.C+程序设计(第二版).北京:清华大学出版社,20235 杨永国Visual C+ 6.0实用教程北京:清华大学出版社, 20237. 黄勇忠.面向对象方法与设计 北京:国防工业出版社, 2023.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服