學(xué)生管理系統(tǒng)_第1頁(yè)
學(xué)生管理系統(tǒng)_第2頁(yè)
學(xué)生管理系統(tǒng)_第3頁(yè)
學(xué)生管理系統(tǒng)_第4頁(yè)
學(xué)生管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩57頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

精品文檔精心整理精品文檔可編輯的精品文檔學(xué)生管理系統(tǒng)目錄:1、學(xué)生管理系統(tǒng)2、電表管理系統(tǒng)福建工程學(xué)院計(jì)算機(jī)與信息科學(xué)系實(shí)驗(yàn)報(bào)告2010–2011學(xué)年第一學(xué)期任課老師:實(shí)驗(yàn)題目設(shè)計(jì)一個(gè)簡(jiǎn)單實(shí)用班級(jí)成績(jī)管理系統(tǒng)實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)開(kāi)始日期:報(bào)告提交日期:實(shí)驗(yàn)?zāi)康?、要?.該實(shí)驗(yàn)的課內(nèi)學(xué)時(shí)是4個(gè)課時(shí)。2.程序完成后應(yīng)該完成如下基本功能:1)用自定義結(jié)構(gòu)體typedefstruct設(shè)計(jì)該軟件的數(shù)據(jù)結(jié)構(gòu);2)用數(shù)組或指針鏈表將所有學(xué)生的數(shù)據(jù)按照學(xué)號(hào)順序鏈接起來(lái)。3)程序能夠按照學(xué)號(hào)順序輸入學(xué)生的三門(mén)成績(jī),并計(jì)算平均成績(jī)和總成績(jī)。4)程序能夠顯示已經(jīng)輸入的指定學(xué)號(hào)的學(xué)生成績(jī)以及平均成績(jī)和總成績(jī)。5)程序能夠按要求顯示指定分?jǐn)?shù)段的學(xué)生成績(jī)以及平均成績(jī)和總成績(jī)。6)能夠統(tǒng)計(jì)班級(jí)總?cè)藬?shù)、班級(jí)平均成績(jī)。7)能夠增加和刪除指定學(xué)生的成績(jī)。8)按照指定的要求以及順序(升序或降序)顯示學(xué)生成績(jī)以及平均成績(jī)和總成績(jī)。3.在完成上述基本功能的前提下,有能力的同學(xué)可以完成如下加強(qiáng)功能:1)能夠輸入的數(shù)據(jù)長(zhǎng)期存儲(chǔ)在文件中,再次運(yùn)行程序時(shí)從文件中讀取數(shù)據(jù),無(wú)須重復(fù)輸入。5)在程序的提示語(yǔ)言清晰明確,界面美觀并且適用。實(shí)驗(yàn)設(shè)計(jì)內(nèi)容(1)實(shí)驗(yàn)設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)typedefstruct{charname[60];charID[7];floatChinese,Math,English,sum,average;}student;(2)層次圖主函數(shù)main主函數(shù)main()創(chuàng)建文件增加和刪除學(xué)生的成績(jī)||按學(xué)號(hào)錄入學(xué)生平均成績(jī),總成績(jī)計(jì)算查詢查詢指定學(xué)號(hào)學(xué)生的成績(jī)平均成績(jī)總成績(jī)指定分?jǐn)?shù)段的學(xué)生成績(jī)以及平均成績(jī)和總成績(jī)按指定條件對(duì)學(xué)生成績(jī)進(jìn)行排序統(tǒng)計(jì)班級(jí)總?cè)藬?shù)、班級(jí)平均成績(jī)結(jié)束程序(3)各個(gè)函數(shù)分析1.主函數(shù)main(){Intn;FILEfp;判斷是否存在data.txt這個(gè)文件,不存在就創(chuàng)建該文件;輸入n選擇要進(jìn)行的操作,根據(jù)n的值調(diào)用相應(yīng)的函數(shù);}2.錄入學(xué)生成績(jī)structstudent*init(intn){定義變量;打開(kāi)文件;While(){輸入學(xué)生成績(jī)放入變量p;把p里面的內(nèi)容打印到文件上;}關(guān)掉文件;}3.插入學(xué)生成績(jī)voidinsert(structstudent*head){定義變量;打開(kāi)文件;While(){輸入學(xué)生成績(jī)放入變量pi;插入到指定學(xué)號(hào)后面;}關(guān)閉文件;}4.查看學(xué)生成績(jī)voidlist(structstudent*head){定義變量;打開(kāi)文件;While(){顯示學(xué)生成績(jī)}}5.查看指定學(xué)號(hào)或成績(jī)段學(xué)生成績(jī)voidsearch(structstudent*head){定義變量;打開(kāi)文件;按學(xué)號(hào)查找輸入要查找的學(xué)號(hào);按分?jǐn)?shù)段查找錄入成績(jī)段;While(){顯示學(xué)生成績(jī)}6.統(tǒng)計(jì)班級(jí)總?cè)藬?shù)及班級(jí)平均成績(jī)voidtongji(structstudent*head){定義變量;打開(kāi)文件While(){累計(jì)班級(jí)人數(shù),計(jì)算班級(jí)總成績(jī),各科總成績(jī)}計(jì)算班級(jí)平均成績(jī),顯示結(jié)果;}7.刪除指定學(xué)生的成績(jī)structstudent*del(structstudent*head,intn){定義變量;打開(kāi)文件;刪除指定學(xué)生的成績(jī);保存并關(guān)閉文件;}7.排序voidsumas(structstudent*head){定義變量;比較升序排序;}voidsumdes(structstudent*head){定義變量;比較降序排序;}(4)測(cè)試數(shù)據(jù)的設(shè)計(jì)及預(yù)期結(jié)果1.錄入的學(xué)生信息:姓名學(xué)號(hào)英語(yǔ)數(shù)學(xué)語(yǔ)文張三1100100100倩倩2808080小麗11909090李四12606060阿香305050502.預(yù)期結(jié)果:(1)刪除李四張三1100100100倩倩2808080小麗11909090阿香30505050(2)添加李四張三1100100100倩倩2808080小麗11909090李四12606060阿香30505050(3)統(tǒng)計(jì)總?cè)藬?shù)和成績(jī)總?cè)藬?shù)為:5班級(jí)英語(yǔ)平均成績(jī):76班級(jí)數(shù)學(xué)平均成績(jī):76班級(jí)語(yǔ)文平均成績(jī):76(4)查找指定學(xué)生成績(jī)查找總分200~300的學(xué)生姓名學(xué)號(hào)英語(yǔ)數(shù)學(xué)語(yǔ)文總分張三1100100100300倩倩2808080240小麗11909090270(5)按總分降序排序張三1100100100300小麗11909090270倩倩2808080240李四12606060180阿香30505050150(4)程序界面①.主界面②.學(xué)生成績(jī)錄入界面③.成績(jī)查詢界面④.排序界面⑤.退出程序的界面(5)流程圖1.錄入學(xué)生成績(jī)輸入要?jiǎng)?chuàng)建的學(xué)生人數(shù)n輸入要?jiǎng)?chuàng)建的學(xué)生人數(shù)n是開(kāi)始輸入學(xué)生信息i=n?是結(jié)束否2.顯示學(xué)生成績(jī)是開(kāi)始是開(kāi)始顯示學(xué)生數(shù)據(jù)p->next=Null?是結(jié)束否3.插入學(xué)生信息輸入要插入學(xué)生輸入要插入學(xué)生信息的位置n開(kāi)始輸入學(xué)生信息結(jié)束i=n?是否4.刪除數(shù)據(jù)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào)n輸入要?jiǎng)h除學(xué)生的學(xué)號(hào)np->num=n?是否刪除數(shù)據(jù)開(kāi)始結(jié)束5.查看指定學(xué)號(hào)或成績(jī)段學(xué)生成績(jī)輸入要查找學(xué)生的學(xué)號(hào)n(輸入要查找學(xué)生的學(xué)號(hào)n(或分?jǐn)?shù)段)p->num=n或(p->sum>=a&&p->sum<=b)是否顯示學(xué)生成績(jī)開(kāi)始結(jié)束調(diào)試過(guò)程記錄本次課題除了排序的函數(shù)在調(diào)試的時(shí)候有問(wèn)題外,其他的都沒(méi)有問(wèn)題.下面主要寫(xiě)調(diào)試排序時(shí)的錯(cuò)誤.實(shí)驗(yàn)結(jié)果記錄以及與預(yù)期結(jié)果比較以及分析排序結(jié)果截圖:分析:排序結(jié)果搜正確,而且能按照不同項(xiàng)目排序.所以該算法基本上沒(méi)問(wèn)題.總結(jié)以及心得體會(huì)指導(dǎo)老師評(píng)閱意見(jiàn)指導(dǎo)老師:年月日代碼:#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<conio.h>#defineNull0structstudent{intnum;charname[20];floatchinese,math,english,ave,sum;structstudent*next;};voidprint(){printf("|------------------------------------------------|\n"); printf("|歡迎光臨學(xué)生成績(jī)管理系統(tǒng)|\n"); printf("|------------------------------------------------|\n"); printf("|1==>創(chuàng)建學(xué)生數(shù)據(jù)|\n"); printf("|2==>載入學(xué)生數(shù)據(jù)|\n");printf("|3==>添加學(xué)生數(shù)據(jù)|\n"); printf("|4==>查詢學(xué)生數(shù)據(jù)|\n");printf("|5==>刪除學(xué)生數(shù)據(jù)|\n");printf("|6==>統(tǒng)計(jì)班級(jí)人數(shù)|\n");printf("|7==>排序|\n"); printf("|0==>退出學(xué)生管理系統(tǒng)|\n"); printf("|------------------------------------------------|\n");}structstudent*init(intn){inti;structstudent*head,*p,*s;for(i=1;i<=n;i++){if(i==1){printf("請(qǐng)輸入第%d個(gè)學(xué)生信息:\n",i);p=(structstudent*)malloc(sizeof(structstudent));printf("學(xué)號(hào)\n");scanf("%d",&p->num);printf("姓名\n");scanf("%s",&p->name);printf("語(yǔ)文\n");scanf("%f",&p->chinese);printf("數(shù)學(xué)\n");scanf("%f",&p->math);printf("英語(yǔ)\n");scanf("%f",&p->english);p->sum=p->chinese+p->math+p->english;p->ave=p->sum/3;head=p;if(n==1)p->next=Null;}else{printf("請(qǐng)輸入第%d個(gè)學(xué)生信息:\n",i);s=(structstudent*)malloc(sizeof(structstudent));printf("學(xué)號(hào)\n");scanf("%d",&s->num);printf("姓名\n");scanf("%s",&s->name);printf("語(yǔ)文\n");scanf("%f",&s->chinese);printf("數(shù)學(xué)\n");scanf("%f",&s->math);printf("英語(yǔ)\n");scanf("%f",&s->english);s->sum=s->chinese+s->math+s->english;s->ave=s->sum/3;p->next=s;p=s;s->next=Null;}}returnhead;}voidinsert(structstudent*head){structstudent*p,*pi;intxuehao;printf("請(qǐng)問(wèn)要在哪個(gè)學(xué)生后面插入數(shù)據(jù)(輸入學(xué)號(hào)):");scanf("%d",&xuehao);pi=(structstudent*)malloc(sizeof(structstudent));p=head;printf("學(xué)號(hào)\n");scanf("%d",&pi->num);printf("姓名\n");scanf("%s",&pi->name);printf("語(yǔ)文\n");scanf("%f",&pi->chinese);printf("數(shù)學(xué)\n");scanf("%f",&pi->math);printf("英語(yǔ)\n");scanf("%f",&pi->english);pi->sum=pi->chinese+pi->math+pi->english;pi->ave=pi->sum/3;if(head==Null){head=pi;pi->next=Null;}else{while((p->num!=xuehao)&&(p->next!=Null)){p=p->next;}if(p->next!=Null){pi->next=p->next;p->next=pi;}else{p->next=pi;pi->next=Null;}}}voidsearch(structstudent*head){intno;structstudent*p;p=head;intn=0;printf("1按學(xué)號(hào)查找\n");printf("2按分?jǐn)?shù)段查找\n");scanf("%d",&n);switch(n){case1:printf("請(qǐng)輸入要查找同學(xué)的學(xué)號(hào):");scanf("%d",&no);while(p!=Null){if(p->num==no){printf("------------------學(xué)生成績(jī)表-----------------------\n");printf("===================================================\n");printf("%-5s%-8s%-8s%-8s%-8s%-8s%-8s\n","學(xué)號(hào)","姓名","語(yǔ)文","數(shù)學(xué)","英語(yǔ)","總分","平均分");printf("===================================================\n");printf("%-5d%-8s%-8.1f%-8.1f%-8.1f%-8.1f%-8.1f\n",p->num,p->name,p->chinese,p->math,p->english,p->sum,p->ave);printf("===================================================\n");break;}p=p->next;}break;case2:{floata,b;intchoose;charc;for(;;){printf("\t|---------------------------------------|\n"); printf("\t|分?jǐn)?shù)段查詢|\n"); printf("\t|---------------------------------------|\n"); printf("\t|1==>按總分成績(jī)查詢|\n"); printf("\t|2==>按語(yǔ)文成績(jī)查詢|\n");printf("\t|3==>按數(shù)學(xué)成績(jī)查詢|\n"); printf("\t|4==>按英語(yǔ)成績(jī)查詢|\n"); printf("\t|0==>返回上一級(jí)菜單|\n"); printf("\t|---------------------------------------|\n");printf("請(qǐng)輸入你要執(zhí)行的操作:");scanf("%d",&choose);while(getchar()!='\n');switch(choose){case1: { p=head; printf("請(qǐng)輸入所要查找的分?jǐn)?shù)段:\n");printf("請(qǐng)輸入第一個(gè)分?jǐn)?shù):\n");scanf("%f",&a);printf("請(qǐng)輸入第二個(gè)分?jǐn)?shù):\n");scanf("%f",&b);printf("%-5s%-8s%-8s%-8s%-8s%-8s%-8s\n","學(xué)號(hào)","姓名","語(yǔ)文","數(shù)學(xué)","英語(yǔ)","總分","平均分");while(p!=Null){if(p->sum>=a&&p->sum<=b){printf("%-5d%-8s%-8.1f%-8.1f%-8.1f%-8.1f%-8.1f\n",p->num,p->name,p->chinese,p->math,p->english,p->sum,p->ave);}p=p->next;} }break;case2: { p=head; printf("請(qǐng)輸入所要查找的分?jǐn)?shù)段:\n");printf("請(qǐng)輸入第一個(gè)分?jǐn)?shù):\n");scanf("%f",&a);printf("請(qǐng)輸入第二個(gè)分?jǐn)?shù):\n");scanf("%f",&b);printf("%-5s%-8s%-8s%-8s%-8s%-8s%-8s\n","學(xué)號(hào)","姓名","語(yǔ)文","數(shù)學(xué)","英語(yǔ)","總分","平均分");while(p!=Null){if(p->chinese>=a&&p->chinese<=b){printf("%-5d%-8s%-8.1f%-8.1f%-8.1f%-8.1f%-8.1f\n",p->num,p->name,p->chinese,p->math,p->english,p->sum,p->ave);}p=p->next; } }break;case3: { p=head; printf("請(qǐng)輸入所要查找的分?jǐn)?shù)段:\n");printf("請(qǐng)輸入第一個(gè)分?jǐn)?shù):\n");scanf("%f",&a);printf("請(qǐng)輸入第二個(gè)分?jǐn)?shù):\n");scanf("%f",&b);printf("%-5s%-8s%-8s%-8s%-8s%-8s%-8s\n","學(xué)號(hào)","姓名","語(yǔ)文","數(shù)學(xué)","英語(yǔ)","總分","平均分");while(p!=Null){if(p->math>=a&&p->math<=b){printf("%-5d%-8s%-8.1f%-8.1f%-8.1f%-8.1f%-8.1f\n",p->num,p->name,p->chinese,p->math,p->english,p->sum,p->ave);}p=p->next;} }break;case4: {p=head;printf("請(qǐng)輸入所要查找的分?jǐn)?shù)段:\n");printf("請(qǐng)輸入第一個(gè)分?jǐn)?shù):\n");scanf("%f",&a);printf("請(qǐng)輸入第二個(gè)分?jǐn)?shù):\n");scanf("%f",&b);printf("%-5s%-8s%-8s%-8s%-8s%-8s%-8s\n","學(xué)號(hào)","姓名","語(yǔ)文","數(shù)學(xué)","英語(yǔ)","總分","平均分");while(p!=Null){if(p->english>=a&&p->english<=b){printf("%-5d%-8s%-8.1f%-8.1f%-8.1f%-8.1f%-8.1f\n",p->num,p->name,p->chinese,p->math,p->english,p->sum,p->ave);}p=p->next; } }break;case0:return;default:printf("\n\n您的輸入有誤!請(qǐng)重新輸入:\n\n");break;}}}}}structstudent*del(structstudent*head,intn){structstudent*p,*q;p=head;if(head==Null){printf("沒(méi)有學(xué)生的資料要?jiǎng)h除!\n");returnhead;}while(p->num!=n&&p->next!=Null){q=p;p=p->next;}if(p->num==n){if(p==head)head=p->next;elseq->next=p->next;free(p);}elseprintf("找不到相應(yīng)的學(xué)生資料!\n");returnhead;}voidlist(structstudent*head){inti=0;structstudent*p;p=head;printf("------------------學(xué)生成績(jī)表-----------------------\n");printf("===================================================\n");printf("%-5s%-8s%-8s%-8s%-8s%-8s%-8s\n","學(xué)號(hào)","姓名","語(yǔ)文","數(shù)學(xué)","英語(yǔ)","總分","平均分");printf("===================================================\n");while(p!=Null){printf("%-5d%-8s%-8.1f%-8.1f%-8.1f%-8.1f%-8.1f\n",p->num,p->name,p->chinese,p->math,p->english,p->sum,p->ave);p=p->next;}printf("===================================================\n");printf("\n\n");}voidtongji(structstudent*head){inti=0;structstudent*p;floatchinese1=0,math1=0,english1=0;p=head;while(p!=Null){i=i+1;chinese1=chinese1+p->chinese;math1=math1+p->math;english1=english1+p->english;p=p->next;}printf("班級(jí)總?cè)藬?shù)為:%d\n",i);printf("班級(jí)語(yǔ)文平均分為:%4.1f\n",chinese1/i);printf("班級(jí)數(shù)學(xué)平均分為:%4.1f\n",math1/i);printf("班級(jí)英語(yǔ)平均分為:%4.1f\n",english1/i);printf("\n");}student*sort(student*head,intchoose){student*p1,*p2=head,*pm,*px;studentmid;if(!p2)returnhead;for(p1=p2;p1->next!=NULL;p1=p1->next){pm=p1;for(p2=p1->next;p2!=NULL;p2=p2->next)switch(choose){case1:if(pm->num>p2->num)pm=p2;break;case2:if(pm->sum<p2->sum)pm=p2;break;case3:if(pm->chinese<p2->chinese)pm=p2;break;case4:if(pm->math<p2->math)pm=p2;break;case5:if(pm->english<p2->english)pm=p2;break;}if(pm!=p1){mid=*pm;*pm=*p1;*p1=mid;px=pm->next;pm->next=p1->next;p1->next=px;}}printf("\n排序后的成績(jī)表為:\n");list(head);returnhead;}student*sort_all(student*head){intchoose;for(;;){printf("\t|---------------------------------------|\n"); printf("\t|學(xué)生成績(jī)統(tǒng)計(jì)排序|\n"); printf("\t|---------------------------------------|\n"); printf("\t|1==>按學(xué)生學(xué)號(hào)排序|\n"); printf("\t|2==>按學(xué)生總分排序|\n");printf("\t|3==>按學(xué)生語(yǔ)文成績(jī)排序|\n"); printf("\t|4==>按學(xué)生數(shù)學(xué)成績(jī)排序|\n");printf("\t|5==>按學(xué)生英語(yǔ)成績(jī)排序|\n"); printf("\t|0==>返回上一級(jí)菜單|\n"); printf("\t|---------------------------------------|\n");printf("請(qǐng)輸入你要執(zhí)行的操作:");scanf("%d",&choose);while(getchar()!='\n');switch(choose){case1:head=sort(head,choose);break;case2:head=sort(head,choose);break;case3:head=sort(head,choose);break;case4:head=sort(head,choose);break;case5:head=sort(head,choose);break;case0:returnhead;default:printf("\n\n您的輸入有誤!請(qǐng)重新輸入:\n\n");break;}}}voidsave(structstudent*head){inti,j;FILE*fp;student*p;p=head;charc;//head頭指針if((fp=fopen("c:\\stu_list","wb"))==NULL){printf("Cannotopenfilestrikeanykeyexit!");getch();exit(0);}while(p){fwrite(p,sizeof(student),1,fp);p=p->next;}fclose(fp);}structstudent*read(){inti=0,j;FILE*fp;structstudent*p;//工作指針student*last,*head;//最后一項(xiàng)的指針head=(student*)malloc(sizeof(student));last=head;if((fp=fopen("c:\\stu_list","rb"))==NULL){printf("Cannotopenfilestrikeanykeyexit!");getch();exit(0);}while(!feof(fp)){p=(student*)malloc(sizeof(student));if(fread(p,sizeof(student),1,fp)==1){last->next=p;last=last->next;}}fclose(fp);returnhead=head->next;}intmain(){FILE*fp;charch,c;intn=0;structstudent*head,*r;print();while((ch=tolower(getchar()))!='0'){switch(ch){case'1':{printf("請(qǐng)問(wèn)有多少個(gè)學(xué)生的資料要輸入?\n");scanf("%d",&n);head=init(n);list(head);save(head);break;}case'2':{head=read();list(head);break;}case'3':{insert(head);list(head);save(head);break;}case'4':{search(head);break;}case'5':{intnum;printf("請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):\n");scanf("%d",&num);head=del(head,num);list(head);save(head);break;}case'6':{tongji(head);break;}case'7':{head=read();sort_all(head);break;}default:break;}printf("\n\n\t======>按Enter鍵返回主菜單\n");fflush(stdin);c=getchar();system("cls");print();}}精品文檔精心整理精品文檔可編輯的精品文檔 畢業(yè)設(shè)計(jì)電表管理系統(tǒng)班級(jí)____姓名____學(xué)號(hào)____摘要…………1Abstract………………………2第一章引言…………………41.1課題背景……………………41.2系統(tǒng)簡(jiǎn)介……………………5第二章系統(tǒng)的分析……………62.1系統(tǒng)開(kāi)發(fā)的目標(biāo)和思想……………………62.2系統(tǒng)的可行性分析…………8第三章系統(tǒng)的設(shè)計(jì)……………183.1系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)………183.2系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)3.3界面設(shè)計(jì)與代碼設(shè)計(jì)……………………23…………24結(jié)束語(yǔ)………………46致謝…………………47參考文獻(xiàn)……………48摘要傳統(tǒng)的電費(fèi)管理都是由工作人員手工查表,抄表完成的,其中要完成用戶電費(fèi)的收取,每月抄度,用戶購(gòu)電情況查詢,以及列出欠費(fèi)用戶的信息名單,之類的信息.其工作強(qiáng)度大,工作流程繁瑣,由于工作人員的不細(xì)心,將會(huì)造成電費(fèi)收支的出錯(cuò)也是經(jīng)常發(fā)生的.鑒于以上原因我們有必要開(kāi)發(fā)一種幫作電費(fèi)管理人員的軟件系統(tǒng),可以完成檢查用戶用電情況,每月抄度,信息錄入以及基本數(shù)據(jù)維護(hù)的各項(xiàng)功能.本系統(tǒng)采用visualbasic6.0與微軟Access數(shù)據(jù)庫(kù)方式.界面盡量做到人性化,數(shù)據(jù)維護(hù)方面做到可靠安全.關(guān)鍵字:電費(fèi)管理,visualbasic,Access,數(shù)據(jù)庫(kù)AbstractElectricityfromthetraditionalmanagementstaffareartisanalChabiao,meterreadingcompleted,whichshouldbecompletedbytheusersofelectricitypermonthpenaltyforuserstobuyelectricityenquiries,andalistofuserinformationchannelslistsuchinformation.Itswork-intensive,cumbersomeworkflow,becausestaffarenotcareful.wouldresultinthetariffrevenueisrecurringmistakes.Giventheabovereasonsweneedtodevelopamanagementsoftwaretohelpmakeelectricitysystem,theusercancompletetheinspectionofelectricitymonthlycopieddegrees,Informationincludesbasicdataandthemaintenancefunction.withthesystemusingvisualbasicMicrosoftAccess6.0database.asfaraspossiblehumanizationinterface,datamaintenancetoreliablesecurity.keyword:tariffmanagement,visualbasic,Access,thedatabase引言課題背景傳統(tǒng)的電費(fèi)管理都是由工作人員手工查表,抄表完成的,其中要完成用戶電費(fèi)的收取,每月抄度,用戶購(gòu)電情況查詢,以及列出欠費(fèi)用戶的信息名單,之類的信息.其工作強(qiáng)度大,工作流程繁瑣,由于工作人員的不細(xì)心,將會(huì)造成電費(fèi)收支的出錯(cuò)也是經(jīng)常發(fā)生的.鑒于以上原因我們有必要開(kāi)發(fā)一種幫作電費(fèi)管理人員的軟件系統(tǒng),可以完成檢查用戶用電情況,每月抄度,信息錄入以及基本數(shù)據(jù)維護(hù)的各項(xiàng)功能.本系統(tǒng)采用visualbasic6.0與微軟Access數(shù)據(jù)庫(kù)方式.界面盡量做到人性化,數(shù)據(jù)維護(hù)方面做到可靠安全.系統(tǒng)簡(jiǎn)介本系統(tǒng)主要由以下幾大功能模塊組成:用戶交費(fèi):(交納電費(fèi),本日小節(jié))本月抄度:(單戶抄度多戶抄度)資料導(dǎo)出(全部清單,欠費(fèi)清單)數(shù)據(jù)查詢(電費(fèi)查詢與統(tǒng)計(jì),用戶欠費(fèi)查詢)信息錄入(資料錄入,資料修改,資料刪除)系統(tǒng)數(shù)據(jù)維護(hù)(數(shù)據(jù)備份,數(shù)據(jù)恢復(fù))基本數(shù)據(jù)維護(hù)(用戶類型維護(hù),操作員維護(hù))幫助退出系統(tǒng)的分析系統(tǒng)開(kāi)發(fā)的目標(biāo)和思想本系統(tǒng)主要服務(wù)于電費(fèi)管理人員的日常工作.設(shè)計(jì)思路主要參照工作人員抄表,記錄資料,資料管理,信息錄入等方面的工作流程展開(kāi)的.系統(tǒng)的可行性分析本系統(tǒng)采用visualbasic6.0與微軟的access作為數(shù)據(jù)庫(kù)結(jié)合.在系統(tǒng)編寫(xiě)上具有可行性.經(jīng)濟(jì)方面:本系統(tǒng)可以服務(wù)電廠,電費(fèi)管理單位,為企業(yè)節(jié)省人力開(kāi)支.社會(huì)方面:服務(wù)于大眾,方便抄表人員工作,可靠方便.系統(tǒng)的設(shè)計(jì)系統(tǒng)的功能結(jié)構(gòu)設(shè)計(jì)程序登陸主界面程序登陸主界面用戶交費(fèi)本月抄費(fèi)資料導(dǎo)出數(shù)據(jù)查詢信息錄入系統(tǒng)數(shù)據(jù)維護(hù)基本數(shù)據(jù)維護(hù)幫助退出系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)用戶類型表:字段名稱數(shù)據(jù)類型說(shuō)明ATypeID自動(dòng)編號(hào)AType文本電費(fèi)類型UNITPRICE貨幣Adate日期/時(shí)間電費(fèi)設(shè)置日期密碼表:字段名稱數(shù)據(jù)類型姓名文本操作權(quán)限文本密碼文本MaxID表:字段名稱數(shù)據(jù)說(shuō)明TableName文本MaxID數(shù)字界面設(shè)計(jì)與代碼設(shè)計(jì)1.用戶登陸界面設(shè)計(jì):界面設(shè)計(jì)與代碼設(shè)計(jì)用戶登陸界面代碼分析:PrivateSubCommand1_Click()DimrstpchardAsNewADODB.RecordsetDimreHardAsStringDimgetidAsStringreHard=GetpcHard(getid)rstpchard.Open"select*fromgetpchard",gCnn,adOpenKeyset,adLockBatchOptimisticIfrstpchard.RecordCount=0Thenrstpchard.AddNewrstpchard.Fields(0)=reHardrstpchard.UpdateBatchadAffectCurrentElseIfTrim(reHard)<>Trim(rstpchard.Fields(0))ThenMsgBox"對(duì)不起,使用不合法請(qǐng)與開(kāi)發(fā)者聯(lián)系!",vbInformationEndEndIfEndIfIfCheck1.Value=1ThenSetrec=NewADODB.Recordsetrec.Open"select*from記住密碼",gCnn,3,3rec("標(biāo)記")="1"IfCombo2.Text<>""Thenrec("姓名")=Combo2.TextElserec("姓名")=""EndIfIfCombo1.Text<>""Thenrec("權(quán)限")=Combo1.TextElserec("權(quán)限")=""EndIfIfText2.Text<>""Thenrec("密碼")=Text2.TextElserec("密碼")=""EndIfrec.Updaterec.CloseElseSetrec=NewADODB.Recordsetrec.Open"select*from記住密碼",gCnn,3,3rec("標(biāo)記")="0"rec.Updaterec.CloseEndIfDimrec1AsADODB.RecordsetSetrec1=NewADODB.Recordsetrec1.Open"select*from登錄人員",gCnn,3,3Setrec=NewADODB.Recordsetrec.Open"select*from密碼表where姓名='"&Combo2.Text&"'and操作權(quán)限='"&Combo1.Text&"'and密碼='"&Text2.Text&"'",gCnn,3,3Ifrec.EOF=FalseThenIfrec("操作權(quán)限")<>"管理員"Then'FRMMAIN.XZCK.Enabled=FalseMDIme.mczy.Enabled=FalseMDIme.xtwh.Enabled=FalseMDIme.del.Enabled=False'FRMMAIN.DJGL.Enabled=False'FRMMAIN.delte.Enabled=FalseElse'Me.XZCK.Enabled=TrueMDIme.mczy.Enabled=TrueMDIme.xtwh.Enabled=TrueCreateNewKeyHKEY_CURRENT_USER,"ZhiYuanTechnologe"SetKeyValueHKEY_CURRENT_USER,"ZhiYuanTechnologe","UserName",dlj,REG_SZSetKeyValueHKEY_CURRENT_USER,"ZhiYuanTechnologe","PassWord",dlj,REG_SZ'FRMMAIN.DJGL.Enabled=True'FRMMAIN.delte.Enabled=TrueEndIfrec1("姓名")=Combo2.Textrec1.Updaterec1.CloseMe.HideGuser=Combo2.TextMDIme.ShowElseMsgBox"權(quán)限或密碼不正確,請(qǐng)重試!",vbInformationEndIfrec.CloseEndSubPrivateSubCommand11_Click()EndSubPrivateSubCommand2_Click()Combo2.Text=""Text2.Text=""Combo1.Text=""EndSubPrivateSubCommand3_Click()EndEndSubPrivateSubCommand4_Click()Me.HideFRMMMXG.Show1EndSubPrivateSubForm_Activate()Text2.Text=""Combo1.Text=""Combo2.Text=""Setrec=NewADODB.Recordsetrec.Open"select*from記住密碼",gCnn,3,3Ifrec("標(biāo)記")="0"Orrec("標(biāo)記")="1"ThenCheck1.Value=rec("標(biāo)記")EndIfrec.CloseSetrec=NewADODB.Recordsetrec.Open"select*from記住密碼",gCnn,3,3Ifrec("標(biāo)記")=1ThenCombo2.Text=rec("姓名")Combo1.Text=rec("權(quán)限")Text2.Text=rec("密碼")EndIfrec.CloseCommand1.SetFocusEndSubPrivateSubForm_Load()gCnn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;JetOLEDB:databasepassword="&DbPassword&";DataSource="&_App.Path&"\data\dbdb.mdb;PersistSecurityInfo=False"gCnn.CursorLocation=adUseClientgCnn.OpenSetrec=NewADODB.Recordsetrec.Open"selectdistinct姓名from密碼表",gCnn,3,3WithCombo2DoUntilrec.EOF.AddItemrec("姓名")rec.MoveNextLoopEndWithrec.CloseSetrec=NothingEndSubPrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)Cancel=TrueSelectCaseMsgBox("此操作將退出本系統(tǒng),繼續(xù)嗎?",vbYesNo,"警告")CasevbYesCancel=FalseEndCaseElseCancel=TrueEndSelectEndSub2.主界面設(shè)計(jì):主界面代碼設(shè)計(jì):PrivateSuballlm_Click()frmList.qfFlg=FalsefrmList.ShowEndSubPrivateSubbackup_Click()frmbeifen.ShowEndSubPrivateSubbenrixiaojie_Click()frmCount.ShowEndSubPrivateSubCommand1_Click()frameFee.Visible=FalseEndSubPrivateSubcmdQuery_Click()DimrstAsNewADODB.Recordsetrst.Open"select*frompanelinfowhereholder='"&Me.txtUser&"'anddelflag<>true",gCnn,adOpenStatic,adLockBatchOptimisticIfrst.RecordCount<>0Thendcvalue.Text=rst.Fields(2)txtUserName(0)=rst.Fields(1)txtUserName(1)=rst.Fields!nowecounttxtUserName(2)=rst.Fields!cendcodedtpwdate.Value=rst.Fields(4)txtUserName(3)=Format(rst.Fields!lMoney,"###0.00")txtUserName(4)=Format(rst.Fields!bmoney,"###0.00")txtUserName(6)=Format(rst.Fields!lsFee,"###0.00")'txtUserName(5)=txtUserName(1)*rst.Fields!lMoney*(rst.Fields!lightScale/100)+txtUserName(1)*txtUserName(4)*(1-rst.Fields!lightScale/100)txtUserName(5)=Format(txtUserName(1)*rst.Fields!lMoney*(rst.Fields!lightScale/100)+rst.Fields!nowecount*rst.Fields!bmoney*(1-rst.Fields!lightScale/100),"###0.00")txtUserName(8)=rst.Fields(9)txtUserName(7)=Format(Val(txtUserName(5))+Val(txtUserName(6)),"####0.00")dcNum.Text=rst.Fields(1)ElseMsgBox"沒(méi)有查詢到數(shù)據(jù)!",vbInformationEndIfrst.CloseSetrst=NothingEndSubPrivateSubdcNum_Click(AreaAsInteger)DimrstAsNewADODB.Recordsetrst.Open"select*frompanelinfowhereholderid='"&dcNum.Text&"'anddelflag<>true",gCnn,adOpenKeyset,adLockBatchOptimisticIfNotrst.EOFThendcvalue.Text=rst.Fields(2)txtUserName(0)=rst.Fields(1)txtUserName(1)=rst.Fields!nowecounttxtUserName(2)=rst.Fields!cendcodedtpwdate.Value=rst.Fields(4)txtUserName(3)=Format(rst.Fields!lMoney,"###0.00")txtUserName(4)=Format(rst.Fields!bmoney,"###0.00")txtUserName(6)=Format(rst.Fields(8),"####0.00")txtUserName(5)=Format(txtUserName(1)*txtUserName(3)*(rst.Fields!lightScale/100)+txtUserName(1)*txtUserName(4)*(1-rst.Fields!lightScale/100),"####0.00")txtUserName(8)=rst.Fields(9)txtUserName(7)=Format(Val(txtUserName(5))+Val(txtUserName(6)),"####0.00")EndIfrst.CloseEndSubPrivateSubdcvalue_Click(AreaAsInteger)DimrstAsNewADODB.Recordsetrst.Open"select*frompanelinfowhereholderid='"&dcvalue.BoundText&"'anddelflag<>true",gCnn,adOpenStatic,adLockBatchOptimisticIfNotrst.EOFThendcvalue.Text=rst.Fields(2)txtUserName(0)=rst.Fields(1)txtUserName(1)=rst.Fields!nowecounttxtUserName(2)=rst.Fields!cendcodedtpwdate.Value=rst.Fields(4)txtUserName(3)=Format(rst.Fields!lMoney,"###0.00")txtUserName(4)=Format(rst.Fields!bmoney,"###0.00")txtUserName(6)=Format(rst.Fields!lsFee,"###0.00")'txtUserName(5)=txtUserName(1)*rst.Fields!lMoney*(rst.Fields!lightScale/100)+txtUserName(1)*txtUserName(4)*(1-rst.Fields!lightScale/100)txtUserName(5)=Format(txtUserName(1)*rst.Fields!lMoney*(rst.Fields!lightScale/100)+rst.Fields!nowecount*rst.Fields!bmoney*(1-rst.Fields!lightScale/100),"###0.00")txtUserName(8)=rst.Fields(9)txtUserName(7)=Format(Val(txtUserName(5))+Val(txtUserName(6)),"####0.00")dcNum.Text=rst.Fields(1)EndIfrst.CloseSetrst=NothingEndSubPrivateSubdcvalue_KeyPress(KeyAsciiAsInteger)KeyAscii=0EndSubPrivateSubdel_Click()frmdel.ShowEndSubPrivateSubdhcb_Click()usrcopyP.ShowEndSubPrivateSubdhcp_Click()frmCopyP.ShowEndSubPrivateSubduohu_Click()frmCuifei.muser1=2frmCuifei.ShowEndSubPrivateSubedit_Click()frmEdit.ShowEndSubPrivateSubexit_Click()EndEndSubPrivateSubinsert_Click()frmInsert.Show1EndSubPrivateSubjiaonadianfei_Click()frmFee.ShowEndSubPrivateSubM_USERYTPE_Click()FRMUSERTYPE.Show1EndSubPrivateSubMDIForm_Load()loadAddEndSubPublicSubloadAdd()Ifrst.State=1Thenrst.CloseEndIfrst.Open"select*frompanelinfowheredelflag<>true",gCnn,adOpenKeyset,adLockBatchOptimisticIfrst.RecordCount<>0ThenSetdcvalue.RowSource=rstdcvalue.BoundColumn="holderID"dcvalue.ListField="holder"SetdcNum.DataSource=rstSetdcNum.RowSource=rstdcNum.ListField="holderid"IfNotrst.EOFThendcNum.Text=rst.Fields!holderiddcvalue.Text=rst.Fields(2)txtUserName(0)=rst.Fields(1)txtUserName(1)=rst.Fields!nowecounttxtUserName(2)=rst.Fields!cendcodedtpwdate.Value=rst.Fields(4)txtUserName(3)=Format(rst.Fields!lMoney,"##0.00")txtUserName(4)=Format(rst.Fields!bmoney,"###.0.00")txtUserName(6)=rst.Fields!lsFeetxtUserName(5)=Val(txtUserName(1))*Val(txtUserName(3))*(Val(rst.Fields!lightScale)/10

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論