活动冲突检测系统实验报告_第1页
活动冲突检测系统实验报告_第2页
活动冲突检测系统实验报告_第3页
活动冲突检测系统实验报告_第4页
活动冲突检测系统实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计课程设计活动冲突系统检测一 目的学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。加深对C语言程序设计课程很学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范。学会通过自己学习来解决的问题,加强自主学习能力。二 需求分析1、录入要求用户可以从键盘中输入活动信息,并将其录入已存在的文档当中2、修改要求用户可以更改已经存在内存当中的活动信息。3、删除用户可以自己选择删除已存在的不必要的活动信息。三 概要设计1. 本程序包含两个模块:(1) 主程序模块:main()定义常量,并从文件date1.txt中录入信息,初始化结构

2、体;显示菜单功能提供给用户选择;根据用户所选择的内容,来进行各子项;在用户输入的信息时与内存中的信息进行比较,查看信息是否产生冲突,若无冲突则询问用户是否录入信息;若有冲突,则提出警告并退出当前徇环;在用户选择退出程序时,将内存中的信息输入到已定文件中去;(2) 菜单模块:在主函数中调用,将菜单输出到屏幕中供给用户选择;2. 结构体数据类型定义及子函数struct active char name8;活动者姓名。int B_time_hour;活动开始时间(小时)。int B_time_second;活动开始时间(分钟)。 int O_time_hour;活动结束时间(小时)。int O_ti

3、me_second;活动结束时间(分钟)。char content100;活动内容。 student1N;struct active1 char name8;活动者姓名。int B_time_hour;活动开始时间(小时)。int B_time_second;活动开始时间(分钟)。int O_time_hour;活动结束时间(小时)。int O_time_second;活动结束时间(分钟)。char content100;活动内容。void Printf();为菜单输出函数四 详细设计定义结构体数组的最大长度#define N 80struct active student1N;struct

4、active1 student2N;定义录入用户输入信息的结构体struct active1 student3;文件指针FILE *fp;定义菜单选择变量char n;/该变量为菜单选择变量使用从系统中录入日期的函数int year, month, date;/定义时间变量time_t nowtime;struct tm *timeinfo;time( &nowtime );timeinfo = localtime( &nowtime );#include<time.h>/为录入日期函数的头文件引用清屏函数system("cls");整个程序的流

5、程图如下:开始录入n的值输出菜单n=?1显示活动2修改活动3增加活动4删除活动5退出程序显示活动内容显示活动内容录入修改内容检查时间冲突录入修改内容检查时间冲突选择删除编号结束无冲突则录入有冲突不录入无冲突则录入有冲突不录入五 调试分析在刚开始做这个详设计时,本打算用指针,加链表的方式做的,但因为链表学的有些不是很懂,才换了用结构体数组进行。在比较时间冲突时,过程比较复杂,弄了很久都弄不明白,到最后是请教了同学才把它用清楚。此课程设计,我是一步一步做过来的。当某个功能没有完善之前不会做下一个功能,因此在排错方面并没有别的同学那样,做完所有功能才进行检测的来的复杂,所以我觉得一步一步来比做完再来

6、检查要方便点。在进行文件读入和输出的时候,由于过久没有使用,有点手生,而弄了很久,到最后熟悉后,才知道它的特点。因此,对于文件的输入输出都要熟悉掌握,才能正确的实现程序功能,达到目的。六 测试结果文件内容:1、用户在选择查看时,程序会输出从文件读入的信息,同时再次弹出菜单,给用户选择,如下图:2、当用户进行更改时,会将所有信息输出屏幕并进行编号,并输出提示信息:3、当用户更改完成后会进行程序将和内存中的进行对比,如果没有冲突则徇问用户是否录入:4、用户可以插入新的活动信息:如果同名的学生,在时间上有冲突,则输入失败:5、删除不需要的活动信息,用户选择删除不必要的信息,会将所有信息弹出,并编号,

