C++课程大作业参考报告
C++大作业报告
C%2B%2B大作业报告一.问题描述1.1个人通信录管理系统内容描述:个人通信录记录了同学(包含一起上学的学校名称)、同事(包含共事的单位名称)、朋友(包含认识的地点)、亲戚(包含称呼)等与本人有关人员的数据集。
要求:(1)提供录入个人信息、修改个人信息(姓名和出生日期除外)、删除个人信息等编辑功能(2)提供按姓名查询个人信息的功能(3)提供查找在5天之内过生日的人员的信息,以便发出祝贺电话或E_mail(4)按照姓名或出生日期排序,显示输出(5)统计在给定月份出生的人数,并显示输出(6)能列出全体人员的姓名、出生日期、电话和email地址(7)能分别列出同学、同事、朋友、亲戚的所有信息(8)用菜单形式提供程序的各种功能的选择提示:(1)将同学、同事、朋友和亲戚的信息分别存入通信录文件AddressBook1.txt ,Addre ssBook2.txt,AddressBook3.txt和AddressBook4.txt中。
文件中除了包含每人的姓名、出生日期、电话和Email地址等信息外,对同学还要包含一起上学的学校名称,对同事还要包含共事的单位名称,对朋友还要包含认识的地点,对亲戚包含称呼。
其中姓名用汉语拼音或英文表示。
(2)在查出的5天内过生日的人员信息中,要包括该日期是星期几的信息。
例如:3月21日(星期四)哥哥:张晓阳Tel: 39380285, Email:zxy@(3)能够自动生成祝贺生日的电子邮件的文本文件,文件由被祝贺人姓名和祝贺词等组成。
其内容为:被祝贺人姓名:祝生日快乐,健康幸福。
祝贺人姓名二、系统设计2.1类体系设计类体系为一个基类和由它派生的四个派生类。
2.2类定义,函数描述基类:person,以下是主类代码class person{protected:person*head;person*next;PersonInfo Individual;char info[60];void show(PersonInfo,char*);void putin(PersonInfo&,int,char*,char*,char*,int,int,int);public:person(person*,person*,PersonInfo,char*);person(PersonInfo,char*);person(){}void ini(); //初始化void append(); //添加void alter(); //更改void deleteinfo(); //删除void CheckBirthWithinFD(); //5天内生日和显示void outblessingletter(char*);//输出信件virtual void SortByType(); //void menudisplay();virtual void showallBySort();void showall();void countthebirthdayinmonth ();friend void sortByname();friend void sortBybirth();bool isend(PersonInfo);void checkname();};其中数据成员有类指针head和next,还有结构Individual和info字符数组,head和next 是在排序的时候用到的,用来构建简单的单链表,Individual和info存储从二进制文件中得到的信息,成员函数里putin用来将数据放进结构里。
C语言程序设计大作业报告模板样本
《C语言程序设计》大作业报告1.目掌握所学C语言程序设计办法,熟悉所学语言开发环境及调试过程,熟悉所学C语言中数据类型,数据构造、语句构造、运算办法,巩固和加深对理论课中知识理解,提高学生对所学知识综合运用能力。
通过综合设计规定达到下列基本技能:1.培养查阅参照资料、手册自学能力,通过独立思考进一步钻研问题,学会自己分析、解决问题。
2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计办法,能纯熟调试程序。
2.作业内容纯熟掌握所学语言基本知识:数据类型(整形、实型、字符型、指针、数组、构造等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序构造(顺序构造、判断选取构造、循环构造);大程序功能分解办法(即函数使用)等。
进一步掌握各种函数应用等。
3.规定:1.规定每个同窗都要认真对待,积极参加。
2.独立完毕,不能抄袭。
3.课程设计结束时每位同窗必要完毕《大作业报告册》,其中包括设计源代码和设计思路。
4.不符合规定程序、设计报告、抄袭设计报告或源程序代码、在设计中完全未参加将作不及格解决。
5.统一格式,A4打印,准时提交。
4.题目:设计规定:编写一种程序,求3x4数组转置矩阵。
规定在main函数里面读数,在change函数里面把矩阵转置。
5.程序设计5.1 设计思路:1是先定义两个数组,一种是a[3][4],另一种是b[4][3]。
2是将随便输入12个数输入到a[3][4]。
3是在change函数中将a[3][4]中值通过for循环镶嵌将数组a[3][4]值赋值给数组b[4][3]。
4在主函数中将数组b[4][3]通过for循环嵌套输出。
5.2 代码# include <stdio.h>int change (int a[3][4],int b[4][3]);main(){ int a[3][4],b[4][3],i,j;printf("please input some 12 numbers:"); for(i=0;i<3;i++){printf("\n");for(j=0;j<=3;j++)scanf ("%d",&a[i][j]);}change (a,b);for(i=0;i<4;i++){for(j=0;j<3;j++)printf("%5d",b[i][j]);printf("\n");}}int change (int a[3][4],int b[4][3]){int m,n;for(m=0;m<3;m++)for(n=0;n<4;n++)b[n][m]=a[m][n]; retrun 0;}5.3 成果6.心得体会编写时注意for循环嵌套,先理清逻辑关系在编写,在看例题后,需要多敲代码,才干越来越纯熟。
c语言实验报告5篇
c语言实验报告c语言实验报告5篇随着社会一步步向前发展,我们使用报告的情况越来越多,我们在写报告的时候要注意涵盖报告的基本要素。
其实写报告并没有想象中那么难,以下是小编收集整理的c语言实验报告,欢迎阅读与收藏。
c语言实验报告1学号:__________ 姓名:__________ 班级:__________ 日期:__________指导教师:__________ 成绩:__________实验六综合实验一、实验目的1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。
2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。
3、掌握C程序的运行、调试方法等。
二、实验内容编写一个学生信息排序程序。
要求:1、程序运行时可输入n个学生的信息和成绩(n预先定义)。
2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。
3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。
1、使用函数方法定义各个模块。
三、实验步骤与过程物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板四、程序调试记录c语言实验报告2第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。
(]1.2 实验要求在报告中记录建立、保存C程序实习过程。
1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main(){printf (“Hello World! ”);}2)链接。
执行Build-命令。
3)运行。
执行Build Execute 命令。
显示结果。
4)关闭程序工作区。
(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。
程序设计实验报告(C语言初学者大一大作业)
程序设计实验报告课程程序设计基础共9页系别实验日期 2020 年专业班级____ __实验报告日期 2020 年 5月 31日姓名学号_ 报告退发 ( 订正、重做 )同组人无教师审批签字一.实验目的(1)掌握算法与数据结构;(2)掌握各种运算符及其表达式的使用;(3)掌握常数和变量的使用方法;(4)掌握各种数据类型的基本概念及使用方法;(5)掌握指针的用法;(6)了解文件,结构体,链表的定义。
二.实验内容(-)实验题目一:有1000元,存5年,请计算一下5种存款方法的存款利息:(p1)一次存5年;(p2)先存2年,到期后将本息再存3年期;(p3)先存3年期,到期后将本息再存2年期;(p4)存1年期,到期后将本息再存1年期,连续存5次;(p5)存活期存款。
活期利息每一季度结算一次。
2017年的银行存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为3%;5年期定期存款利息为5.85%;活期存款利息为0.35%(活期存款每一季度结算一次利息)。
输出格式如下:p1=1234.56p2=1234.56p3=1234.56p4=1234.56p5=1234.561.程序源代码#include<stdio.h>#include<math.h>int main(){double a0,a1,a2,a3,a5,p1,p2,p3,p4,p5,p;a0=0.0035;a1=0.015;a2=0.021;a3=0.03;a5=0.0585;p=1000;p1=p*(1+5*a5);p2=p*(1+a2*2)*(1+3*a3);p3=p*(1+3*a3)*(1+2*a2);p4=p*pow(1+a1,5);p5=p*pow(1+a0,20);printf("p1=%.2f\np2=%.2f\np3=%.2f\np4=%.2f\np5=%.2f\n",p1,p2, p3,p4,p5);return0;}2.实验结果(二)实验题目二:猴子吃桃问题。
C语言大作业报告
C语言大作业
猜数字游戏
信安三班
孙麒88
戈丽萍66
分工
戈丽萍:A、B、Win函数,流程图孙麒:main、Guess函数、程序调试
一、游戏说明
1、系统随机产生一组不重复的4位数字
2、游戏者输入所猜的不重复数字,并按回车提交。
3、系统将提交的数与它自动产生的数进行比较,输出结果“*A*B”形式。
其
中A代表数字正确相应位置也正确,B代表数字正确但位置不正确。
如:1A3B 表示游戏者有1个数字的位置正确且数值也正确,除此以外,游戏者还猜对了3个数字,但位置不对,即游戏者已经猜出4位数据,但有3个数据位置不对!
4、游戏者有限定的8次的猜测机会,在规定次数内完成,则游戏成功,否则,
游戏失败。
5、游戏成功后,将根据游戏者猜测所需要的次数对其进行评价:第一次猜出为perfect,第二——第四次猜出为great
二、详细流程
1、main函数
、
2、win函数(判断输赢)
3、A函数(判断数字且位置正确的个数)
A (char m[4],char n[4])
B(char m[4],char n[4],in a)
4、B函数(判断数字对但是位置不对的个数)
5、主函数Guess(char right[4])
三、总结经验
在确定了设计的内容之后,经历了很长时间的思考想出了算法。
但是在设计中反复出现错误,特别是B函数,检查很多遍之后觉得算法并无问题。
就分块进行调试。
后来偶然发现原来是整个过程中的“==”都写成了赋值“=”,导致错误,今后一定要细心才可以。
《C大作业报告》word版
如有异议或侵权请及时联系,客服将立即删除!C++大作业报告姓名:常皓学号:03101261班级:031013销售公司员工管理设计一个虚基类Staff(员工),包含编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff派生出销售员类Salesman,包含销售额保护数据成员以及相关的成员函数;再由Staff派生出经理类Manager;然后由Salesman和Manager类派生出销售经理类SalesManager。
设计一个利用文件处理方式实现对公司人员(包括销售员、经理和销售经理)进行管理,具有增加数据、更新数据、查询数据、删除数据以及重组文件的功能。
(删除数据在记录中做删除标志,重组文件指在物理上删除有删除标志的记录。
)另外要求分别统计这三类员工的人数以及所有员工的总数。
编程思想:首先定义一个虚基类Staff类,然后通过虚拟继承生成Salesman类和Manager类,最后由Salesman和Manager派生出主任销售员类SalesManager。
这四个类中定义InputFromFile(istream &in)这一输入函数,另外每个类还定义输入信息和输出信息的成员函数,之后定义StaffChart、SalesmanChart、ManagerChart和SalesManagerChart四个类来,为实现增加、更新、查询、删除以及全部显示人员的功能定义addItem、modifyItem、find、removeItem 以及display函数。
最后在主函数定义Staff_Chart、Salesman_Chart、Manager_Chart和Salesmanager_Chart四个对象,通过循环执行并用switch函数选择功能,然后调用相关的函数来实现各种功能。
实验代码:#include"iostream"#include"fstream"using namespace std;class Staff{char num[10];char name[10];int age;public:Staff * Next;void set_staff(){cout<<"请输入编号:";cin>>num;cout<<"请输入姓名:";cin>>name;cout<<"请输入年龄:";cin>>age;}void InputFromFile(istream &in){in>>num>>name>>age;}void show(){cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"年龄:"<<age<<endl;}char *get_num(){return num;}char *get_name(){return name;}int get_age(){return age;}};class Salesman:virtual public Staff{protected:char major[10];char t_title[10];public:Salesman * Next;void set_salesman()cout<<"请输入编号:";cin>>num;cout<<"请输入姓名:";cin>>name;cout<<"请输入年龄:";cin>>age;cout<<"请输入专业:";cin>>major;cout<<"请输入职称:";cin>>t_title;}void InputFromFile(istream &in){in>>num>>name>>age>>major>>t_title;}void show_salesman(){cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"年龄:"<<age<<endl;cout<<"专业:"<<major<<endl;cout<<"职称:"<<t_title<<endl;}char *get_major(){return major;}char *get_t_title(){return t_title;}};class Manager:virtual public Staff{protected:char job[10];char dept[10];public:Manager * Next;void set_manager(){cout<<"请输入编号:";cin>>num;cout<<"请输入姓名:";cin>>name;cout<<"请输入年龄:";cin>>age;cout<<"请输入职务:";cin>>job;cout<<"请输入部门:";cin>>dept;}如有异议或侵权请及时联系,客服将立即删除!void InputFromFile(istream &in){in>>num>>name>>age>>job>>dept;}void show_manager(){cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;cout<<"年龄:"<<age<<endl;cout<<"职务:"<<job<<endl;cout<<"部门:"<<dept<<endl;}char *get_job(){return job;}char *get_dept(){return dept;}};class SalesManager:public Salesman,public Manager{public:SalesManager * Next;void set_salesmanager(){cout<<"请输入编号:";cin>>num;cout<<"请输入姓名:";cin>>name;cout<<"请输入年龄:";cin>>age;cout<<"请输入专业:";cin>>major;cout<<"请输入职称:";cin>>t_title;cout<<"请输入职务:";cin>>job;cout<<"请输入部门:";cin>>dept;}void InputFromFile(istream &in){in>>num>>name>>age>>major>>t_title>>job>>dept;}void show_salesmanager(){cout<<"编号:"<<num<<endl;cout<<"姓名:"<<name<<endl;如有异议或侵权请及时联系,客服将立即删除!cout<<"年龄:"<<age<<endl;cout<<"专业:"<<major<<endl;cout<<"职称:"<<t_title<<endl;cout<<"职务:"<<job<<endl;cout<<"部门:"<<dept<<endl;}};class StaffChart{public:StaffChart();~StaffChart();void find(); //输出单个条目void save(); //将信息输出到文件void modifyItem(); //修改Staff条目void removeItem(); //删除Staff条目void display() //输出全部条目{Staff *p=Head->Next;for(p;p!=End;p=p->Next){p->show();cout<<endl;}}void addItem() //添加条目{End->set_staff();End->Next=new Staff;End=End->Next;save();}private:Staff * Head,* End;ifstream in; //文件输入ofstream out; //文件输出Staff * findItem(char * num){for(Staff * p=Head;p->Next!=End;p=p->Next)if(!strcmp(p->Next->get_num() ,num))return p;return NULL;}StaffChart::StaffChart() //构造函数{Head=new Staff;Head->Next=new Staff;End=Head->Next;in.open("StaffChart.txt");while(!in.eof()){End->InputFromFile(in);if(End->get_num()[0]=='\0')break;End->Next=new Staff;End=End->Next;}in.close();}StaffChart::~StaffChart() //析构函数{for(Staff * temp;Head->Next!=End;){temp=Head->Next;Head->Next=Head->Next->Next;delete temp;}delete Head,End;}void StaffChart::find() //查找条目{char num[10];Staff * p=NULL;cout<<"请输入要查找员工的工号:";cin>>num;if(p=findItem(num))p->Next->show();else{cout<<"没有找到!!"<<endl<<endl;}}void StaffChart::modifyItem() //修改条目char num[10];Staff * p=NULL;cout<<"请输入要修改员工的工号:";cin>>num;if(p=findItem(num)){p->Next->show();cout<<"请输入新的内容:"<<endl;p->Next->set_staff();}elsecout<<"没有找到!!"<<endl<<endl;save();}void StaffChart::removeItem() //删除条目{char num[10];Staff *p=NULL,*temp=NULL;cout<<"请输入要删除员工的工号:";cin>>num;if(p=findItem(num)){temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"删除成功!!"<<endl<<endl;}elsecout<<"没有找到!!"<<endl<<endl;save();}void StaffChart::save() //保存{out.open("StaffChart.txt");for(Staff * p=Head->Next;p!=End;p=p->Next)out<<p->get_num()<<" "<<p->get_name()<<" "<<p->get_age()<<endl;out.close();}class SalesmanChart{public:SalesmanChart();~SalesmanChart();void find(); //输出单个条目void save(); //将信息输出到文件void modifyItem(); //修改Salesman条目void removeItem(); //删除Salesman条目void display() //输出全部条目{for(Salesman *p=Head->Next;p!=End;p=p->Next)p->show_salesman();}void addItem() //添加条目{End->set_salesman();End->Next=new Salesman;End=End->Next;save();}private:Salesman * Head,* End;ifstream in; //文件输入ofstream out; //文件输出Salesman * findItem(char * num){for(Salesman * p=Head;p->Next!=End;p=p->Next)if(!strcmp(p->Next->get_num() ,num))return p;return NULL;}};SalesmanChart::SalesmanChart() //构造函数{Head=new Salesman;Head->Next=new Salesman;End=Head->Next;in.open("SalesmanChaart.txt");while(!in.eof()){End->InputFromFile(in);if(End->get_num()[0]=='\0')break;End->Next=new Salesman;End=End->Next;}in.close();}SalesmanChart::~SalesmanChart() //析构函数{for(Salesman * temp;Head->Next!=End;){temp=Head->Next;Head->Next=Head->Next->Next;delete temp;}delete Head,End;}void SalesmanChart::find() //查找条目{char num[10];Salesman * p=NULL;cout<<"请输入要查找销售员的工号:";cin>>num;if(p=findItem(num))p->Next->show_salesman();elsecout<<"没有找到!!"<<endl<<endl;}void SalesmanChart::modifyItem() //修改条目{char num[10];Salesman * p=NULL;cout<<"请输入要修改销售员的工号:";cin>>num;if(p=findItem(num)){p->Next->show_salesman();cout<<"请输入新的内容:"<<endl;p->Next->set_salesman();}elsecout<<"没有找到!!"<<endl<<endl;save();}void SalesmanChart::removeItem() //删除条目{char num[10];Salesman *p=NULL,*temp=NULL;cout<<"请输入要删除销售员的工号:";cin>>num;if(p=findItem(num)){temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"删除成功!!"<<endl<<endl;}elsecout<<"没有找到!!"<<endl<<endl;save();}void SalesmanChart::save() //保存{out.open("SalesmanChart.txt");for(Salesman * p=Head->Next;p!=End;p=p->Next)out<<p->get_num()<<p->get_name()<<p->get_age()<<p->get_major()<<p->get_t_title()<<endl;out.close();}class ManagerChart{public:ManagerChart();~ManagerChart();void find(); //输出单个条目void save(); //将信息输出到文件void modifyItem(); //修改Manager条目void removeItem(); //删除Manager条目void display() //输出全部条目{Manager *p=Head->Next;for(p;p!=End;p=p->Next)p->show_manager();}void addItem() //添加条目{End->set_manager();End->Next=new Manager;End=End->Next;save();如有异议或侵权请及时联系,客服将立即删除!}private:Manager * Head,* End;ifstream in; //文件输入ofstream out; //文件输出Manager * findItem(char * num){for(Manager * p=Head;p->Next!=End;p=p->Next)if(!strcmp(p->Next->get_num() ,num))return p;return NULL;}};ManagerChart::ManagerChart() //构造函数{Head=new Manager;Head->Next=new Manager;End=Head->Next;in.open("ManagerChaart.txt");while(!in.eof()){End->InputFromFile(in);if(End->get_num()[0]=='\0')break;End->Next=new Manager;End=End->Next;}in.close();}ManagerChart::~ManagerChart() //析构函数{for(Manager * temp;Head->Next!=End;){temp=Head->Next;Head->Next=Head->Next->Next;delete temp;}delete Head,End;}void ManagerChart::find() //查找条目{如有异议或侵权请及时联系,客服将立即删除!char num[10];Manager * p=NULL;cout<<"请输入要查找经理的工号:";cin>>num;if(p=findItem(num))p->Next->show_manager();elsecout<<"没有找到!!"<<endl<<endl;}void ManagerChart::modifyItem() //修改条目{char num[10];Manager * p=NULL;cout<<"请输入要修改经理的工号:";cin>>num;if(p=findItem(num)){p->Next->show_manager();cout<<"请输入新的内容:"<<endl;p->Next->set_manager();}elsecout<<"没有找到!!"<<endl<<endl;save();}void ManagerChart::removeItem() //删除条目{char num[10];Manager *p=NULL,*temp=NULL;cout<<"请输入要删除经理的工号:";cin>>num;if(p=findItem(num)){temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"删除成功!!"<<endl<<endl;}elsecout<<"没有找到!!"<<endl<<endl;save();}void ManagerChart::save() //保存{out.open("ManagerChart.txt");for(Manager * p=Head->Next;p!=End;p=p->Next)out<<p->get_num()<<p->get_name()<<p->get_age()<<p->get_job()<<p->get_dept()<<endl;out.close();}class SalesManagerChart{public:SalesManagerChart();~SalesManagerChart();void find(); //输出单个条目void save(); //将信息输出到文件void modifyItem(); //修改Manager条目void removeItem(); //删除Manager条目void display() //输出全部条目{SalesManager *p=Head->Next;for(;p!=End;p=p->Next)p->show_salesmanager();}void addItem() //添加条目{End->set_salesmanager();End->Next=new SalesManager;End=End->Next;save();}private:SalesManager * Head,* End;ifstream in; //文件输入ofstream out; //文件输出SalesManager * findItem(char * num){for(SalesManager * p=Head;p->Next!=End;p=p->Next)if(!strcmp(p->Next->get_num() ,num))return p;return NULL;}};SalesManagerChart::SalesManagerChart() //构造函数{Head=new SalesManager;Head->Next=new SalesManager;End=Head->Next;in.open("SalesManagerChaart.txt");while(!in.eof()){End->InputFromFile(in);if(End->get_num()[0]=='\0')break;End->Next=new SalesManager;End=End->Next;}in.close();}SalesManagerChart::~SalesManagerChart() //析构函数{for(SalesManager * temp;Head->Next!=End;){temp=Head->Next;Head->Next=Head->Next->Next;delete temp;}delete Head,End;}void SalesManagerChart::find() //查找条目{char num[10];SalesManager * p=NULL;cout<<"请输入要查找经理的工号:";cin>>num;if(p=findItem(num))p->Next->show_salesmanager();elsecout<<"没有找到!!"<<endl<<endl;}void SalesManagerChart::modifyItem() //修改条目{char num[10];SalesManager * p=NULL;cout<<"请输入要修改经理的工号:";cin>>num;if(p=findItem(num)){p->Next->show_salesmanager();cout<<"请输入新的内容:"<<endl;p->Next->set_salesmanager();}elsecout<<"没有找到!!"<<endl<<endl;save();}void SalesManagerChart::removeItem() //删除条目{char num[10];SalesManager *p=NULL,*temp=NULL;cout<<"请输入要删除经理的工号:";cin>>num;if(p=findItem(num)){temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"删除成功!!"<<endl<<endl;}elsecout<<"没有找到!!"<<endl<<endl;save();}void SalesManagerChart::save() //保存{out.open("SalesManagerChart.txt");for(Manager * p=Head->Next;p!=End;p=p->Next)out<<p->get_num()<<p->get_name()<<p->get_age()<<p->get_job()<<p->get_dept()<<endl;out.close();}int main(){int x,y;StaffChart Staff_Chart;SalesmanChart Salesman_Chart;ManagerChart Manager_Chart;SalesManagerChart SalesManager_Chart;bool quit=false;while(!quit){cout<<"选择功能:\n1.增加数据\t2.更新数据\t3.查询数据\t4.删除数据\t5.列出全部人员\t6.退出"<<endl;cin>>x;switch(x){case 1:cout<<"选择增加的类型:\n1.员工\t2.销售员\t3.经理\t4.销售经理"<<endl;cin>>y;switch(y){case 1:Staff_Chart.addItem();break;case 2:Salesman_Chart.addItem();break;case 3:Manager_Chart.addItem();break;case 4:SalesManager_Chart.addItem();break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);}break;case 2:cout<<"选择更新的类型:\n1.员工\t2.销售员\t3.经理\t4.销售经理"<<endl;cin>>y;switch(y){case 1:Staff_Chart.modifyItem();break;case 2:Salesman_Chart.modifyItem();break;case 3:Manager_Chart.modifyItem();break;case 4:SalesManager_Chart.modifyItem();break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);}break;case 3:cout<<"选择查询的类型:\n1.员工\t2.销售员\t3.经理\t4.销售经理"<<endl;cin>>y;switch(y){case 1:Staff_Chart.find();break;case 2:Salesman_Chart.find();break;case 3:Manager_Chart.find();break;case 4:SalesManager_Chart.find();break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);;}break;case 4:cout<<"选择删除的类型:\n1.员工\t2.销售员\t3.经理\t4.销售经理"<<endl;cin>>y;switch(y){case 1:Staff_Chart.removeItem();break;case 2:Salesman_Chart.removeItem();break;case 3:Manager_Chart.removeItem();break;case 4:SalesManager_Chart.removeItem();break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);}break;case 5:cout<<"选择列出人员的类型:\n1.员工\t2.销售员\t3.经理\t4.销售经理"<<endl;cin>>y;switch(y){case 1:Staff_Chart.display();break;case 2:Salesman_Chart.display();break;case 3:Manager_Chart.display();break;case 4:SalesManager_Chart.display();break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);}break;case 6:quit=true;break;default :cout<<"输入错误,程序终止!!"<<endl;exit(-1);}}return 0;}运行结果:运行空间有四个文件:增加两个员工:修改一个销售员信息:查询一个销售员信息:列出全部员工:删除一个员工:再次列出员工:个人总结:经过多天努力终于完成了老师布置的大作业,但是效果上自己还是不太满意,有很多地方都想让它更佳完整,更符合自己心目中的那种管理系统,课后依然会继续修改,让它达到自己心中理想的完善的程序。
C大作业项目报告
C大作业项目报告集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)C++大作业项目报告——AGV 路径规划与运行仿真软件设计小组成员:日期:2015年6月16日指导老师:目录一、课题背景1.1案例背景AGV(自动导引车)由于运动灵活,被广泛用于生产车间物料的搬运。
由于单机搬运能力有限,实践中经常需要由多台AGV 同时进行搬运。
由于AGV 一般无法感知全局信息,为避免多AGV 发生碰撞并提高AGV 搬运效率,多台AGV 需要与上位机调度系统进行通信并依据调度指令运行。
1.2问题描述在已知AGV运行的地图以及AGV运行速度前提下,采用C++编写单台AGV路径规划的最短路径算法,并动态显示AGV 的运行。
1.3任务目标针对AGV 搬运调度需求开发一套AGV 路径规划与运行监控仿真软件,合理规划单台AGV 运行路径并动态显示运行轨迹。
1.4具体分析由以上介绍可知,AGV在工业生产中有着很广泛的应用,对AGV导引程序的研究是有着很强实际意义的。
要完成一个完整的AGV路径规划程序,就要考虑地图,AGV,和路径三个方面的问题。
而其中,路径又是最为重要的。
本程序要求仿真显示,所以显示部分也是重点。
若制作多台AGV的路径规划程序,还应当考虑到路径的重叠,以避免碰撞产生。
二、系统设计2.1类体系设计包含了两个基类CFixedMap和CAGV,一个单一继承的派生类CPathPlan和一个多重派生类CAGVShow。
2.2类定义及函数描述各个类的成员以及成员函数的作用如注解所示。
(1).基类:CFixedMapclass CFixedMap{struct Coordinate{int x;int y;int num;};//记录点的结构体struct combp{int x1,y1;int x2,y2;};//连通点坐标struct Combname{int num1;int num2;};//连通点名public:int mVexNum; // 顶点数int mEdgNum; // 边数double mMatrix[MAX][MAX]; // 邻接矩阵Combname comb[MAX]; //连通点名combp cp[MAX]; //连通点坐标Coordinate mVexs[MAX]; // 顶点集合int getx(int n1);int gety(int n2);void Input();//以文件方式输入地图信息void ShowMap();//easyx显示地图};(2).基类CAGVclass CAGV{int speed; //AGV速度int width; //AGV宽度int length; //AGV长度public:CAGV();int getl(); //返回AGV长度int getw(); //返回AGV宽度int gets(); //返回AGV速度};(3).单一继承类CPathPlanclass CPathPlan:public CFixedMap{public:int path[MAX]; //存放最后一个点double dist[MAX]; //存放路径距离int v0; //起始点int route[40]; //路径int rnum; //路径顶点数Coordinate rpoints[MAX];//路径点集void MaptoGraph();void Dijstra();void Putpath();};(4).多重继承类CAGVShowclass CAGVShow:public CPathPlan,public CAGV{public:#define k (abs(y2-y1))/(abs(x1-x2))int a,b,c,d;int x1,x2,y1,y2; //AGV实际坐标int i,j;int l,w,s; //对应类CAGV中的相关数据void show();};2.3程序流程图三、程序重点解析3.1文本文档读入地图信息在最初的设计中,为了方便调试与信息录入,地图文本做的粗糙不堪,但这确实为程序编写提供了许多便利。
C程序课程设计(大作业)报告
5.查询职工完成的产品信息
(1)按职工号查询
(2)按名次查询
二、总体设计根据系统的要求,ຫໍສະໝຸດ 统总体设计如图1三、详细设计
1
#define N 100 //定义常数表示职工数
这次设计使我受益匪浅,在今后的学习中,我将以更加饱满的激情,更加积极的态度来面对程序设计这门课程,也要将这份激情延续到其它的课程中。
指导教师评语:
成绩:
填表时间:指导教师签名:
课程设计(大作业)报告
一、课程设计目的与要求
1.
(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。
2012年6月26日上午:按照先前完成的程序写一个对职工信息的查询,①按职工号查询;②按名次查询;
2012年6月27日上午~下午:调整程序,使程序更加美观,优化程序。还加入了一个将数据从磁盘读出的小函数,方便进行程序的操作和运行。
2012年6月28日上午:进一步理解程序,为答辩做准备。
剩余的时间对程序进行修改和撰写程序实验报告。并且通过总体设计和详细设计将程序分解开,并进行详细说明。
5.查询职工完成的产品信息。
(1)按职工号查询
2)按名次查询
工作计划及安排:
由于我们设计的题目是:职工工作量统计系统设计所以我们对我们的课程有以下安排:
2012年6月25日上午:我们先分析了我们课程需要的要求,对题目所要求的作出一个安排,对设计所要求的做出一个全面的规划,选定我们所要用的数据和函数,在计算机上操作先写出我们所需要的头文件,然后在写出我们的菜单方式的格式;
c程序设计大作业
c程序设计大作业C程序设计大作业C程序设计是一门实践性很强的课程,大作业是检验学生对C语言掌握程度的重要方式。
本次大作业的目的在于通过实际编程练习,加深对C 语言基础语法、数据结构、算法设计和程序调试等方面的理解,同时培养学生的编程思维和解决实际问题的能力。
一、大作业要求1. 题目选择:学生可以从以下题目中任选一题完成:- 学生信息管理系统- 图书馆管理系统- 简易计算器- 字符串处理工具- 图形界面的五子棋游戏2. 功能实现:每个题目都应实现基本功能,例如:- 学生信息管理系统:添加、删除、修改、查询学生信息。
- 图书馆管理系统:图书借阅、归还、查询等。
- 简易计算器:实现基本的加减乘除运算。
- 字符串处理工具:实现字符串的复制、连接、查找、替换等操作。
- 图形界面的五子棋游戏:实现基本的下棋逻辑和胜负判断。
3. 代码规范:代码应遵循良好的编程规范,包括但不限于:- 明确的函数分工,每个函数应有简短的注释说明其功能。
- 变量命名应清晰,避免使用无意义的缩写。
- 代码结构清晰,逻辑性强。
4. 文档编写:提交的作业应包括:- 程序设计说明书:介绍程序的功能、设计思路、实现过程等。
- 源代码:按照题目要求编写的C语言代码。
- 用户手册:简要说明如何使用程序。
5. 提交方式:所有材料应以电子文档形式提交,包括设计说明书、源代码和用户手册。
二、大作业流程1. 选题:学生在教师的指导下选择适合自己能力的题目。
2. 需求分析:明确程序需要实现的功能和性能要求。
3. 设计:设计程序的总体结构和各个模块的详细设计。
4. 编码:根据设计文档编写程序代码。
5. 测试:对编写的程序进行测试,确保功能正确无误。
6. 调试:根据测试结果进行必要的调试,修正程序中的错误。
7. 文档编写:编写程序设计说明书和用户手册。
8. 提交:按照要求提交所有材料。
三、评分标准1. 功能实现:程序是否实现了题目要求的所有功能。
2. 代码质量:代码是否规范、清晰、易读。
语言程序设计作业设计报告参考范例
第三次C语言大作业班级:自动化081姓名:学号:08132116第一题:编写一个程序,从键盘输入任意一个五位数,把这个数值分解为单个数字,然后打印出每一个数字(每个数字之间用三个空格分开)。
例如用户输入了42339,屏幕输出结果为:4 2 3 3 9 【提示】巧妙使用/ 和% 两种运算符。
题目分析与算法:用scanf语句从键盘上输入一个任意五位数。
核心部分是巧妙使用/和%两种运算符。
在本题中,我先将一个五位数分解成两部分i(一个三位数)和j,(一个两位数),再重复利用上一特性,对i进行分解,依次重复,便可以顺利将该五位数分解成单个数值。
最后利用%4d 来实现每个数字之间用三个空格分开。
流程图:源程序代码:# include <stdio.h>main(){int i,j,k,a,b,c,d,e;long int n;printf("pleale input n(n为五位数):");scanf("%ld",&n);while(n<10000 || n>99999){printf("\n输入有误,请重输: ");scanf("%ld",&n);}i=n/100;j=n%100;k=i/10;a=k/10;b=k%10;c=i%10;d=j/10;e=j%10;printf("%d%4d%4d%4d%4d\n",a,b,c,d,e); }运行结果:当输入42339时,显示结果为下图所示当输入的数是非五位数时,运行结果如下:调试过程:错误代码;# include <stdio.h>main(){int i,j,k,a,b,c,d,e;long int n;printf("pleale input n(n为五位数):");scanf("%ld",&n);while(n<10000 || n>99999){printf("\n输入有误,请重输: ");}i=n/100;j=n%100;k=i/10;a=k/10;b=k%10;c=i%10;d=j/10;e=j%10;printf("%d%4d%4d%4d%4d\n",a,b,c,d,e);}错误原因分析:图中黄色亮显部分有错误。
c++实验-大作业-简单类的定义与实现(实验报告)
实验内容、方法、过程: 实验内容、方法、过程: 实验内容: 学校招生办在录取当年新生时已为每个新生建立了一个新生基础类 Base,其中包含 有每位新生的基本资料:学号(long num) 、姓名(char name[20]) 、性别(int sex:其中 0 表示男,1 表示女) 、年龄(int age) 、住址(char addr[30]) 、主修专业(char mdept[30]) 。 新生主修专业所在系又在学生基本资料的基础上为每位该系新生建立一个主修类 First,其中除了包含原来新生资料外,还设有新生主修成绩(float Mscore[60])。 为了促进复合型人才培养,学生在二年级可辅修另外一个专业课程。辅修接收系又为每 位辅修本系第二学位同学建立一个辅修类 Fbase, 其中除了学生基本资料外, 还设有辅修 专业名称(char fdep[30]) 、辅修成绩表(设为 float Fscore[4]) 。 现假设: 招生办工作人员只能访问到学生基本资料; 主修系教务员只能访问到学生的基本资料和主修相关资料(但不能修改学生的基本 资料) ; 辅修系接收教务员只能访问(但不能修改)学生的基本资料和辅修相关资料; 设某系现有 6 名学生,其中有 4 名辅修了某系课程。期末考试时,主修系共考了 5 门课,辅修共考了 4 门课,设成绩均用百分制(int)表示。考完试后,进行下列工作: 1)主修系教务员输入每位同学成绩; 2)辅修系接收教务员输入每位辅修同学成绩; 输入结束后: 3)主修系教务员统计出期末考中至少有 3 门(含 3 门)以上课程成绩在 85 分(含 85 分)以上、其余课程成绩不低于 70 分的同学并显示出其相关资料; 4)主修系教务员还要统计出需要参加补考的同学及其相关资料; 5)辅修接收系教务员要统计出需要参加补考的辅修同学并显示出其相关资料; 实验要求: 1) 请按照以上的条件给出新生基础类的定义与说明。 2) 给出三个不同教师角色的定义与说明。 3) 在前面实验的基础上,利用类与继承设计并实现出满足上述要求的类。 4) 编出一个模拟程序模拟招生办工作人员、主修系教务员、辅修接收系教务员的 操作且实现其工作要求。 主要程序: #include<iostream> using namespace std; class Base { private: long num; char name[20]; int sex; int age; char addr[30]; char mdept[30]; public: void set_Base(long number,char *p_name,int the_sex,int the_age,char *p_addr,char
C语言大作业报告范文
学院XX学院目录1 摘要 (3)1.1设计题目 (3)1.2设计内容 (3)1.3开发工具 (3)1.4应用平台 (3)2 详细设计 (4)2.1程序结构 (4)2.2主要功能 ................................................... 错误!未定义书签。
2.3函数实现 (6)2.4开发日志 (6)3 程序调试及运行 (7)3.1程序运行结果 (7)3.2程序使用说明 (8)3.3程序开发总结 (8)4 附件源程序 (8)1 摘要1.1 设计题目A求最大数;B高次方数的尾数1.2 设计内容A求555555的约数中最大的三位数; B求13的13次方的最后三位数1.3 开发工具Visual C++ 6.0和Win32..1.4 应用平台Windows XP 32位2 详细设计2.1 程序结构A求最大数定义变量a、b、c;a从100至999递增;b为555555;用b除以a;判断是否可以整除;若可以;则把a的值赋给c;a自加1;若不可;a自加1..重复以上步骤;直到a>999;输出c..循环语句采用for循环..B高次方数的尾数定义变量i、j;i从1至13递增;j初值为1..用j乘以13;用得到的乘积除以1000并取其余数;赋给j;i自加1..重复以上步骤;直到i>13;输出j..循环语句采用for循环..2.2 主要功能程序功能:A求555555的约数中最大的三位数; B求13的13次方的最后三位数..原理和方法:A题目的原理和方法:因为要求的是三位数;就用555555从小到大依次除以100到999的所有数;并判断能否整除;最后一个可以整除555555的数即为所求..循环语句采用for循环..B题目的原理和方法:乘积的最后三位数只与乘数和被乘数的后三位数有关;因此用1乘以13;再除以1000并取余数;用余数乘以13;再除以1000并取余数;依次进行下去;累乘13个13后除以1000取得的余数即为所求..循环语句采用for循环..2.3 函数实现A求最大数int a;b=555555;c; /*定义变量;赋初值*/fora=100;a<=999;a++ /*FOR循环*/{ifb%a==0 /*利用IF语句判断b是否可以被a整除*/c=a; /*将555555的约数赋给c*/}printf"%d\n";c; /*输出c*/B高次方数的尾数int i;j=1; /*定义变量;赋初值*/fori=1;i<=13;i++ /*FOR循环*/{j=j*13%1000; /*将j乘以13的乘积的后三位数赋给j*/}printf"%d\n";j; /*输出j*/2.4 开发日志A选定这个题目后;我先分析此题用何种算法完成;确定了使用FOR循环并限定除数范围;然后画出程序框图;再一步步编写源代码..调试过程很顺利;只有一个地方忘加了“;”..运行程序后;结果非常满意..B这个题目不难;但是也不简便;我想到只取三位数的方法;并使用FOR循环;然后画出程序框图;再一步步编写源代码..调试过程发现对其中一个变量的初值是1还是13有待解决;分析程序后发现应该用1;然后进一步调试;运行;直至结果正确..3 程序调试及运行3.1 程序运行结果A求最大数求得555555的约数中最大的三位数是777 B高次方数的尾数求得13的13次方的最后三位数是2533.2 程序使用说明A打开源程序;编译;连接;然后运行即可得到求得555555的约数中最大的三位数是777B打开源程序;编译;连接;然后运行即可得到13的13次方的最后三位数是2533.3 程序开发总结首先;程序开发需要耐心;从算法设计到源代码编写要一步步耐心完成..程序开发需要细心;特别是程序调试过程中;细心可以更迅速地发现错误;节省时间..最后;程序开发需要创新;创新的思路;创新的算法可以简化程序;也是程序编写更加快捷..4 附件源程序A求最大数.C工程名称:求最大数#include<stdio.h>int main{int a;b=555555;c;fora=100;a<=999;a++{ifb%a==0c=a;}printf"%d\n";c;return 0;}B高次方数的尾数.C工程名称:高次方数的尾数#include<stdio.h>int main{int i;j=1;fori=1;i<=13;i++{j=j*13%1000;}printf"%d\n";j;return 0;}。
c程序课程设计大作业
c程序课程设计大作业一、教学目标本课程的教学目标是使学生掌握C程序设计的基本概念、原理和方法,培养学生运用C语言进行程序设计的能力和创新思维。
具体分解为以下三个方面的目标:1.知识目标:学生需要掌握C程序设计的基本语法、数据类型、运算符、控制结构、函数、数组、指针等基本概念,了解结构体、共用体、位字段、文件操作等高级内容。
2.技能目标:学生需要能够运用C语言编写解决实际问题的程序,具备调试和优化程序的能力,掌握基本的算法设计和分析方法。
3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,增强学生的自主学习能力和团队合作意识,培养学生勇于探索、创新的精神。
二、教学内容教学内容以教材《C程序设计语言》为基础,结合我国教育部门制定的教学大纲,系统地介绍C程序设计的基本概念、原理和方法。
教学大纲如下:1.C程序设计基本语法:数据类型、运算符、控制结构、函数等。
2.数据结构:数组、指针、结构体、共用体、位字段等。
3.高级编程:文件操作、动态内存分配、预处理指令等。
4.算法设计与分析:基本算法、排序算法、查找算法等。
5.编程实践:培养学生的实际编程能力,完成多个实际项目的开发。
三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:用于讲解基本概念、原理和方法,使学生掌握理论知识。
2.讨论法:学生进行课堂讨论,培养学生的思考能力和表达能力。
3.案例分析法:分析实际案例,使学生学会将理论知识应用于实际问题。
4.实验法:安排实验课,让学生动手实践,培养实际编程能力。
四、教学资源教学资源包括教材、参考书、多媒体资料、实验设备等。
1.教材:《C程序设计语言》作为主要教材,辅以相关参考书供学生自主学习。
2.多媒体资料:制作课件、教学视频等,以直观展示课程内容。
3.实验设备:提供计算机实验室,让学生进行实际编程和调试。
4.在线资源:推荐在线编程平台,让学生随时随地练习编程。
C语言大作业报告——2048小游戏程序
《C语言程序设计》实验大作业反思报告系统设计与实现:1.系统功能模块划分对系统进行自顶向下的模块分解,画出系统各个功能模块之间的结构图如下:2.函数功能和外部接口设计本系统总计设计了13个函数,每个函数的功能和接口设计如下表所示:序号函数名函数功能函数参数函数返回值1 read_keyboard 读取键盘输入的变量无key_code2 loop_Game 游戏循环cmd 无3 reset_Game 重置游戏无无4 add_rand_num 添加随机数无随机数5 get_null_count 获取空位置数量无空位置数量n6 check_Game_over 检查游戏是否结束无if_Game_over7 Move_left 左移无If_need_add_num8 Move_right 右移无If_need_add_num9 Move_up 上移无If_need_add_num10 Move_down 下移无If_need_add_num11 clear_screen 清屏无无12 refresh_show 刷新界面无无13 init_Game 初始化游戏无无各个函数之间的调用关系如下所示:3.数据结构结构体数组+指针,链表4.算法递推,查找,文件操作5.程序流程图系统总体流程图如下:实验过程中遇到的问题及解决方法与思路:问题1:开始部分函数体和数据设置较多,导致后面程序的编写过程中出现了许多错误,例如函数名和数据名的大小写等出现错误。
原因:函数名和数据的设计为了追求简洁而无法记住其意义,并且设置过多。
解决方法:在纸上将函数名和数据名都记好,以防后面编写时出现遗忘,此外,应当按照函数名以及数据名的具体作用进行设置,而非随心所欲。
问题2:对于清屏函数clear_screen和初始化函数init的掌握不熟练,导致编写过程中有许多错误出现,编写很不规范。
原因:对于Linux相关知识掌握较少,无法使用相关函数功能。
C语言大作业报告书
C语言大作业报告书一、目的1)巩固练习C语言的基础知识2)综合运用C语言的编程方法3)针对抽象的解题思路,设计程序结构4)基于VC6调试、测试与修改程序二、内容2.1、阅读程序,推导结果。
1、#include<iostream>using namespace std;int a = 200;int main(){int s=0;for(int i=1; i<=5; i++)s+=++a;cout<<s<<endl;return 0;}运行结果:10152、#include<iostream>using namespace std;int a[3][3]={{1},{2},{3}};int b[3][3]={1,2,3};void main(){cout<<a[0][1] + b[1][0] << ' ';cout<<a[1][0] + b[0][1] << endl;}运行结果:0 43、#include<iostream>using namespace std;void main(){int num=0,i=10;do{i--;num+=i;}while(--i);cout<<num<<endl;}运行结果:252.2、应用编程1、由键盘输入5个整数,输出其中最大、最小的数与它们的平均值。
提示:设置2个指示变量,分别记录最大、最小的数的下标;指示变量先设置为0,然后遍历数组,刷新指示。
解:#include <iostream>void main(){int a[5],i,s=0;float arry;for(i=0;i<5;i++)cin>>a[i];for(i=0;i<5;i++){for(int j=i+1;j<5;j++){if(a[i]>a[j]){int t=a[j];a[j]=a[i];a[i]=t;}}}cout<<"最小数="<<a[0]<<endl;cout<<"最大数="<<a[4]<<endl;for(i=0;i<5;i++){s=s+a[i];}arry=s/5;cout<<"平均值="<<arry<<endl;}输入:3 4 5 7 16输出:最小数=3最大数=16平均值=72、输出以下图案。
c语言课程设计大作业
c语言课程设计大作业一、课程目标知识目标:1. 理解C语言中数组、函数、指针等基本概念,掌握其应用方法。
2. 学会运用结构体、文件操作等C语言高级特性进行程序设计。
3. 掌握程序调试与优化的基本方法,提高代码质量。
技能目标:1. 能够根据需求,设计并实现具有实用价值的C语言程序。
2. 培养良好的编程习惯,编写规范、可读性强的代码。
3. 提高问题分析能力,能够针对实际问题设计合适的算法和数据结构。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发自主学习动力。
2. 培养学生面对困难和挑战时,保持积极心态,勇于尝试,善于合作,克服困难。
3. 增强学生的创新意识,鼓励学生敢于发表自己的观点,尊重他人的意见。
课程性质:本课程为C语言课程设计大作业,旨在巩固和拓展学生所学知识,提高实际编程能力。
学生特点:学生已具备一定的C语言基础,对编程有一定兴趣,但在实际应用中可能存在编程思路不清晰、代码规范意识不足等问题。
教学要求:结合学生特点,注重实践,引导学生从实际问题出发,培养解决复杂问题的能力。
教学过程中,注重激发学生兴趣,培养良好的编程习惯,提高团队协作能力。
通过本课程的学习,使学生在知识、技能和情感态度价值观等方面取得具体的学习成果。
二、教学内容1. 复习C语言基础知识:数组、函数、指针、控制结构等。
教材章节:第二章、第三章、第四章内容:数组的应用、函数的定义与调用、指针的概念与用法、程序流程控制。
2. C语言高级特性学习:结构体、文件操作、动态内存分配等。
教材章节:第六章、第七章、第十章内容:结构体的定义与使用、文件读写操作、动态内存分配与释放。
3. 程序设计与实现:根据实际需求,设计并实现具有实用价值的C语言程序。
教材章节:全书内容:综合运用所学知识,进行程序设计、编写代码、调试与优化。
4. 编程规范与调试技巧:培养良好的编程习惯,提高代码质量。
教材章节:附录内容:代码规范、调试方法、性能优化。
C++课程大作业参考报告材料
目录目录 (I)第一章需求分析 (2)1.1 问题描述 (2)1.2 功能需求 (2)1.3 开发环境 (2)1.4 开发过程 (2)第二章概要设计 (3)2.1 总体设计 (3)2.2 航空类的定义 (3)2.3 接口设计 (5)2.4 运行界面设计 (5)第三章详细设计 (6)3.1 输入模块设计 (6)3.2 查找模块设计 (7)3.3 订票模块设计 (8)3.4 退票模块的设计 (9)3.5 保存及读取模块设计 (10)第四章测试分析 (11)4.1 测试程序执行情况 (11)第五章用户手册(可选) (15)5.1 使用说明 (15)第六章课程设计总结 (15)附录:程序代码 (17)参考文献 (25)第一章需求分析1.1问题描述飞机订票系统设计假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。
试设计一民航订票系统,使之能提供下列服务:❖航班信息录入功能(航班信息用文件保存)--输入❖航班信息浏览功能--输出❖查询航线:(至少两种查询方式)--算法●按航班号查询●按终点站查询❖承办订票和退票业务1.2功能需求根据要求用户需要设计一个关于售票处服务系统程序,使航空公司可以通过的乘客简单地输入个人部分信息,便可方便的管理机票。
该程序还要实现以下功能:(1)能够对航空航线进行查询;(2)能够自主的承办订票业务(3)能够自主的承办退票业务1.3开发环境应用VisualC++,VisualC++不仅仅是一个C++编译器,而且是一个基于Windows操作系统的是集成开发环境IDE,这种环境开发出来的软件稳定性好、可移植性强,可以编制各种的Windows应用程序。
1.4开发过程第一天选择课程设计题目,分析课题的要求第二天编程第三天编程及调试第四天写课程设计报告第五天提交课程设计报告(打印稿及电子稿)第二章概要设计2.1 总体设计根据需求分析,由于程序较为简单我们将只设计一个类:plane(即航班类)。
C语言课程设计大作业
郑州大学课程报告课程名称:C语言程序设计专业班级:(15)班学生姓名:谢*学号:***任课教师:赵**学期: 2012-2013-2课程报告任务书题目通讯录管理系统主要内容开发一个通讯录管理系统,基本信息包括:编号、姓名、性别、出生年月、固定电话、手机号、电子邮件等基本信息(也可以根据自己情况进行扩充)。
使之能提供以下基本功能:(1)通讯录等信息录入功能(注:数据等要求用文件保存)--输入?(2)通讯录信息的浏览功能--输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):? ①按电话号码进行查询②按姓名查询等③按照年龄排序④按姓名排序等(4)通讯录条目的删除与修改等扩展功能:可以按照自己的程度进行扩展。
比如(1)简单的权限处理(2)报表打印功能(3)模糊查询,如姓张的人员等;或者给定电子邮件的部分进行查询等(4)给定指定年龄范围之内的查询等等。
总之,可以根据自己需求进行分析功能,成绩评定按照难度进行区分。
任务要求一、提交材料应包括:(1)系统源代码(2)课程报告二、整个设计过程具体要求(1)需求分析要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2)设计过程要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3)实现过程要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4)总结阶段按照要求完成系统设计和实现报告,并进行总结、答辩。
成绩评定报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分内容20分规范程度5分程序测试5分基本功能20分扩展功能10分自述情况10分答辩情况30分成绩评定教师:一. 需求分析1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。
2,数据包括:人名、工作单位、电话号码和E-MAIL地址。
3,可对记录中的姓名和电话号码进行修改。
4,可增加和删除记录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录目录 (I)第一章需求分析 (2)1.1 问题描述 (2)1.2 功能需求 (2)1.3 开发环境 (2)1.4 开发过程 (2)第二章概要设计 (3)2.1 总体设计 (3)2.2 航空类的定义 (3)2.3 接口设计 (5)2.4 运行界面设计 (5)第三章详细设计 (6)3.1 输入模块设计 (6)3.2 查找模块设计 (7)3.3 订票模块设计 (8)3.4 退票模块的设计 (9)3.5 保存及读取模块设计 (10)第四章测试分析 (11)4.1 测试程序执行情况 (11)第五章用户手册(可选) (15)5.1 使用说明 (15)第六章课程设计总结 (15)附录:程序代码 (17)参考文献 (25)第一章需求分析1.1问题描述飞机订票系统设计假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。
试设计一民航订票系统,使之能提供下列服务:❖航班信息录入功能(航班信息用文件保存)--输入❖航班信息浏览功能--输出❖查询航线:(至少两种查询方式)--算法●按航班号查询●按终点站查询❖承办订票和退票业务1.2功能需求根据要求用户需要设计一个关于售票处服务系统程序,使航空公司可以通过的乘客简单地输入个人部分信息,便可方便的管理机票。
该程序还要实现以下功能:(1)能够对航空航线进行查询;(2)能够自主的承办订票业务(3)能够自主的承办退票业务1.3开发环境应用VisualC++,VisualC++不仅仅是一个C++编译器,而且是一个基于Windows操作系统的是集成开发环境IDE,这种环境开发出来的软件稳定性好、可移植性强,可以编制各种的Windows应用程序。
1.4开发过程第一天选择课程设计题目,分析课题的要求第二天编程第三天编程及调试第四天写课程设计报告第五天提交课程设计报告(打印稿及电子稿)第二章概要设计2.1 总体设计根据需求分析,由于程序较为简单我们将只设计一个类:plane(即航班类)。
其主要功能模块有:(1)输入(2)输出(3)票额计算(4)查询(5)订票(6)退票各功能模块的调用应通过菜单进行选取。
由于乘客和机票的主要信息是由plane类的对象所生成,而且机票的管理自动运行,plane类的构造函数的设计以及机票数额计算的设计要尤其精细,因为这两个函数的调用十分的频繁。
2.2航空类的定义class Plane{private:char name[40];//终点站名int number;//航班号int Number;//飞机号int week;//星期几飞行int day;//日期int left;//余票额int n;//与数组flag一起确定客户订票状态public:int flag[20];//订票状态数组,-1为预订票,1为已定票,0为初始化状态Plane()//构造函数{name[0]='\0';number=0;Number=0;week=0;day=0;left=M;n=0;//数组从0开始计数for(int i=0;i<20;i++)flag[i]=0;}void init()//初始化每种飞机票{cout<<"请输入终点站名:";cin>>name;cout<<"请输入航班号:";cin>>number;cout<<"请输入飞机号:";cin>>Number;cout<<"请输入星期几飞行:";cin>>week;cout<<"请输入航班的日期:";cin>>day;}~Plane(){};//析构函数char *getname(){return name;}//获得终点站名int getnumber(){return number;}//获得航班号int getNumber(){return Number;}//获得飞机号int getweek(){return week;}//获得星期几飞行int getday(){return day;}//获得日期int getleft(){return left;}//获得余票额int getn(){return n;}//获得旅客数目void inleft(int n){left=left+n;}//余票额增加函数void deleft(int n){left=left-n;}//余票额减少函数void inn(){n++;}//旅客数目增加函数};2.3 接口设计表2.1:函数列表2.4 运行界面设计图2-2 类的结构图2-3 系统结构示意图第三章 详细设计 3.1 输入模块设计主要功能用来对航班信息的进行收集和输入。
将航班信息保存在系统中的前提下,需要输入航班资料,比如航班号,飞机号,航班终点站,航班时间,机票数。
该信息输入成功后,可继续输入航班信息,否则系统返回到主菜单。
第一段:void init()//初始化每种飞机票{cout<<"请输入终点站名:";cin>>name;cout<<"请输入航班号:";cin>>number;cout<<"请输入飞机号:";cin>>Number;cout<<"请输入星期几飞行:";cin>>week;cout<<"请输入航班的日期:";cin>>day;第二段:void start(){for(int i=0;i<N;i++){pl[i].init();cout<<endl;}}3.2 查找模块设计主要功能是对航班信息的查找。
在系统已经录入航班信息前提下,使用该功能通过查找方式进行查找航班信息。
具体包括按按终点站查找。
在查找航班各方面信息后,按任意键就可以返回主菜单。
void query(){int i,num=0;char name[40];cout<<endl;cout<<"请输入终点站名:";cin>>name;for(i=0;i<=N;i++)if(strcmp(name,pl[i].getname())==0){num++;cout<<"航班号:"<<pl[i].getnumber()<<endl;cout<<"飞机号:"<<pl[i].getNumber()<<endl;cout<<"星期:"<<pl[i].getweek()<<"飞行"<<endl;cout<<"航班日期:"<<pl[i].getday()<<endl;cout<<"余票额:"<<pl[i].getleft()<<endl;break;}if(num==0)cout<<"没有此航班"<<endl;}3.3 订票模块设计(1)用于乘客预定机票并就乘客的操作管理机票(2)具体语句为:void make(){int number,n,sitnumber,nu,ch,num=0;cout<<"请输入航班号:";cin>>number;cout<<"请输入订票数额:";cin>>n;for(int i=0;i<N;i++)if(number==pl[i].getnumber()){num++;if(n<=pl[i].getleft()){cout<<"此航班有票"<<endl;pl[i].deleft(n);pl[i].inn();pl[i].flag[pl[i].getn()]=1;for(i=0;i<n;i++){3.4退票模块的设计(1)用于乘客退定机票并就乘客的操作管理机票(2)具体语句为:void back(){int number,day,n,nu,sitnumber,num=0;//航班号,日期,退票数目,订票数目,座位号,标志量cout<<"请输入日期:";cin>>day;cout<<"请输入航班:";cin>>number;for(int i=0;i<N;i++)if((day==pl[i].getday())&&(number==pl[i].getnumber()))//日期与航班是否满足{num++;//日期与航班满足cout<<"输入退票数目";cin>>n;cout<<"退票成功"<<endl;pl[i].inleft(n);//该种飞机票增加,即已退票for(int j=0;j<=pl[i].getn();j++)//顺序查询客户订票状态{if(pl[i].flag[j]==-1)//客户是否为预定状态{cout<<"有预约订票,请输入订票数额:";cin>>nu;if(nu<=pl[i].getleft())//余票额是否满足要求{cout<<"此航班有票"<<endl;pl[i].flag[j]=1;cout<<"订票成功"<<endl;pl[i].deleft(nu);for(int k=0;k<nu;k++){cout<<"座位号"<<" ";cin>>sitnumber;}cout<<"余票额为"<<pl[i].getleft()<<endl;}}elsecout<<"没有预约订票!"<<"余票额为"<<pl[i].getleft()<<endl;}}if(num==0)cout<<"没有此票"<<endl;}3.5保存及读取模块设计主要功能是对订票信息的保存及读取。