C项目开发设计报告
- 格式:doc
- 大小:487.50 KB
- 文档页数:44
c语言学生成绩管理系统设计报告C语言是计算机领域最为重要的编程语言之一,用于许多应用系统的开发。
这里我将围绕C语言学生成绩管理系统的设计报告,分步骤阐述该系统的设计与实现。
第一步:需求分析在进行设计之前,必须先进行需求分析,明确系统所需的功能和性能。
针对学生成绩管理系统,我们需要实现以下功能:1. 学生信息管理:包括学生姓名,学号等信息。
2. 成绩信息管理:包括课程分数,总分、平均分等信息。
3. 数据录入和修改:教师可以输入学生的成绩信息,并对已有的信息进行修改。
4. 成绩查询功能:学生可以查询自己的成绩情况。
第二步:系统设计根据需求分析,我们可以对系统进行具体设计。
该系统主要分为以下模块:1. 学生信息管理模块:用于录入和管理学生的信息。
2. 成绩信息管理模块:用于录入和管理学生的成绩信息。
3. 数据操作模块:用于操作学生和成绩信息的增删改查。
4. 用户管理模块:用于管理系统用户,包括学生和教师。
第三步:系统实现在进行系统实现时,我们需要注意以下几个方面:1. 界面设计:尽量简洁明了,易于使用。
2. 数据库设计:需要对数据进行分类储存,便于操作。
3. 数据库连接:需要通过C语言的数据库API来连接数据库。
4. 代码编写:需要根据设计要求进行代码编写,并进行测试调整,确保系统的稳定性和性能。
第四步:系统测试完成系统的设计和实现后,就需要对系统进行测试。
测试主要包括以下几个方面:1. 单元测试:对系统各个功能模块进行单独测试,确保每个模块的运行效果。
2. 集成测试:对系统各个模块进行集成测试,确保各个模块之间的相互交互正常。
3. 用户测试:邀请用户来测试系统,听取他们的反馈和建议,进行调整和改进。
总结:本文围绕C语言学生成绩管理系统的设计报告,分步骤阐述了系统的设计、实现和测试。
这对于开发人员在进行类似系统开发时具有一定的指导意义。
不过,由于每个系统都具有其独特性和特点,因此具体实现还需根据具体情况而定。
《c语⾔程序设计》实验报告(实验-2)《C语⾔程序设计》实验报告2013~2014学年第⼆学期班级姓名学号指导教师实验⼀实验项⽬名称:C程序的运⾏环境和运⾏C程序的⽅法所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运⾏⼀个C程序;2.通过运⾏简单的C程序,初步了解C源程序的特点。
⼆、预习内容:教材《C语⾔程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输⼊并运⾏下⾯的程序:#includeint main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输⼊下⾯的程序(有语法错误),编译、连接、调试该程序,直⾄程序⽆语法错误,然后运⾏程序,并观察分析运⾏结果。
#includeint main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运⾏结果(或截图):This is a C program.Press any key to continue2. (1) 改正后的源程序:#includeint main( ){int a,b,sum;a=3;b=4;sum=a+b;printf("%d+%d=%d\n",a,b,sum);return 0;}(2) 运⾏结果(或截图):3+4=7五、思考题:1. ⼀个C程序上机的步骤有哪些?答:上级输⼊与编辑源程序—对原程序进⾏编译–与库函数链接–运⾏可执⾏的⽬标程序。
2. 组成C程序的基本单位是函数,⼀个函数包括哪⼏个部分?答:⼀个函数包括两部分:分别为函数头或函数⾸部和函数体。
成绩指导教师签名实验⼆实验项⽬名称:数据类型、运算符和表达式所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使⽤⽅法;3. 掌握基本算术运算符及其表达式的使⽤⽅法;4. 掌握++、--运算符、赋值运算符及其表达式的使⽤⽅法。
实验项目名称:实验一C 语言的运行环境的使用实验目的及要求:1. 了解 Windows 系统下 C 语言的运行环境,熟悉 C 程序编辑、调试、运行的基本操作方法。
2. 熟练掌握编辑、编译、连接和运行 C 程序的方法。
3. 通过运行简单的 C 程序,初步了解 C 源程序的特点。
4. 初步理解 C 语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运行结果的基本输出方法。
实验内容(方法和步骤):1、编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for程序代码:#include <stdio.h>int main(){printf("Hello,World!\n");printf("Welcome to the C language world!\n");printf(Everyone has been waiting for.\n");return 0;}运行结果:2、编写程序,将两个整数相加,并输出结果。
程序代码:#include <stdio.h>int main(){int a,b,c;a=12;b=26;c=a+b;printf("c=%d\n",c);return 0";}运行结果:3. 编写程序,要求从键盘输入2 个整数,输出其中较大的数程序代码:#include <stdio.h>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);pintf("max=%d",c);return 0;}int max(int x,int y){ int z;if (x>y) z=x;else z=y;return(z);}运行结果:4.输入并运行下程序,观察运行结果。
最简单的C程序设计—顺序程序设计实验报告研究生:XXXX 指导教师:XXXX摘要:本实验报告旨在介绍C语言中最简单的程序设计方法——顺序程序设计。
通过实际编写和调试一系列简单的C程序,加深对顺序程序设计的理解,并掌握C语言的基本语法和代码编写步骤。
本实验报告从实验目的、实验环境、实验内容、实验步骤以及实验结果等方面进行详细阐述,最后总结了所获得的实验心得和体会。
1. 实验目的本实验旨在通过编写C程序,加深对顺序程序设计基本概念的理解,掌握C语言的基本语法和编写步骤,培养良好的程序设计思维,为今后学习更复杂的程序设计打下基础。
2. 实验环境为了完成本实验,以下环境的搭建是必要的:- 操作系统:Windows 10- 开发工具:Code::Blocks 17.12- 编程语言:C语言3. 实验内容本实验的主要内容包括以下几个方面:- 学习C语言的基本语法和变量类型- 掌握C程序的基本结构和编写规范- 设计和实现一系列简单的顺序程序- 调试和运行编写的程序,并分析运行结果4. 实验步骤(1) 熟悉C语言基本语法C语言的基本语法包括变量定义、数据类型、运算符、控制语句等。
在编写C程序之前,我们需要对这些语法进行充分的了解和掌握。
(2) 编写第一个C程序首先,我们以经典的“Hello, World!”程序为例。
打开Code:Blocks开发工具,创建一个新的空项目。
在项目中创建一个源代码文件,并编写以下代码:```c#include <stdio.h>int main(){printf("Hello, World!\n");return 0;}```编译并运行程序,观察输出结果是否符合预期。
通过这个简单的程序,我们熟悉了C程序的基本结构和编写规范。
(3) 编写其他简单的顺序程序在掌握了基本的C语法和程序框架后,我们可以开始编写一些具有实际意义的简单程序。
例如,计算两个整数的和、求圆的面积、判断一个数是否为素数等等。
C语言程序设计课程设计实验报告一、设计名称:学生成绩治理查询系统实验项目性质:综合性所涉及课程:C语言程序设计打算学时:实验学时12二、设计目的:1.通过本课程设计,培育上机动手能力,使学生巩固《C语言程序设计》课程学习的内容,把握工程软件设计的大体方式,强化上机动手能力,闯过编程关;2.为后续各门运算机课程的学习打下坚实基础。
3.明白得程序设计的思路,把握结构化程序设计的方式,综合利用C语言进行程序编写,巩固常常利用的C语言概念,如数组、指针、结构体、链表、文件操作等,注意良好的程序设计风格的培育。
提高编写程序解决实际问题的能力、调试程序的技术。
三、设计环境(软件、硬件及条件)1.硬件:PC机2.软件:Turbo C++四、设计说明:程序系统的结构:用一系列图表列出本程序系统内的每一个程序(包括每一个模块和子程序)的名称、标识符和它们之间的层次结构关系。
主程序:新建:输入记录(遇#号时停止输入)。
插入:在指定位置插入记录。
显示:列出所有记录。
查询:一、按学号查询;二、按名字排序。
删除:一、按学号删除;二、按名字删除;3、删除所有记录。
排序:一、按语文成绩排序;二、按英语成绩排序;3、按数学成绩排序。
保留:保留为任意名字,系统自动加后缀名为.txt。
读取:读取程序目录下的后缀名为.txt的文件。
退出:退出程序。
五、各功能模块的具体实现,用图表表示。
输入记录显示开始:输入学号输入的学号是否为#Y N 结束,返回主菜单输入记录循环输入结束开始p=hp!=NULL输出学生信息;p=p->next结束按学号(姓名)查询信息Y N读取文件六、各模块(函数)的功能介绍,数据结构设计描述,参数说明等。
STUDENT *init(); /*初始化链表*/STUDENT *create(); /*新建链表*/STUDENT *del_no(STUDENT *h);/*按学号删除信息*/STUDENT *del_name(STUDENT *h); /*按姓名删除信息*/void print(STUDENT *h); /*显示信息函数*/void search_no(STUDENT *h); /*按学号搜索*/void search_name(STUDENT *h); /*按姓名搜索*/STUDENT *insert(STUDENT *h); /*插入信息函数*/void sort(STUDENT *h);/* 排序函数*/void save(STUDENT *h);/*保留数据到文件*/void load(STUDENT *h); /*从文件读取数据*/int menu_main(); /*菜单函数*/void inputs(char *prompt,char *s,int count);/*输出信息*/七、程序代码:Enter records\n");printf(" 2. Add records\n");printf(" 3. List records\n");printf(" 4. Search records\n");printf(" 5. Delete records\n");printf(" 6. Sort records\n");printf(" 9. Quit\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~9):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>9); /*选择项不在1~9之间重输*/return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Search records on number\n");printf(" 2. Search records on name\n");printf(" 3. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~3):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>3);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Chinese\n");printf(" 2. English\n");printf(" 3. Math\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Delete records on number\n");printf(" 2. Delete records on name\n");printf(" 3. Delete all records\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}.");/*提示*/getch(); /*读入任意字符*/}.\n");getch(); /*读入任意字符*/if(p==h)h=p->next;elseq->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s); }printf("\nPress any key to continue..."); getch(); /*读入任意字符*/return h;}.\n");getch();if(p==h)h=p->next;else q->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s);}printf("\nPress any key to continue...");getch(); /*读入任意字符*/return h;}.");getch(); /*读入任意字符*/}.");getch(); /*读入任意字符*/}xt"};STUDENT *p;FILE *fp; /*指向文件的指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"wb"))==NULL) /*打开文件,并判定打开是不是正常*/ {printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;while(p!=NULL){if(fwrite(p,sizeof(STUDENT)-sizeof(p->next),1,fp)!=1){printf("Error!\n");exit(1);} /*写入*/p=p->next;}fclose(fp); /*关闭文件*/printf("\n------OK------\n");printf("Press any key to continue...");getch(); /*读入任意字符*/}xt"};STUDENT *p,*a1=NULL,*a2=NULL;FILE *fp;/*概念文件指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"rb"))==NULL)/*打开文件*/{printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;a1=a2=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp); while(!feof(fp)){n++;if(n==1)h=a1;else a2->next=a1;a1=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp);}a2->next=NULL;printf("\n------OK------\n");printf("Press any key to continue...");getch(p); /*读入任意字符*/}///////////////////////////////////////////void sort(STUDENT *h) /*排序函数*/{int i=0,j;STUDENT *p,*q,*t,*h1,*z;clrscr(); /*清屏*/printf("Enter you choice :\n");scanf("%d",&j);z=h;h1=h->next;h->next=NULL;while(h1!=NULL){t=h1;h1=h1->next;q=h;while(t->score[--j]<p->score[--j]&&p!=NULL){q=p;p=p->next;}if(p==q){t->next=p;h=t;}else{t->next=p;q->next=t;}}p=h;while(p!=NULL){i++;p=p->next;}h=z;printf("------OK------\n");}//////////////////////////////////////////////////九、体会、总结本课程设计完成了设计一个学生成绩治理系统,学生的学习成绩进行治理,具有查询和检索功能,而且能够对指定文件操作。
c语言实验报告结论
在本次C语言实验中,我们完成了多个程序的设计和开发,包括计算字符串中元音字母和辅音字母的个数,求解一个数的平方根,以及设计一个简单的计算器。
同时,本次实验也让我们意识到了程序设计的重要性,程序需要清晰的逻辑思维和良好的代码风格,才能实现高效、可靠的功能。
在实验中,我们不断优化程序设计,从算法和代码结构等方面提高了程序的可读性和可维护性。
在实验中出现的一些问题,如溢出和类型转换错误,也提醒我们在编程过程中要注意数据类型的选择和边界情况的处理,以确保程序的正确性和稳定性。
综上所述,通过本次C语言实验的学习和实践,我们深刻认识到了C语言的重要性和广泛性,也提高了自己的编程能力和实战经验。
在今后的学习和工作中,我们将不断加强自己的编程素养,熟练掌握C语言的应用,为未来的发展打下坚实的基础。
维生素C项目投资分析报告规划设计 / 投资分析摘要说明—维生素C(VitaminC,AscorbicAcid)又叫L-抗坏血酸,是一种水溶性维生素。
食物中的维生素C被人体小肠上段吸收。
一旦吸收,就分布到体内所有的水溶性结构中,正常成人体内的维生素C代谢活性池中约有1500mg维生素C,最高储存峰值为3000mg维生素C。
正常情况下,维生素C绝大部分在体内经代谢分解成草酸或与硫酸结合生成抗坏血酸-2-硫酸由尿排出;另一部分可直接由尿排出体外。
中国人在人类与病毒的抗争上充当着关键性的角色。
中国人口众多而且居住密集,是病毒最容易传染的地区,也是受病毒残害最深的地区。
例如,许多流行性感冒的病毒都发源于中国,SARS病毒也是首先在中国出现的,并且死于SARS的90%是中国人。
维生素C在抗病毒和预防病毒性传染病方面具有很高的应用价值。
目前中国逐渐跃居成为维生素C生产的领导地位,但是,中国人服用维生素C的平均剂量,远逊于欧美和日本。
如果我们普遍认识到维生素C预防和治疗病毒传染病症的原理并且按量服用,就可以预防很多病毒的传播。
维生素C 的真正效用,会显示在治疗禽流感,SARS和AIDS等更严重的病毒传染病上。
调查显示,我国30%的人维生素C摄入量不足,即4亿人缺乏维生素C。
在此背景下,维生素C及其产品的消费必然随之增加,市场容量将大幅度提高。
近几年,我国维生素C行业发展迅速,国内生产技术不断提升。
国内企业为了获得更大的投资收益,在生产规模和产品质量上不断提升。
依托国际市场的定价和国内的原材料、人力等成本优势,我国维生素C产品投资价值极具吸引力。
该维生素C项目计划总投资16032.21万元,其中:固定资产投资11221.81万元,占项目总投资的70.00%;流动资金4810.40万元,占项目总投资的30.00%。
达产年营业收入34097.00万元,总成本费用26392.24万元,税金及附加292.70万元,利润总额7704.76万元,利税总额9060.19万元,税后净利润5778.57万元,达产年纳税总额3281.62万元;达产年投资利润率48.06%,投资利税率56.51%,投资回报率36.04%,全部投资回收期4.27年,提供就业职位678个。
旅游管理系统c语言编程实验报告这篇实验报告将介绍关于旅游管理系统用C语言编程的实验过程与成果。
旅游管理系统是一个旨在帮助旅游行业提高管理效率的软件应用程序,主要功能包括旅游订单管理、景点信息查询、客户信息管理等。
下面将详细介绍该项目的实验目的、原理、实验步骤、实验结果与总结。
实验目的:1.了解C语言的基本知识,掌握C语言编译和执行流程;2.掌握文件I/O函数和字符串处理函数等相关知识;3.了解软件开发流程,学习代码调试与优化。
原理:本次实验以C语言作为开发语言。
根据项目需求,开发软件主要功能包括旅游订单管理、景点信息查询、客户信息管理等。
实验步骤:1.根据项目需求,分析数据结构与算法,设计程序框架;2.编写代码实现主要功能,包括旅游订单管理、景点信息查询、客户信息管理等;3.通过调试,发现程序中的错误,并优化代码,使其更加稳定和可靠;4.编写测试用例,对程序进行测试,发现并解决问题;5.编写实验报告,记录实验过程和实验结果。
实验结果:通过C语言编程实现了旅游管理系统,其主要功能包括旅游订单管理、景点信息查询、客户信息管理等。
程序运行稳定,具有较高的可靠性。
同时,程序的开发也提高了软件开发的能力,对数据结构、算法等方面也有了更深入的理解。
总结:通过本次实验,对软件开发流程和C语言编程有了更深入的认识。
同时,也了解了旅游管理系统的基本功能和开发过程。
通过实验,提高了编程能力,也发现了自己还需不断进步的地方。
在今后的学习中,会更加专注于C语言编程的学习和实践,不断提升自己的技术水平。
c语言上机实验心得在科技高度发展的今天,计算机在人们之中的作用越来越突出。
而c语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好c语言,这对我们以后的发展是十分重要的。
说到这,上机实验当然就是一个必不可少的环节了,c语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。
为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。
通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了c语言那就大错特错了。
我主要存在以下的这些缺点:1、学习耐心与细心不足,如scanf(“%d”,&n);中的“&”有时候会忘了。
而在最后输出时又错写成printf(“%d”,&n);从而错误得输出了地址而不是我原来想要的答案。
2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解题了。
3、4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。
知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够深刻。
5、6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。
英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在一点问题。
为了能更好地学好c语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。
实验中我深刻意识到完成程序的编写,决不意味着万事大吉。
认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。
有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。
因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。
C语⾔程序设计第五次实验报告C程序设计实验报告实验项⽬:C语⾔程序设计第五次实验报告姓名:彭佳乐实验地点:家中实验时间:2020年4⽉21⽇⼀、实验⽬的与要求1、熟练地掌握函数的定义⽅法和调⽤规则。
2、掌握再 C语⾔程序种主调函数和被条⽤函数之间进⾏数据传递的规则。
3、了解函数的返回值及其类型,并正确使⽤它4、了解局部变量和全局变量的作⽤城及它们与存储分类的关系,理解变量的存在性和可见性的概念5、练习递归函数的使⽤⼆、实验内容6.3.1.1 已知三⾓形的三边,求⾯积6.3.1.2 求N的阶乘6.3.1.3 求两个整数的最⼤公约数6.3.1.4 打印出指定的图形6.3.2.1 求500以内的所有亲密数对6.3.3.1 编写计算x的y次幂的递归函数6.3.3.2 编写计算学⽣年龄的递归函数1、实验练习:6.3.1-1 已知三⾓形的三边,求⾯积(1)问题的简单描述:编写程序,从键盘输⼈三⾓形的3条边,调⽤三⾓形⾯积函数求出其⾯积,并输出结果。
(2)实验代码:#include<math.h>#include<stdio.h>float area(float a,float b,float c){float s,p,area;s=(a+b+c)/2;p=s(s-a)(s-b)*(s-c);area=sqrt(p);return(area);}main(){float a,b,c,ts;printf("请输⼊三⾓形的三条边a,b,c:\n");scanf("%f%f%f",&a,&b,&c);ts=area(a,b,c);if(a+b>c&&a+c>b&&b+c>a)printf("area=%f\n",ts);elseprintf("Data error!");}(3)问题分析:求三⾓形的⾯积采⽤的是浮点型,具有返回值,刚开始写成了调⽤函数后来发现不对将函数调⽤改成函数表达式带⼊程序可以正常运⾏2、实验练习:6.3.1-2 求N的阶乘(1)问题的简单描述:编写函数,求出从主调函数传来的数值i的阶乘值,然后将其传回主调函数并输出(2)实验代码:#include<stdio.h>#define N 5long function(int i)static long f=1;f=f*i;return f;}main(){long product;int i;for(i=1;i<=N;i++){product=function(i);printf("%d的阶层为%d\n",i,product);}}(3)问题分析:定义N为五的时候很纠结忘了define函数,后来问了同学后解决了3、实验练习:6.3.1-3 求两个整数的最⼤公约数(1)问题的简单描述:编写程序,从键盘输⼊两个整数,调⽤gdc()函数求他们的最⼤公约数,并输出结果。
c语言课程设计报告书3篇c语言课程设计报告书1我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。
在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
包括了程序模块处理。
简单界面程序。
高级界面程序。
程序的添加修改。
用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。
因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。
为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。
课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1、加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的.语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。
然而要使用c语言这个工具解决实际问题,又必须掌握它。
通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。
对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
《单片机C语言程序设计》实验报告
一、实验目的和要求
1、掌握protues7.10的安装及操作,掌握电路搭建方法,掌握仿真方法。
2、掌握keil uvision5的安装及操作,掌握新建工程项目,调试运行方法。
二、实验内容和原理
1、运行文件名为歌曲的实例,打开“歌曲.DSN”,运行给出的例子。
详细
操作过程参考《单片机实验一参考文档》P1和P2的描述。
2、参考《单片机实验一参考文档》中的P2-P4关于“三、protues软件
的界面与操作介绍”中的描述,了解protues软件的界面与操作。
3、使用protues软件绘制“流水灯”的原理图,并通过调试。
详细过程
参考《单片机实验一参考文档》的P4-P11,熟悉protues的使用。
4、使用Keil uVision5完成上述“流水灯”的程序设计。
步骤如下:
①新建工程项目,并选择好芯片
②建立c源程序文件
③编写流水灯程序文件,添加文件到当前项目组中及编译文件
④检查并修改源程序中的错误
三、主要仪器设备
Protues硬件仿真调试软件
Keil编程软件
四、操作方法与实验步骤
1、根据实验一新建工程操作,新建工程。
2、根据实验原理图链接Protues仿真电路图。
3、根据实验要求编写C程序。
4、通过Protues仿真调试,修改程序。
五、实验结果与分析。
《C程序设计》实验教学大纲一、适用范围大纲适用信息管理专业本科教学使用。
二、课程名称C程序设计三、学时数与学分总学时:90 总学分:4实验学时:28 实验学分:1四、教学目的和基本要求目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。
基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。
上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。
注:带*的实验项目为选做实验项目六、教材、讲义及参考书《C程序设计题解与上机指导》谭浩强主编清华大学出版社七、实验成绩评定办法实验成绩=平时实验表现+实验报告。
实验成绩占总成绩的20%。
实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。
1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。
在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。
2、实验报告:学生实验后应按时完成实验报告。
八、实验教学大纲说明本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。
实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。
九、实验项目实验一C程序的运行环境和运行一个C程序的方法一、实验目的1.了解Visual C++6.0编译系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
C语言程序设计实验报告(实验名称:函数)1实验目的(1)掌握函数的定义方法、调用方法、参数说明以及返回值;(2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式;(3)掌握函数的嵌套调用及递归调用的用的设计方法;(4)在编程过程中加深理解函数调用的程序设计思想。
2实验内容(1)编写一个函数primeNum(int x),功能是判别一个数是否为素数。
要求:①在主函数中输入一个整数x(直接赋值或从键盘输入);②函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是否为素数的信息,输出格式为“x is a prime number”或”x is not aprime number”;③分别输入一下数据:0,1,2,5,9,13,59,121,并运行程序,检查结果是否正确。
(2)编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。
如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。
要求:①在主函数中从键盘输入一对整型数据a和b;②调用函数后,根据返回值对a和b的关系进行说明。
例如,在主函数中输入:10,5,则输出“10 is a multiple of 5”;③分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6与4,20与4,37与9。
3算法描述流程图(1)primeNum(int x)(判别一个数是否是素数)函数流程图①主函数流程图:②判断素数函数流程图:(2)mulNum(int a,int b)(确定a和b是否是整数倍的关系)函数流程图①主函数流程图:②判断倍数流程图:4源程序(1)判断某个数是否是素数#include <stdio.h>int primNum(int x) /*编写函数判断某个数是否是素数*/ {int i;if (x==0||x==1) /*当x等于1或等于0时判断是否为素数*/return 0;for (i=2;i<x;i++) /* 当x大于2时判断不为素数的数*/{if (x%i==0)return 0;}if (x%i) /* 当x等于2或不满足上述条件时时判断出该数是素数*/ return 1;}void main(){int n ;printf("Please input an integer:"); /* 提示从键盘输入一个数x */scanf("%d",&n);if (primNum(n)==1) /* 调用定义的函数*/ printf("%d is a prime number\n",n); /* 由函数得出结论判断是否为素数*/ elseprintf("%d is not a prime number\n",n);}(2)个数是否是整数倍关系#include <stdio.h>int mulNum(int a,int b)/* 定义函数确定两个数是否有整数倍关系*/{if (a%b==0) /* 判断出a是b的整数*/return 1;else /* 判断出a不是b的整数*/return 0;}void main (){int m,n;printf ("please input tow integers:\n"); /*提示从键盘输入两个数*/scanf ("%d%d",&m,&n); /*从键盘输入两个数的值*/if(mulNum(m,n)==1) /*调用定义的函数并判断输出相应的结果*/printf("%d is a multiple of %d\n",m,n);elseprintf("%d is not a multiple of %d\n",m,n);}5测试数据(1)实验(1)测试数据为0,1,2,5,9,13,59,121 运行结果当测试数据0时当测试数据1时当测试数据2时当测试数据5时当测试数据9时当测试数据13时当测试数据59时当测试数据121时(2)实验2测试的数据1与5,5与5,6与2,6与4,20与4,37与9。
C语言图书管理系统课程设计报告一、项目介绍本项目是一个基于C语言的图书管理系统,旨在提供一个管理图书信息的平台,包括图书的增删查改、借还管理等功能。
二、功能需求本项目的主要功能需求如下:1.用户登录/注册:用户可以输入用户名和密码登录系统,也可以进行注册。
2.图书增删查改:管理员可以录入图书信息,包括书名、作者、出版社、ISBN、分类、价格、剩余数量等。
管理员可以根据图书名称、作者等信息查询图书信息,也可以对图书进行修改或删除。
3.借还管理:用户可以进行借书、还书,系统将会记录借书人信息、图书信息以及借书时间、归还时间等信息。
4.归还提醒:系统将会在借书过期且未归还的情况下自动发送邮件或短信提醒用户归还图书。
三、开发环境及相关技术本项目的开发环境为Windows10,使用的开发工具是Visual Studio Code。
在开发该项目时,我们主要使用了C语言和相关库函数。
四、开发流程本项目的开发流程如下:1.需求分析:根据用户需求,进行需求分析,确定系统需求。
2.概要设计:初步设计出系统的结构框架、数据模型等。
3.详细设计:根据概要设计,进一步详细设计出系统的各个功能模块的具体实现方法。
4.编码实现:根据详细设计,使用C语言和相关库函数编写代码实现各个功能模块。
5.测试调试:在编写完代码后,进行测试调试,找出问题并进行修复和优化。
6.部署实施:完成测试调试后,进行项目上线和部署。
五、实现效果展示以下是系统的主界面和功能界面展示:1.登录/注册界面登录/注册界面登录/注册界面2.主界面主界面主界面3.图书管理界面图书管理界面图书管理界面4.借阅管理界面借阅管理界面借阅管理界面六、总结与展望本项目基于C语言,使用了相关库函数开发了一个图书管理系统。
通过该项目的开发,我们深刻理解了系统开发的整个流程。
同时,我们也了解到了C语言在系统开发上的应用及其局限性。
未来,我们还可以继续完善该系统,增加其他功能模块,如图书推荐、借阅排行等,从而进一步完善该系统,提高用户体验。
停车场管理系统——项目设计报告所在班级:能源1004班指导教师:胡彬项目开发分工:目录一、项目分析·3二、功能描述·3三、概要设计报告·4四、程序流程·4五、程序结构图·5六、操作指南·5七、项目总结·8八、程序代码·9一、项目分析(1)目的:加强所学习的C++知识, 进一步熟练掌握C++语言的基本知识和技能;(2)本项目目标如下:问题描述:现在打部分停车场都是人工管理,在记录时比较复杂,不规范,为使停车场的的管理工作更加方便简洁,本程序将提供一个智能的管理平台。
构思:1)将货车、客车、小轿车按不同的标准进行收费计算.2)能按车位、车牌号、车主姓名显示、查找、增加、删除和保存所停放的车辆信息.3)建立多个类的体系,分工完成各个类的设计,并分别增加了不同的属性和方法.4)设计出友善、舒适的界面;二、功能描述:本程序系统设有一个比较精美的可视化的操作界面,并设有分级菜单与选项,可以方便的指导管理员的使用。
本系统主要用于进行货车、客车、小轿车的信息管理,重点用于实时监控停车场所停车辆的信息,包括基本信息(车位号、车牌号、车主姓名、进出站时间、停车时间、收费单价、总收费等),可以简单快捷的实现增、改、删、查功能,便于用户的储存与查询。
本系统的优点在于:由于我们使用了文件的输出,运行程序后将在指定位置生成两个txt文件,一个是所有曾停放车辆的历史信息,另外一个为在停车辆的信息,可以对数据进行永久性的存储,不存在退出程序系统后,所有输入的内容都会消失的情况。
制作过程中我们将从实际出发,注重程序的实用性,并力求将所学内容融入其中。
三、概要设计报告:本程序设计构想来源于宿舍出入登记簿,通过类的组合,继承与派生,再加上对函数的利用,实现不同种类的车辆信息进行增、删、改、查的管理。
为停车场管理人员提供了方便快捷管理的工具。
四、程序流程1、选择1、登入2、登出3、查找单个车辆信息4、显示全部车辆信息5、修改密码6、退出2、登入是否电脑选车位?车牌号,车主姓名,车辆类型:输入车位?有->:没有—>返回3、登出输出车位号车牌号、停车时间、应收费用、进出时间、车位状态归零;4、查找按车位?输入车位:输入车牌;5、显示显示所有在听车辆信息;6、修改密码请输入原密码—>输入错误/请输入新密码、请再次输入,修改成功;7、退出五、程序结构图六、操作指南1、主菜单在打开停车场管理系统,输入正确密码后,将会进入一个欢迎菜单,也就是本程序的主菜单,在这里有如下几个选项:根据需要选择相应的数字。
2、登入车辆当在主菜单中选择1登入车辆时,将会进入其副菜单,有如下三个选项:随后可根据提示,输入登记的详细内容。
3、登出车辆当有车辆需要离开停车场时,进入登出界面,输入相应的车位号,进行登出。
此时,系统将显示停入的时间及所需费用(费用标准课根据实际情况进行修改),显示结果如下:4、查找车辆当有需要查找某个车辆时,我们可以在主菜单中选择“查找车辆”,在本程序中提供两种查找方式:按车位和按车牌号,根据提示输入相应的数据即可获得相应的车辆信息,如下图所示:5、显示全部车辆在主菜单中按4进入显示全部车辆信息的功能页面,如下图所示:6、密码与修改密码主菜单中选择5进入密码修改功能,在输入原密码和两次相同的6位新密码后即可修改密码,由于本程序实现了和硬盘关联,故在下次进入时的合法密码为上次修改后的密码,所以要记住心密码哦,界面如下图所示:七、项目总结在经过一个学期的C++学习课程之后,共同合作完成这样一个程序的过程无疑又让我们获益匪浅,学到的不仅是细节,不仅是学习方法,不仅是团队合作精神,更是团结一心,在困难面前全力学习、互相帮助,最后战胜困难的决心和勇气。
在这一段时间里我们收获颇丰,请让我们一同来回顾这段难忘的时光。
1、在上午微积分考试一结束,我们便开始了对要做项目的讨论,包括其主题和功能。
本以为可以提前几天结束这样一个战斗,没想到却是刚刚在要求的前一天完成整个程序的编写。
有此,我们得出事事皆要早的结论。
2、我们一开始遇到的并在后续阶段一直困扰我们的问题就是文件的读写问题,把文件的读写作为我们程序的一个特色是一件很需要勇气的事,在每个人都只是接触了一点点文件的输入输出的情况下,要实现数据的灵活存储就要求重新了解该部分的内容,并进行大量的试验程序调试。
次部分从头到尾,占用了我们大部分时间。
3、作为本程序的另外一个特色,密码程序的设计同样具有挑战性。
作为第一个与磁盘文件互动的部分,此过程的突破给了我们无尽的信心和勇气,使我们坚定的向更复杂的问题冲击。
4、除了以上没有学过的内容给我们造成很大的困难之外,一些小问题也曾让我们很头疼,比如string与cin的冲突问题,两个时间点的计算问题,格式错误引起的无尽的调试过程等等。
但在最后完成项目之后,这一切都变成了我们宝贵的经验。
回顾这样一个艰苦的过程,我们有两点最为重要的收获。
一是对团队合作效率的认同,比如,当一个人自己调试程序的时候,找错总是很纠结的一件事,但是当两个人在一起共同审视程序的时候,找出错误也就变得容易多了。
二是要时刻具备克服苦难的决心与毅力,我们面对的是自己看都看不懂的内容,但是却要求我们最后能把这部分内容灵活运用到程序中。
这种感觉总是能令人抓狂,但是,最后我们做到了。
我们可以自豪的对别人说:“I MADE IT!”八、程序代码1、头文件#include <iostream>#include<conio.h>#include<string>#include<cmath>#include <time.h>using namespace std;double DiffTime(unsigned ty1,unsigned th1,unsigned ty2,unsigned th2){struct tm tm1,tm2;time_t tt1,tt2;float dt;tm1.tm_year = ty1/10000 - 1900; //得到年2008 tm1.tm_mon = (ty1%10000)/100; //得到月09tm1.tm_mday = (ty1%10000)%100; //得到日11 tm1.tm_hour = th1/10000; //得到时11tm1.tm_min = (th1%10000)/100; //得到分12tm1.tm_sec = (th1%10000)%100; //得到秒03tm2.tm_year = ty2/10000 - 1900; //得到年2008 tm2.tm_mon = (ty2%10000)/100; //得到月09tm2.tm_mday = (ty2%10000)%100; //得到日13 tm2.tm_hour = th2/10000; //得到时11tm2.tm_min = (th2%10000)/100; //得到分12tm2.tm_sec = (th2%10000)%100; //得到秒01tt1 = mktime(&tm1);tt2 = mktime(&tm2);dt = (double)(difftime(tt2,tt1))/3600; //得到相差的小时数return dt;}class Car //基类{protected:int Pos;string Num;string Name;double Time;double Money;public:char time1[30],time2[30];Car(int pos=0,string num="0",string name="No name") {Pos=pos;Num=num;Name=name;time1[30]='\0';time2[30]='\0';Time=0;Money=0;}int GetPos(){return Pos;}string GetNum(){return Num;}string GetName(){return Name;}double GetTime(){return Time;}void SetPos(){Pos=0;}void show(){cout<<"车位"<<Pos<<" "<<Num<<" "<<Name<<" "<<time1<<endl;}void SetStime(char a[]){strcpy(time1,a);}void Stime() //初始时间{time_t t = time(0);strftime(time1,sizeof(time1),"%Y/%m/%d %X %A",localtim e(&t));}void Ftime() //结束时间{time_t t = time(0);strftime(time2,sizeof(time2),"%Y/%m/%d %X %A",localtim e(&t));}void setTime() //计算经过时间{unsigned ty1,th1,ty2,th2;ty1=10000000*(time1[0]-'0')+1000000*(time1[1]-'0')+1000 00*(time1[2]-'0')+10000*(time1[3]-'0')+1000*(time1[5]-'0')+100*(time1[6]-'0' )+10*(time1[8]-'0')+(time1[9]-'0');th1=100000*(time1[11]-'0')+10000*(time1[12]-'0')+1000*( time1[14]-'0')+100*(time1[15]-'0')+10*(time1[17]-'0')+(time1[18]-'0');ty2=10000000*(time2[0]-'0')+1000000*(time2[1]-'0')+1000 00*(time2[2]-'0')+10000*(time2[3]-'0')+1000*(time2[5]-'0')+100*(time2[6]-'0' )+10*(time2[8]-'0')+(time2[9]-'0');th2=100000*(time2[11]-'0')+10000*(time2[12]-'0')+1000*( time2[14]-'0')+100*(time2[15]-'0')+10*(time2[17]-'0')+(time2[18]-'0');cout<<DiffTime(ty1,th1,ty2,th2)<<endl;Time=DiffTime(ty1,th1,ty2,th2);}};class Auto:public Car //小型车类{private:double prize;double Outvalue;public:Auto(int pos=0,string num="0",string name="No name",double outvalue=0):Car(pos,num,name){Outvalue=outvalue;prize=Outvalue*3;}double Outmoney(){Money=Time*prize; return Money;}double GetOutvalue(){return Outvalue;}double Getprize(){return prize;}};class Carriage:public Car //客车类{private:int Capacity;double prize;public:Carriage(int pos=0,string num="0",string name="No name",int capacity=0):Car(pos,num,name){Capacity=capacity;prize=sqrt(Capacity);}double Outmoney(){Money=Time*prize;return Money;} double Getprize(){return prize;}int GetCapacity(){return Capacity;}};class Truck:public Car //货车类{private:int Heavy;double prize;public:Truck(int pos=0,string num="0",string name="No name",int heavy=0):Car(pos,num,name){Heavy=heavy;prize=Heavy*2;}double Outmoney(){Money=Time*prize;return Money;} double Getprize(){return prize;}double GetHeavy(){return Heavy;}};2、code源文件#include<conio.h>#include<iostream>#include <fstream.h>#include <stdlib.h>#include <windows.h>void code(){ifstream infile("code.txt",ios::in|ios::nocreate);if(!infile){cout<<"未找到密码文件,请重新确认\n";exit(1);}char c[6]={0},d[6]={0};int sel=1,i;infile.getline(d,8);cout<<"请输入密码(初始密码为000000):"<<endl;while(sel){for(i=0;i<6;i++){c[i]=getch();if((c[i]>='0'&&c[i]<='9')||(c[i]>='a'&&c[i]<='z')||(c[i]>='A'& &c[i]<='Z'))putchar('*');}cout<<endl;if(c[0]==d[0]&&c[1]==d[1]&&c[2]==d[2]&&c[3]==d[3]& &c[4]==d[4]&&c[5]==d[5]){cout<<endl<<endl<<endl<<endl<<endl<<"密码通过!"<<endl;Beep(523,200);Beep(659,300);Beep(784,300);Beep(1060,300);sel=0;}elsecout<<"密码错误,请重新输入:"<<endl;}infile.close();system("cls");}void codechange(){system("cls");char c[6]={0},d[6]={0};int sel=1,i;ifstream infile("code.txt",ios::in|ios::nocreate);infile.getline(d,8);cout<<"请输入原密码:"<<endl;for(i=0;i<6;i++){c[i]=getch();if((c[i]>='0'&&c[i]<='9')||(c[i]>='a'&&c[i]<='z')||(c[i]>='A'& &c[i]<='Z'))putchar('*');}if(c[0]==d[0]&&c[1]==d[1]&&c[2]==d[2]&&c[3]==d[3]& &c[4]==d[4]&&c[5]==d[5]){cout<<endl<<" 原密码正确"<<endl;char count1[6],count2[6];cout<<" 请输入新密码:"<<endl;for(i=0;i<6;i++){count1[i]=getch();if((count1[i]>='0'&&count1[i]<='9')||(count1[i]>='a'&&co unt1[i]<='z')||(count1[i]>='A'&&count1[i]<='Z'))putchar('*');}cout<<endl<<" 请再次输入心密码:"<<endl;for(i=0;i<6;i++){count2[i]=getch();if((count2[i]>='0'&&count2[i]<='9')||(count2[i]>='a'&&co unt2[i]<='z')||(count2[i]>='A'&&count2[i]<='Z'))putchar('*');}cout<<endl;if(count1[0]==count2[0]&&count1[1]==count2[1]&&coun t1[2]==count2[2]&&count1[3]==count2[3]&&count1[4]==co unt2[4]&&count1[5]==count2[5]){ infile.close();ofstream dfile("code.txt");for(i=0;i<6;i++)dfile<<count1[i];dfile.close();cout<<"密码修改成功!"<<endl;system("cls");Beep(523,200);Beep(659,300);Beep(784,300);Beep(1060,300);sel=0;}else cout<<"密码修改失败,两次输入不一致"<<endl;}else cout<<"密码错误,密码修改失败"<<endl;}3、main#include <iostream>#include<conio.h>#include<stdio.h>#include<string>#include<cmath>#include<cstdlib>#include <windows.h>#include<fstream>#include<cstring>#include <time.h>#include"car.h"using namespace std;Auto r1[31]; Carriage r2[31]; Truck r3[31];int vehicle;void fun11();void fun12();void fun13();void fun1();void fun2();void fun3();void fun31();void fun32();void fun3();void fun4();void codechange(); void code();void funsave();* * void read();int main(){code();int sel=1;read();while(sel){cout<<"------------------------------------------"<<endl;cout<<" **"<<endl;cout<<" 欢迎进入停车场管理程序"<<endl;cout<<" **"<<endl;cout<<"------------------------------------------"<<endl;cout<<endl<<endl;cout<<"请选择您的操作:"<<endl<<endl;cout<<" 1.进站车辆;"<<endl;cout<<" 2.出站车辆;"<<endl;cout<<" 3.查找信息;"<<endl;cout<<" 4.显示所有车辆信息;"<<endl;cout<<" 5.修改密码;"<<endl;cout<<" 0.退出;"<<endl;cout<<"请选择按键(0-5):";sel=9;int s1;cin>>s1;cout<<endl;//判断输入,0退出if(s1>=0 && s1<=5){switch(s1){case 1:fun1();break; //增加车辆case 2:fun2();break; //出站车辆case 3:fun3();break; //查找信息case 4:fun4();break; //显示所有case 5:codechange();break; //修改密码case 0:funsave();sel=0;break; //退出}}else{cout<<"输入错误,请重新输入!"<<endl;system("cls");}}return 0;}void fun11() //轿车类{if(vehicle==30)cout<<"车位已满"<<endl;else{int i;char y;for(i=1;i<31;i++){if(r1[i].GetPos()==0&&r2[i].GetPos()==0 &&r3[i].GetPos()==0)break;}string num;string name;int outvalue;cout<<"请输入车牌号:"<<endl;cin>>num;cout<<"请输入车主姓名:"<<endl;cin>>name;cout<<"请输入排量:"<<endl;cin>>outvalue;cout<<"登陆成功,您的车位为:"<<i<<" 确认请按Y:"<<endl;cin>>y;Auto u(i,num,name,outvalue);u.Stime();r1[i]=u;vehicle++;system("cls");}}void fun12() //客车{ if(vehicle==30)cout<<"车位已满"<<endl;else{int i;for(i=1;i<31;i++){if(r1[i].GetPos()==0&&r2[i].GetPos()==0* * &&r3[i].GetPos()==0)break;}string num;string name;int capacity;cout<<"请输入车牌号:"<<endl;cin>>num;cout<<"请输入车主姓名:"<<endl;cin>>name;cout<<"请输入载客量:"<<endl;cin>>capacity;cout<<"登陆成功,您的车位为:"<<i<<" 确认请按Y:"<<endl;char y;cin>>y;Carriage u(i,num,name,capacity);u.Stime();r2[i]=u;vehicle++;system("cls");}}void fun13() //货车{if(vehicle==30)cout<<"车位已满"<<endl;* * else{int i;for(i=1;i<31;i++){if(r1[i].GetPos()==0&&r2[i].GetPos()==0 &&r3[i].GetPos()==0)break;}string num;string name;int heavy;cout<<"请输入车牌号:"<<endl;cin>>num;cout<<"请输入车主姓名:"<<endl;cin>>name;cout<<"请输入载重量:"<<endl;cin>>heavy;cout<<"登陆成功,您的车位为:"<<i<<" 确认请按Y:"<<endl;char y;cin>>y;Truck u(i,num,name,heavy);u.Stime();r3[i]=u;vehicle++;system("cls");}* * }void fun1(){system("cls");int s1=1;cout<<" 欢迎进入车辆登入界面!"<<endl<<endl;while(s1){cout<<" 请选择登入车辆的类型:"<<endl;cout<<" 1.小型车;"<<endl;cout<<" 2.客车;"<<endl;cout<<" 3.货车;"<<endl;cout<<" 0.返回;"<<endl;cin>>s1;if(s1>=0 && s1<=3){switch(s1){case 1:fun11();s1=0;break;case 2:fun12();s1=0;break;case 3:fun13();s1=0;break;* * case 0:break;}}elsecout<<"输入错误,请重新输入!"<<endl;}}void fun2() //登出{int i;system("cls");cout<<"欢迎进入登出界面"<<endl<<endl;cout<<"请输入车位号"<<endl;cin>>i;if(r1[i].GetPos()!=0){r1[i].SetPos();r1[i].Ftime();r1[i].setTime();cout<<"您驻入的时间为:"<<r1[i].GetTime()<<"小时需缴费"<<int(r1[i].Outmoney())<<"元"<<endl;cout<<"欢迎下次光临,祝您旅途愉快!"<<endl;* * vehicle--;}if(r2[i].GetPos()!=0){r2[i].SetPos();r2[i].Ftime();r2[i].setTime();cout<<"您驻入的时间为:"<<r2[i].GetTime()<<"小时需缴费"<<int(r2[i].Outmoney())<<"元"<<endl;cout<<"欢迎下次光临,祝您旅途愉快!"<<endl;vehicle--;}if(r3[i].GetPos()!=0){r3[i].SetPos();r3[i].Ftime();r3[i].setTime();cout<<"您驻入的时间为:"<<r3[i].GetTime()<<"小时需缴费"<<int(r3[i].Outmoney())<<"元"<<endl;cout<<"欢迎下次光临,祝您旅途愉快!"<<endl;vehicle--;}}void fun31(){int i;cout<<"请输入车位号:"<<endl;cin>>i;if(r1[i].GetPos()!=0){cout<<endl;r1[i].show();}if(r2[i].GetPos()!=0){cout<<endl;r2[i].show();}if(r3[i].GetPos()!=0){cout<<endl;r3[i].show();}cout<<" 返回请按0"<<endl;}void fun32(){string m;cout<<"请输入车牌号:"<<endl;cin>>m;for(int i=1;i<31;i++){if(r1[i].GetNum()==m){cout<<endl;r1[i].show();}if(r2[i].GetNum()==m){cout<<endl;r2[i].show();}if(r3[i].GetNum()==m){cout<<endl;r3[i].show();} }cout<<" 返回请按0"<<endl;}void fun3() //查找{int s1=1;system("cls");cout<<"欢迎进入查找界面"<<endl;cout<<"请选择查找方式:"<<endl;cout<<" 1、按车位查找;"<<endl;cout<<" 2、按车牌号查找;"<<endl;cout<<" 0、退出;"<<endl;while(s1){cin>>s1;switch(s1){case 1:fun31();break;* * case 2:fun32();break;case 0:break;}}system("cls");}void fun4() //显示所有{system("cls");int i=0;for(i=1;i<31;i++){if(r1[i].GetPos()!=0){r1[i].show();}if(r2[i].GetPos()!=0){r2[i].show();}if(r3[i].GetPos()!=0){r3[i].show();}}cout<<"确认请按Y"<<endl;char y;cin>>y;system("cls");}void funsave() //信息的保存{fstream in("myfile.txt");if(!in){cout<<"wrong"<<endl;}int i;for(i=1;i<31;i++){if(r1[i].GetPos()!=0)in<<1000+r1[i].GetPos()<<"*"<<r1[i].GetNum()<<"*"<<r1 [i].GetName()<<"*"<<r1[i].time1<<"*"<<r1[i].GetOutvalue()< <"*"<<r1[i].Getprize()<<"*"<<endl;}for(i=1;i<31;i++){if(r2[i].GetPos()!=0)in<<2000+r2[i].GetPos()<<"*"<<r2[i].GetNum()<<"*"<<r2 [i].GetName()<<"*"<<r2[i].time1<<"*"<<r2[i].GetCapacity()< <"*"<<r2[i].Getprize()<<"*"<<endl;}for(i=1;i<31;i++){if(r3[i].GetPos()!=0)in<<3000+r3[i].GetPos()<<"*"<<r3[i].GetNum()<<"*"<<r3 [i].GetName()<<"*"<<r3[i].time1<<"*"<<r3[i].GetHeavy()<<" *"<<r3[i].Getprize()<<"*"<<endl;}cout<<"信息已储存!"<<endl;in.close();}void read() //读取{vehicle=-1;ifstream out("myfile.txt");char u[90],temp[70];int i=0,m=0,sum=0;while(!out.eof()){out.getline(u,90);sum+=strlen(u)+2;out.seekg(sum,ios::beg);vehicle++;if(u[0]=='1') //Auto{int pos1;string num1;string name1;char time11[30];double outvalue1;i=0;pos1=(u[2]-'0')*10+(u[3]-'0'); // 车位while(u[i]!='*'){i++;}i++;m=0;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';num1=temp; //车牌照m=0; i++;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';name1=temp;//车主名m=0;i++;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';strcpy(time11,temp);//timem=0;i++;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';char *pEnd;outvalue1=strtod(temp,&pEnd);//outvalueAuto u(pos1,num1,name1,outvalue1);u.SetStime(time11);r1[pos1]=u;}if(u[0]=='2') //Carriage{ int pos1;string num1;string name1;char time11[30];int capacity1;double capacity;i=0;pos1=(u[2]-'0')*10+(u[3]-'0'); // 车位while(u[i]!='*'){i++;}i++;m=0;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';num1=temp;//车牌照m=0; i++;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';name1=temp;//车主名m=0;i++;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';strcpy(time11,temp);//timem=0;i++;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';char *pEnd;capacity=strtod(temp,&pEnd);//capacitycapacity1=int(capacity);Carriage u(pos1,num1,name1,capacity1);u.SetStime(time11);r2[pos1]=u;}if(u[0]=='3') //Truck{int pos1;string num1;string name1;char time11[30];double heavy;int heavy1;i=0;pos1=(u[2]-'0')*10+(u[3]-'0'); // 车位while(u[i]!='*'){i++;}i++;m=0;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';num1=temp; //车牌照m=0; i++;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';name1=temp; //车主名m=0;i++;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';strcpy(time11,temp);//timem=0;i++;for(;u[i]!='*';i++){temp[m]=u[i];m++;}temp[m]='\0';char *pEnd;heavy=strtod(temp,&pEnd);heavy1=int(heavy);//heavyTruck u(pos1,num1,name1,heavy1);u.SetStime(time11);r3[pos1]=u;}}out.close();}。