7、用户只要选择信息的编号就可以删除:6、用户退出后,程序会将更改的信息录入到文件当中去:七 用户使用说明1、本程序在VC下可以运行。2、程序在运行后自动读入文件中的数据,并输出提示信息,用户可根据提示信息来进行增加、删除、更改等内容。以下为程序运行的画面和菜单。3、在用户选择退出程序后,程序会将修改后的信息写入文件件当中并退出程序。八 课程设计总结在做完这个课程设计后,让我明白到所有程序并不是自己所学到的知识能做到的,如果想编出一个好的程序,不紧得需要自己学会的东西,还得自己去寻找自己不知道的信息,只有这样,才能做出更好的程序来。源代码:#include<stdio.h>#inclu

8、de<stdlib.h>#include <time.h>#include<string.h>#define N 80void Printf();/为菜单输出函数struct active char name8;/活动者姓名。int B_time_hour;/活动开始时间(小时)。int B_time_second;/活动开始时间(分钟)。 int O_time_hour;/活动结束时间(小时)。int O_time_second;/活动结束时间(分钟)。char content100;/活动内容。 student1N;struct active1 char

9、 name8;/活动者姓名。int B_time_hour;/活动开始时间(小时)。int B_time_second;/活动开始时间(分钟)。int O_time_hour;/活动结束时间(小时)。int O_time_second;/活动结束时间(分钟)。char content100;/活动内容。student2N,student3;void Printf()printf(" 【菜单内容】 n");printf("*n");printf(" 查看所有活动n");printf(" 更改活动信息n");print

10、f(" 插入新的活动信息n");printf(" 删除不需要的活动信息n");printf(" 退出程序n");printf("*n");main()char n;/该变量为菜单选择变量int i=0,count,x,sum=0,a,b;char ch; FILE *fp;int yr, mon, da;time_t nowtime;struct tm *timeinfo;time( &nowtime );timeinfo = localtime( &nowtime );yr = timeinfo-

