程序设计实践-任务书.doc_第1页
程序设计实践-任务书.doc_第2页
程序设计实践-任务书.doc_第3页
程序设计实践-任务书.doc_第4页
程序设计实践-任务书.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计实践任务书课程名称:程序设计实践课程编号:25070748学分/学时:3学分/3周课程类型:实践性课程考核方式:考查开课学期:大一第3学期开课单位:计算机与信息工程学院先修课程:C语言程序设计、C+面向对象程序设计后续课程:数据结构与算法、网络编程、嵌入式软件设计等适用专业:计算机科学与技术、网络工程、空间信息科学与工程一、课程设计的目的、任务与要求课程性质:程序设计实践是学习C/C+程序设计的一个重要环节。通过课程设计的综合训练,可以使学生在学习理论知识并在实验中进行了一系列基本训练的基础上,进一步加强学生对实际问题分析、编程和动手能力的提高,强化综合应用能力,扩充知识,开阔视野。学生在熟练运用Visual C+ 6.0以后,通过使用Visual C+ 6.0的训练,扩展程序设计的知识面,提高综合应用C+知识能力的要求。教学目标:本通过学习本课程,学生能够更熟练地掌握C/C+语言的语法规则,能够运用简单的算法,综合运用编程方法和问题分析方法,设计针对解决问题的算法步骤。初步培养数据采集、数据分析、数据处理及结果分析的能力。a加强掌握C/C+程序设计语言的语法规程和综合编程能力;b培养学生面向对象和面向过程的编程思想,学会从现实问题中抽象出一般的解决方法;贯彻面向对象编程思想,抽象出合适的类,封装相关功能函数。c掌握基本的软件分工,根据算法画出流程图、报告书写及答辩汇报技巧;二、设计任务及要求任务一: C语言部分(以下选做一题)(1)某班学生基本信息管理,可包括以下功能:学生基本信息输入、输出、插入、删除、排序、查询、数据保存及打开。struct student /*定义一种结构体类型*/ int num; char name20; char sex; int age; ;#include “stdio.h”main() struct student stu5; int i; for(i=0;i5; i+) scanf(%d%s%c%d,&stui.num, , &stui.sex, &stui.age); for(i=0;inum,p-name,p-sex,p-age);建立一个静态链表,它由三个学生数据结点组成,输出各结点的数据#include “stdio.h”#define NULL 0struct studentlong num;float score;struct student *next;main()struct student a,b,c,*head,*p;a.num=99101;a.score=89.5;b.num=99103;b.score=90;c.num=99107;c.score=85;head=&a;a.next=&b;b.next=&c;c.next=NULL;p=head;while(p!=NULL)printf(“%ld%5.1fn”,p-num,p-score);p=p-next; 键盘上输入若干个学生的学号及考试成绩, 将这些数据写入磁盘文件y.dat中。(由学号等于0作终止标记)#include stdio.hmain() struct student int num; float score; ;struct student stu;FILE *fp;fp=fopen(y.dat,wb);scanf(%d%f,&stu.num,&stu.score);while(stu.num!=0) fwrite(&stu,sizeof(struct student),1,fp); scanf(%d%f,&stu.num,&stu.score);fclose(fp);程序4:将程序4建立的文件内容读出并显示出来。#include stdio.hmain() struct student int num; float score; ;struct student stu10;FILE *fp;int n=0 ,i;if(fp=fopen(y.dat,rb)!=NULL) fread(&stun,sizeof(struct student),1,fp); while(!feof(fp) n+; fread(&stun,sizeof(struct student),1,fp); for(i=0;in;i+) printf(%5d%6.1fn,stui.num,stui.score); fclose(fp);else printf(can not open y.datn);(2)职工信息管理职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复),职工信息管理,可具有以下功能:职工信息录入、输出、查询、删除、修改、数据保存、文件打开等。基本功能要求:见(1)。(3)图书信息管理图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。尝试设计一图书信息管理系统,可实现以下功能:图书信息录入、图书信息浏览、图书查询(按书名查询或按作者名查询)、排序、图书信息的删除与修改、数据保存、文件打开等。基本功能要求:见(1)。任务二:C+部分共分A,B两类,可选择任意一类完成。A类:1、学校人员信息管理系统设计任务:设计一个学校人员信息管理系统,可以实现对学校人事的信息管理。基本功能要求: (1)建立人员信息数据包括学号(教工号)、姓名、性别、专业(工作系别部门)、出生时间、年龄。其中, 对学生,还包括3门课的成绩(Chinese, English, Mathematics)。三门课的成绩为int型数据。 对教师,还包括职称(如教授/副教授/讲师),工资(如1432.50)。工资为double型数据。【英语命名提示】:姓名: name; 性别:sex; 专业:major; 工作系别:department教授:professor; 副教授:Associate Professor; 讲师:Lecturer工资:salary(2)使用继承的方法构造3个类,对相应的对象放置10个学生(教师)信息。 People类虚基类 Student类派生类 Teacher类派生类(3)数据基本功能: 增加数据:AddData()函数。 删除数据:DeleteData()函数。根据学号(教工号),删除该人员的记录。 修改数据: UpdateData()函数。对学生,根据学号,能够修改3门课的成绩;对教师,根据教工号,能够修改“职称”和“工资”。 查找功能:1)SearchData()函数。要求能够根据“学号(教工号)”、“姓名”、“性别”三项实现查询,并能在屏幕上显示满足条件的数据记录。2)FindMaxData()函数。对学生,查找“English”课程成绩最高的学生记录并打印;对教师,查找“工资”最高的教师记录并打印。要求:采用函数模板实现。 显示功能:DisplayData()函数。在屏幕上打印所有的数据记录;打印时,先打印学生的记录,后打印教师的记录。并且按学生(教工号)升序打印(选择)。(4)重载功能: 要求对“”和“”运算符进行重载。考虑到输人学生(教工)姓名时,名字中可能引入空格,所以重载“”运算符时,需要满足这个要求。(5)异常处理功能: 设置异常处理,对教师工资为负数的情况给出提示。(6)文件的输入输出功能(选择): 能够从文件中读入数据。外部文件为Student_ext.dat, Teacher_ext.dat。 能够将数据保存到相应目录的文件中。保存数据时,分两个文件分别保存Student.dat, Teacher.dat。(7)参考系统界面如示:参考系统界面如下: 1-增加一位人员(教师、学生)记录 2-删除一个人员记录 3-修改一个人员记录 4-根据“学号(教工号)”、“姓名”、“性别”查找记录 5-根据人员类别(学生、教师)查找“English”课程成绩最高的学生,或最高工资的教师 6-显示全部人员记录 7-从外部文件追加数据 8-将所有数据保存到磁盘文件 9-退出系统。如下例题所示:2、容器类Set实现用单链表模拟有序集合,实现集合的加入一个元素、删除一个元素、集合的交、并、差运算。注意,集合中不允许有重复元素。1) 使用模板类2) 根据元素个数动态分配存储空间3) 实现集合加入一个元素删除一个元素的元素操作;4) 实现集合的交、并、差集合操作;5) 实现集合的文件操作;可将集合写入文件,由文件中读出集合元素。6) 有菜单界面#include #include using namespace std;templateclass setprivate:T *p;int len;public:set(int length = 0)len = length;if (len = 0)return ;p = new Tlen;set(const set &a)len = a.len;if (len = 0)return;p = new Tlen;for (int i = 0; i0)deletep;void input()int i;if (len = 0)return ;cout 请输入数组:;for (i = 0; ipi;set operator * (set &a)set tmpSet;T *tmp = new Ta.len;int count = 0;for (int i = 0; i a.len; i+)for (int j = 0; j len; j+)if (this-pj = a.pi)tmpcount = a.pi;count+;break;tmpSet.p = new Tcount;for (int i = 0; i len0)delete p;this-p = new Ts.len;for (int i = 0; i pi = s.pi;this-len = s.len;return *this;void display()int i;for (i = 0; ilen; i+)cout pi ;int main()setga1(5);setga2(5);setga3;ga1.input();ga2.input();ga3= ga1* ga2;ga3.display();return 0;B类:图形化界面程序设计。参考MFC,QT编程资料。(1) 游戏类: 扫雷 空当接龙 俄罗斯方块游戏 五子棋要求:参阅现有游戏,设计有良好人机交互界面的程序;鼓励用可视化的人机交互设计,如菜单、按钮,可基于MFC、Qt等开发工具。(2) 数据库管理类带有人机交互界面的数据库操作。如学生信息管理,教学信息管理,实现录入、删除、查询及更新等基本功能。例如界面:(3) 自选以上给出的仅为参考题目,学生在选择过程中根据自己的实际,按照上述题目的难易程度,寻找合适的课程设计题目,也可以自己设计题目,经指导教师确认后定题,一旦题目选定,不允许随意更改。三、报告书写格式参考:程序设计实践报告四、参考资料1 高级语言程序设计,吴芸,翁伟 厦门大学出版社,2014。2C+程序设计(第2版),吴乃陵,况迎辉,高等教育出版社,2006。3C+程序设计实践教程(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论