VB课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

设计目的:将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性练习,以达到对所学知识熟练掌握、灵活应用的目的。通过课程设计,学生在下述各方面的能力应该得到锻炼:1.对于给定的设计题目,如何进行分析、理解,以做到思路清晰。2.掌握自顶而下的设计方法,将大问题进行模块化分解,领会结构化程序设计的方法,同时深刻认识到面向对象程序设计与面向过程程序设计的根本区别。3.熟练掌握VB常用控件的使用,灵活运用各种数据类型。4.进一步掌握在集成环境下调试程序和修改程序的方法和技巧。设计环境:1.硬件环境PentiumII以上微机,内存32MB以上,建议64MB。2.操作系统Windows98/2000/XP。3.编程环境VisualBasic6.0程序设计语言,Access97/2000数据库。设计要求:1.首先出现“欢迎界面”,登录成功后以菜单形式提供其它功能界面,要求界面具有良好的交互功能。2.提前编制下次调试的程序,对于难点问题要积极查阅相关教材、资料,计划好每次上机的内容,高效、独立地完成这次设计任务。3.程序及时进行存储备份,以免机器故障或其他同学的误操作而丢失程序。4.设计结束,按要求及时上交源程序和设计报告。报告包含以下内容:功能介绍,任务分解,各个功能块的主要设计思路和实现方法,程序主要界面,设计心得体会。设计选题:1.设计题目:小型学生成绩管理系统2.设计内容:完成学生信息(学号,姓名,性别,年龄)的初始化、成绩的录入、学生的查询、学生库的维护及学生成绩的统计(10名学生信息即可)。①初始化:通过建立数据库,从键盘输入基本信息。②维护、查询及统计信息如下:•添加、删除学生的信息、成绩录入。•按学号、姓名查询某学生信息。•男女生人数统计,统计平均成绩不及格的学生。•按平均成绩由高到低排序输出学生的所有信息(但不能破坏原有的存储信息)。3.设计步骤•分析学生信息各字段的属性,选择适当的存储结构。•分析各个统计功能的要求。•画出各功能块的N-S流程图。•根据流程图编写程序清单。•上机调试程序。•考察运行结果,是否符合题目要求;若有问题,不断调试,直至成功。数据库包含的数据表参考如下:学生库.mdb——成绩表序号字段名类型长度1学号文本32姓名文本43性别文本24年龄数字25高数成绩数字36英语成绩数字37计算机成绩数字38平均成绩数字3密码表字段名类型长度用户文本8密码文本6在运行时,对于学生的成绩进行录入,平均成绩要公式运算。#includestdio.h/*引用库函数*/#includestdlib.h#includectype.h#includestring.htypedefstruct/*定义结构体数组*/{charnum[10];/*学号*/charname[20];/*姓名*/intscore;/*成绩*/}Student;Studentstu[80];/*结构体数组变量*/intmenu_select()/*菜单函数*/{charc;do{system(cls);/*运行前清屏*/printf(\t\t****Students'GradeManagementSystem****\n);/*菜单选择*/printf(\t\t|1.InputRecords|\n);printf(\t\t|2.DisplayAllRecords|\n);printf(\t\t|3.Sort|\n);printf(\t\t|4.InsertaRecord|\n);printf(\t\t|5.DeleteaRecord|\n);printf(\t\t|6.Query|\n);printf(\t\t|7.Statistic|\n);printf(\t\t|8.AddRecordsfromaTextFile|\n);printf(\t\t|9.WritetoaTextfile|\n);printf(\t\t|0.Quit|\n);printf(\t\t*****************************************\n);printf(\t\t\tGiveyourChoice(0-9):);c=getchar();/*读入选择*/}while(c'0'||c'9');return(c-'0');/*返回选择*/}intInput(Studentstud[],intn)/*输入若干条记录*/{inti=0;charsign,x[10];/*x[10]为清除多余的数据所用*/while(sign!='n'&&sign!='N')/*判断*/{printf(\t\t\tstudent'snum:);/*交互输入*/scanf(\t\t\t%s,stud[n+i].num);printf(\t\t\tstudent'sname:);scanf(\t\t\t%s,stud[n+i].name);printf(\t\t\tstudent'sscore:);scanf(\t\t\t%d,&stud[n+i].score);gets(x);/*清除多余的输入*/printf(\t\t\tanymorerecords?(Y/N));scanf(\t\t\t%c,&sign);/*输入判断*/i++;}return(n+i);}voidDisplay(Studentstud[],intn)/*显示所有记录*/{inti;printf(\t\t\t-----------------------------------\n);/*格式头*/printf(\t\t\tnumbernamescore\n);printf(\t\t\t-----------------------------------\n);for(i=1;in+1;i++)/*循环输入*/{printf(\t\t\t%-16s%-15s%d\n,stud[i-1].num,stud[i-1].name,stud[i-1].score);if(i1&&i%10==0)/*每十个暂停*/{printf(\t\t\t-----------------------------------\n);/*格式*/printf(\t\t\t);system(pause);printf(\t\t\t-----------------------------------\n);}}printf(\t\t\t);system(pause);}voidSort_by_num(Studentstud[],intn)/*按学号排序*/{inti,j,*p,*q,s;chart[10];for(i=0;in-1;i++)/*冒泡法排序*/for(j=0;jn-1-i;j++)if(strcmp(stud[j].num,stud[j+1].num)0){strcpy(t,stud[j+1].num);strcpy(stud[j+1].num,stud[j].num);strcpy(stud[j].num,t);strcpy(t,stud[j+1].name);strcpy(stud[j+1].name,stud[j].name);strcpy(stud[j].name,t);p=&stud[j+1].score;q=&stud[j].score;s=*p;*p=*q;*q=s;}}intInsert_a_record(Studentstud[],intn)/*插入一条记录*/{charx[10];/*清除多余输入所用*/printf(\t\t\tstudent'snum:);/*交互式输入*/scanf(\t\t\t%s,stud[n].num);printf(\t\t\tstudent'sname:);scanf(\t\t\t%s,stud[n].name);printf(\t\t\tstudent'sscore:);scanf(\t\t\t%d,&stud[n].score);gets(x);n++;Sort_by_num(stud,n);/*调用排序函数*/printf(\t\t\tInsertSuccessed!\n);/*返回成功信息*/return(n);}intDelete_a_record(Studentstud[],intn)/*按姓名查找,删除一条记录*/{chars[20];inti=0,j;printf(\t\t\ttellmehis(her)name:);/*交互式问寻*/scanf(%s,s);while(strcmp(stud[i].name,s)!=0&&in)i++;/*查找判断*/if(i==n){printf(\t\t\tnotfind!\n);/*返回失败信息*/return(n);}for(j=i;jn-1;j++)/*删除操作*/{strcpy(stud[j].num,stud[j+1].num);strcpy(stud[j].name,stud[j+1].name);stud[j].score=stud[j+1].score;}printf(\t\t\tDeleteSuccessed!\n);/*返回成功信息*/return(n-1);}voidQuery_a_record(Studentstud[],intn)/*查找并显示一个记录*/{chars[20];inti=0;printf(\t\t\tinputhis(her)name:);/*交互式输入*/scanf(\t\t\t%s,s);while(strcmp(stud[i].name,s)!=0&&in)i++;/*查找判断*/if(i==n){printf(\t\t\tnotfind!\n);/*输入失败信息*/return;}printf(\t\t\this(her)number:%s\n,stud[i].num);/*输出该学生信息*/printf(\t\t\this(her)score:%d\n,stud[i].score);}voidStatistic(Studentstud[],intn)/*新增功能,输出统计信息*/{inti,j=0,k=0,sum=0;floataver;/*成绩平均值*/for(i=0;in;i++)/*循环输入判断*/{sum+=stud[i].score;if(stud[j].scorestud[i].score)j=i;if(stud[k].scorestud[i].score)k=i;}aver=1.0*sum/n;printf(\t\t\tthereare%drecords.\n,n);/*总共记录数*/printf(\t\t\tthehignestscore:\n);/*最高分*/printf(\t\t\tnumber:%sname:%sscore:%d\n,stud[j].num,stud[j].name,stud[j].score);printf(\t\t\tthelowestscore:\n);/*最低分*/printf(\t\t\tnumber:%sname:%sscore:%d\n,stud[k].num,stud[k].name,stud[k].score);printf(\t\t\ttheaveragescoreis%5.2f\n,aver);/*平均分*/}intAddfromText(Studentstud[],intn)/*从文件中读入数据*/{inti=0,num;FILE*fp;/*定义文件指针*/charfilename[20];/*定义文件名*/printf(\t\t\tInputthefilename:);scanf(\t\t\t%s,filename);/*输入文件名*/if((fp=fopen(filename,rb))==NULL)/*打开文件*/{printf(\t\t\tcann'topenthefile\n)

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功