C课程设计--参会人员管理程序.doc_第1页
C课程设计--参会人员管理程序.doc_第2页
C课程设计--参会人员管理程序.doc_第3页
C课程设计--参会人员管理程序.doc_第4页
C课程设计--参会人员管理程序.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

序号: 语言程序设计课程设计题目 参会人员管理程序 班级 11级5班 专业 电子科学与技术 姓名 叶昌彬 学号 3111008601 2013年11月目录一 课程设计的目的.2二 课程设计任务与要求.2三 主要设计指标及特点.33.1 人员登录.33.2 显示报道人员信息.33.3 查询.43.4 统计.43.5 修改.53.6 删除.53.7 退出.6四 设计小结.6五 参考文献.6六 源程序.7一 课程设计的目的1、加深对C语言程序设计课程知识的理解,掌握C语言应用程序的开发方法和步骤;2、进一步掌握和利用C语言程序设计能力;3、进一步理解和运用结构化程序设计的思想和方法;4、初步掌握开发一个小型实用系统的基本方法;5、学会调试一个较长程序的基本方法;6、学会利用流程图或N-S图表示算法;7、掌握书写程序设计开发文档的能力(书写课程设计报告)。二 课程设计任务与要求1设计内容1.登录参会人员的下列信息:姓名、性别、年龄、单位房间号(设每个房间只住一人,房间号为101#120#,.,501#520#)。2、主菜单应至少包括以下几个菜单项: 人员登录、显示报道人员信息、查询、统计、修改、删除3、程序应分别用几个函数实现以上功能:随时对报道人员进行登录(login),来客登记的房间是根据客人要求分配的;如果客人申请的房间已有人登记了,可以让客人重新申请;如果所有房间都已经住满,则拒绝再进行人员登录;随时按所住房间号(由小到大)输出(print)已报道人员信息;能够根据姓名实现对人员信息的查询;能够根据单位对与会人员进行分类统计,并输出统计结果;能够修改与会人员信息;能够删除某个参会人员,并清空其所住房间。2流程图参会人员管理系统人 员 登 录显示报道人员信息查 询修 改删 除统 计1三 主要设计指标及特点3.1人员登录主程序通过Menu函数实现该程序的主界面,函数体包含相应的printf语句来实现相应的菜单输出。void menu() printf(n); printf(-参会人员管理程序-n); printf( 1.来宾登陆 n); printf( 2.报到人员 n); printf( 3.查询 n); printf( 4.统计 n); printf( 5.修改 n); printf( 6.删除 n); printf( 0.退出 n); printf(-n);3.2显示对应的login界面,是通过调用login函数实现的。根据提示输入登录的信息,就完成了参会人员的基本信息的录入。 /* 录入登陆信息*/ strcpy(stafflength.room_num,room_num); printf(输入您的名字:); scanf(%s,&); printf(输入您的性别:); scanf(%s,&stafflength.sex); printf(输入您的年龄:); scanf(%d,&stafflength.age); printf(输入您的单位:); scanf(%s,&stafflength.department); length+;/*参会人数加一*/ 在对有人登录的房间排好序后,用printf语句输出信息,如下:3.3查找按照提示输入3,进入查找界面。运用SearchByName功能,根据程序给出的提示程序用for循环对已经登录的人员信息进行对比,看是否相符。 for(i=0;ilength;i+) if(strcmp(,name)=0) /*判断名字是否相同,相同则输出人员信息*/ printf(%st,); printf(%st,staffi.sex); printf(%dt,staffi.age); printf(%st,staffi.department); printf(%13s,staffi.room_num); printf(n); counter+; 3.4统计按照提示输入4,运行S flag=0; /*辅助标记*/ char department10030; /*用于记录不同单位的名字*/ int counter100; /*分别记录相应不同单位的参会人数*/ if(length!=0) k=0; /*单独处理数组第一个元素*/ strcpy(departmentk,staff0.department); /*记录单位*/ counterk=0;/*计数器清零*/ for(j=0;jlength;j+)/*计算次单位参会的总人数*/ if(strcmp(departmentk,staffj.department)=0) counterk+; for(i=1;ilength;i+) for(index=0;index=k;index+) if(strcmp(departmentindex,staffi.department)=0) flag+; /*当前此单位在前面已经统计过*/ if(flag=0) /*出现一个未统计过的单位*/ k+; /*用两数组的下一个元素分别存放单位和该单位参会人数*/ strcpy(departmentk,staffi.department);/*记录单位*/ counterk=0;/*计数器清零*/ for(j=0;jlength;j+)/*计算次单位参会的总人数*/ if(strcmp(departmentk,staffj.department)=0) counterk+; flag=0; /*辅助标志清零*/ 否则,输出暂时没人登录3.5修改运行修改时,输入原先的房间号,根据提示再次输入要求进入的新的房间号,再次录入自己的个人信息。系统会输出修改成功 提示修改成功。3.6删除根据提示,选择6,运行delete 。输入要求删除的房间号。系统输出删除成前,表示操作成功。3.7退出选择0,退出程序。四 设计小结这次的课程设计是一个巨大的挑战,是我们从未涉猎过的将多个函数运用起来,使之成为系统的课程。经过两个礼拜的努力,终于完成了这次的课程设计。尽管结果并不是很令人满意,但是,不得不说,在这次的学习中,我学会了很多。在一开始的茫然不知所措到现在的渐入佳境,我是付出了很大的努力的。由于自身的素养,有很多的问题不能够解决。但是,在查阅了不少的资料,借鉴了一些类似作品后,又在同学与老师的帮助下,搞清楚了解决问题的关键所在。一步一步的解决了所有前行的问题。在这次设计里,对C语言里面的很多的概念有了新的认识,关于指针、链表等,对于这些核心的知识有了进一步的了解。而自己以前一直没有好好的重视这些。忽略了很多有用的东西,惭愧不已。在这次的学习中,我怕了解到了对于调用函数熟练掌握的重要性。对于这些常用函数,我们有必要下狠功夫。仔细想来,自己真的还有很多不足的地方。虽然,最终结果是可喜的,我也不能忘记曾经历过的困难,我要时刻牢记时刻提醒自己提高自己的能力。像是一个个函数组成一个系统,我们平时的学习也是一块块的累积在一起才能够发挥功效的。我们要保持学科齐头并进,将各科组合起来,完美的完成工作。在这个竞争日益激烈的社会,我们只有不断的提高自身素养,不断完善自己,才能在社会上有立足之地。五 参考文献谭浩强。 C程序设计(第三版)。 北京:清华大学出版社,2005六 源程序#include#include#include #define MAXSIZE 100 /*定义最大参会人数*/typedef struct /*参会人员的数据结构*/ char name20; /*姓名*/ char sex7; /*性别*/ int age; /*年龄*/ char department30;/*单位*/ char room_num10; /*房间号*/STAFF;void menu() printf(n); printf(-参会人员管理程序-n); printf( 1.来宾登陆 n); printf( 2.报到人员 n); printf( 3.查询 n); printf( 4.统计 n); printf( 5.修改 n); printf( 6.删除 n); printf( 0.退出 n); printf(-n);/*函数声明*/int login(STAFF staff,int length);void print(STAFF staff,int length);void seachByName(STAFF staff,int length);void statistics(STAFF staff,int length);void edit(STAFF staff,int length);int Delete(STAFF staff,int length);/*函数定义*/int login(STAFF staff,int length) int i; if(length=100) /*房间已满,拒绝登陆*/ printf(房间已满!n 禁止登陆!); exit(-1); else char room_num10; printf(输入房间号:); scanf(%s,&room_num); for(i=0;ilength;i+) if(strcmp(room_num,staffi.room_num)=0) /*申请的房间已经有人*/ printf(您选择的房间已经有客人住入n); printf(请选择另一个房间号:);/*让参会人选择别的空房间*/ scanf(%s,&room_num); i=-1; /*为检验新的房间是否为空作准备*/ /* 录入登陆信息*/ strcpy(stafflength.room_num,room_num); printf(输入您的名字:); scanf(%s,&); printf(输入您的性别:); scanf(%s,&stafflength.sex); printf(输入您的年龄:); scanf(%d,&stafflength.age); printf(输入您的单位:); scanf(%s,&stafflength.department); length+;/*参会人数加一*/ return length;/*/void print(STAFF staff,int length) STAFF temp; int i,j; if(length!=0) for(i=0;ilength;i+) /*冒泡排序*/ for(j=i;j0) temp=staffj; staffj=staffj+1; staffj+1=temp; printf( 客户登录信息: n); printf(姓名 性别 年龄 单位 房间 n); for(i=0;ilength;i+) /*输出报到人员的信息*/ printf(%st,); printf(%st,staffi.sex); printf(%dt,staffi.age); printf(%st,staffi.department); printf(%s,staffi.room_num); printf(n); else printf(暂时无客户登录n);/*/void seachByName(STAFF staff,int length) char name20; int i; int counter=0; if(length!=0) printf(输入您要搜索的客户名:); scanf(%s,&name); printf(姓名 性别 年龄 单位 房间 n); for(i=0;ilength;i+) if(strcmp(,name)=0) /*判断名字是否相同,相同则输出人员信息*/ printf(%st,); printf(%st,staffi.sex); printf(%dt,staffi.age); printf(%st,staffi.department); printf(%s,staffi.room_num); printf(n); counter+; if(counter=0) /*查找的人还没登录*/ printf(n%s 还没登录n,name); else printf(暂时没人登录n); /*/void edit(STAFF staff,int length) char room_num10; int i,k; if(length!=0) printf(输入您要修改的房间号:); scanf(%s,&room_num); for(i=0;ilength;i+) if(strcmp(staffi.room_num,room_num)=0) printf(输入您的新房间号:); scanf(%s,&room_num); for(k=0;klength;k+) if(k=i) continue; /*可以选择原来的房间*/ if(strcmp(room_num,staffk.room_num)=0) /*申请的房间已经有人*/ printf(您选择的房间已经有客人住入n); printf(请选择另一个房间号:); scanf(%s,&room_num); /*提示选择别的空房间*/ k=-1; /*为检验新的房间是否为空作准备*/ /*修改人员信息*/ strcpy(staffi.room_num,room_num); printf(输入您的名字:); scanf(%s,&); printf(输入您的性别:); scanf(%s,&staffi.sex); printf(输入您年龄:); scanf(%d,&staffi.age); printf(输入您的单位:); scanf(%s,&staffi.department); printf(修改成功); else printf(暂明没人登录n); /*/int Delete(STAFF staff,int length) int i,k; int counter=length; char room_num10; if(length!=0) printf(输出你要删除信息的房间号:); scanf(%s,&room_num); for(i=0;ilength;i+) if(strcmp(staffi.room_num,room_num)=0) /*删除人员*/ for(k=i;klength-1;k+) staffk=staffk+1; /*把该人员的信息覆盖掉*/ printf(删除成功); length-; /*参会人数减一*/ if(counter=length) /*要删除的人员还没登陆*/ printf(要删除信息的房间号并未有人登录n); else printf(暂时没人登录n); return length;/*/void statistics(STAFF staff,int length) int i; int k,j; int index; int flag=0; /*辅助标记*/ char department10030; /*用于记录不同单位的名字*/ int counter100; /*分别记录相应不同单位的参会人数*/ if(length!=0) k=0; /*单独处理数组第一个元素*/ strcpy(departmentk,staff0.department); /*记录单位*/ counterk=0;/*计数器清零*/ for(j=0;jlength;j+)/*计算次单位参会的总人数*/ if(strcmp(departmentk,staffj.department)=0) counterk+; for(i=1;ilength;i+) for(index=0;index=k;

温馨提示

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

评论

0/150

提交评论