已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生宿舍管理系统1课程设计的目的进一步掌握和利用C语言进行程设计的能力,理解和运用结构化程设计的思想和方法,熟练掌握条件语句、循环、数组、函数操作,初步掌握开发一个小型实用系统的基本方法,学会高度一个较长程序的基本方法和利用流程图或N-S图表示算法,将本课程所学的知识合理地运用于实践当中。了解一些书上没有的函数及使用方法。2设计方案论证21设计思路 利用数组对宿舍的记录进行循环输入输出,利用冒泡法记录进行排序,利用循环查找数组中某个数据,对其进行显示,删除,读入和写入文档等操作。22流程图开始输出界面选择操作选择1选择2选择3选择4选择5选择6选择7选择8选择9选择0输入记录是是显示记录否否否否否否否否否退出系统结束按床位排序显示按学号排序显示是是是是插入一个记录查找删除记录查找显示记录从文件输入写入文件保存是是是是否23具体程序#include /*引用库函数*/#include#include#includetypedef struct /*定义结构体数组*/ char roomnum4; /*房间号*/ char bednum2; /*床位号*/ char num10; /*学号*/ char name20; /*姓名*/ Student;Student room11000; /*结构体数组变量*/int menu_select() /*菜单函数*/ char c; do system(cls); /*运行前清屏*/ printf(tt学生宿舍管理系统n); /*菜单选择*/ printf(tt 1. 输入记录 n); printf(tt 2. 显示记录 n); printf(tt 3. 按房间号排序并显示 n); printf(tt 4. 按学号排序并显示 n); printf(tt 5. 插入一条记录按学号排序并显示 n); printf(tt 6. 按姓名查找,删除一条记录 n); printf(tt 7 查找并显示一个记录 n); printf(tt 8. 从文件中读入数据 n); printf(tt 9. 循环写入数据 n); printf(tt 0. 结束程序 n); printf(ttn); printf(tt请选择您要运行的选项按(0-9):); c=getchar(); /*读入选择*/ while(c9); return(c-0); /*返回选择*/int Input(Student room,int n) /*输入若干条记录*/int i=0;char sign,x10; /*x10为清除多余的数据所用*/while(sign!=n&sign!=N) /*判断*/ printf(tt房间号:); /*交互输入*/ scanf(tt%s&,roomn+i.roomnum); printf(tt床位号:); scanf(tt%s,&roomn+i.bednum); printf(tt学号:); scanf(tt%s,&roomn+i.num); printf(tt姓名:); scanf(tt%s,&roomn+); gets(x); /*清除多余的输入*/ printf(tt是否继续输入?(Y/N); scanf(tt%c,&sign); /*输入判断*/ i+;return(n+i);void Display(Student room,int n) /*显示所有记录*/int i;printf(tt-n); /*格式头*/printf(tt房间号 床位号 学号 姓名 n);printf(tt-n);for(i=1;i1&i%10=0) /*每十个暂停*/ printf(tt-n); /*格式*/ printf(tt); system(pause); printf(tt-n); printf(tt);system(pause);void Sort_by_num(Student room,int n) /*按学号排序*/ int i,j,*p,*q,s; char t10; for(i=0;in-1;i+) /*冒泡法排序*/ for(j=0;j0) strcpy(t,roomj+1.bednum); strcpy(roomj+1.bednum,roomj.bednum); strcpy(roomj.bednum,t); strcpy(t,roomj+1.num); strcpy(roomj+1.num,roomj.num); strcpy(roomj.num,t); strcpy(t,roomj+1.name); strcpy(roomj+1.name,); strcpy(,t); void Sort_by_roomnum(Student room,int n) /*按房间号排序*/ int i,j,*p,*q,s; char t10; for(i=0;in-1;i+) /*冒泡法排序*/ for(j=0;j0) strcpy(t,roomj+1.roomnum); strcpy(roomj+1.roomnum,roomj.roomnum); strcpy(roomj.roomnum,t); strcpy(t,roomj+1.bednum); strcpy(roomj+1.bednum,roomj.bednum); strcpy(roomj.bednum,t); strcpy(t,roomj+1.num); strcpy(roomj+1.num,roomj.num); strcpy(roomj.num,t); strcpy(t,roomj+1.name); strcpy(roomj+1.name,); strcpy(,t); int Insert_a_record(Student room,int n) /*插入一条记录*/char x100; /*清除多余输入所用*/ printf(tt学生房间号:); /*交互式输入*/ scanf(tt%s,&roomn.roomnum); printf(tt学生床位号:); scanf(tt%s,&roomn.bednum); printf(tt学生学号:); scanf(tt%s,&roomn.num); printf(tt学生姓名:); scanf(tt%s,&); gets(x); n+; Sort_by_num(room,n); /*调用排序函数*/ printf(tt插入记录成功!n); /*返回成功信息*/ return(n);int Delete_a_record(Student room,int n) /*按姓名查找,删除一条记录*/ char s20; int i=0,j; printf(tt输入他(她)的姓名:); /*交互式问寻*/ scanf(%s,s); while(strcmp(,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(tt对不起没找到该学生!n); /*返回失败信息*/ return(n); for(j=i;jn-1;j+) /*删除操作*/ strcpy(roomj.roomnum,roomj+1.roomnum); strcpy(roomj.bednum,roomj+1.bednum); strcpy(roomj.num,roomj+1.num); strcpy(,roomj+1.name); printf(tt删除记录成功!n); /*返回成功信息*/ return(n-1);void Query_a_record(Student room,int n) /*查找并显示一个记录*/ char s20; int i=0; printf(tt输入他(她)的姓名:); /*交互式输入*/ scanf(tt%s,&s); while(strcmp(,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(tt对不起没找到该学生!n); /*输入失败信息*/ return; printf(tt他(她)的房间号:%sn,roomi.roomnum); /*输出该学生信息*/ printf(tt他(她)的床位号:%sn,roomi.bednum); printf(tt他(她)的学号:%sn,roomi.num);int AddfromText(Student room,int n) /*从文件中读入数据*/ int i=0,num; FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ printf(tt输入文件名:); scanf(tt%s,&filename); /*输入文件名*/ if(fp=fopen(filename,rb)=NULL) /*打开文件*/ printf(tt无法打开该文件n); /*打开失败信息*/ printf(tt); system(pause); return(n); fscanf(fp,%d,&num); /*读入总记录量*/ while(inum) /*循环读入数据*/ fscanf(fp,%s%s%s%s,roomn+i.roomnum,roomn+i.bednum,roomn+i.num,roomn+); i+; n+=num; fclose(fp); /*关闭文件*/ printf(tt读入成功!n); printf(tt); system(pause); return(n);void WritetoText(Student room,int n) /*将所有记录写入文件*/int i=0;FILE *fp; /*定义文件指针*/char filename100; /*定义文件名*/ printf(tt循环写入数据n); /*输入文件名*/ printf(tt输入文件名:); scanf(tt%s,&filename); if(fp=fopen(filename,w)=NULL) /*打开文件*/ printf(tt无法打开该文件n); system(pause); return; fprintf(fp,%dn,n); /*循环写入数据*/ while(in) fprintf(fp,%-10s%-10s%-10s%-10sn,roomi.roomnum,roomi.bednum,roomi.num,); i+; fclose(fp); /*关闭文件*/ printf(写入成功!n); /*返回成功信息*/void main() /*主函数*/int n=0; for(;) switch(menu_select() /*选择判断*/ case 1: printf(tt输入记录n); /*输入若干条记录*/ n=Input(room1,n); break; case 2: printf(tt显示记录n); /*显示所有记录*/ Display(room1,n); break; case 3: printf(tt按房间号排序并显示n); Sort_by_roomnum(room1,n); /*按房间号排序*/ printf(tt排序成功!n); Display(room1,n); printf(tt); break; case 4: printf(tt按学号排序并显示n); Sort_by_num(room1,n); /*按学号排序*/ printf(ttt排序成功!n); Display(room1,n); printf(tt); break; case 5: printf(tt插入一条记录按学号排序并显示n); n=Insert_a_record(room1,n); /*插入一条记录*/ Display(room1,n); printf(tt); break; case 6: printf(tt按姓名查找,删除一条记录n); n=Delete_a_record(room1,n); /*按姓名查找,删除一条记录*/ printf(tt); system(pause); break; case 7: printf(tt查找并显示一个记录n); Query_a_record(room1,n); /*查找并显示一个记录*/ printf(tt); system(pause); break; case 8: printf(tt从文件中读入数据n); AddfromText(room1,n); /*从文件中读入数据*/ printf(tt); system(pause); break; case 9: printf(tt循环写入数据n); WritetoText(room1,n); /*循环写入数据*/ printf(tt); system(pause); break; case 0: printf(tt谢谢使用,祝您好运,再见!n); /*结束程序*/ printf(tt); system(pause); exit(0); 3设计结果与分析将程序进行编译链接后生成“学生管理系统.exe”运行该文件如图:按照提示选择“1”进行记录的输入(输入一个数据后提示是否继续输入)如图:连续输入多组数据后,按“n”结束输入,提示按任意键继续,按任意键后选择“2”进行记录的显示如图:显示后提示按任意键继续,按任意键后选择“3”进行记录的按床位号排序并显示,如图:显示后提示按任意键继续,按任意键后选择“4”进行记录的按学号排序并显示,如图:显示后提示按任意键继续,按任意键后选择“5”按提示步骤插入一条记录并显示,如图:显示后提示按任意键继续,按任意键后选择“6”按提示步骤删除一条记录,如果没找到该学生显示如图:如果有该学生显示如图:显示后提示按任意键继续,按任意键后选择“7”按提示步骤查找并显示一个记录,如图:显示后提示按任意键继续,按任意键后选择“8”按提示步骤查找原有记录文件如果找不到则显示如图:如果有该文件则显示如图:将原有文件读入程序。显示后提示按任意键继续,按任意键后选择“9”按提示步骤循环写入记录,如图:显示后提示按任意键继续,按任意键后选择“0”结束程序,如图:4设计体会通过这次课程设计使我了解到我有很多的不足,在程序调试的时候常常会因为几个错误而弄得心烦,这说明我对知识的掌握还不够牢,在程序设计的过程中也暴露出了我的诸多弊端,借这次课程设计的机会我会认真的加以改正,为以后的学习打下坚实的基础。5参考文献1 Herbert Schildt.C+:The Complete Reference,Fourth EditionM.第四版.北京:电子工业出版社,2003 9:113-1202 Harvey M.Deitel,Paul J.deitel.C程序设计经典教程M.第四版.北京:清华大学出版社,2006:159-1963 王敬华,林 萍,陈 静. C语言程序设计教程M. 北京:清华大学出版社,2005 10:1844 鲍 涌.全国计算机等级考试二级教程-C语言程序设计M.第二十七版. 北京:高等教育出版社,2006 9:187-2035 梁 翎,李爱齐. C语言程序设计实用技巧与程序实例M. 上海: 上海科普出版社,1996 5:126-135程序设计语言(C语言)实验教学大纲课程编号:A08003课程名称:程序设计语言C / Programming language C课程总学时/学分:56/4面向专业:网络专业一、实验教学的目的和任务 本实验课是针对网络专业专科学生开设的。通过实验,使学生加深理解、巩固课堂教学内容:掌握高级语言分析、高级语言设计的基本方法和过程,获得利用C语言设计工具进行设计、编程和调试的训练;培养学生进行系统分析和实现系统的能力以及编写分析报告的能力。二、实验教学的基本要求 C程序设计语言课程是一门培养学生掌握高级语言分析、设计的基本方法和过程,具备一定的进行系统分析、设计、编程和调试能力的专业基础课。本课程在教学内容方面着重基本理论、基本方法。在培养实践能力方面着重设计构思、编程和分析调试技能的基本训练。根据国家教委高教司制定的教学基本要求,制定实验教学大纲,该实验课程共开设10个必做实验项目。 1、由指导教师讲清实验的基本原理、要求,实验目的及注意事项。2、实验小组人数为1人,由学生独立操作完成。3、教学实践除巩固课程理论外,还要求学生具备一定的系统分析、设计、编程和调试的能力。三、实验课程内容(项目)及学时分配序号实验项目名称内容提要实验学时实验类型开出要求1基本操作环境及程序的调试了解C集成开发环境的主菜单及子菜单的主要命
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 在线客服工作质量评估表
- 2026福建三明市中国海峡人才市场三明工作部见习生招聘1人考试参考题库及答案解析
- 2026年天津石化人员招聘考试模拟试题及答案
- 2026年中国石油西南化工销售分公司人员招聘考试备考试题及答案
- 成都工业学院学报编辑部 校内公开招聘编辑人员(1人)笔试备考题库及答案解析
- 2027天津滨海农村商业银行股份有限公司校园招聘笔试备考试题及答案解析
- IT技术支持工程师响应速度与技术支持质量绩效考核表
- 广告公司创意设计团队设计经理绩效衡量表
- 智能扫地机器人用户清洁模式设置规范
- 2025~2026学年黑龙江海林市朝鲜族中学高一下学期第三次月考英语试卷
- 化验室人员健康监测计划
- 2026年7年级上册道法期中测试卷及答案
- 2026年国开电大矿山压力及岩层控制形考试题及答案详解(新)
- 高考语文备考专题复习-小说精读精练:陈彦《主角》
- 超星尔雅学习通《动手学AI:人工智能通识与实践(社科版)》2026章节测试及答案
- TCECS 1273-2023 冶炼渣骨料应用技术规程
- 二年级数学应用题题型及解答技巧
- 隧道开挖清包工合同协议
- 摩托三力测试试题及答案
- 第四十课-椭圆及其标准方程省公开课金奖全国赛课一等奖微课获奖课件
- 我国牛病流行的现状及对策
评论
0/150
提交评论