网吧计费系统附完整源代码
网吧计费管理代码
代码设计上机界面package org.apache.jsp.page.pc;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.*;import java.util.*;import com.tjuci.model.PC;public final class up_jsp extends org.apache.jasper.runtime.HttpJspBaseimplements org.apache.jasper.runtime.JspSourceDependent {private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();private static java.util.List _jspx_dependants;private javax.el.ExpressionFactory _el_expressionfactory;private org.apache.AnnotationProcessor _jsp_annotationprocessor;public Object getDependants() {return _jspx_dependants;}public void _jspInit() {_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpression Factory();_jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.ge tName());}public void _jspDestroy() {}public void _jspService(HttpServletRequest request, HttpServletResponse response)throws java.io.IOException, ServletException {PageContext pageContext = null;HttpSession session = null;ServletContext application = null;ServletConfig config = null;JspWriter out = null;Object page = this;JspWriter _jspx_out = null;PageContext _jspx_page_context = null;try {response.setContentType("text/html;charset=UTF-8");pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);_jspx_page_context = pageContext;application = pageContext.getServletContext();config = pageContext.getServletConfig();session = pageContext.getSession();_jspx_out = out;out.write("\r\n");out.write("\r\n");out.write("\r\n");out.write("\r\n");out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");out.write("<html>\r\n");out.write(" <head>\r\n");out.write("\r\n");out.write(" <meta http-equiv=\"content\" content=\"text/html;charset=UTF-8\"/>\r\n");out.write(" <title>上机</title>\r\n");out.write(" <script type=\"text/javascript\">\r\n");out.write(" \t\r\n");out.write(" </script>\r\n");out.write(" </head>\r\n");out.write(" \r\n");out.write(" <body>\r\n");out.write(" \t\t");PC pc=(PC)request.getAttribute("pc");out.write("\r\n");out.write(" <form id=\"myform\" action=\"");out.print(request.getContextPath() );out.write("/submitUp.do?id=");out.print(pc.getId());out.write("\" method=\"post\" onsubmit=\"return check(this)\">\r\n");out.write(" \t\r\n");out.write(" <table align=\"center\" border=\"1\">\r\n");out.write(" <center><h2>用户上机界面</h2></center><hr/>\r\n");out.write(" \t<tr>\r\n");out.write(" \t\t<td>机器号</td>\r\n");out.write(" \t\t<td>");out.print(pc.getPno() );out.write("</td>\r\n");out.write(" \t</tr>\r\n");out.write(" \t<tr>\r\n");out.write(" \t\t<td>状态</td>\r\n");out.write(" \t\t<td>");out.print(pc.getPcState() );out.write("</td>\r\n");out.write(" \t</tr>\r\n");out.write(" \t<tr>\r\n");out.write(" \t\t<td>客户名</td>\r\n");out.write(" \t\t<td><input type=\"text\" id =\"username\" name=\"username\"out.write(" \t</tr>\r\n");out.write(" \t<tr>\r\n");out.write(" \t\t<td>消费额</td>\r\n");out.write(" \t\t<td><input type=\"text\" id =\"cost\" name=\"cost\" /></td>\r\n"); out.write(" \t</tr>\r\n");out.write(" \t<tr>\r\n");out.write(" \t\t<td>是否通宵</td>\r\n");out.write(" \t\t<td>\r\n");out.write(" \t\t<select name=\"isnight\">\r\n");out.write(" \t\t\t<option value=\"1\">否</option>\r\n");out.write(" \t\t\t<option value=\"0\">是</option>\r\n");out.write(" \t\t\t\r\n");out.write(" \t\t</select>\r\n");out.write(" \t\t</td>\r\n");out.write(" \t</tr>\r\n");out.write(" \t<tr align=\"center\">\r\n");out.write(" \t\t<td colspan=\"2\"><input type=\"submit\" value=\"提交\"/> <input type=\"reset\" value=\"重置\"/></td>\r\n");out.write(" \t</tr>\r\n");out.write(" \r\n");out.write(" </table>\r\n");out.write(" </form>\r\n");out.write(" </body>\r\n");out.write("</html>\r\n");} catch (Throwable t) {if (!(t instanceof SkipPageException)){out = _jspx_out;if (out != null && out.getBufferSize() != 0)try { out.clearBuffer(); } catch (java.io.IOException e) {}if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);}} finally {_jspxFactory.releasePageContext(_jspx_page_context);}}}上机界面说明:管理员登陆上机界面时选择待机状态的机器输入客户名、消费额及是否通宵情况,并提交。
c语言网吧计费系统源代码
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define N 5struct user{char ID_card[30];char user_card[10];char user_level[50];float add_money; //充值};struct LinkList{struct user struct_user;LinkList *pNext;};struct control{char control_name[20];char control_password[15];}control_person={"apollo","apollo"};//管理员账户和密码设置////////////////////////////////void enter(int x);void tab(int x);void start();void login();void mainmenu();void submenu1();void submenu2();void submenu3();void submenu4();void xian_shi(LinkList *pHead);LinkList *adduser(LinkList *pHead);LinkList *addmoney(LinkList *pHead); //充值LinkList *shang_wang(LinkList *pHead); //上网LinkList *zhu_xiao(LinkList *pHead); //注销会员void save(LinkList *pTemp);LinkList *readsave();void cha_xun_shen(LinkList *pHead);void cha_xun_hui(LinkList *pHead);///////////////////////启动void start(){system("cls");for(int k=0;k<2;k++){for(int i=0;i<N;i++){system("color B");enter(7);tab(3);printf(" 星星网吧计费管理系统");enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 1 endenter(7);tab(3);printf(" 星星网吧计费管理系统");enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 2 endenter(7);tab(3);printf(" 星星网吧计费管理系统");enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 3 endenter(7);tab(3);printf(" 星星网吧计费管理系统"); enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 4 endenter(7);tab(3);printf(" 星星网吧计费管理系统"); enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 5 endenter(7);tab(3);printf(" 星星网吧计费管理系统"); enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 6 endenter(7);tab(3);printf(" 星星网吧计费管理系统"); enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 7 endenter(7);tab(3);printf(" 星星网吧计费管理系统");enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 8 endenter(7);tab(3);printf(" 星星网吧计费管理系统");enter(2);tab(4);printf(" ■");enter(1);tab(4);for(i=0;i<100000000;i++){}system("cls"); //circle 9 end }}login();}//登陆函数void login(){char name[20];char password[15];while(1){system("cls");enter(7);tab(3);printf(" 管理员登录");enter(2);tab(4);printf("Count:");fflush(stdin);if(strcmp(gets(name),control_person.control_name)==0){leap: system("cls");enter(7);tab(3);printf(" 管理员登录");enter(2);tab(4);printf("Password:");fflush(stdin);if(strcmp(gets(password),control_person.control_password)==0){mainmenu();break;}else{char ch;tab(4);printf("Your password is error!\n");tab(4);printf("Do you want to try again?(Y/N):");scanf("%c",&ch);if(ch=='Y' || ch=='y')goto leap;else if(ch=='N' || ch=='n')exit(0);else{system("cls");enter(7);tab(1);printf("Error!Please check your code then login again,thank you!\n");tab(3);exit(0);}}}else{char i;system("cls");enter(7);tab(4);printf("Your count is erorr!\n");tab(4);printf("Do you want to try again?(Y/N):");scanf("%c",&i);if(i=='Y' || i=='y')continue;else if(i=='N' || i=='n')exit(0);else{system("cls");enter(7);tab(1);printf("Error!Please check your code then login again,thank you!\n");tab(3);exit(0);}}}}//enter函数void enter(int x){for(int i=0;i<x;i++)printf("\n");}//tab函数void tab(int x){for(int i=0;i<x;i++)printf("\t");}//mainmenu主菜单void mainmenu(){struct LinkList *pHead=NULL; //初始化while(1){int i;system("cls");printf("\n\n\n\n\n\t\t\t********星星网吧计费管理系统*********\n");printf("\t\t\t** 1.注册会员**\n");printf("\t\t\t** **\n");printf("\t\t\t** 2.会员管理**\n");printf("\t\t\t** **\n");printf("\t\t\t** 3.注销**\n");printf("\t\t\t** **\n");printf("\t\t\t** 4.重启**\n");printf("\t\t\t** **\n");printf("\t\t\t** 5.关闭系统**\n");printf("\t\t\t*************************************\n");printf("\t\t\t请选择:");fflush(stdin);scanf("%d",&i);switch(i){case 1:pHead=adduser(pHead);break;case 2:submenu1();break;case 3:login();break;case 4:start();break;case 5:submenu2();break;default:printf("输入错误!\n");for(int j=0;j<100000000;j++){}break;}}}//submenu1会员管理菜单void submenu1(){struct LinkList *pHead=NULL;while(1){int i;system("cls");printf("\n\n\n\n\n\t\t\t**************会员管理***************\n");printf("\t\t\t** 1.会员消费**\n");printf("\t\t\t** **\n");printf("\t\t\t** 2.注销会员**\n");printf("\t\t\t** **\n");printf("\t\t\t** 3.查找会员信息**\n");printf("\t\t\t** **\n");printf("\t\t\t** 4.查询所有会员信息**\n");printf("\t\t\t** **\n");printf("\t\t\t** 5.返回上一级菜单**\n");printf("\t\t\t*************************************\n");printf("\t\t\t请选择:");fflush(stdin);scanf("%d",&i);switch(i){case 1:submenu3();break;case 2:pHead=zhu_xiao(pHead);break;case 3:submenu4();break;case 4:;xian_shi(pHead);break;case 5:mainmenu();break;default:printf("输入错误!\n");for(int j=0;j<100000000;j++){}break;}}}//submenu2关闭系统void submenu2(){system("cls");printf("\n\n\n\n\n\t\t\t********星星网吧计费管理系统*********\n");printf("\t\t\t** 谢谢您的使用! **\n");printf("\t\t\t** **\n");printf("\t\t\t** 欢迎再次使用! **\n");printf("\t\t\t** **\n");printf("\t\t\t** 技术支持: **\n");printf("\t\t\t** **************************\n");printf("\t\t\t** 版权所有: **\n");printf("\t\t\t** 湖南长沙英泰学院09081A班**\n");printf("\t\t\t** 2009.10 **\n");printf("\t\t\t*************************************\n");exit(0);}//submenu3消费菜单void submenu3(){int i;LinkList *pHead=NULL;while(1){system("cls");printf("\n\n\n\n\n\t\t\t**********消费内容*******************\n");printf("\t\t\t** 1.充值**\n");printf("\t\t\t** **\n");printf("\t\t\t** 2.上网**\n");printf("\t\t\t** **\n");printf("\t\t\t** 3.返回上一级菜单**\n");printf("\t\t\t*************************************\n");printf("\t\t\t请选择:");fflush(stdin);scanf("%d",&i);switch(i){case 1:pHead=addmoney(pHead);break;case 2:pHead=shang_wang(pHead);break;case 3:submenu1();break;default:printf("输入错误!请重新输入!\n");for(int j=0;j<100000000;j++){}break;}}}//submenu4会员查找函数void submenu4(){int i;LinkList *pHead=NULL;while(1){system("cls");printf("\n\n\n\n\n\t\t\t**************查找会员***************\n");printf("\t\t\t** 1.按身份证号码查找**\n");printf("\t\t\t** **\n");printf("\t\t\t** 2.按会员卡号号码查找**\n");printf("\t\t\t** **\n");printf("\t\t\t** 3.返回上一级菜单**\n");printf("\t\t\t*************************************\n");printf("\t\t\t请选择:");fflush(stdin);scanf("%d",&i);switch(i){case 1:cha_xun_shen(pHead);break;case 2:cha_xun_hui(pHead);break;case 3:submenu1();break;default:printf("输入错误!请重新输入!\n");for(int j=0;j<100000000;j++){}break;}}}//新会员注册LinkList *adduser(LinkList *pHead){LinkList *pTemp,*p;system("cls");pTemp=(LinkList *)malloc(sizeof(struct LinkList));if(pTemp==NULL)return pHead;leap:printf("\n\n\n\n\t\t");printf("输入第二代身份证号码(18位):");fflush(stdin);gets(pTemp->struct_user.ID_card);for(int i=0;i<17;i++){if(pTemp->struct_user.ID_card[i]>'9' || pTemp->struct_user.ID_card[i]<'0') //如果输入的信息大于9小于0的范围(输入的不是数字){system("cls");printf("输入的不是纯数字!\n请重新输入!\n");goto leap;}else if(strlen(pTemp->struct_user.ID_card)!=18 || strlen(pTemp->struct_user.ID_card)==0){system("cls");printf("输入不合法!\n请重新输入!\n");goto leap;}}loop:printf("\n\t\t");printf("请输入卡号(8位):");fflush(stdin);gets(pTemp->struct_er_card);for(i=0;i<8;i++){if(pTemp->struct_er_card[i]>'9' || pTemp->struct_er_card[i]<'0') //如果输入的信息大于9小于0的范围(输入的不是数字){system("cls");tab(3);printf("输入的不是纯数字!\n请重新输入!\n");goto loop;}else if(strlen(pTemp->struct_er_card)!=8 || strlen(pTemp->struct_er_card)==0){system("cls");printf("输入不合法!\n请重新输入!\n");goto loop;}}k: printf("\n\n\t\t|-----------会员优惠活动------------|\n");printf("\t\t| 普通会员>0 <=10元|\n");printf("\t\t| 铜卡会员>10 <=20元+10元|\n");printf("\t\t| 银卡会员>20 <=30元+20元|\n");printf("\t\t| 金卡会员>30 <=50元+30元|\n");printf("\t\t| VIP会员充100元送80元|\n");printf("\t\t|-----------------------------------|\n");printf("\t\t");printf("充值:");fflush(stdin);scanf("%f",&(pTemp->struct_user.add_money)); //充值if(pTemp->struct_user.add_money>1000 || pTemp->struct_user.add_money<=0) //如果输入的信息大于9小于0的范围(输入的不是数字){system("cls");printf("输入错误!\n请重新输入!\n");goto k;}else if(pTemp->struct_user.add_money>0 && pTemp->struct_user.add_money<=10){tab(2);strcpy(pTemp->struct_er_level,"普通会员");printf("■恭喜你!你已成为本网吧普通会员!■\n");}else if(pTemp->struct_user.add_money>10 && pTemp->struct_user.add_money<=20){tab(2);strcpy(pTemp->struct_er_level,"铜卡会员");printf("■恭喜你!你已成为本网吧铜卡会员!■\n");pTemp->struct_user.add_money+=10;}else if(pTemp->struct_user.add_money>20 && pTemp->struct_user.add_money<=30) {tab(2);strcpy(pTemp->struct_er_level,"银卡会员");printf("■恭喜你!你已成为本网吧银卡会员!■\n");pTemp->struct_user.add_money+=20;}else if(pTemp->struct_user.add_money>=30 && pTemp->struct_user.add_money<100) {tab(2);strcpy(pTemp->struct_er_level,"金卡会员");printf("■恭喜你!你已成为本网吧金卡会员!■\n");pTemp->struct_user.add_money+=30;}else if(pTemp->struct_user.add_money>=100){tab(2);strcpy(pTemp->struct_er_level,"VIP会员");printf("■恭喜你!你已成为本网吧VIP会员!■\n");pTemp->struct_user.add_money+=80;}pTemp->pNext=NULL;//////////////////if(pHead==NULL)pHead=pTemp;else{p=pHead;while(p->pNext!=NULL)p=p->pNext;p->pNext=pTemp;}save(pTemp);return pHead;}//保存会员注册void save(LinkList *pTemp){FILE *fp=fopen("user","ab");if(fp==NULL){tab(3);printf("读取失败!\n");exit(0);}tab(3);printf("开始保存文件!\n");if(fwrite(pTemp,sizeof(struct LinkList),1,fp)==1){tab(3);printf("文件保存成功!\n");getch();}else{tab(3);printf("文件保存失败!\n");getch();}fclose(fp);}//读取保存LinkList *readsave(){LinkList *pHead=NULL,*p;FILE *fp;fp=fopen("user","rb");if(fp==NULL){tab(3);printf("文件打开失败!\n");getch();return pHead;}while(!feof(fp)){LinkList *pTemp=(LinkList*)malloc(sizeof(LinkList));int t=fread(pTemp,sizeof(struct LinkList),1,fp);pTemp->pNext=NULL;if(t>0){if(pHead==NULL){pHead=pTemp;}else{p=pHead;while(p->pNext!=NULL)p=p->pNext;p->pNext=pTemp;}}elsebreak;}fclose(fp);return pHead;}//显示所有会员信息void xian_shi(LinkList *pHead){FILE *fp=fopen("user","rb");if(fp==NULL){system("cls");printf("\n\n\n\n\n\n\n\n\t\t\t\t");printf("没有会员信息!\n");getch();return;}LinkList *pTemp,*p;pTemp=(LinkList *)malloc(sizeof(LinkList));int count=0;system("cls");enter(5);printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");while(!feof(fp)){int t=fread(pTemp,sizeof(LinkList),1,fp);pTemp->pNext=NULL;//////////////////if(t>0){count++;if(pHead==NULL){pHead=pTemp;}else{p=pHead;while(p->pNext!=NULL)p=p->pNext;p->pNext=pTemp;}}else{break;}printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);}printf(" -----------------------|-------------|--------------|--------------\n");printf("\n\t\t共有会员%d个\n",count);getch();fclose(fp);}//查找会员信息(按身份证号码查找)void cha_xun_shen(LinkList *pHead){LinkList *pTemp;char shen_fen[100];system("cls");enter(9);tab(3);printf("身份证号码:");fflush(stdin);gets(shen_fen);if(strlen(shen_fen)!=18){tab(3);printf("输入错误!\n");getch();return;}pHead=readsave();if(pHead==NULL){tab(3);printf("没有找到会员信息或会员不存在!\n");getch();return;}pTemp=pHead;while(pTemp){if(strcmp(pTemp->struct_user.ID_card,shen_fen)==0){system("cls");enter(5);printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);printf(" -----------------------|-------------|--------------|--------------\n");getch();break;}pTemp=pTemp->pNext;}}//查找会员信息(按会员卡号查找)void cha_xun_hui(LinkList *pHead){LinkList *pTemp;char shen_fen[100];system("cls");enter(9);tab(3);printf("卡号(8位:");fflush(stdin);gets(shen_fen);if(strlen(shen_fen)!=8){tab(3);printf("输入错误!\n");getch();return;}pHead=readsave();if(pHead==NULL)tab(3);printf("没有找到会员信息或会员不存在!\n");getch();return;}pTemp=pHead;while(pTemp){if(strcmp(pTemp->struct_er_card,shen_fen)==0){system("cls");enter(5);printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);printf(" -----------------------|-------------|--------------|--------------\n");getch();break;}pTemp=pTemp->pNext;}}//保存充值、注销和上网消费后的后的会员信息void save_chong(LinkList *pHead){FILE *fp=fopen("user","wb");if(fp==NULL){tab(3);printf("文件打开失败!\n");getch();return;}LinkList *pTemp;pTemp=pHead;if(pHead==NULL){printf("没有找到会员信息!\n");getch();return;printf("开始保存修改!\n");while(pTemp){fwrite(pTemp,sizeof(LinkList),1,fp);pTemp=pTemp->pNext;}printf("保存成功!\n");getch();fclose(fp);}//充值LinkList *addmoney(LinkList *pHead){LinkList *pTemp;char shen_fen[100];system("cls");enter(9);tab(3);printf("卡号(8位):");fflush(stdin);gets(shen_fen);if(strlen(shen_fen)!=8){tab(3);printf("输入错误!\n");getch();return pHead;}pHead=readsave(); //very importantif(pHead==NULL){tab(3);printf("没有找到会员信息或会员不存在!\n");getch();return pHead;}pTemp=pHead;while(pTemp){if(strcmp(pTemp->struct_er_card,shen_fen)==0){system("cls");enter(5);printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);printf(" -----------------------|-------------|--------------|--------------\n");float m=pTemp->struct_user.add_money;printf("请输入充值金额:");scanf("%f",&(pTemp->struct_user.add_money));pTemp->struct_user.add_money+=m;save_chong(pHead);break;}pTemp=pTemp->pNext;}return pHead;}//上网LinkList *shang_wang(LinkList *pHead){LinkList *pTemp;char shen_fen[100];system("cls");enter(2);printf("\n\n\n\n\t\t\t**********网吧计费管理系统***********\n");printf("\t\t\t** 1.普通会员3元/时**\n");printf("\t\t\t** **\n");printf("\t\t\t** 2.铜卡会员 2.5元/时**\n");printf("\t\t\t** **\n");printf("\t\t\t** 3.银卡会员2元/时**\n");printf("\t\t\t** **\n");printf("\t\t\t** 4.金卡会员 1.5元/时**\n");printf("\t\t\t** **\n");printf("\t\t\t** 5.VIP会员1元/时**\n");printf("\t\t\t*************************************\n");printf("请输入会员卡号码(8位数字):");fflush(stdin);gets(shen_fen);if(strlen(shen_fen)!=8){tab(3);printf("输入错误!\n");getch();return pHead;}pHead=readsave(); //读取文件if(pHead==NULL) //如果头指针为空,说明没有该链表{tab(3);printf("没有找到会员信息或会员不存在!\n");getch();return pHead;}pTemp=pHead; //头指针不为空while(pTemp) //访问节点{if(strcmp(pTemp->struct_er_card,shen_fen)==0) //如果找到与输入的会员卡号相同{ //则输出该会员信息printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);printf(" -----------------------|-------------|--------------|--------------\n");float m=pTemp->struct_user.add_money;//上网前的卡上余额float time;printf("请输入上网时间(时):");fflush(stdin);scanf("%f",&time);if(strcmp(pTemp->struct_er_level,"普通会员")==0) //按会员级别来管理{ //每小时上网的费用pTemp->struct_user.add_money=m-3*time; //上网后的卡上余额save_chong(pHead); //保存修改后的内容break;}else if(strcmp(pTemp->struct_er_level,"铜卡会员")==0){pTemp->struct_user.add_money=m-2.5f*time;save_chong(pHead);break;}else if(strcmp(pTemp->struct_er_level,"银卡会员")==0){pTemp->struct_user.add_money=m-2*time;save_chong(pHead);break;}else if(strcmp(pTemp->struct_er_level,"金卡会员")==0){pTemp->struct_user.add_money=m-1.5f*time;save_chong(pHead);break;}else if(strcmp(pTemp->struct_er_level,"VIP会员")==0){pTemp->struct_user.add_money=m-1*time;save_chong(pHead);break;}}pTemp=pTemp->pNext;//指针指向下一个查找,直到找到满足上面条件为止}return pHead;}//注销会员LinkList *zhu_xiao(LinkList *pHead){LinkList *pTemp,*p;char shen_fen[100];system("cls");enter(9);tab(3);printf("卡号:");fflush(stdin);gets(shen_fen);pHead=readsave(); //读取文件if(pHead==NULL) //如果头节点为空,表示这条链表没有内容,或者没有这条链表{tab(3);printf("没有找到会员信息或会员不存在!\n");return pHead;}pTemp=pHead; //指针指向头节点while(pTemp)//访问节点{if(strcmp(pTemp->struct_er_card,shen_fen)==0)//寻找要删除的会员卡号,找到后输出{system("cls");enter(5);printf(" -----------------------|-------------|--------------|--------------\n");printf("\t身份证号码\t\t会员卡号\t卡上余额\t会员级别\n");printf(" -----------------------|-------------|--------------|--------------\n");printf("\t%-20s\t%-10s\t%-5.1f元\t\t%-6s\n",pTemp->struct_user.ID_card,pTemp->struct_er_card,pTemp->struct_user.add_ money,pTemp->struct_er_level);printf(" -----------------------|-------------|--------------|--------------\n");char ch;printf("\n你要注销该会员吗?(Y/N)\n");scanf("%c",&ch);switch(ch){case 'Y':case 'y':{if(pTemp==pHead) //如果要删除的是头节点{pHead=pTemp->pNext; //把头节点指针指向第二个节点,并把头节点覆盖printf("注销成功!\n");getch();break;}p=pHead;//不是头节点,把指针指向头节点while(1){if(p->pNext==pTemp) //如果p的指针域指向找到的节点pTemp{p->pNext=pTemp->pNext;//则把pTemp的指针域指向的下一个节点付给p的指针域printf("注销成功!\n");//删除成功getch();break;}p=p->pNext;//寻找p->pNext和要删除节点pTemp的交合}}break;case 'N':case 'n':break;}}pTemp=pTemp->pNext;//寻找shen_fen和节点的交合}save_chong(pHead);system("cls");return pHead;}//主函数void main(){start();mainmenu();}。
C语言课程设计-网吧管理系统
《通信工程专业C语言课程设计》报告专业:通信工程班级:0802姓名:赵松指导教师:丁雄二00九年十二月二十五日目录一、课程设计题目及所涉及知识点 (1)二、课程设计思路及设计流程图 (1)三、课程设计中遇到的难点及解决办法 (4)四、小结 (4)参考书目 (6)附录原程序 (7)一.课程设计题目及所涉及知识点(一).课程设计题目:网吧管理系统(1).基本内容网吧管理系统管理信息包括会员的会员名、性别、年龄、积分等。
试设计一网吧管理系统,使之能提供以下功能:系统以菜单方式工作,密码登陆。
1.会员信息的录入(增加数据)。
用数组数据类型赋初值的方法把会员信息送到各个数组中(但要注意是合法数据),然后把它们保存起来。
2.会员信息的删除(删除数据)。
任意输入一位会员号,将它所有的信息从组数中删除。
3.会员信息的浏览(查找数据)。
任意输入一位会员号,打印出他的所有数据。
要求能多次查找。
4.会员积分的计算(积分数据)。
任意输入一位会员号,打印出会员的积分。
要求能多次积分计算。
5.会员管理系统登陆。
输入密码登陆系统。
(2). 课程设计的要求与数据1.编程时,设计函数来完成每个功能,通过main函数调用各函数。
2.程序中的输入输出要加提示说明。
3.输出的结果要准确、清晰、美观。
(二).所涉及知识点:结构体数组的定义与引用;函数的定义与调用;局部变量和全局变量; for循环语句;指针;if语句;switch语句;break语句;格式输入与输出;字符串处理函数;函数的定义;数组作为函数参数.二、课程设计思路及设计流程图1、课程设计思路根据题目的要求,需要一个主程序main()和12个子程序,分别为quit()、loading()、menu()、input()、save()、load()、list()、window()、add()、del()、search()、point();可以实现退出、登陆、菜单、输入、保存、导入、列表、界面、增加、删除、查找、积分。
网吧计费系统数据库设计
网吧计费系统设计文档1、oracle数据库设计fee int not null --费用--)--为records表创建主键--alter table records add constraint PK_tb_records primary key(id)--为tb_record表创建外键--alter table records add constraint FK_caIds foreign key (cardId) references cards (id)alter table records add constraint FK_coIds foreign key (computerId) references computers (id)--为records表创建序列--create sequence re_seqstart with 1 --设置序列的初始值--increment by 1 --每次增长1--maxvalue 10000 --设置序列的最大值为10000--minvalue 1 --设置序列的最小值为1----为records表创建触发器,让主键id自动增长--create or replace trigger re_tribefore insert on records --触发条件:当向表执行插入操作时触发此触发器--for each row --对每一行都检测是否触发--begin --触发器开始--select re_seq.nextval into:new.id from dual; --触发器主题内容,即触发后执行的动作,在此是取得序列dectuser_tb_seq的下一个值插入到表中的id字段中--end;四、用Java分别编写三个DAO:CardsDAO.java、ComputerDAO.java、RecordDAO.java(增删查改这四个方法)。
五、整合相关代码六、调试程序,看是否有错。
c语言课程设计报告会员卡计费系统源代码
break;
}
printf("\n>输入错误!(注:请选择1-%d)\n",MENU_MAIN_COUNT);
}
menu_main_func[selected-1]();//调用相应的函数指针数组中的函数,执行操作
}
intmain()/*主函数*/
{
menu();//调用菜单函数
"\t\t|2按消费总额排序\n"
"\t\t|3返回菜单\n"
"\t\t|\n"
"\t\t=======================================\n"
);
printf("请选择功能:");
scanf("%d",&f);
switch(f)
{//用switch语句选择功能
case1:p=sort_m(p);//调用按缴费总额排序
p->next=head;
head=p;
tail=NULL;//定义tail
while(tail!=head->next)
{
p=head;
q=p->next;
while(q->next!=tail)
{//判断q是否为空
if(p->next->money>q->next->money)
{
p->next=q->next;//比较大小,排序
}
returnsumc;//返回总额
}
voidstatistics()
{//统计会员信息函数
网吧计费系统附完整源代码
简易的网吧计费系统设计设计一个简易的网吧计费系统,要求上网人输入卡号和密码上机,卡号或密码不正确,不能上机,卡余额不足不能上机;正在使用的机器不能被再使用;上机需要记录卡号、机器号、上机时间;下机时需要记录下机时间、发生费用和自动从卡里扣款,该机器能再被使用;下机时,需要向用户显示本次上机的详细信息。
1) 上机业务流程卡号和密码的校验;卡的余额的检验;获取当前系统时间作为上机开始时间;记录上机操作;修改该机器的使用标志2) 下机业务流程选择被使用的机器号;获取系统当前时间作为下机时间;计算费用;扣费;记录下机时间和此次费用;修改该机器的状态为可用结构图效果截图如下********************face类********************* package wbsys.view;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import wbsys.dao.huanji;import wbsys.dao.yuechaxun;public class Face extends JFrame {JPanel contentPane;JMenuBar jMenuBar1 = new JMenuBar();JMenu jMenu1 = new JMenu();JMenuItem jMenuItem1 = new JMenuItem();JMenuItem jMenuItem2 = new JMenuItem();JMenu jMenu2 = new JMenu();JMenuItem jMenuItem3 = new JMenuItem();JMenu jMenu3 = new JMenu();JMenuItem jMenuItem4 = new JMenuItem();JOptionPane jOptionPane1 = new JOptionPane();JLabel jLabel1 = new JLabel();JLabel jLabel2 = new JLabel();JLabel jLabel3 = new JLabel();JMenuItem jMenuItem5 = new JMenuItem();JMenuItem jMenuItem6 = new JMenuItem();JMenuItem jMenuItem7 = new JMenuItem();public Face() {try {setDefaultCloseOperation(EXIT_ON_CLOSE);jbInit();} catch (Exception exception) {exception.printStackTrace();}}private void jbInit() throws Exception {contentPane = (JPanel) getContentPane();contentPane.setLayout(null);this.setJMenuBar(jMenuBar1);setSize(new Dimension(650, 488));setTitle("网吧记费管理器");jMenuBar1.setBackground(Color.green);jMenuBar1.setFont(new java.awt.Font("Tahoma", Font.PLAIN, 15));jMenuBar1.setForeground(new Color(255, 0, 95));jMenu1.setBackground(Color.green);jMenu1.setForeground(Color.red);jMenu1.setText("使用");jMenuItem1.setForeground(Color.red);jMenuItem1.setText("上机");jMenuItem1.addActionListener(new Face_jMenuItem1_actionAdapter(this));jMenuItem2.setForeground(Color.red);jMenuItem2.setText("下机");jMenuItem2.addActionListener(new Face_jMenuItem2_actionAdapter(this)); jMenu2.setBackground(Color.green);jMenu2.setForeground(Color.red);jMenu2.setText("管理");jMenuItem3.setForeground(Color.red);jMenuItem3.setText("关于");jMenuItem3.addActionListener(new Face_jMenuItem3_actionAdapter(this)); jMenu3.setBackground(Color.green);jMenu3.setForeground(Color.red);jMenu3.setText("退出");jMenuItem4.setForeground(Color.red);jMenuItem4.setText("确定!");jMenuItem4.addActionListener(new Face_jMenuItem4_actionAdapter(this)); contentPane.setBackground(Color.cyan);jLabel1.setFont(new java.awt.Font("隶书", Font.PLAIN, 25));jLabel1.setForeground(Color.magenta);jLabel1.setText("网吧计费系统G16-制作");jLabel1.setBounds(new Rectangle(200, 150, 300, 39));jLabel2.setFont(new java.awt.Font("隶书", Font.PLAIN, 25));jLabel2.setForeground(Color.magenta);jLabel2.setText("2019-12-12 版本1.0");jLabel2.setBounds(new Rectangle(215, 200, 250, 34));jLabel3.setText("");jLabel3.setBounds(new Rectangle(0, 0, 650, 488));jMenuItem5.setForeground(Color.red);jMenuItem5.setText("管理");jMenuItem5.addActionListener(new Face_jMenuItem5_actionAdapter(this)); jMenuItem6.setForeground(Color.red);jMenuItem6.setText("余额查询");jMenuItem6.addActionListener(new Face_jMenuItem6_actionAdapter(this)); jMenuItem7.setForeground(Color.red);jMenuItem7.setText("换机");jMenuItem7.addActionListener(new Face_jMenuItem7_actionAdapter(this)); jMenuBar1.add(jMenu1);jMenuBar1.add(jMenu2);jMenuBar1.add(jMenu3);jMenu1.add(jMenuItem1);jMenu1.add(jMenuItem2);jMenu1.add(jMenuItem7);jMenu2.add(jMenuItem3);jMenu2.add(jMenuItem5);jMenu2.add(jMenuItem6);jMenu3.add(jMenuItem4);contentPane.add(jLabel1);contentPane.add(jLabel2);contentPane.add(jLabel3);}public void jMenuItem4_actionPerformed(ActionEvent e) {System.exit(0);}public void jMenuItem1_actionPerformed(ActionEvent e) {Shangjiface shang = new Shangjiface(this);this.setContentPane(shang);this.show();}public void jMenuItem2_actionPerformed(ActionEvent e) {xiajiface xia = new xiajiface(this);xia.setSize(483, 344);Dimension dsize = xia.getPreferredSize();Dimension fsize = xia.getSize();Point loc = getLocation();xia.setLocation((fsize.width - dsize.width) / 5 + loc.x, (fsize.height - dsize.height) / 4 + loc.y);xia.show();}public void jMenuItem3_actionPerformed(ActionEvent e) {jOptionPane1.showMessageDialog(null, "版权所有,违者必究!");jOptionPane1.showMessageDialog(null, " 2019-12-12,版本1.0");}public void jMenuItem5_actionPerformed(ActionEvent e) {guanlidenglu guan = new guanlidenglu(this);this.setContentPane(guan);this.show();}public void jMenuItem6_actionPerformed(ActionEvent e) {yuechaxun yue = new yuechaxun(this);yue.setSize(483, 344);Dimension dsize = yue.getPreferredSize();Dimension fsize = yue.getSize();Point loc = getLocation();yue.setLocation((fsize.width - dsize.width) / 4 + loc.x, (fsize.height - dsize.height) / 4 + loc.y);this.setContentPane(yue);this.show();}public void jMenuItem7_actionPerformed(ActionEvent e) {huanji jiemian = new huanji(this);this.setContentPane(jiemian);this.show();}}class Face_jMenuItem7_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem7_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem7_actionPerformed(e);}}class Face_jMenuItem6_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem6_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem6_actionPerformed(e);}}class Face_jMenuItem5_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem5_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem5_actionPerformed(e);}}class Face_jMenuItem2_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem2_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem2_actionPerformed(e);}}class Face_jMenuItem1_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem1_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem1_actionPerformed(e);}}class Face_jMenuItem4_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem4_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem4_actionPerformed(e);}}class Face_jMenuItem3_actionAdapter implements ActionListener { private Face adaptee;Face_jMenuItem3_actionAdapter(Face adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jMenuItem3_actionPerformed(e);}}****************guanli类*****************package wbsys.dao;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import wbsys.entity.Lianjie;import wbsys.view.Face;import wbsys.view.Shangjiface;import wbsys.view.xiajiface;public class guanli extends JPanel {Face main;Lianjie co = new Lianjie();Statement s;Connection c;ResultSet rs;JLabel jLabel1 = new JLabel();JLabel jLabel2 = new JLabel();JLabel jLabel3 = new JLabel();JButton jButton2 = new JButton();JButton jButton3 = new JButton();JButton jButton4 = new JButton();JButton jButton5 = new JButton();JTextField jTextField2 = new JTextField();JTextField jTextField3 = new JTextField();JTextField jTextField4 = new JTextField();JTextField jTextField5 = new JTextField();JLabel jLabel5 = new JLabel();JPasswordField jPasswordField1 = new JPasswordField();JTextField jTextField8 = new JTextField();JLabel jLabel4 = new JLabel();JButton jButton1 = new JButton();JTextField jTextField1 = new JTextField();JPasswordField jPasswordField2 = new JPasswordField();JTextField jTextField6 = new JTextField();JTextField jTextField7 = new JTextField();JLabel jLabel6 = new JLabel();JOptionPane jOptionPane1 = new JOptionPane();JButton jButton6 = new JButton();public guanli(Face k) {try {main = k;jbInit();} catch (Exception exception) {exception.printStackTrace();}}private void jbInit() throws Exception {this.setLayout(null);jLabel1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel1.setForeground(Color.magenta);jLabel1.setText("卡号");jLabel1.setBounds(new Rectangle(10, 80, 80, 20));jLabel2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel2.setForeground(Color.magenta);jLabel2.setText("用户名");jLabel2.setBounds(new Rectangle(110, 80, 80, 20));jLabel3.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel3.setForeground(Color.magenta);jLabel3.setText("密码");jLabel3.setBounds(new Rectangle(210, 80, 80, 20));jButton2.setBounds(new Rectangle(510, 200, 80, 20));jButton2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton2.setForeground(Color.magenta);jButton2.setText("用户充值");jButton2.addActionListener(new guanli_jButton2_actionAdapter(this)); jButton3.setBounds(new Rectangle(510, 260, 80, 20));jButton3.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10)); jButton3.setForeground(Color.magenta);jButton3.setText("添加用户");jButton3.addActionListener(new guanli_jButton3_actionAdapter(this)); jButton4.setBounds(new Rectangle(128, 366, 57, 20));jButton4.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10)); jButton4.setForeground(Color.magenta);jButton4.setText("上机");jButton4.addActionListener(new guanli_jButton4_actionAdapter(this)); jButton5.setBounds(new Rectangle(241, 367, 57, 20));jButton5.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10)); jButton5.setForeground(Color.magenta);jButton5.setText("下机");jButton5.addActionListener(new guanli_jButton5_actionAdapter(this)); jTextField2.setForeground(Color.magenta);jTextField2.setText("");jTextField2.setBounds(new Rectangle(110, 140, 80, 20));jTextField3.setForeground(Color.magenta);jTextField3.setText("");jTextField3.setBounds(new Rectangle(10, 200, 80, 20));jTextField4.setForeground(Color.magenta);jTextField4.setText("");jTextField4.setBounds(new Rectangle(110, 200, 80, 20));jTextField5.setForeground(Color.magenta);jTextField5.setText("");jTextField5.setBounds(new Rectangle(410, 200, 77, 20));jLabel5.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15)); jLabel5.setForeground(Color.magenta);jLabel5.setText("金额");jLabel5.setBounds(new Rectangle(410, 80, 80, 20)); jPasswordField1.setForeground(Color.magenta);jPasswordField1.setText("");jPasswordField1.setBounds(new Rectangle(210, 260, 80, 20)); jTextField8.setForeground(Color.magenta);jTextField8.setText("");jTextField8.setBounds(new Rectangle(410, 260, 80, 20));jLabel4.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15)); jLabel4.setForeground(Color.magenta);jLabel4.setText("重复密码");jLabel4.setBounds(new Rectangle(310, 80, 80, 20));jButton1.setBounds(new Rectangle(510, 140, 80, 20));jButton1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton1.setForeground(Color.magenta);jButton1.setText("删除用户");jButton1.addActionListener(new guanli_jButton1_actionAdapter(this)); jTextField1.setForeground(Color.magenta);jTextField1.setText("");jTextField1.setBounds(new Rectangle(10, 140, 80, 20)); jPasswordField2.setForeground(Color.magenta);jPasswordField2.setText("");jPasswordField2.setBounds(new Rectangle(310, 260, 80, 20)); jTextField6.setForeground(Color.magenta);jTextField6.setText("");jTextField6.setBounds(new Rectangle(10, 260, 80, 20));jTextField7.setForeground(Color.magenta);jTextField7.setText("");jTextField7.setBounds(new Rectangle(110, 260, 80, 20));jLabel6.setText("");jLabel6.setBounds(new Rectangle(0, 30, 650, 488));jButton6.setBounds(new Rectangle(353, 366, 57, 20));jButton6.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10)); jButton6.setForeground(Color.magenta);jButton6.setText("换机");jButton6.addActionListener(new guanli_jButton6_actionAdapter(this)); this.add(jLabel3);this.add(jLabel1);this.add(jTextField1);this.add(jTextField3);this.add(jTextField6);this.add(jLabel2);this.add(jTextField2);this.add(jTextField4);this.add(jTextField7);this.add(jPasswordField1);this.add(jPasswordField2);this.add(jTextField8);this.add(jLabel5);this.add(jLabel4);this.add(jTextField5);this.add(jButton3);this.add(jButton2);this.add(jButton1);this.add(jButton4);this.add(jButton5);this.add(jButton6);this.add(jLabel6);c = co.con();s = c.createStatement();}public void jButton4_actionPerformed(ActionEvent e) {Shangjiface jiemian = new Shangjiface(main);main.setContentPane(jiemian);main.show();}public void jButton5_actionPerformed(ActionEvent e) {xiajiface xia = new xiajiface(main);xia.setSize(483, 344);Dimension dsize = xia.getPreferredSize();Dimension fsize = xia.getSize();Point loc = getLocation();xia.setLocation(5 * (fsize.width - dsize.width) / 6 + loc.x, 4 * (fsize.height - dsize.height) / 5 + loc.y);xia.show();}public void jButton1_actionPerformed(ActionEvent e) {String u = jTextField1.getText().toString();String p = jTextField2.getText().toString();try {rs = s.executeQuery("select *from card419 where name='" + p + "' and kahao='" + u + "'");if (rs.next()) {s.executeUpdate("update card419 set name=null, password=null,fee='0' where name like '" + p+ "' and kahao like '" + u + "'");jOptionPane1.showMessageDialog(this, "删除成功!");jTextField1.setText("");jTextField2.setText("");} elsejOptionPane1.showMessageDialog(this, "卡号与用户名不匹配!请重新输入");} catch (SQLException N) {System.out.println(N);}}public void jButton2_actionPerformed(ActionEvent e) {String u = jTextField3.getText().toString();String p = jTextField4.getText().toString();String n = jTextField5.getText().toString();try {rs = s.executeQuery("select fee from card419 where name like '" + p + "' and kahaolike '" + u + "'");if (rs.next()) {float y = rs.getFloat(1);int W = Integer.parseInt(n);float g = y + W;s.executeUpdate("update card419 set fee='" + g + "' where name like '" + p + "' and kahao like '" + u + "'");if (n.equals("") == false) {jOptionPane1.showMessageDialog(this, "冲值成功!金额总计为" + g + "元");jTextField3.setText("");jTextField4.setText("");jTextField5.setText("");}if (n.equals("") == true) {jOptionPane1.showMessageDialog(this, "未填写金额!!");}} elsejOptionPane1.showMessageDialog(this, "卡号与用户名不匹配!请重新输入");} catch (SQLException N) {jOptionPane1.showMessageDialog(this, "冲值失败!请检查金额书写格式!");System.out.println(N);} catch (Exception B) {jOptionPane1.showMessageDialog(this, "冲值失败!请检查金额书写格式!");}}public void jButton3_actionPerformed(ActionEvent e) {try {String u = jTextField6.getText().toString();String p = jTextField7.getText().toString();String n = jTextField8.getText().toString();String l = jPasswordField1.getText().toString();String m = jPasswordField2.getText().toString();if (u.equals("") == false && p.equals("") == false && n.equals("") == false && l.equals("") == false&& m.equals("") == false) {rs = s.executeQuery("select kahao from card419 where kahao like '" + u + "'and name <> 'null'");if (rs.next()) {jOptionPane1.showMessageDialog(this, "卡号" + u + "已经被使用!");}else {rs = s.executeQuery("select kahao from card419 where kahao like '" + u + "'");if (!rs.next())jOptionPane1.showMessageDialog(this, "卡号" + u + "不存在!");else {if (l.equals(m) == false) {jOptionPane1.showMessageDialog(this, "两次密码不同!!");}if (l.equals(m) == true) {s.executeUpdate("update card419 set name='" + p + "', password='" + m + "',fee='" + n+ "' where kahao='" + u + "'");jOptionPane1.showMessageDialog(this, "成功添加新卡号" + u + "!");jTextField6.setText("");jTextField7.setText("");jTextField8.setText("");jPasswordField1.setText("");jPasswordField2.setText("");}}}}else {jOptionPane1.showMessageDialog(this, "请输入完整!不能有空项");}}catch (SQLException E) {System.out.println(E);jOptionPane1.showMessageDialog(this, "添加失败!请检查书写格式!");} catch (Exception M) {jOptionPane1.showMessageDialog(this, "添加失败!请检查书写格式!");}}public void jButton6_actionPerformed(ActionEvent e) {huanji jiemian = new huanji(main);main.setContentPane(jiemian);main.show();}}class guanli_jButton6_actionAdapter implements ActionListener {private guanli adaptee;guanli_jButton6_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton6_actionPerformed(e);}}class guanli_jButton3_actionAdapter implements ActionListener { private guanli adaptee;guanli_jButton3_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton3_actionPerformed(e);}}class guanli_jButton2_actionAdapter implements ActionListener { private guanli adaptee;guanli_jButton2_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton2_actionPerformed(e);}}class guanli_jButton1_actionAdapter implements ActionListener { private guanli adaptee;guanli_jButton1_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton1_actionPerformed(e);}}class guanli_jButton4_actionAdapter implements ActionListener { private guanli adaptee;guanli_jButton4_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton4_actionPerformed(e);}}class guanli_jButton5_actionAdapter implements ActionListener { private guanli adaptee;guanli_jButton5_actionAdapter(guanli adaptee) {this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton5_actionPerformed(e);}}***************guanlidenglu类********************package wbsys.view;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import wbsys.dao.guanli;public class guanlidenglu extends JPanel {Face main;JButton jButton1 = new JButton();JButton jButton2 = new JButton();JLabel jLabel1 = new JLabel();JLabel jLabel2 = new JLabel();JTextField jTextField1 = new JTextField();JPasswordField jPasswordField1 = new JPasswordField();JLabel jLabel3 = new JLabel();JOptionPane jOptionPane1 = new JOptionPane();JLabel jLabel4 = new JLabel();public guanlidenglu(Face f) {try {main = f;jbInit();} catch (Exception exception) {exception.printStackTrace();}}private void jbInit() throws Exception {this.setLayout(null);jButton1.setBounds(new Rectangle(61, 350, 57, 20));jButton1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton1.setForeground(Color.magenta);jButton1.setText("确定");jButton1.addActionListener(new guanlidenglu_jButton1_actionAdapter(this));jButton2.setBounds(new Rectangle(174, 351, 57, 20));jButton2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton2.setForeground(Color.magenta);jButton2.setText("重置");jButton2.addActionListener(new guanlidenglu_jButton2_actionAdapter(this));jLabel1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel1.setForeground(Color.magenta);jLabel1.setBounds(new Rectangle(42, 177, 97, 25));jLabel2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel2.setForeground(Color.magenta);jLabel2.setText("密码");jLabel2.setBounds(new Rectangle(50, 230, 80, 20));jTextField1.setForeground(Color.magenta);jTextField1.setText("");jTextField1.setBounds(new Rectangle(110, 180, 80, 20));jPasswordField1.setForeground(Color.magenta);jPasswordField1.setText("");jPasswordField1.setBounds(new Rectangle(110, 230, 80, 20));jLabel3.setFont(new java.awt.Font("隶书", Font.PLAIN, 25));jLabel3.setForeground(Color.magenta);jLabel3.setText("请勿尝试破解密码!");jLabel3.setBounds(new Rectangle(20, 70, 390, 40));jOptionPane1.setBackground(Color.magenta);jOptionPane1.setForeground(Color.green);jLabel4.setText("");jLabel4.setBounds(new Rectangle(0, 0, 650, 488));this.add(jLabel2);this.add(jLabel1);this.add(jTextField1);this.add(jPasswordField1);this.add(jLabel3);this.add(jButton1);this.add(jButton2);this.add(jLabel4);}public void jButton1_actionPerformed(ActionEvent e) {String u = jTextField1.getText();String U = "root";String p = jPasswordField1.getText();String P = "1234";if (u.equals(U) == true && p.equals(P) == true){guanli shang = new guanli(main);main.setContentPane(shang);main.show();} else if (u.equals("") == false && p.equals("") == false) {jOptionPane1.showMessageDialog(this, "信息输入错误!请重新输入!");}}public void jButton2_actionPerformed(ActionEvent e) {jTextField1.setText("");}}class guanlidenglu_jButton2_actionAdapter implements ActionListener { private guanlidenglu adaptee;guanlidenglu_jButton2_actionAdapter(guanlidenglu adaptee) { this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton2_actionPerformed(e);}}class guanlidenglu_jButton1_actionAdapter implements ActionListener { private guanlidenglu adaptee;guanlidenglu_jButton1_actionAdapter(guanlidenglu adaptee) { this.adaptee = adaptee;}public void actionPerformed(ActionEvent e) {adaptee.jButton1_actionPerformed(e);}}****************huanji类********************package wbsys.dao;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import javax.swing.event.AncestorEvent;import javax.swing.event.AncestorListener;import wbsys.entity.Lianjie;import wbsys.view.Face;import wbsys.view.Shangjiface;import wbsys.view.xiajiface;public class huanji extends JPanel {Face main;Lianjie lian = new Lianjie();Connection con;Statement s;ResultSet rs;public huanji(Face g) {try {main = g;jbInit();} catch (Exception exception) {exception.printStackTrace();}}private void jbInit() throws Exception {this.setLayout(null);jComboBox1.setForeground(Color.magenta);jComboBox1.setBounds(new Rectangle(110, 140, 75, 20));jComboBox2.setForeground(Color.magenta);jComboBox2.setBounds(new Rectangle(110, 200, 75, 20));jTextField1.setForeground(Color.magenta);jTextField1.setText("");jTextField1.setBounds(new Rectangle(110, 260, 75, 20));jButton1.setBounds(new Rectangle(41, 349, 57, 20));jButton1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton1.setForeground(Color.magenta);jButton1.setText("确定");jButton1.addActionListener(new huanji_jButton1_actionAdapter(this));jButton2.setBounds(new Rectangle(128, 349, 57, 20));jButton2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton2.setForeground(Color.magenta);jButton2.setText("上机");jButton2.addActionListener(new huanji_jButton2_actionAdapter(this));jButton3.setBounds(new Rectangle(212, 350, 57, 20));jButton3.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 10));jButton3.setForeground(Color.magenta);jButton3.setText("下机");jButton3.addActionListener(new huanji_jButton3_actionAdapter(this));jLabel1.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel1.setForeground(Color.magenta);jLabel1.setText("原机号");jLabel1.setBounds(new Rectangle(30, 140, 64, 14));jLabel2.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel2.setForeground(Color.magenta);jLabel2.setText("新机号");jLabel2.setBounds(new Rectangle(30, 200, 53, 15));jLabel3.setFont(new java.awt.Font("楷体_GB2312", Font.PLAIN, 15));jLabel3.setForeground(Color.magenta);jLabel3.setText("卡号");jLabel3.setBounds(new Rectangle(30, 260, 42, 15));jOptionPane1.addAncestorListener(new huanji_jOptionPane1_ancestorAdapter(this));jLabel4.setText("");jLabel4.setBounds(new Rectangle(0, 0, 650, 488));this.add(jButton1);this.add(jButton2);this.add(jButton3);this.add(jComboBox1);this.add(jComboBox2);this.add(jTextField1);this.add(jLabel1);this.add(jLabel2);this.add(jLabel3);this.add(jLabel4);con = lian.con();s = con.createStatement();rs = s.executeQuery("select ID from computer419 where onuse='Y' order by ID");while (rs.next()) {jComboBox1.addItem(rs.getInt(1));}rs = s.executeQuery("select ID from computer419 where Onuse='N' order by ID");while (rs.next()) {jComboBox2.addItem(rs.getInt(1));}}JComboBox jComboBox1 = new JComboBox();JComboBox jComboBox2 = new JComboBox();JTextField jTextField1 = new JTextField();JButton jButton1 = new JButton();JButton jButton2 = new JButton();JButton jButton3 = new JButton();JLabel jLabel1 = new JLabel();JLabel jLabel2 = new JLabel();JLabel jLabel3 = new JLabel();JOptionPane jOptionPane1 = new JOptionPane();JLabel jLabel4 = new JLabel();public void jButton2_actionPerformed(ActionEvent e) {Shangjiface jiemian = new Shangjiface(main);main.setContentPane(jiemian);main.show();}public void jButton3_actionPerformed(ActionEvent e) {xiajiface xia = new xiajiface(main);xia.setSize(483, 344);Dimension dsize = xia.getPreferredSize();Dimension fsize = xia.getSize();Point loc = getLocation();xia.setLocation(5 * (fsize.width - dsize.width) / 6 + loc.x, 4 * (fsize.height - dsize.height) / 5 + loc.y);xia.show();}。
基于Java技术的网吧计费系统设计
if (m essag e = = null ) { / / 如果服务器传来的信息为空, 则断开此次连接 p arent. listen = nu ll; p arent. socket = null; return; } jT ex tF ield 2 . setT ex t(m essage); S tr ing leavem oney = " "; S tringT okeniz er str = n ew S tringT ok en izer(m essage, ": " ); / / 用 S tringT ok en izer 类来实现读取分段字符 S tring keyw ord = str. nex tT oken( ); if ( str. has M oreT okens( ) ) { leavem oney = str . nex tT oken( ); } if ( k eyw ord. equa lsIgnoreCa se( " shangji" ) ) / / 上机信息的处理 { jT ex tF ield 2 . setT ex t( " 上机成功, 你可以上机了! ! \n" ); } if ( k eyw ord. equa lsIgnoreCa se( " chaxun " ) ) / / 查询信息的处理 { JOp tionPane. showM essageD ialog ( null, " 注意 ! 你的余额是 : " + leavem oney + " \n " ); } if ( k eyw ord. equa lsIgnoreCa se( "x iaji" ) ) / / 下机信息的处理 { / / 显示下机信息处理 } if ( k eyw ord. equa lsIgnoreCa se( "gb " ) | k eyw ord. equa lsIgnoreC ase( "db " ) ) / / 信息发送的处理 { JOp tionPane. showM essageD ialog ( null, " 服务器信息: " + leavem oney + " \n " ); } if ( k eyw ord. equa lsIgnoreCa se( " chucuo " ) ) / / 系统出错信息的处理 { jB u tton 1 . setE nabled ( true); JOp t ionP ane. showM essag eD ia log ( null, " 服务器信息 : " + leavem oney + " \n" ); } if ( k eyw ord. equa lsIgnoreCa se( "x iugai " ) ) { JOp tionPane. showM essageD ialog ( null, " 密码修改成功 ! " ); } } } / / 结束 run 方法 }
VB+ACCESS网吧计费系统论文
目录前言 (1)1概述 (3)1.1选用开发语言简介 (3)1.1.1 Microsoft Visual Basic 6.0 介绍 (3)1.1.2 Microsoft Visual Basic 6.0 的编程环境 (4)1.1.3 Visual Basic 6.0的新功能及新的语言特征 (9)1.1.4 VB的ODBC的访问机制 (10)1.1.5 VB 6.0访问开放性数据库的原则和方法 (15)1.1.6 VB 6.0访问开放性数据库几种方法的比较 (16)1.2系统所需环境 (18)2需求分析阶段 (18)2.1系统功能模块 (18)2.2系统数据分析 (18)2.3系统的逻辑模型 (18)3设计阶段 (19)3.1概要设计 (19)3.1.1数据库概论及SQL简介 (19)3.1.2系统数据库的设计 (25)3.2详细设计 (25)3.2.1HIPO图 (25)3.2.2程序流程图 (25)3.2.3窗体功能简介 (25)4设计思想 (25)4.1面向对象的程序设计 (25)4.2详细设计思想 (26)5测试和维护 (26)5.1系统测试平台简介 (26)5.2测试方法 (27)5.3系统维护 (27)6结束语 (28)参考文献 (30)致谢 (31)附:译文 (32)原文 (44)前言20世纪,随着全球经济的蓬勃发展,众多经济学家纷纷提出了新的管理理论。
20世纪50年代,西蒙提出管理依赖于信息和决策的思想。
同时期的维纳发表了控制论,他认为管理是一个控制过程。
1958年,盖尔写到:“管理将以较低的成本得到及时准确的信息,做到较好的控制”。
这个时期,计算机开始用于会计工作。
数据处理一词已经出现。
管理信息系统起初应用于最基础的工作,如打印报表、计算工资、人事管理等,进而发展到企业财务管理、库存管理等单项业务管理,这属于电子数据处理(EDP,Electronic Data Processing)系统。
C语言课程设计(网吧管理系统)
printf("请选择(0-6):");
scanf("%d",&choise);getchar();
switch(choise)
printf("请输入姓名:\n");scanf("%s",temp->name);getchar();
printf("请输入身份证号码:\n");scanf("%s",temp->tele);getchar();
if (head==NULL)
{
head=temp;
temp->next=NULL;
}
printf("\t\t 1.会员上机\n");
printf("\t\t 2.显示会员\n");
printf("\t\t 3.查找\n");
printf("\t\t 4.临时人员上机\n");
printf("\t\t 5.会员下机\n");
printf("\t\t 0.退出\n");
printf("\n");
网吧管理系统流程图见如2.
图2.网吧管理系统主要流程图
2.3.源程序
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
网吧计费系统数据库设计--项目
网吧计费系统数据库设计/*******************第一阶段:创建如下数据库及表*******************/ 数据库名:NetBarDB二、会员卡信息表(cardInfo)如下:三、上机记录信息表(recordInfo)/*alter table recordinfoadd constraint ck_recordinfo_endtime check(endtime>begintime)go*//*****************************第二阶段*****************************/--1、向计算机信息表插入数据--3、将4号会员密码修改为‘0000001’--4、为4号会员冲值20元,并查询余额/*****************第三阶段:实现上机、下机、换机功能************************/---------------1、实现4号会员在号计算机上机:--(1)、验证会员号和密码是否正确。
(根据会员号和密码查询—)Select--(2)、查询4号会员的余额是否大于0--(3)、查询4号会员卡是否在上机(查询上机记录表中卡号等于4且下机时间为空的记录)--4、查询1号机器是否为空闲。
(查询计算机状态)--5、修改1号机器状态为空闲。
--6、插入上机记录,向record表中插上以4号会员上1号机的记录,下机时间为空,free为0/***************2、实现其它会员在计算机上机***************/--1、实际2号会员在2号机器上机 [过程和4号卡在号机实现一样]--2、实现3号会员在3号机器上机 [过程和4号卡在号机实现一样]/***************3、将4号会员从1号计算机换到4号计算机***************/--1、判断4号计算机的状态--2、修改1号计算机状态(将1号计算机改为空闲)--3、修改4号计算机状态(将4号计算机改为使用)--4、修改计算机编号为4且下机时间为空的上机记录为计算机编号为1/***************4、4号计算机下机***************/--1、得到4号机器的上机记录,查询recordinfo表--2、修改机器状态(将4号机器的状态修改为空闲)--3、修改下机时间(将4号机器上机记录的下机时间修改为系统当前时间)--4、计算机上机费用,上机费用=上机时间*2 (操作的记录为:修改机器号为4号,卡号1为的记录)--5、修改记录表的上机费用--6、扣除上机会员卡的余额 (在1号会员卡的余额中减去上机的费用)/*********************第四阶段:数据的统计查询**************************/ --1、记录统计 (统计正在上机的记录,下机记录,所有记录)-- 提示:正在上机的记录为:endtime为空的记录-- 提示:下机记录为:endtime不为空的记录--2、营业收入 (总收入[求free的和],单次上机金额最大)--3、会员统计 (会员数量,余额总数,欠费会员)--4、计算机 (空闲机器信息)--5、统计所有上机记录并给每列取别名 (要求按记录编号降序排列)/************第五阶段:分离数据训,保存脚本为netbar.sql********************/。
网吧计费系统数据库案例
信息管理专业技能大赛复赛题问题的提出某公司准备开发一个网吧计费系统,该系统提供如下功能:1、能够进行上网卡的注册和充值,2、能够对网吧所有计算机的信息进行统计,3、能够记录持上网卡来上网的会员的上网记录,并对上网时间和费用进行统计,公司开发人员将采用SQL Server数据库作为后台支持,请同学们根据提供的需求分析,按要求实现该数据库的设计。
一、用T-SQL语句创建NetBar数据库(10分)创建一个名字为NetBar的数据库,该数据库包含一个数据文件和一个日志文件,逻辑文件名为NetBar_data,磁盘文件名为NetBar_data.mdf,文件初始容量为5MB,最大容量为15MB,文件递增容量为1MB,而事务日志文件的逻辑文件名NetBar_log,磁盘文件名为NetBar_log.ldf,文件初始容量为5MB,最大容量为10MB,文件递增量为1MB(数据库创建在D:\NetBar文件夹下)二、根据需求分析,该数据库需要如下的3个表,请同学们根据给出的表结构,使用T-SQL 语句建以下3个表,并生成数据库关系图。
(40分)表1 上网卡表结构三、根据下面提出的要求,完成相关设计1、为Card表添加约束,限制每张上网卡的余额不能超过2000元。
(5分)2、该网吧实行优惠政策,如果一次充值低于200元,不加送费用,如果一次充值超过200元(包含200元),加送50元的上网费用,如果一次充值超过500元(包含500元),加送100元的上网费用,请设计一个存储过程,实现用户上网卡的充值,并进行相应的调试。
(提示:该过程需要定义2个输入参数,上网卡卡号和充值金额)(10分)3、请设计一个存储过程,实现当会员持卡来上网的时候,先检查该会员卡中余额是否大于0,如果余额为0,则输入提示信息‘卡中余额不足,请及时充值’,如果不为0,则向Record 表中录入相应的初始上网记录(提示:会员上网的初始状态,该会员在Record表中的记录只存在CardID、ComputerID、BeginTime列的值,其余字段都为NULL),并将该会员上网的计算机的使用状态改为‘是’,调用存储过程向Record表中至少插入5条初始的上网记录(15分)4、请设计一个触发器,实现当会员下机的时候,通过得到的上网时长(分钟),自动统计本次上网的费用(注意:时长不满30分钟按1元计算,30分钟至60分钟按2元计算,上网费用都是2元/每小时),并在该会员卡余额中减去这次的消费金额,同时应把该台计算机的使用状态改为“否”。
C语言网吧计费系统(小项目)
系统是基于c语言写的小程序,以应付毕业项目或期末考试用。
由于用到fopen读写文件操作,编译前必须在当前文件下建立用户信息.txt 和充值卡.txt 两个文件,否则会报错。
效果图#include <stdio.h>#include <windows.h>#include <string.h>#include <stdlib.h>#include <time.h>//定义链表typedef struct{char name[20];char mima[20];int state;int jine;}user;typedef struct lnod{user data;struct lnod *next;}lnod, *linklist;//充值卡定义链表typedef struct{char name[30];int jine;}kami;typedef struct kk{kami data;struct kk *next;}kk, *kamil;//创建链表void createlist_l(linklist *l){*l = (linklist)malloc(sizeof(lnod));(*l)->next = NULL;}//插入用户信息(尾插法)int listinset_l(linklist *l,user data) {linklist p = *l,q;if (NULL==p)return -1;while (NULL!=p){}p = (linklist)malloc(sizeof(lnod));p->data = data;p->next = q->next;q->next = p;return 0;}//载入文件到链表void filelist_l(linklist *l){int i;FILE *fp1;user user0;fp1 = fopen("用户信息.txt","rb");for (i = 0;i<50;i++){if (1!=fread(&user0,sizeof(user),1,fp1)){break;}listinset_l(l,user0);}fclose(fp1);}//查找制定用户是否存在int locateelem_l(linklist l,char name[]){linklist p;p = l->next;while (p!=NULL){if (!(strcmp(p->,name))){break;}p = p->next;}if (p == NULL){return -1;}elsereturn 0;}//查找指定用户和密码int locateelem_l2(linklist l,char name[],char mm[]) {p = l->next;while (p!=NULL){a = strcmp(p->,name);b = strcmp(p->data.mima,mm);if (a==0&&b==0){//p->data.state = 1;break;}p = p->next;}if (p == NULL){return -1;}elsereturn 0;}//登陆后state = 1;void gaistate_l(linklist *l,char name[]) {linklist p;int b;p = (*l)->next;while (p!=NULL){b = strcmp(p->,name);if (b==0){p->data.state=1;break;}else{p = p->next;}}}//下线state = 0void xiaxian_l(linklist *l,char name[]) {linklist p;int b;p = (*l)->next;while (p!=NULL)if (b==0){p->data.state=0;break;}else{p = p->next;}}}//修改金额void gaijine_l(linklist *l,char name[],int j){linklist p;int b;p = (*l)->next;while (p!=NULL){b = strcmp(p->,name);if (b==0){p->data.jine=p->data.jine+j;printf("您当前余额为%d元",p->data.jine);break;}else{p = p->next;}}}//修改密码void gaimm_l(linklist *l,char name[],char gmm[]){linklist p;int b;p = (*l)->next;while (p!=NULL){b = strcmp(p->,name);if (b==0){strcpy(p->data.mima,gmm);break;{p = p->next;}}}//下线扣费void koufei_l(linklist *l,char name[],int j){linklist p;int b;p = (*l)->next;while (p!=NULL){b = strcmp(p->,name);if (b==0){p->data.jine = p->data.jine-j;break;}else{p = p->next;}}}//写文件void userfile(user user0){FILE *fp0;if((fp0=fopen("用户信息.txt","ab"))==NULL){printf("cannot open file\n");return;}if(fwrite(&user0,sizeof(user),1,fp0)!=1)printf("file write error\n");fclose(fp0);}//更新文件void update_file(linklist l){FILE *fp;linklist p;p = l->next;if (( fp= fopen("用户信息.txt","wb"))==NULL)return;}while (p!=NULL){if (p->data.state==1){p->data.state = 0;userfile(p->data);p->data.state = 1;}else{userfile(p->data);}p = p->next;}}//查询所有用户void chaxun_l(linklist l){linklist p;p = l->next;while (p != NULL){printf("用户名:%-10s密码:%-10s余额%-10d是否在线(1/0):%d \n",p->,p->data.mima,p->data.jine,p->data.state);p = p->next;}}//充值卡创建链表void createlist_k(kamil *l){*l = (kamil)malloc(sizeof(kk));(*l)->next = NULL;}//充值卡查找制定用户是否存在int locateelem_k(kamil kl,char name[]){kamil p;p = kl->next;while (p!=NULL){if (!(strcmp(p->,name))){break;}if (p == NULL){return -1;}elsereturn 0;}//充值卡插入用户信息(尾插法)int listinset_k(kamil *l,kami data){kamil p = *l,q;if (NULL==p)return -1;while (NULL!=p){q = p;p = p->next;}p = (kamil)malloc(sizeof(kk));p->data = data;p->next = q->next;q->next = p;return 0;}//充值卡载入文件到链表void filelist_k(kamil *l){int i;FILE *fp1;kami kami0;fp1 = fopen("充值卡.txt","rb");for (i = 0;i<50;i++){if (1!=fread(&kami0,sizeof(kami),1,fp1)){break;}listinset_k(l,kami0);}fclose(fp1);}//充值卡修改金额void gaijine_k(kamil *l,char name[],int j){kamil p;while (p!=NULL){b = strcmp(p->,name);if (b==0){p->data.jine=p->data.jine+j;printf("您当前余额为%d元",p->data.jine);break;}else{p = p->next;}}}//充值卡写文件void kamifile(kami kami0){FILE *fp0;if((fp0=fopen("充值卡.txt","ab"))==NULL){printf("cannot open file\n");return;}if(fwrite(&kami0,sizeof(kami),1,fp0)!=1)printf("file write error\n");fclose(fp0);}//充值卡更新文件void update_file_k(kamil l){FILE *fp;kamil p;p = l->next;if (( fp= fopen("充值卡.txt","wb"))==NULL){printf("无法打开文件\n");return;}while (p!=NULL){kamifile(p->data);p = p->next;}void delete_k(kamil *L,char name[]) {kamil p,q;int i;p=(*L)->next;q=*L;while(p!=NULL){i = strcmp(p->,name);if(i == 0){q->next=p->next;free(p);break;}else{q=p;p=p->next;}}}//主函数void main(){linklist l;int b;//选择点int z;//判断z是否等于0int j;//金额char yhm[20];char mm[20],mm1[20];char gmm[20],gmm1[20];//改密码user n;clock_t start,finish;float jf;char nk[15],nk0[15];//之下是卡密int i;// int kjine;kami lsk;kamil kl;char gly[20] = "admin";//管理员密码srand((unsigned)time(NULL));createlist_l(&l);filelist_l(&l);createlist_k(&kl);filelist_k(&kl);while (1){system("color f9");system("cls");printf(" ╭═══════欢═迎═光═临══════╮\n");printf(" ╰╮╭----------------╮╭╯\n");printf(" ▲╯║~~1、注册~~║╰▲\n");printf(" ◇★║~~2、用户登陆~~║★◇\n");printf(" ◇★║~~3、管理员登陆~~║★◇\n");printf(" ★◇║~~4、退出~~║◇★\n");printf(" ▼╮║~~本网吧壕专享一秒钟一元~~║╭▼\n");printf(" ╭╯╰----------------╯╰╮\n");printf(" ╰═══════祝═你═快═乐══════╯\n");scanf("%d",&b);switch(b){case 1:{while (1)//注册界面{system("cls");printf("请输入账号:\n");scanf("%s",yhm);z = locateelem_l(l,yhm);if (z == 0){printf("该用户名已存在,任意键返回");fflush(stdin);getchar();break;}else{printf("请输入密码:\n");scanf("%s",mm);printf("请再次输入密码:\n");scanf("%s",mm1);if (!(strcmp(mm,mm1))){printf("注册成功,任意键返回\n");strcpy( , yhm);strcpy(n.mima , mm);n.jine = 0;listinset_l(&l,n);update_file(l);fflush(stdin);getchar();break;}else{printf("两次密码输入不一致,请重新注册\n");Sleep(1000);continue;}}}break;}case 2://用户登陆{system("cls");while(1){printf("请输入用户名\n");scanf("%s",yhm);z = locateelem_l(l,yhm);if (z!=0){printf("用户名不存在,即将返回\n");Sleep(1000);break;}else{printf("请输入密码:\n");scanf("%s",mm);z = locateelem_l2(l,yhm,mm);if (z==0){gaistate_l(&l,yhm);start = clock();while(1){system("cls");printf(" ╭═══════祝═你═快═乐══════╮\n");printf(" ╰╮╭----------------╮╭╯\n");printf(" ▲╯║~~1、查余额~║╰▲\n");printf(" ◇★║~~2、改密码~║★◇\n");printf(" ◇★║~~3、充值卡充值~║★◇\n");printf(" ★◇║~~4、小游戏~║◇★\n");printf(" ▼╮║~~5、下线~║╭▼\n");printf(" ╭╯╰----------------╯╰╮\n");printf(" ╰═══════祝═你═快═乐══════╯\n");scanf("%d",&b);if (b == 1){system("cls");gaijine_l(&l,yhm,0);printf("\n任意键返回\n");fflush(stdin);getchar();continue;}if (b == 2){system("cls");printf("请输入新密码\n");scanf("%s",gmm);printf("请再次输入密码\n");scanf("%s",gmm1);if (!(strcmp(gmm,gmm1))){printf("修改密码成功,任意键后返回\n");gaimm_l(&l,yhm,gmm);update_file(l);fflush(stdin);getchar();break;}else{printf("两次密码输入不一致,请重新修改\n");Sleep(1000);continue;}}if (b == 5){printf("下线成功,任意键返回主界面:\n");xiaxian_l(&l,yhm);finish = clock();jf = (int)((finish - start)/1000);koufei_l(&l,yhm,jf);update_file(l);fflush(stdin);getchar();break;}if (b == 3){system("cls");printf("请输入充值卡\n");scanf("%s",nk0);b = locateelem_k(kl,nk0);if (b!=0){printf("您输入的充值卡不存在,请重新输入\n");Sleep(1000);continue;}if (b == 0){printf("100元已成功充值进您的账号,任意键返回\n");gaijine_l(&l,yhm,100);update_file(l);delete_k(&kl,nk0);update_file_k(kl);fflush(stdin);getchar();continue;}}if (b == 4){while (1){system("cls");iy = 10;jy = 0;printf("请在两秒钟内输入以下简单等式,答对过关,答错结束,任意键开始\n");fflush(stdin);getchar();while(1){system("cls");ay = rand()%iy;by = rand()%iy;iy=iy+100;printf("%d + %d = ",ay,by);fflush(stdin);Sleep(2000);ky = kbhit();scanf("%d",&zhi);fflush(stdin);if (ky == 0){printf("时间到啦\n");if(jy<=5){printf("你只通过了%d关,只击败了5%%的人,弱爆了。
上网计费系统模拟
程序设计题 2:上网计费系统模拟学号:姓名:班级:目录一. 设计题目及目标二. 需求分析三. 概要设计1.方案设计2.系统功能四.设计内容1.功能结构图2.程序流程图3.系统实现(源代码)4.运行截图五.设计总结及心得体会六.设备及环境一.设计题目及目标1.题目:上网计费系统模拟目标:本程序模拟根据上网清单、客户资料等生成客户上网账单的过程,本程序模拟根据上网清单、客户资料等生成客户上网账单的过程,该系统主要功能包括:促销信息、待购信息的新增、删除、修改、查找等。
所有数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法的应用。
要求编写一个程序,实现对上网费用的计算。
二.需求分析代码要求能提供以下几个基本功能:1.文件管理和存储1)用户资料文件:存放用户名,用户账号以及计费方式2)上网记录文件:存放所有用户的上网记录,内容包括用户帐号、上网起始时间和上网终止时间。
2.功能要求1)用户资料文件由程序设计人员预先从键盘上录入,用户资料文件中的数据记录不得少于 15 条。
2)上网记录文件中的数据记录不得少于 150 条,首先录入一些上网记录信息,必须有跨年、跨月份的上网记录。
3)用户资料文件及上网记录文件中的数据可随时增加或减少,程序不应进行限制或限定。
4)对上网费用进行计算。
首先由操作人员输入年份和月,然后由程序计算该月份所有用户的上网费用并输出账单信息到指定文件夹。
*3.选做要求:(1)随机生成一批上网记录信息,并判断是否正确,不正确的信息剔除。
(2)设计用户可能需要的报表,或者建议该系统中还需要采集哪些信息,以便更好的提供用户需要的信息。
三.概要设计1.方案设计由于系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计:采用自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计。
并在界面、功能和健壮性方面进行一些创新设计。
(完整版)JAVA毕业课程设计网吧管理系统
Java课程设计指导书(学生版初稿)第一章网吧计费管理系统目标1.1 背景介绍1.1.1 业务背景1.1.2 技术背景1.2 需求分析1.2.1功能需求分析1.2.2 业务对象分析1.2.3 验收测试要求1.3 系统设计1.3.1 总体设计1.3.2 详细设计1.4 系统实现1.5 小结1.6 展望第一章网吧计费管理系统学习目标:能使用Java集成开发环境,运用Swing设计图形界面,运用JDBC 访问数据库,掌握事件处理编程,了解简单两层CS项目的开发及简单面向对象程序的设计过程,发展基本的团队协作开发能力。
学习寄语:虽然本项目并不是一个商业项目,其产品也不能用来赚钱,但从中你可以学到实际开发中的许多经验和技巧,获得一种“学有所用”、“学有所得”的成就感,同时赢得老师和同学(同事)对你的格外尊重。
在此项目的学习中,你不但是个学生,还是一个职业人,将与同事一起尽全力完成你所要做的工作,并再次验证“天道酬勤”的真理。
我们的信念是:“不抛弃,不放弃”。
你的改变和收获是老师真诚的期待。
1.1 背景介绍1.1.1 业务背景“海之星”网吧,是一个小型网吧,以前是人工记帐,现需要开发一个简单的网吧计费管理系统。
原人工管理的主要过程如下:客户在门口服务台,出示上机卡,若是新客户则先发新卡;管理员先查询是否有空机器,若有则根据上机卡号查到该卡对应的记录(账簿),若有余额(〉5元),则分配一个空闲的机器号给客户,客户根据机器号对号入座,管理员记下客户卡号、上机机器号、上机时间。
客户下机要到门口的服务台,请求下机,管理员根据当前时间、上机时间及费率计算出本次上机费用,并记录,同时将费用从卡余额中扣除,若费用不够则需充值。
原手工系统主要有如下缺点:1 手工记帐,管理员工作量大,且易出错;2 超时超费使用不能及时发现。
因此需要开发一个简易计费管理软件,取代人工记帐方式,由软件统一管理记录上下机、计费、上机卡、机器情况,提供简单统计功能,超时超费提醒功能等。
2019《sqlserver初级教学资料》网吧计费管理系统(数据库设计).ppt
SQLSERVER基础
项目实战 网吧费系统(数据库设计)
2019/4/2
中国职业教育联盟课程体系
1
需求描述
重庆某网吧拟开发一套网吧计费系统,该系统要实现的功能包括。
计算机管理:新增计算机、查看没用使用的计算机。
会员卡管理:余额查询、办理会员、会员卡充值。
网吧业务:会员上机、换机、下机、计算费用、扣除费用。 数据统计:统计上机人数,计算网吧盈利,会员人数,欠费会员,统计上机 时间。 提示:第一次办理会员卡,需预存50元,网吧收费为每小时2元。
1、 实现4号会员在1号计算机上机。 (1) 验证会员号或密码是否正确。(根据会员号和密码查询)。 (2) 查询4号会员的余额是否大于0。(查询会员余额)。 (3) 查询4号会员卡是否在上机(查询记录表中卡号等于4且下机时间为空的记 录)。 (4) 查询1号机器是否为空闲。(查询计算机状态)。 (5) 修改1号机器为使用状态。(修改计算机状态为1)。 (6) 插入上机记录。(SQL语句如下)。 insert into recordInfo values(4,1,getDate(),null,0)
此中国职业教育联盟课程体系
。2
问题分析-1
表1 PCInfo的字段及说明
字段名称 PCId PCUse int int 数据类型 说明 计算机编号,主键,自动增长。 计算机是否使用,0表示正常,1表示正在使 用,不能插入其他值。默认为0。非空。 计算机的描述,默认‘这台机器不错’。
PCNote
varchar(30)
此中国职业教育联盟课程体系
23
项目总结
本项目使用了我们所学的数据库技术。由于仅限数据库设计,系统功能没能完 全实现。在我们学习了C# Winforms编程后,我们会完成一个有完整实现和 用户界面的项目——网吧计费系统,这个系统也是我们第一学期的结业项目, 本项目除了练习近期学习的数据技术以外,最重要的是为我们结业项目打下数 据设计的基础。
网吧计费系统需求说明书_v1.1
网吧计费系统需求分析说明书编写:XXX 日期:YYYY-MM-DD审核:日期:批准:日期:受控状态:是发布版次:1.0 日期:YYYY-MM-DD编号:变更记录签字确认目录1概述 (4)1.1目的 (4)1.2范围 (4)1.3术语定义 (4)1.4运行环境 (4)2需求说明 (5)3交付文档清单 (7)1概述1.1目的本说明书目的在于明确说明系统需求,界定系统实现功能的范围,指导系统设计以及编码。
本说明书的预期读者为:XXX,XXX项目经理,系统分析员,系统设计人员,开发工程师,测试经理以及测试设计人员等。
1.2范围系统包括的范围:上网卡、机器、上网计费。
1.3术语定义XX1.4运行环境软件环境硬件环境2需求说明❑“极速”网吧需要一个简易的网吧计费系统❑上网人输入卡号和密码上机,卡号或密码不对,不能上机,卡余额不足不能上机❑正在使用的机器不能被再使用❑上机需要记录卡号、机器号、上机时间❑下机时需要记录下机时间、发生费用和自动从卡里扣款,该机器能再被使用❑下机时,需要向用户显示本次上机的详细信息❑对象的抽取❑卡卡号、密码、余额、用户姓名,身份证编号;❑机器机器号、使用标志、备注;❑费用记录记录编号、卡号、机器号、开始上机时间,下机时间、费用;❑上机业务流程❑卡号和密码的校验;❑卡的余额的检验;❑获取当前系统时间作为上机开始时间;❑记录上机操作;❑修改该机器的使用标志;❑下机业务流程❑选择被使用的机器号;❑获取系统当前时间作为下机时间;❑计算费用;❑扣费;❑记录下机时间和此次费用;❑修改该机器的状态为可用;❑费用的计算❑数据类型转换从“yyyy - MM-dd hh:mm:ss”中提取年、月、日、小时、分;❑计算出下机时间和上机时间的差值(分钟);❑计算出应交费的小时数(注意业务规则);❑费用 = 应交费的小时数*上网每小时单价;❑更改密码流程❑卡号和密码的校验;❑提示输入旧密码❑提示输入新密码和确认密码(密码长度不能小于六位)❑后台管理流程❑超级管理员用户和密码的校验;❑卡信息管理❑卡余额充值❑机器信息管理❑上网记录查询统计3交付文档清单☐需求说明书☐项目计划☐测试计划☐概要设计说明书☐详细设计说明书(包含数据库结构设计)☐源代码☐验收计划☐验收用例☐安装手册。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易的网吧计费系统设计
设计一个简易的网吧计费系统,要求上网人输入卡号和密码上机,卡号或密码不正确,不能上机,卡余额不足不能上机;正在使用的机器不能被再使用;上机需要记录卡号、机器号、上机时间;下机时需要记录下机时间、发生费用和自动从卡里扣款,该机器能再被使用;下机时,需要向用户显示本次上机的详细信息。
1) 上机业务流程
卡号和密码的校验;
卡的余额的检验;
获取当前系统时间作为上机开始时间;
记录上机操作;
修改该机器的使用标志
2) 下机业务流程
选择被使用的机器号;
获取系统当前时间作为下机时间;
计算费用;扣费;
记录下机时间和此次费用;
修改该机器的状态为可用
结构图
效果截图
如下
********************face类********************* package wbsys.view;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import wbsys.dao.huanji;
import wbsys.dao.yuechaxun;
public class Face extends JFrame {
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenu1 = new JMenu();
JMenuItem jMenuItem1 = new JMenuItem();
JMenuItem jMenuItem2 = new JMenuItem();
JMenu jMenu2 = new JMenu();
JMenuItem jMenuItem3 = new JMenuItem();
JMenu jMenu3 = new JMenu();
JMenuItem jMenuItem4 = new JMenuItem();
JOptionPane jOptionPane1 = new JOptionPane();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JMenuItem jMenuItem5 = new JMenuItem();
JMenuItem jMenuItem6 = new JMenuItem();
JMenuItem jMenuItem7 = new JMenuItem();
public Face() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
this.setJMenuBar(jMenuBar1);
setSize(new Dimension(650, 488));
setTitle("网吧记费管理器");
jMenuBar1.setBackground(Color.green);
jMenuBar1.setFont(new java.awt.Font("Tahoma", Font.PLAIN, 15));
jMenuBar1.setForeground(new Color(255, 0, 95));
jMenu1.setBackground(Color.green);
jMenu1.setForeground(Color.red);
jMenu1.setText("使用");
jMenuItem1.setForeground(Color.red);
jMenuItem1.setText("上机");
jMenuItem1.addActionListener(new Face_jMenuItem1_actionAdapter(this));
jMenuItem2.setForeground(Color.red);
jMenuItem2.setText("下机");
jMenuItem2.addActionListener(new Face_jMenuItem2_actionAdapter(this)); jMenu2.setBackground(Color.green);
jMenu2.setForeground(Color.red);
jMenu2.setText("管理");
jMenuItem3.setForeground(Color.red);
jMenuItem3.setText("关于");
jMenuItem3.addActionListener(new Face_jMenuItem3_actionAdapter(this)); jMenu3.setBackground(Color.green);
jMenu3.setForeground(Color.red);
jMenu3.setText("退出");
jMenuItem4.setForeground(Color.red);
jMenuItem4.setText("确定!");
jMenuItem4.addActionListener(new Face_jMenuItem4_actionAdapter(this)); contentPane.setBackground(Color.cyan);
jLabel1.setFont(new java.awt.Font("隶书", Font.PLAIN, 25));
jLabel1.setForeground(Color.magenta);
jLabel1.setText("网吧计费系统G16-制作");
jLabel1.setBounds(new Rectangle(200, 150, 300, 39));
jLabel2.setFont(new java.awt.Font("隶书", Font.PLAIN, 25));
jLabel2.setForeground(Color.magenta);
jLabel2.setText("2019-12-12 版本1.0");
jLabel2.setBounds(new Rectangle(215, 200, 250, 34));
jLabel3.setText("");
jLabel3.setBounds(new Rectangle(0, 0, 650, 488));
jMenuItem5.setForeground(Color.red);
jMenuItem5.setText("管理");
jMenuItem5.addActionListener(new Face_jMenuItem5_actionAdapter(this)); jMenuItem6.setForeground(Color.red);
jMenuItem6.setText("余额查询");
jMenuItem6.addActionListener(new Face_jMenuItem6_actionAdapter(this)); jMenuItem7.setForeground(Color.red);
jMenuItem7.setText("换机");
jMenuItem7.addActionListener(new Face_jMenuItem7_actionAdapter(this)); jMenuBar1.add(jMenu1);
jMenuBar1.add(jMenu2);
jMenuBar1.add(jMenu3);
jMenu1.add(jMenuItem1);
jMenu1.add(jMenuItem2);
jMenu1.add(jMenuItem7);
jMenu2.add(jMenuItem3);
jMenu2.add(jMenuItem5);
jMenu2.add(jMenuItem6);。