11、>tm_year + 1900;mon = timeinfo->tm_mon + 1;da= timeinfo->tm_mday;printf("%d-%d-%dn", yr,mon ,da );printf(" 【请根据菜单内容选择你要查看的选项】 n");if(fp=fopen("C:Documents and SettingsAdministrator桌面老唐C课程设计date1.txt","r")!=NULL)while(feof(fp)=0) fscanf(fp,"%8s%2d

12、:%2d-%2d:%2d%s",&,&student1i.B_time_hour,&student1i.B_time_second,&student1i.O_time_hour,&student1i.O_time_second,&student1i.content);ch=fgetc(fp);i+;fclose(fp);count=i-1;i=count;while(1)end:;Printf();scanf(" %c%c",&n,&ch);switch(n)case &#

13、39;1':system("cls");for(i=0;i<count;i+)printf("%d.%8s%2d:%2d-%2d:%2d %sn",i+1,,student1i.B_time_hour,student1i.B_time_second,student1i.O_time_hour,student1i.O_time_second,student1i.content);break;case '2':system("cls");for(i=0;i<count;i+)

14、printf("%d.%8s%2d:%2d-%2d:%2d%sn",i+1,,student1i.B_time_hour,student1i.B_time_second,student1i.O_time_hour,student1i.O_time_second,student1i.content);printf("请输入要更改的内容的编号:");scanf("%d",&x);sum=x-1;if(x>i)printf("请输入正确的编号!");elseprintf(&quo

15、t;请输入你要更改同学的姓名:");scanf("%s",&);printf("请输入你要更改的开始时间:");scanf("%d:%d",&student3.B_time_hour,&student3.B_time_second);printf("请输入你要更改的结束时间:");scanf("%d:%d-%d:%d",&student3.O_time_hour,&student3.O_time_second);prin

16、tf("请输入你要更改的活动内容:");scanf("%s%c",&student3.content,&ch);if(student3.B_time_hour<0|student3.O_time_hour<0|student3.O_time_hour>24|student3.B_time_hour>24|student3.B_time_second>60|student3.B_time_second<0|student3.O_time_second>60|student3.O_time_secon

17、d<0)printf("请输入正确的时间!n");x-;elsefor(i=0;i<count;i+)if(i=sum)i+;elsewhile(strcmp(,)=0)if( (student1i.B_time_hour<student3.B_time_hour&&student1i.O_time_hour>student3.B_time_hour)|(student1i.O_time_hour>student3.O_time_hour&&student1i

18、.B_time_hour<student3.O_time_hour)|(student1i.B_time_hour>student3.B_time_hour&&student1i.O_time_hour<student3.O_time_hour)|(student1i.B_time_hour<student3.B_time_hour&&student1i.B_time_hour<student3.O_time_hour)|(student1i.B_time_hour<student3.O_time_hour&&

19、student1i.O_time_hour<student3.O_time_hour)|(student1i.B_time_hour=student3.B_time_hour&&student1i.O_time_second>=student3.B_time_second)|(student1i.B_time_hour=student3.O_time_hour&&student1i.B_time_second<=student3.O_time_second)|(student1i.B_time_hour>=student3.B_time_

20、hour&&student1i.O_time_hour<=student3.O_time_hour)printf("该活动时间发生冲突,录入失败");goto end;printf("是否确定更改此人信息?(Y OR N):");scanf("%c",&ch);if(ch='Y'|ch='y')x-;strcpy(,);student1x.B_time_hour=student3.B_time_hour;student1

21、x.B_time_second=student3.B_time_second;student1x.O_time_hour=student3.O_time_hour;student1x.O_time_second=student3.O_time_second;strcpy(student1x.content,student3.content);elsegoto end;break;case '3':system("cls");for(x=0;x<1;x+)printf("请输入你要增加的活动者的姓名:");scanf("%s

22、%c",&,&ch);printf("请输入你要增加的开始时间(如XX:XX):");scanf("%d:%d",&student3.B_time_hour,&student3.B_time_second);printf("请输入你要增加的结束时间(如XX:XX):");scanf("%d:%d",&student3.O_time_hour,&student3.O_time_second);printf("请输入活动内容&

23、quot;);scanf("%s%c",&student3.content,&ch);if(student3.B_time_hour<0|student3.O_time_hour<0|student3.O_time_hour>24|student3.B_time_hour>24|student3.B_time_second>60|student3.B_time_second<0|student3.O_time_second>60|student3.O_time_second<0)printf("请输入

24、正确的时间!n");x-;elsefor(i=0;i<count;i+)while(strcmp(,)=0)if ( (student1i.B_time_hour<student3.B_time_hour&&student1i.O_time_hour>student3.B_time_hour)|(student1i.O_time_hour>student3.O_time_hour&&student1i.B_time_hour<student3.O_time_hour)|

25、(student1i.B_time_hour>student3.B_time_hour&&student1i.O_time_hour<student3.O_time_hour)|(student1i.B_time_hour<student3.B_time_hour&&student1i.B_time_hour<student3.O_time_hour)|(student1i.B_time_hour<student3.O_time_hour&&student1i.O_time_hour<student3.O_ti

26、me_hour)|(student1i.B_time_hour=student3.B_time_hour&&student1i.O_time_second>=student3.B_time_second)|(student1i.B_time_hour=student3.O_time_hour&&student1i.B_time_second<=student3.O_time_second)|(student1i.B_time_hour>=student3.B_time_hour&&student1i.O_time_hour<

27、;=student3.O_time_hour)printf("该活动时间发生冲突,录入失败");sum=1;goto end;printf("是否将此人活动加入活动列表中?(Y OR N):");scanf("%c",&ch);if(ch='Y'|ch='y')strcpy(,);student1count.B_time_hour=student3.B_time_hour;student1count.B_time_second=student3.B_time_second;student1count.O_time_hour=student3.O_time_hour;student1count.O_time_second=student3.O_time_second;strcpy(student1count.content,student3.content);count+;elsegoto end;break;case '4':system("cls");for(i=0;i<count;i+)printf("%d.%8s%2d:%2d-%2d:%2d%sn&quo

温馨提示

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

评论

0/150

提交评论