- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课 程 设 计 报 告
学院、系:
吉林大学珠海学院计算机科学与技术系
专业名称:
计算机科学与技术专业
课程设计科目
C语言程序课程设计
所在班级:
1班
学生学号:学生姓名:
钟晓鸿
指导教师:
单缅老师
完成时间:
2012年3月25日
保安排班系统
设计任务与目标
如今是信息高速发展的时代,我们已经进入了信息社会。作为计算机专业的学生,我们更应该了解信息的重要性,而电脑是当今社会的重要交流工具。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。作为电脑操作者,动手能力无疑是最重要的环节,课程设计就是锻炼动手能力的不错平台。作为高科技人才,我们必须会运用C,编写应用程序,是一个计算机学院学生必备的技能。无论是以后的工作,还是现在的学习,都要求我们能够做好课程设计。保安人员休息时间安排系统是一个简单的小程序,通过它,可以让我们掌握一个完整系统的设计和实现的方法,巩固所学的程序设计的知识。通过课程设计的训练,学生了解程序设计的基本开发过程,掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基本方法,熟悉运用结构化程序设计的方法。此类问题的已有类似工作,是应用结构体来处理的,而我将在这的基础上应用链表,指针来完成保安排班系统,利用for循环来为保安轮休选择排列组合。这样能够让我熟悉并掌握掌握链表,指针的相关知识,。进行本设计时要达到的具体的目标:
应用链表来完成保安排班系统。
所设计的程序能够识别不满足排班的情况。
利用for循环来排列组合保安的轮休选择。
必须用到c语言的精华部分:指针。
利用文件的读取,记录程序的运行结果。
方案设计与论证
设计思路
声明一linklist结构体类型的结点,含“char *name;int day[7];”两个成员,
还有 struct linklist类型的指针 next。
定义建表函数:定义指针数组char *n[7]指向7个保安的姓氏;定义struct linklist 的指针head, q, p;再分别创建7个新结点;并将7个新结点的name分别初始化,避免出现野指针。
定义myinput函数,存入每名保安的轮休选择;它的作用是:依次输入各个保安人员想要的休息日(1—7),当所输入的休息日数小于7时,输入一个负数结束该保安的数据输入,(如:赵想要的休息日是星期一,星期二,星期六,则输入:1 2 6 -1回车);当所有的数据输入后,不能使每天都有保安值班,则提示并重新输入数据。
定义myfuny函数:
定义FILE型的指针fp,让其指向文件,文件名filename[]=保安排版.txt;记录程序运行的结果。重新定义一个struct linklist *s[7];利用for循环让其分别指向7个结点,利 用7个for循环为保安的轮休选择排列组合,如果分配给这7名保安的休息日互不相等,则该分配方式满足要求,并输出。
定义主函数:
定义struct linklist *a; 调用函数myinput以a为参数,调用清屏函数system(cls),和函数myfun以a为参数。
三、程序框图或流程图,程序清单与调用关系开始
开始
输出欢迎使用排班系统
调用myinput函数
经循环判断输入的休息日是否合理
输出所有的排班情况
输出结果为空
结束
y
n
四、全部源程序清单
#includestdio.h
#includemalloc.h
#includeconio.h/*包含 getch()*/
#includestdlib.h
struct linklist
{ char *name;
int day[7];
struct linklist *next;
};
struct linklist *creat(int m)/*建表函数*/
{char*n[7]={赵,钱,孙,李,周,吴,陈};
int d[7]={0};
int i;
struct linklist *head, *q, *p;
head=(struct linklist *)malloc(sizeof(struct linklist));
head-name=n[0];
q=head;//头指针赋给指针q
for(i=1;im;i++)
{
p=(struct linklist *)malloc(sizeof(struct linklist));//创建新结点
p-name=n[i];
q-next=p;
q=p;
}
q-next=NULL;
return head;
}
void myinput(struct linklist *q1)//参考zsq88网友但有对其进行修改,该函数主要功能是录入每个保安的轮休选择,并进行相应
文档评论(0)