C课程设计报告.docx
- 文档编号:3171948
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:18
- 大小:297.53KB
C课程设计报告.docx
《C课程设计报告.docx》由会员分享,可在线阅读,更多相关《C课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
C课程设计报告
面向对象程序设计(C++)课程设计任务书
学院
计算机与信息工程学院
专业
通信工程
课程名称
面向对象程序设计(C++)
题目
学生考勤管理系统的设计与实现
完成期限
自2017年6月12日至2017年6月17日共6天
内
容
及
任
务
一、项目目的
1.巩固和加深学生对程序设计课程基本知识的理解,综合该课程中所学的理论知识,独立或联合完成一个应用课题的设计;
2.根据选题需要,通过查阅手册和文献资料,培养分析和解决实际问题的能力;
3.进一步提高使用C++进行软件开发的能力。
二、项目任务的主要内容和要求
设计一个学生考勤管理系统。
可以实现对学生信息的添加功能、查询功能、显示功能、编辑功能、删除功能、统计功能、保存功能、读取功能、排序功能。
实现:
学生信息的录入:
修改:
删除和查询,按姓名或学号查询。
应用系统分析,建立该系统的功能模块框图以及界面的组织和设计,分析系统中的各个实体及它们之间的关系,根据问题描述,设计系统的类层次;完成系统的应用模块。
三、项目设计(研究)思路
考勤管理系统要实现对学生考勤的信息录入,根据给定信息对学生考勤结果进行分类统计,以及结果查询。
四、具体成果形式和要求
成果形式:
程序和报告。
具体要求:
建立一个学生考勤信息数据库,文件名为“学生考勤管理系统.txt”并从该文件写入数据。
学生考勤管理系统要实现对学生考勤的信息录入,根据给定信息对学生考勤进行分类。
进
度
安
排
起止日期
工作内容
2017年6月12日
需求分析,按照课题要求,搜集查询相关参考资料。
2017年6月13日
至2017年6月14日
概要设计和详细设计阶段,根据前期的需求分析结果,定义系统实现所需要的自定义函数数据类型及个功能函数。
2017年6月15日
至2017年6月17日
程序的进一步完善,调试与测试撰写课程设计报告。
主
要
参
资
料
考
[1].谭浩强.C程序设计(第三版)[M].北京:
清华大学出版社,2014
[2].梁旭.C语言课程设计(第三版)[M].北京:
电子工业出版社,2013
[3].刁成嘉.面向对象程序设计[M].北京:
机械工业出版社,2004
[4].张鸿.C++语言程序设计[M].北京:
中国电力出版社,2014
指导教师
意见
(签字):
年月日
系(教研室)
主任意见
(签字):
年月日
面向对象程序设计(C++)课程设计说明书
学院名称:
计算机与信息工程学院
班级名称:
通信162
学生姓名:
沈杰
学号:
2016211881__
题目:
学生考勤管理系统的设计与实现
指导教师
姓名:
王南洋
起止日期:
2017年6月12日至2017年6月17日
1系统需求分析
考勤信息记录了学生的缺课情况,它包括:
缺课日期、第几节课(连续用begin-end的形式表示)、课程名称(课程名称中不会出现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。
试设计考勤管理系统,使之能提供以下功能:
1.1录入学生的缺课记录
从键盘输入数据提示,为避免重复从键盘输入数据测试时可将数据存储在文件中,利用输入重定向功能读入。
输入格式为:
缺课日期、第几节课、课程名称、学生姓名、缺课类型,每行一条纪录。
例如:
2016-04-292-4中国近代史李某迟到
2017-04-282-4大学生心理素质马某旷课
1.2修改学生的缺课记录
可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。
1.3查询学生的缺课情况
查询结果按照日期升序排序,同一天内按照所缺课程的时间升序排序。
1.4统计
1.4.1统计姓名及节数
统计某段时间内(以天为单位)旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序,旷课节数相同的学生按姓名升序排序。
1.4.2统计课程及人次
统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序旷课人次相同的课程按课程名称升序排序。
1.5小结
系统以菜单方式工作。
所谓菜单指用户可以自由选择所要执行的功能。
学生可以通过以上功能录入信息、修改信息、查询信息、整理统计出所要了解的信息除了要实现上述的基本功能之外,本系统还应该在细节上下工夫,使用户使用方便,在使用的过程中保持一个愉快的心情。
学生考勤管理系统有广大的用户群这其中有老师、有教务处主任、有公司管理人员,也可以供给一般用户使用。
总之,该系统可以满足用户需求,实现对其管理的人员的考勤工作。
2总体设计
学生考勤管理系统包含五个大的功能。
分别是:
录入学生缺课信息、修改学生缺课信息、查询某个学生的缺课情况、统计某段时间内(以天为单位)旷课学生姓名及旷课节数和统计某段时间内,有学生旷课的课程及旷课人次。
学生的缺课信息主要包含缺课日期、第几节课、课程名称、学生姓名、缺课类型。
在录入学生缺课信息时根据系统提示逐一输入。
每输入完一条信息,系统会提示是否继续输入、用户可以选择继续或返回主菜单。
在修改学生缺课信息时,用户首先输入要修改的学生姓名,系统会检索如果系统中有该学生的相关信息则系统首先会提示用户修改该学生的那一部分信息,用户可自行选择。
如果系统中没有该
学生的相关信息,则系统会给相关提示,用户可以选择继续输入要修改的学生姓名或选择退出返回主菜单。
在查询学生缺课信息时,用户先输入要查询的学生姓名。
系统检索判断是否存在该学生的信息然后做出相应的提示。
总之,用户可以方便的在系统提示下进行使用。
图1学生考勤管理系统中功能模块图
3详细设计
学生考勤管理系统中四个类的类层次图为
图2学生考勤管理系统中中四个类的类层次图
学生考勤管理系统中各功能模块的实现
图3学生考勤管理系统中菜单函数的功能图
3.1学生缺课信息录用功能模块
图4学生缺课信息录入的功能
3.2修改某学生缺课信息功能的模块图
图5学生考勤管理系统修改学生缺课信息功能图
3.3查询某学生缺课信息功能图
图6学生考勤管理系统查询学生缺课信息功能图
3.4统计某段时间内旷课学生姓名及旷课节数功能模块
图7统计某段时间内旷课学生姓名及旷课节数功能图
3.5统计某段时间内有学生旷课的课程及旷课人次功能模块
图8统计某段时间内有学生旷课的课程及旷课人次功能图
4系统调试
4.1系统实现
程序编写完成后,我进行了程序调试。
调试过程中,出现了以下问题:
当录入学生缺课信息时,出现了无法退出录入函数的情况,主要原因是输入函数中while循环语句没有设置跳出循环的条件。
除此之外,修改某学生缺课信息时,如果没有该学生的缺课信息,系统没有提示要用户没有该学生信息,也没有建议用户重新输入要修改的学生姓名。
由此我发现了该系统修改学生缺课信息的不足。
在该函数中,也可查询要修改的学生缺课信息。
如果没有,则提示用户没有该学生的缺课信息,用户可以选择继续输入要修改的学生姓名或者退出修改环节,可以在循环语句中改变循环进行的条件从而终止循环。
系统实现了提示用户的功能,如果系统中没有你要查询的学生缺课信息,系统将会提示用户,用户可以继续输入要查询的学生姓名也可以通过按系统设置的退出键选择退出查询环节。
通过认真调试,我发现我有了收获。
4.2类的设计
附录:
源程序代码(部分主要程序)
//缺课课程类
classqkechen:
publicxinxi
{public:
qkechen(){kcshu++;}
~qkechen(){kcshu--;}
intgetrc(xinxist1[],intn,intj);
charqkn[20];//公有数据成员
private:
intrenci;
staticintkcshu;//静态数据成员
};
intqkechen:
:
kcshu=0;
intqkechen:
:
getrc(xinxist1[],intn,intj)
{renci=0;
renci++;
for(inti=0;i if(*(st1[i+1].gettime()+1)==*(st1[j].gettime()+1)&&*(st1[i+1].gettime()+2)==*(st1[j].gettime()+2)) if(strcmp(qkn,st1[i].getkechen())==0) renci++; returnrenci; } //缺课学生类 classqstu: publicxinxi {public: qstu(){qst++;} ~qstu(){qst--;} voidprint(xinxi&st1); intgetjs(xinxist1[],intn,intj); intsetjs(intjs=0) {jieshu=js;} charqstn[20]; private: intjieshu; staticintqst;//静态数据成员 }; intqstu: : qst=0; //全局变量 intg,k=1,b=1; intq=-1; charname[20],kechen[10],queke[10],jieci[3]; inty,m,d; //主函数 intmain() {xinxitl[15];//定义15条信息类对象 qstuqt[10]; qkechenqk[6]; intch; while (1) {cout<<"********欢迎进入学生考勤管理系统*********"< caidan(); cout<<"--------请选择菜单项: "< cin>>ch; switch(ch) {case1: g=shuru(tl);break; case2: xiugai(tl,g);break; case3: chaxun(tl,qt);break; case4: tongji1(tl,qt);break; case5: tongji2(tl,qk);break; case6: exit(0); } } return0; } //修改函数 voidxiugai(xinxist1[],intn) { intk=1,j=0,a[10]; intflgh; inth; while(k==1) {cout<<"请输入你要修改缺课记录的学生姓名"< cin>>name; flgh=0; for(inti=0;i if(strcmp(name,st1[i].getname())==0) do{a[j]=i; cout<<"1.修改日期2.修改节次3.修改课程名称4.修改缺课类型"< cout<<"请输入要选择的数值(1,2,3,4)"< intb; cin>>b; if(b==1) {cout<<"请输入新日期"< cin>>y>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告