收藏 分销(赏)

本科毕业论文---机房收费管理系统设计.doc

上传人:胜**** 文档编号:2686734 上传时间:2024-06-04 格式:DOC 页数:27 大小:543KB 下载积分:10 金币
下载 相关 举报
本科毕业论文---机房收费管理系统设计.doc_第1页
第1页 / 共27页
本科毕业论文---机房收费管理系统设计.doc_第2页
第2页 / 共27页


点击查看更多>>
资源描述
C++程序设计 设计报告 题目:机房收费管理系统 一、实验题目 机房收费管理系统 二、实验环境 Visual C++ 6.0 三、设计思想 包括:函数分解过程、算法描述以及相应的数据流程图 一、 函数分解过程 1、输入功能 struct lbtime { int lbhour; int lbminute; int lbsecond; }; typedef struct { char lbnum[20]; int lbbanji; int lbflag; char lbname[20]; struct lbtime lbstart,lbfinish; } lbStudent; lbStudent lbstu[50]; struct lbcomputer { int lbf; lbStudent lbstut; }lbcom[30]; int lbk; int lbmain_menu() { char lbc; do { system("cls"); cout<<"\t\t\t****机房收费管理系统****\n"<<"\t\t\t1.输入学生信息\n"<<"\t\t\t2.上机\n"<<"\t\t\t3.下机\n"<<"\t\t\t4.查询上机时间\n"<<"\t\t\t5.机器使用情况显示\n"<<"\t\t\t0.退出系统\n"<<"\t\t\t************************\n"<<"\t\t\t 请选择菜单(0-5):"; lbc=getchar(); } while(lbc<'0'||lbc>'5'); return(lbc-'0'); } int lbinput(lbStudent lbstu[],int lbn) { int lbi=0; char lbsign='0'; while(lbsign!='lbn'&&lbsign!='lbN') { getchar(); cout<<"\t\t 学号:"; gets(lbstu[lbn+qhi].lbnum); cout<<"\t\t 班级:"; cin>>lbstu[lbn+lbi].lbbanji; getchar(); cout<<"\t\t 姓名:"; gets(lbstu[lbn+lbi].lbname); cout<<"\t\t 继续输入?是请按Y,否请按N:"; cin>>lbsign; lbstu[lbn+qhi].lbflag=0; lbi++; } return(lbn+lbi); } void lbonline(lbStudent lbstu[],int lbn) { char lbnum_t[20],lbname_t[20]; int lbi,lbs; do { cout<<"\t\t 使用姓名按1,使用学号按2:"; cin>>lbs; } while(lbs!=1&&lbs!=2); getchar(); if(lbs==1) { cout<<"\t\t 请输入姓名:"; gets(lbname_t); for(lbi=0;lbi<lbn;lbi++) if(strcmp(lbstu[lbi].lbname,lbname_t)==0) break; } else { cout<<"\t\t 请输入学号:"; gets(lbnum_t); for(lbi=0;lbi<lbn;lbi++) { if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0) break; } } if(lbi==lbn) { cout<<"\t\t 信息库中暂无该生,请输入该生信息再上机!\n"; return; } else if(lbstu[lbi].lbflag==1) { cout<<"\t\t 该生正在上机!\n"; return; } else { for(lbk=0;lbk<30;lbk++) if(lbcom[lbk].lbf==0) { lbcom[lbk].lbf=1; cout<<"\t\t 请输入上机时间(当前时间):"; cin>>lbstu[lbi].lbstart.lbhour>>lbstu[lbi].lbstart.lbminute>>lbstu[lbi].lbstart.lbsecond; lbstu[lbi].lbflag=1; lbcom[lbk].lbstut=lbstu[lbi]; break; } if(lbk==30) cout<<"\t\t 机器全部使用中,请稍后再上机!\n"; } } 2、计算功能 void lbcalculate(lbStudent lbstu) { int lbt; struct lbtime lbtimet; if(lbstu.lbfinish.lbsecond<lbstu.lbstart.lbsecond) { if(lbstu.lbfinish.lbminute==0) { lbstu.lbfinish.lbhour-=1; lbstu.lbfinish.lbminute=59; } else lbstu.lbfinish.lbminute-=1; lbtimet.lbsecond=lbstu.lbfinish.lbsecond+60-lbstu.lbstart.lbsecond; } else lbtimet.lbsecond=lbstu.lbfinish.lbsecond-lbstu.lbstart.lbsecond; if(lbstu.lbfinish.lbminute<lbstu.lbstart.lbminute) { lbstu.lbfinish.lbhour-=1; lbtimet.lbminute=lbstu.lbfinish.lbminute+60-lbstu.lbstart.lbminute; } else lbtimet.lbminute=lbstu.lbfinish.lbminute-lbstu.lbstart.lbminute; lbtimet.lbhour=lbstu.lbfinish.lbhour-lbstu.lbstart.lbhour; if(lbtimet.lbsecond==0&&lbtimet.lbminute==0) lbt=lbtimet.lbhour; else lbt=lbtimet.lbhour+1; cout<<"\t\t 该生上机用时%d 小时,费用为%d 元\n",lbt,lbt; } 3、查询功能 void lboffline(lbStudent lbstu[],int lbn) { char lbnum_t[20],lbname_t[20]; int lbi,lbs; do { cout<<"\t\t 使用姓名按1,使用学号按2:"; cin>>lbs; }while(lbs!=1&&lbs!=2); getchar(); if(lbs==1) { cout<<"\t\t 请输入姓名:"; gets(lbname_t); for(lbi=0;qhi<lbn;lbi++) { if(strcmp(lbstu[lbi].lbname,lbname_t)==0) break; } } else { cout<<"\t\t 请输入学号:"; gets(lbnum_t); for(lbi=0;lbi<lbn;lbi++) { if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0) break; } } if(lbi==lbn) { cout<<"\t\t 没有这个学生!\n"; return; } else if(lbstu[lbi].lbflag==0) { cout<<"\t\t 该生未上机或已下机!\n"; return; } else { cout<<"\t\t 请输入下机时间(当前时间):"; cin>>lbstu[lbi].lbfinish.lbhour>>lbstu[lbi].lbfinish.lbminute>>lbstu[lbi].lbfinish.lbsecond; lbcalculate(lbstu[qhi]); lbstu[lbi].lbflag=0; for(lbk=0;lbk<3;lbk++) if(strcmp(lbcom[lbk].lbstut.lbnum,lbstu[lbi].bnum)==0) { lbcom[lbk].lbf=0; break; } } } void lbsearch(lbStudent lbstu[],int lbn) { char lbnum_t[20],lbname_t[20]; int lbi,lbs; do { cout<<"\t\t 使用姓名按1,使用学号按2:"; cin>>lbs; }while(lbs!=1&&qhs!=2); getchar(); if(lbs==1) { cout<<"\t\t 请输入姓名:"; gets(lbname_t); for(lbi=0;qhi<lbn;lbi++) { if(strcmp(lbstu[lbi].lbname,lbname_t)==0) break; } } else { cout<<"\t\t 请输入学号:"; gets(lbnum_t); for(lbi=0;qhi<lbn;bi++) { if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0) break; } } if(lbi==lbn) { cout<<"\t\t 查无此生!\n"; return; } else if(lbstu[lbi].lbflag==1) cout<<"\t\t 该生正在上机,上机起始时间为%d:%d:%d\n",lbstu[lbi].lbstart.lbhour,lbstu[lbi].lbstart.lbminute, lbstu[lbi].lbstart.lbsecond; else cout<<"\t\t 该生未上机或已下机!\n"; } 4、机器使用情况的显示 void display() { cout<<"\t 机器号 是否使用 使用者 学号 班级 上机时间\n"; cout<<"\t----------------------------------------------------------\n"; for(lbk=0;lbk<30;lbk++) { if(lbcom[lbk].lbf==0) cout<<"\t%02d 否-----:--:--\n",qhk+1; else cout<<"yes"<<endl; lbcom[lbk].lbstut.lbname,lbcom[lbk].lbstut.lbnum,lbcom[lbk].lbstut.lbbanji,lbcom[lbk].lbstut.lbstart.lbhour, lbcom[lbk].lbstut.lbstart.lbminute,lbcom[lbk].lbstut.lbstart.lbsecond; } cout<<"\t"; system("pause"); } 1总体结构图 2主函数程序流程图 3子函数程序流程图 1输入学生信息 2学生上机 3学生下机 4上机时间查询 5机器使用情况 四、源程序清单 包括调试过程(碰到的错误、如何错误排除) #include "stdafx.h" #include<iostream> #include<stdio.h> #include<stdlib.h> #include<ctype.h> #include<string.h> using namespace std; struct qhtime { int qhhour; int lbminute; int lbsecond; }; typedef struct { char lbnum[20]; int lbbanji; int lbflag; char lbname[20]; struct lbtime lbstart,lbfinish; } lbStudent; lbStudent lbstu[50]; struct lbcomputer { int lbf; lbStudent lbstut; }lbcom[30]; int lbk; int lbmain_menu() { char qhc; do { system("cls"); cout<<"\t\t\t****机房收费管理系统****\n"<<"\t\t\t1.输入学生信息\n"<<"\t\t\t2.上机\n"<<"\t\t\t3.下机\n"<<"\t\t\t4.查询上机时间\n"<<"\t\t\t5.机器使用情况显示\n"<<"\t\t\t0.退出系统\n"<<"\t\t\t************************\n"<<"\t\t\t 请选择菜单(0-5):"; lbc=getchar(); } while(lbc<'0'||qhc>'5'); return(lbc-'0'); } int lbinput(lbStudent lbstu[],int lbn) { int lbi=0; char lbsign='0'; while(lbsign!='lbn'&&lbsign!='lbN') { getchar(); cout<<"\t\t 学号:"; gets(lbstu[lbn+lbi].lbnum); cout<<"\t\t 班级:"; cin>>lbstu[lbn+lbi].lbbanji; getchar(); cout<<"\t\t 姓名:"; gets(lbstu[lbn+lbi].lbname); cout<<"\t\t 继续输入?是请按Y,否请按N:"; cin>>lbsign; lbstu[lbn+lbi].lbflag=0; lbi++; } return(lbn+lbi); } void lbonline(lbStudent lbstu[],int lbn) { char lbnum_t[20],lbname_t[20]; int lbi,lbs; do { cout<<"\t\t 使用姓名按1,使用学号按2:"; cin>>lbs; } while(lbs!=1&&lbs!=2); getchar(); if(lbs==1) { cout<<"\t\t 请输入姓名:"; gets(lbname_t); for(lbi=0;lbi<lbn;lbi++) if(strcmp(lbstu[lbi].lbname,lbname_t)==0) break; } else { cout<<"\t\t 请输入学号:"; gets(lbnum_t); for(lbi=0;lbi<lbn;lbi++) { if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0) break; } } if(lbi==lbn) { cout<<"\t\t 信息库中暂无该生,请输入该生信息再上机!\n"; return; } else if(lbstu[lbi].lbflag==1) { cout<<"\t\t 该生正在上机!\n"; return; } else { for(lbk=0;lbk<30;lbk++) if(lbcom[lbk].lbf==0) { lbcom[lbk].lbf=1; cout<<"\t\t 请输入上机时间(当前时间):"; cin>>lbstu[lbi].lbstart.lbhour>>lbstu[lbi].lbstart.lbminute>>lbstu[lbi].lbstart.lbsecond; lbstu[lbi].lbflag=1; lbcom[lbk].lbstut=lbstu[lbi]; break; } if(lbk==30) cout<<"\t\t 机器全部使用中,请稍后再上机!\n"; } } void lbcalculate(lbStudent lbstu) { int lbt; struct lbtime lbtimet; if(lbstu.lbfinish.lbsecond<lbstu.lbstart.lbsecond) { if(lbstu.lbfinish.lbminute==0) { lbstu.lbfinish.lbhour-=1; lbstu.lbfinish.lbminute=59; } else lbstu.lbfinish.lbminute-=1; lbtimet.lbsecond=lbstu.lbfinish.lbsecond+60-lbstu.lbstart.lbsecond; } else lbtimet.lbsecond=lbstu.lbfinish.lbsecond-lbstu.lbstart.lbsecond; if(lbstu.lbfinish.lbminute<lbstu.lbstart.lbminute) { lbstu.lbfinish.lbhour-=1; lbtimet.lbminute=lbstu.lbfinish.lbminute+60-lbstu.lbstart.lbminute; } else lbtimet.lbminute=lbstu.lbfinish.lbminute-lbstu.lbstart.lbminute; lbtimet.lbhour=lbstu.lbfinish.lbhour-lbstu.lbstart.lbhour; if(lbtimet.lbsecond==0&&lbtimet.lbminute==0) lbt=lbtimet.lbhour; else lbt=lbtimet.lbhour+1; cout<<"\t\t 该生上机用时%d 小时,费用为%d 元\n",lbt,lbt; } void lboffline(lbStudent lbstu[],int qhn) { char lbnum_t[20],lbname_t[20]; int lbi,lbs; do { cout<<"\t\t 使用姓名按1,使用学号按2:"; cin>>lbs; }while(lbs!=1&&lbs!=2); getchar(); if(lbs==1) { cout<<"\t\t 请输入姓名:"; gets(lbname_t); for(lbi=0;lbi<lbn;lbi++) { if(strcmp(lbstu[lbi].lbname,lbname_t)==0) break; } } else { cout<<"\t\t 请输入学号:"; gets(lbnum_t); for(lbi=0;lbi<lbn;lbi++) { if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0) break; } } if(lbi==lbn) { cout<<"\t\t 没有这个学生!\n"; return; } else if(lbstu[lbi].lbflag==0) { cout<<"\t\t 该生未上机或已下机!\n"; return; } else { cout<<"\t\t 请输入下机时间(当前时间):"; cin>>lbstu[lbi].lbfinish.lbhour>>lbstu[lbi].lbfinish.lbminute>>lbstu[lbi].lbfinish.lbsecond; lbcalculate(lbstu[lbi]); lbstu[lbi].lbflag=0; for(lbk=0;lbk<3;lbk++) if(strcmp(lbcom[lbk].lbstut.lbnum,lbstu[lbi].lbnum)==0) { lbcom[lbk].lbf=0; break; } } } void lbsearch(lbStudent lbstu[],int lbn) { char lbnum_t[20],lbname_t[20]; int lbi,lbs; do { cout<<"\t\t 使用姓名按1,使用学号按2:"; cin>>lbs; }while(lbs!=1&&lbs!=2); getchar(); if(lbs==1) { cout<<"\t\t 请输入姓名:"; gets(lbname_t); for(lbi=0;lbi<lbn;lbi++) { if(strcmp(lbstu[lbi].lbname,lbname_t)==0) break; } } else { cout<<"\t\t 请输入学号:"; gets(lbnum_t); for(lbi=0;lbi<lbn;lbi++) { if(strcmp(lbstu[lbi].lbnum,lbnum_t)==0) break; } } if(lbi==lbn) { cout<<"\t\t 查无此生!\n"; return; } else if(lbstu[lbi].lbflag==1) cout<<"\t\t 该生正在上机,上机起始时间为%d:%d:%d\n",lbstu[lbi].lbstart.lbhour,lbstu[lbi].lbstart.lbminute, lbstu[lbi].lbstart.lbsecond; else cout<<"\t\t 该生未上机或已下机!\n"; } void display() { cout<<"\t 机器号 是否使用 使用者 学号 班级 上机时间\n"; cout<<"\t----------------------------------------------------------\n"; for(lbk=0;lbk<30;lbk++) { if(lbcom[lbk].lbf==0) cout<<"\t%02d 否-----:--:--\n",lbk+1; else cout<<"yes"<<endl; lbcom[lbk].lbstut.lbname,lbcom[lbk].lbstut.lbnum,lbcom[lbk].lbstut.lbbanji,lbcom[qhk].lbstut.lbstart.lbhour, lbcom[lbk].lbstut.lbstart.lbminute,lbcom[lbk].lbstut.lbstart.lbsecond; } cout<<"\t"; system("pause"); } int main() { int lbn=0; for(lbk=0;lbk<30;lbk++) lbcom[lbk].lbf=0; for(;;) { switch(lbmain_menu()) { case 1: system("cls"); cout<<"\t\t\t 输入学生信息:\n"; lbn=lbinput(lbstu,lbn); break; case 2: system("cls"); cout<<"\t\t\t 学生上机\n"; lbonline(lbstu,lbn); cout<<"\t\t"; system("pause"); break; case 3: system("cls"); cout<<"\t\t\t 学生下机\n"; lboffline(lbstu,lbn); cout<<"\t\t"; system("pause"); break; case 4: system("cls"); cout<<"\t\t\t 上机时间查询\n"; lbsearch(lbstu,lbn); cout<<"\t\t"; system("pause"); break; case 5: system("cls"); cout<<"\t\t\t 机器使用情况显示\n\n"; display(); break; case 0: system("cls"); cout<<"\n\n\t\t 感谢使用机房收费管理系统,欢迎下次使用,再见!\n\n"; cout<<"\t\t"; system("pause"); exit(0); } } return 0; 分析:多将中文输入法中的符号与英文中的混用,造成程序运行不畅。 未添加using namespace std头文件 将pintf改为cout,将scanf改为cin 五、测试的数据以及程序运行的结果 1登陆界面 2输入学生信息 3学生上机 4学生下机 5上机时间查询 6机器使用时间 7退出界面
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服