版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C 语言课程设计报告书学院名称学生姓名专业名称班级学号指导教师时间计算机学院1201 班04122030实验题目: 学生宿舍管理系统一、实验目的通过本课程设计, 强化上机动手能力, 使学生在理论和实践的基础上进一步巩固 C 语言程序设计课程学习的内容,掌握工程软件设计的基本方法。通过这次实习练习,可以更进一步的熟悉所学的知识,还可以加强和巩固知识。长达两周的上机练习,为我们提供了很好的编程环境。 更好的了解编程的意义,为将来参加实践活动以及以后的毕业设计打下坚实的基础。二、实验内容我设计的是“车辆管理系统” ,主要是针对车辆信息的管理,适用对象主要是需要统一管理的车辆,例如租车公司。包括车辆的
2、序号,车牌,品牌,车主信息。在编写过程中主要运用 C 语言的基本知识有:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等) ;程序结构(顺序结构、判断选择结构、循环结构) ;大程序的功能分解方法(即函数的调用与使用)等。三、需求分析该程序是由 C 语言编写的一个车辆管理查询软件, 本程序在 Microsoft Visual C+ 6.0 下运行,其主要功能是实现对车辆信息的录入、添加、删除、修改、查询、统计。其中查询可以分别以序号,车牌号为关键字查询车辆信息。四、概要设计1、方案设计主函数密码模块录添修删查统退入加改除询计出模模模模模模
3、系块块块块块块统学姓班宿性年专返按按按返按按按按按返号名级舍别龄业回姓学宿回学宿性班专回名号舍号舍别级业2、数据结构说明程序中数据主要是学生信息,具体属于类型如下:struct carint num;char chepai10;/*序号 */* 车牌号 */char trademark10;/* 品牌 */char name20;/* 车主姓名*/* 联系方式struct car *next;3、模块功能说明第一密码模块:调用mima() ,进行初始登陆,管理者的注册与登录操作。第二录入模块:调用build() ,对车辆信息进行录入。第三查看模块:调用output() ,对已有车辆信息进行查看
4、。第四查询模块:调用find() ,对特定车辆信息进行查看。第五删除模块:调用shanchu(),对某一车辆信息进行删除操作。第六增加模块:调用charu(),增加车辆信息。第七排序模块:调用sort() ,以车辆序号排序。第七修改模块:调用shaixuan(),对特定车辆信息进行修改。五、详细设计及运行结果1.函数之间调用关系图录入函数删除函数build()密 码 函 数shanchu()mima()添加函数修改函数Charu()revise_message()主函数main()查询函数统计函数find()census_message()排序函数sort()2.部分模块流程图及运行结果图示登
5、陆界面主函数流程图连续三次输入错误,退开始出系统输入密码功能选择是选 1录入模块否是选 2添加模块否是选 3修改模块否是选 4删除模块否是选 5查询模块否是选 6统计模块否是选 0退出系统结束主页界面录入模块输入姓名输入班级输入宿舍输入学号输入性别输入年龄输入专业Y是 否 继续录入N结束录入界面修改模块输入要修改学生的姓名功能选择是选 1修改学号否是选 2修改姓名否是修改班级选 3否是修改宿舍选 4否是选 5修改性别是否选 6修改年龄否是选 7修改专业返回主页选 8否是否继续是结束修改界面统计模块输入统计方式功能选择是选1按学号否是选2按宿舍否是按性别选 3否是按班级选 4否是选5按专业否是选
6、 6返回主页结束统计界面六、调试情况,设计技巧及体会1、测试数据对功能 1(密码系统测试)的测试:先注册账号密码分别为:1,1 ,然后退出程序进行登录测试。输入一组错误账号密码系统显示“对不起密码错误! 按任意键退出! ”。在输入正确密码,系统显示“密码正确!按任意键进入主菜单”并进入主界面。对功能 2(录入车辆信息)的测试:按照先后顺序分别输入学生信息:序号车牌号品牌车主姓名联系方式001498566benzwu654861200254546toyotazhang46787对功能对功能3(查看模块)的测试:系统显示已有车辆信息3(添加车辆信息)的测试:按照先后顺序分别输入学生信息:序号车牌号
7、品牌车主姓名联系方式00346334wwg46461对功能 4(修改车辆信息)的测试:系统显示“请输入你要选择车辆的品牌请输入你要选择车辆的车主姓名”,输入“ as e” 系统显示“该车辆信息不存在!按任意键返回” ,输入“ toyota zhang”,系统显示 “请输入修改后车辆的信息序号车牌号品牌 车主姓名联系方式”对功能5(删除车辆信息)的测试:系统显示“请输入要删除的车辆信息”。输入要删除的车辆序号:001,系统显示出该车辆信息。选择删除该车辆信息。对功能 6(查询学生信息)的测试:查询宿舍号为14#401 的信息,系统显示为:学号姓名班级宿舍号性别年龄专业03091003 李娜090
8、2 14#401女20计算机03091004 王红0901 14#401女20通信工程对功能 7(统计学生信息)的测试:学生总人数3 人,其中男生1 人,女生2 人。对功能 8(退出系统)的测试:选择退出系统,程序关闭。2、对调试中主要问题进行总结调试过程中,经常会出现输入或显示为乱码的情况,这往往是上下定义的数据类型不同或定义数组长度不够所造成的。有时候程序中还会出现录入五个数据而只显示四个的情况,这也往往是由于定义的结构体数组长度过低所造成的。 像这类问题只要把数据类型都定义成字符型, 并且定义一个合理的数组长度往往都能解决。 在调试过程中我遇到最大的问题出现在删除模块。在运用“ rt+
9、”打开文件并对某一数据进行删除后,往往显示会多显示一行数据。这是由于“ rt+ ”写数据时只会覆盖数据而不会清除原文件数据,因此文件最后一行数据总会保留在原文件中。后来我先用“ rt ”打开文件并读取文件中的数据,然后再用“ wt” 打开原文件将删除后的数据重新写入文件,最终检测运行成功。3、对自己设计进行评价,指出合理和不足之处,提出改进的方案本程序拥有很多的优点:第一,它具有作为一个车辆管理系统的各个功能,包括录入信息、添加信息、修改信息、删除信息、查询信息等主要功能。可以方便的进行车辆信息的管理。第二,它的各个功能分块实现,对以后车辆信息系统做进一步的改进十分方便。第三,它也具有安全性,
10、 在进入学生信息管理系统之前要求输入账号和密码, 所以比较安全, 不会造成信息的外泄,并且可以对密码进行算法加密,这样更能确保信息的安全。4、在设计过程中的感受C 语言是一门由浅入深的课程,最开始几天由于链表和文件部分掌握的不熟练,所以都去看书上的例子自己慢慢揣摩。 之前也没有相关的学习机会, 自己试着一点点做。 由于没有经验,本应首先搭建起来的框架却是在各个功能模块都调试完毕的情况下思考如何把它们糅合在一个系统,浪费了不少时间。短短的一周实习时间我收获颇多, 我相信经过这次实习必将为我以后的深入学习打下扎实的基础。参考文献:语言程序设计(第二版)王曙燕科学出版社七、源程序清单#include
11、 <stdio.h>#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <windows.h>#include <malloc.h>#include <string.h>#include <io.h>#define N sizeof(struct car)#define LEN 100/* 欢迎界面 */void welcomehu()system("cls");printf("tt§
12、§§§n");printf("ttn");printf("ttn");printf("tt 欢 迎 光 临 n");printf("ttn");printf("ttn");printf("ttn");printf("tt|-|n");printf("tt|*|n");printf("tt|*智能车库管理系统*|n");printf("tt|*|n");pri
13、ntf("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 car*/int num;/* 序号 */char chepai1
14、0;/* 车牌号 */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&quo
15、t;); printf("*n"); fp=fopen("mima.txt","wt");for(i=0;i<6;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();fo
16、r(i=0;i<6;i+)bi=getch();printf("*");if(a0=b0&&a1=b1&&a2=b2&&a3=b3&&a4=b4&&a5=b5)system("cls");printf("-n");printf("密码正确!n ");printf("-n");printf("nn*按任意键进入主菜单*n");printf("-n");getch();els
17、esystem("cls");printf("*n");printf("*n");printf("*对不起密码错误! 按任意键退出 !*n");printf("*n");printf("*n");flushall();getchar();exit(1);/* 输出模块 */void output(struct car *p)system("cls");printf("-n");printf("-n");printf(
18、"nn-车辆信息表 -nn");printf("-n");printf("-n");printf(" 序号 -车牌号 -品牌 -车主姓名 -联系方式 n");printf("-n");p=p->next;while(p!=NULL)printf("%3d %8s %8s %8s%sn",p->num,p->chepai,p->trademark,p->name,p->call);printf("-n");p=p->
19、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"
20、,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"
21、);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");print
22、f("*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第
23、%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(&
24、quot;-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);f
25、lushall();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->num>p2->num)min=p2;if(min!=p1)*temp=*min;*min=*p1;*p1=
26、*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);flu
27、shall();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->na
28、me,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*您的信
29、息文件为空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-&g
30、t;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");p
31、rintf(" 请选择 (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&
32、quot;);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(&
33、quot;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
34、);system("cls");printf("-n");flushall();printf(" 请输入你要增加的车辆信息printf("-n");printf("-n");printf("n序号 :");flushall();scanf("%d",&p->num);printf("-n");printf("n车牌号 :");flushall();scanf("%s",p->chepai
35、);getchar();printf("-n");printf("n品牌 :");flushall();scanf("%s",&p->trademark);printf("-n");printf("n车主姓名 :");flushall();:n");scanf("%s",&p->name);printf("-n");printf("n联系方式:");scanf("%s",p-&g
36、t;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&qu
37、ot;);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"
38、;);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");p
39、rintf("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(&q
40、uot;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 fl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 县域亲子游景区沉浸式体验项目受欢迎程度调研
- 2026年跨境代购小众品牌挖掘策略调研
- 2026年汽车后市场汽车香水品类调研
- 价值医疗目标下医院成本管控的实践探索
- 以质量为核心的绩效管理改革
- 代谢重编程与肿瘤干细胞耐药
- 从筛查到管理:NAFLD全流程临床路径
- 介入治疗术后转诊交接流程
- 人工智能辅助眼科手术并发症的责任主体
- 人力成本精细化管控与绩效联动机制
- 西安市2024陕西西安市专职消防员管理中心招聘事业编制人员笔试历年参考题库典型考点附带答案详解(3卷合一)
- 2025年盐城港控股招聘面试题库及答案
- 浙江省宁波市海曙区2023-2024学年一年级上学期数学期末试卷(含答案)
- 江西省九江市2024-2025学年上学期期末考试 七年级 数学试题
- 品牌商户入驻大型购物中心流程
- 碳积分交易平台市场分析报告
- 学校食堂防鼠培训内容
- 应急管理概论真题及答案
- 储粮企业安全培训班课件
- 国网培训课件
- 酚类毒性代谢通路研究-洞察及研究
评论
0/150
提交评论