




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程设计报告书学院名称计算机学院学生姓名专业名称班 级1201班学号04122030指导教师时间 实验题目:学生宿舍管理系统一、实验目的通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固C语言程序设计课程学习的内容,掌握工程软件设计的基本方法。通过这次实习练习,可以更进一步的熟悉所学的知识,还可以加强和巩固知识。长达两周的上机练习,为我们提供了很好的编程环境。更好的了解编程的意义,为将来参加实践活动以及以后的毕业设计打下坚实的基础。二、实验内容我设计的是“车辆管理系统”,主要是针对车辆信息的管理,适用对象主要是需要统一管理的车辆,例如租车公司。包括车辆的序号,车牌,品牌,车主信息。在编写过程中主要运用C语言的基本知识有:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。 三、需求分析 该程序是由C语言编写的一个车辆管理查询软件,本程序在Microsoft Visual C+ 6.0下运行,其主要功能是实现对车辆信息的录入、添加、删除、修改、查询、统计。其中查询可以分别以序号,车牌号为关键字查询车辆信息。四、概要设计1、方案设计主函数密码模块录入模块添加模块修改模块删除模块查询模块统计模块退出系统学 号姓名宿舍性 别年龄专 业返 回班 级按姓名按学号按宿舍返 回按性别按学号按宿舍返 回按班级按专业 2、数据结构说明程序中数据主要是学生信息,具体属于类型如下:struct carint num; /*序号*/char chepai10; /*车牌号*/char trademark10; /*品牌*/char name20; /*车主姓名*/char call20; /*联系方式*/struct car *next;3、模块功能说明第一密码模块:调用mima(),进行初始登陆,管理者的注册与登录操作。第二录入模块:调用build(),对车辆信息进行录入。第三查看模块:调用output(),对已有车辆信息进行查看。第四查询模块:调用find(),对特定车辆信息进行查看。第五删除模块:调用shanchu(),对某一车辆信息进行删除操作。第六增加模块:调用charu(),增加车辆信息。第七排序模块:调用sort(),以车辆序号排序。第七修改模块:调用 shaixuan(),对特定车辆信息进行修改。五、详细设计及运行结果1.函数之间调用关系图主函数 main() 删除函数shanchu()录入函数build()统计函数census_message()添加函数Charu()charu()排序函数sort() 密码函数mima()修改函数revise_message()查询函数find()2.部分模块流程图及运行结果图示 登陆界面主函数流程图输入密码功能选择选1选4选0选2选3选5录入模块添加模块修改模块删除模块查询模块结束退出系统是是是是是是否否否否否开始选6统计模块是否连续三次输入错误,退出系统主页界面录入模块 输入姓名输入班级输入宿舍输入学号输入性别输入年龄输入专业是否继续录入结 束NY录入界面修改模块输入要修改学生的姓名功能选择选1选7选4选8选2选3选5选6修改学号修改姓名修改班级修改宿舍修改性别修改年龄修改专业是否继续结束返回主页是是是是是是是是否否否否否否否 修改界面 统计模块输入统计方式功能选择选1选4选6选2选3选5按学号按宿舍按性别按班级按专业结束返回主页是是是是是是否否否否否统计界面六、调试情况,设计技巧及体会 1、测试数据 对功能1(密码系统测试)的测试:先注册账号密码分别为:1,1,然后退出程序进行登录测试。输入一组错误账号密码系统显示“对不起密码错误! 按任意键退出!”。在输入正确密码,系统显示“ 密码正确!按任意键进入主菜单”并进入主界面。对功能2(录入车辆信息)的测试:按照先后顺序分别输入学生信息:序号 车牌号 品牌 车主姓名 联系方式001 498566 benz wu 6548612002 54546 toyota zhang 46787 对功能3(查看模块)的测试:系统显示已有车辆信息对功能3(添加车辆信息)的测试:按照先后顺序分别输入学生信息:序号 车牌号 品牌 车主姓名 联系方式003 46334 ww g 46461对功能4(修改车辆信息)的测试:系统显示“请输入你要选择车辆的品牌 请输入你要选择车辆的车主姓名”,输入“as e” 系统显示“该车辆信息不存在! 按任意键返回”,输入“toyota zhang”,系统显示“请输入修改后车辆的信息 序号 车牌号 品牌 车主姓名 联系方式” 对功能5(删除车辆信息)的测试:系统显示“请输入要删除的车辆信息”。输入要删除的车辆序号:001,系统显示出该车辆信息。选择删除该车辆信息。对功能6(查询学生信息)的测试:查询宿舍号为14#401的信息,系统显示为:学号 姓名 班级 宿舍号 性别 年龄 专业03091003 李娜 0902 14#401 女 20 计算机03091004 王红 0901 14#401 女 20 通信工程对功能7(统计学生信息)的测试: 学生总人数3人,其中男生1人,女生2人。 对功能8(退出系统)的测试:选择退出系统,程序关闭。 2、对调试中主要问题进行总结 调试过程中,经常会出现输入或显示为乱码的情况,这往往是上下定义的数据类型不同或定义数组长度不够所造成的。有时候程序中还会出现录入五个数据而只显示四个的情况,这也往往是由于定义的结构体数组长度过低所造成的。像这类问题只要把数据类型都定义成字符型,并且定义一个合理的数组长度往往都能解决。在调试过程中我遇到最大的问题出现在删除模块。在运用“rt+”打开文件并对某一数据进行删除后,往往显示会多显示一行数据。这是由于“rt+”写数据时只会覆盖数据而不会清除原文件数据,因此文件最后一行数据总会保留在原文件中。后来我先用“rt”打开文件并读取文件中的数据,然后再用“wt”打开原文件将删除后的数据重新写入文件,最终检测运行成功。 3、对自己设计进行评价,指出合理和不足之处,提出改进的方案 本程序拥有很多的优点:第一,它具有作为一个车辆管理系统的各个功能,包括录入信息、添加信息、修改信息、删除信息、查询信息等主要功能。可以方便的进行车辆信息的管理。第二,它的各个功能分块实现,对以后车辆信息系统做进一步的改进十分方便。第三,它也具有安全性,在进入学生信息管理系统之前要求输入账号和密码,所以比较安全,不会造成信息的外泄,并且可以对密码进行算法加密,这样更能确保信息的安全。 4、在设计过程中的感受 C语言是一门由浅入深的课程,最开始几天由于链表和文件部分掌握的不熟练,所以都去看书上的例子自己慢慢揣摩。之前也没有相关的学习机会,自己试着一点点做。由于没有经验,本应首先搭建起来的框架却是在各个功能模块都调试完毕的情况下思考如何把它们糅合在一个系统,浪费了不少时间。 短短的一周实习时间我收获颇多,我相信经过这次实习必将为我以后的深入学习打下扎实的基础。参考文献:语言程序设计(第二版)王曙燕科学出版社七、源程序清单#include #include #include #include #include #include #include #include #define N sizeof(struct car)#define LEN 100/*欢迎界面*/void welcomehu() system(cls);printf(ttn);printf(tt n);printf(tt n);printf(tt欢迎光临n);printf(tt n);printf(tt n);printf(tt n);printf(tt|-|n);printf(tt|* *|n);printf(tt|*智能车库管理系统*|n);printf(tt|* *|n);printf(tt|*|n);printf(tt|* 作者:吴戌睿 *|n);printf(tt|*|n);printf(tt|*|n);printf(tt|*|n);printf(tt|* 请按回车键继续 *|n);printf(tt|*|n);flushall();getch();system(cls);/*车辆信息结构体类型*/struct carint num; /*序号*/char chepai10; /*车牌号*/char trademark10; /*品牌*/char name20; /*车主姓名*/char call20; /*联系方式*/struct car *next;/*系统密码模块*/void mimahu()FILE *fp;int i=0;char a6,aa;char b6;fp=fopen(mima.txt,rt);if(fp=NULL)system(cls);printf(*n);printf(* 请您输入系统初始密码(六位) *n);printf(*n);fp=fopen(mima.txt,wt);for(i=0;i6;i+) aa=getch(); printf(*); ai=aa;fputs(a,fp);fclose(fp); fgets(a,7,fp);system(cls);printf(|-|n);printf(|请输入系统管理员密码:(6位)|n);printf(|-=-|n);flushall();for(i=0;inext;while(p!=NULL)printf(%3d %8s %8s %8s %sn,p-num,p-chepai,p-trademark,p-name,p-call);printf(-n);p=p-next;printf(按任意键退出!n);getch();/*录入模块*/struct car *build()int i=0;char flag;struct car*p,*q,*head;system(cls);head=q=(struct car *)malloc(N);p=(struct car *)malloc(N);printf(*n);printf(* 录入车辆信息 *n);printf(*n);printf(n 第%d辆车n,i+1);printf(*n);printf(n 序号:);scanf(%d,&p-num);printf(-n);printf(n 车牌号:);scanf(%s,p-chepai);getchar();printf(-n);printf(n 品牌:);scanf(%s,&p-trademark);printf(-n);printf(n 车主姓名:);flushall();scanf(%s,&p-name);printf(-n);printf(n 联系方式:);flushall();scanf(%s,p-call);printf(-n);q-next=p;q=p;/system(cls);for(i=1;i+)/q-next=p;/q=p;system(cls);printf(*n); printf(* 是否继续录入?(Y/N) *n); printf(*n); getchar(); scanf(%s,&flag);getchar();if(flag!=y&flag!=Y)break;/q-next=p;/q=p;p=(struct car *)malloc(N);system(cls);printf(*n);printf(n 第%d辆车n,i+1);printf(*n); printf(n 序号:); scanf(%d,&p-num);printf(-n); printf(n 车牌号:); scanf(%s,p-chepai);getchar();printf(-n); printf(n 品牌:); scanf(%s,&p-trademark);printf(-n); printf(n 车主姓名:); scanf(%s,&p-name);getchar();printf(-n); printf(n 联系方式:); scanf(%s,p-call);printf(-n);system(cls);q-next=p;q=p;flushall();p-next=NULL;/free(q);flushall();output(head);flushall();return (head);/*按车辆号排序*/struct car *sort(struct car *h)struct car *temp1,*p1,*p2,*min,*temp;temp=(struct car *)malloc(N);if(h=NULL)return h;for(p1=h;p1!=NULL;p1=p1-next)min=p1;for(p2=p1;p2!=NULL;p2=p2-next)if(min-nump2-num)min=p2;if(min!=p1)*temp=*min;*min=*p1;*p1=*temp;temp1=min-next;min-next=p1-next;p1-next=temp1;printf(n);return(h);/*文件保存模块*/void save_file(struct car *head)struct car *p;FILE *fp;char filename100; system(cls); printf(-n); printf(n请输入要保存的文件名:n); scanf(%s,filename);flushall();printf(-n);if(fp=fopen(filename,wt)=NULL)printf(-n);printf(n写文件错误!按任意键退出!n);printf(-n);getch();exit(1);for(p=head-next;p!=NULL;p=p-next)fprintf(fp,%d %s %s %s %sn,p-num,p-chepai,p-trademark,p-name,p-call); printf(-n);printf(n文件已保存成功!按任意键返回!n);printf(-n);getch();fclose(fp);/*文件读取模块*/struct car *read_file(char name)struct car *head,*r,*p;FILE *fp; system(cls);if(fp=fopen(name,rt)=NULL)printf(-n);printf(nn*您的信息文件为空n按任意键退出*n);printf(-n);getch();exit(1);r=head=(struct car *)malloc(N);/head-next=NULL;/r=head;while(!feof(fp)p=(struct car *)malloc(N);fscanf(fp,%d %s %s %s %sn,&p-num,p-chepai,&p-trademark,&p-name,p-call);/if(feof(fp)/break;r-next=p;r=p;r-next=NULL;/free(p);fclose(fp);return(head);/*车辆查询模块*/struct car *find(struct car *p)int num;char name210;int choice;system(cls);printf(#-#n);printf(# 1 按车牌号查找 #n);printf(#-#n);printf(# 2 按车辆序号查找 #n);printf(#-#n);printf(请选择(1或2);scanf(%d,&choice);if(choice=2)printf(-n);printf(请输入你要查找(修改)的车辆序号: n);printf(-n);scanf(%d,&num);while(p-next!=NULL)p=p-next;if(p-num=num)return p;return NULL;if(choice=1)printf(-n);printf(请输入你要查找(修改)的车牌号: n);printf(-n);scanf(%s,name2);while(p-next!=NULL)p=p-next;if(!(strcmp(p-name,name2)return p;return NULL;return NULL;/*车辆删除模块*/int shanchu(struct car *p0)int num;struct car *p;p=p0-next;if(p=NULL)return 0;system(cls);printf(-n);printf(请输入要删除车辆序号:n);printf(-n);scanf(%d,&num);while(p!=NULL)if(p-num=num)p0-next=p-next;free(p);return 1;p0=p;p=p-next;return 0;/*车辆增加模块*/int charu(struct car *p0)struct car *p;p=(struct car *)malloc(N);system(cls);printf(-n);flushall();printf(请输入你要增加的车辆信息:n);printf(-n); printf(-n); printf(n 序号:);flushall();scanf(%d,&p-num);printf(-n);printf(n 车牌号:);flushall();scanf(%s,p-chepai); getchar();printf(-n);printf(n 品牌:);flushall();scanf(%s,&p-trademark);printf(-n); printf(n 车主姓名:);flushall(); scanf(%s,&p-name);printf(-n);printf(n 联系方式:);scanf(%s,p-call);while(p0-next!=NULL)p0=p0-next;p0-next=p;p-next=NULL;return 1; /*车辆筛选模块*/void shaixuan(struct car *p0)struct car *t,*p;int flag=0; t=(struct car *)malloc(N);system(cls);printf(请输入你要选择车辆的品牌n);scanf(%s,&t-trademark);printf(-n);getchar();printf(请输入你要选择车辆的车主姓名n);scanf(%s,&t-name);printf(-n);for(p=p0;p!=NULL;p=p-next)system(cls);if(p-trademark=t-trademark) flag=1; printf(-n); printf(序号-车牌号-品牌-车主姓名-联系方式n); printf(-n); printf(%3d %8s %8s %8s %sn,p-num,p-chepai,p-trademark,p-name,p-call); printf(-n); printf(-n); printf(nn*按任意键继续*n); printf(-n); getch();if(flag=0)printf(-n);printf(该车辆信息不存在!);printf(-n);printf(nn*按任意键返回*n);printf(-n); getch();/*修改车辆信息模块*/void xiugai(struct car *p)system(cls); printf(*n);printf(n 请输入修改后车辆的信息n);printf(*n);printf(n 序号:);scanf(%d,&p-num);printf(-n);printf(n 车牌号);scanf(%s,p-chepai);getchar();printf(-n);printf(n 品牌:);scanf(%s,&p-trademark);printf(-n);printf(n 车主姓名:);scanf(%s,&p-name);printf(-n);printf(n 联系方式:);scanf(%s,p-call);printf(-n);/*创建用户界面*/char chuangjian()char flag;system(cls);printf(*n); printf(* 您是否要注册新用户(y/n) *n);printf(*n);scanf(%c,&flag);return flag;/*选择用户界面*/void xuanze()system(cls);printf(*n); printf(* 请选择您要登录的用户名 *n);printf(*n);/*修改后保存模块*/void baocun(char a,struct car *head)char flag; struct car *p;FILE *fp; system(cls);printf(*n); printf(* 您是否要保存(y/n) *n);printf(*n);getchar();scanf(%c,&flag);getchar();if(flag=y|flag=Y)if(fp=fopen(a,wt)=NULL)printf(-n);printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 打架伤人和解协议书范本
- 茶园租赁合同(含茶叶加工销售)
- 文化创意园区场地改造与运营管理合同
- 摄影拍摄场合记人员聘用合同协议
- 监控业务转让协议书范本
- 厕所清洁服务合同范本(含夜间保洁)
- 体育产业代理记账与赛事运营财务管理协议
- 产权车库购置及车位共享合同
- 声屏障降噪效果测试专题报告
- 【课件】大气压强教学课件+2024-2025学年人教版物理八年级下学期+
- 《光伏电站运行与维护》课件-项目五 光伏电站常见故障处理
- 使用错误评估报告(可用性工程)模版
- 委托办事合同范例
- 高中生物必修知识点总结(人教版复习提纲)高考基础
- 江西省抚州市2023-2024学年高二下学期期末考试数学
- 汽车以租代购合同
- 高中英语新课程标准解读课件
- 道路、公共广场清扫保洁作业服务投标方案(技术方案)
- DB34-T 4754-2024 人力资源服务产业园运营规范
- 建设项目全过程工程咨询服务投标方案
- GB/T 41782.3-2024物联网系统互操作性第3部分:语义互操作性
评论
0/150
提交评论