网络数据库论文草稿.doc_第1页
网络数据库论文草稿.doc_第2页
网络数据库论文草稿.doc_第3页
网络数据库论文草稿.doc_第4页
网络数据库论文草稿.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

滨江学院 网络数据库系统设计题 目 学籍管理系统 院 系 滨江学院电子工程系专 业 通信工程 学生姓名 唐 磊 学 号 20102334031 指导教师 姜青山 二0 一二 年 十二 月 十五 日一、需求分析为了分析教学效果并进行相应的学籍处理,各学校每到学期末都对综合成绩进行分类统计、上报成绩汇总结果等,这给每位老师和学籍管理人员带来很大的工作量。使用学籍管理系统可以减少工作者的工作负担。为了方便管理人员查找学生信息,学籍管理系统应实现以下功能:1、能录入学生的基本信息,包括学号、姓名、专业、年级、性别和出生日期信息,保存到结构体数组中。2、能根据输入的学号查找学生,进行信息的修改。3、能根据输入的学号从结构体数组中删除学生的记录。4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。5、能在屏幕上以列表的方式输出所有学生的信息。二、软件总体设计1、系统功能结构图根据项目的开发要求,本系统划分成六个主功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询信息模块、输出模块和系统退出模块。系统功能结构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体StuMessage 表示,包括6个属性,stuNo、name、spec、grade、sex、birthday 分别代表学生的学号、姓名、专业、年级、性别和出生日期,其中 birthday 类型为自定义的结构体类型 Date。struct StuMessage char stuNo11; /学号 char name9; /姓名 char spec21; /专业 int grade; /年级 char sex; /性别 struct Date birthday; /出生日期;日期类型 Date 包括三个属性,分别代表年、月、日。struct Date int year; /年 int month; /月 int day; /日;3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h头文件和3个.c源文件组成。程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。以下是这些函数的函数原型及功能设计。(1) void SysInfo(void);函数功能:在屏幕上输出系统及版权信息并等待用户响应。(2) void MenuOfMain(struct StuMessage stu);函数功能: 在屏幕上显示主菜单,接收用户选择并响应用户相应操作。(3) void Append(struct StuMessage stu);函数功能: 录入一条学生记录到记录数组的末尾。(4) void Modify(struct StuMessage stu);函数功能: 通过输入学号查询学生的相应记录信息,如果存在在屏幕上输出相应学生记录并通过重新输入的方法修改该学生的记录,否则输出没有找到相关记录。(5) void Delet(struct StuMessage stu);函数功能: 通过输入学号查询学生的相应记录信息,如果存在在屏幕上输出相应学生记录,用户确认删除后调用 DelList() 函数将其删除,否则输出没有找到相关记录。(6) void MenuOfSear(struct StuMessage stu);函数功能: 在屏幕上显示查询子主菜单,接收用户选择并响应用户操作。(7) void ListAll(struct StuMessage stu);函数功能: 在屏幕上以列表方式输出所有学生的信息。调用 PrintHead() 输出表头,再调用 ListOne() 函数逐一输出各条记录。(8) void Quit(void);函数功能: 退出菜单系统,并调用exit(0) 系统函数结束程序运行。(9) void SearNum(struct StuMessage stu);函数功能: 通过输入学号调用 NumOfSear() 函数查询学生的相应记录信息,如果存在调用 PrintHead() 函数和 ListOne() 函数在屏幕上输出相应学生记录,否则输出没有找到相关记录。(10) void SearGrade(struct StuMessage stu);函数功能: 通过输入年级查询学生的相应记录信息,如果存在在屏幕以列表方式输出相应学生记录,并输出统计满足条件的学生个数,否则输出没有找到相关记录。(11) int NumOfSear(struct StuMessage stu, char stuNum); 函数功能: 根据接收到的学生学号,在相应记录数组中进行查询,如果存在相应记录,返加相应的数组下标,否则返回-1。(12) void PrintHead(void);函数功能: 在屏幕上显示输出列表的表头。(13) void ListOne(struct StuMessage list);函数功能: 在屏幕上以行的方式显示输出一个学生的相关信息。(14) int DelList(struct StuMessage stu, int i);函数功能: 如果数组中存在下标为 i 的记录,删除该记录并返回 1,否则返回 0。4、小组成员分工组员 1main(); SystemInfo(); MenuOfMain(); Quit();组员 2PrintHead(); ListOne(); ListAll(); Apend();组员 3Modify(); Delte(); DelList(); MenuOfSear(); SeraNum(); SearGrade(); NumOfSear();三、软件详细设计1、系统主函数 main()设计2、主菜单模块函数 MenuOfMain() 设计3、录入学生信息功能模块函数 Append() 设计4、修改学生信息功能模块函数 Modify() 设计5、删除学生信息功能模块函数 Delete() 设计6、查询菜单模块函数 MenuOfSear() 设计7、按学号查询功能模块函数 SearNum() 设计8、按年级查询功能模块函数 SearGrade() 设计9、输出学生信息功能模块函数 ListAll() 设计四、系统编码、测试#include #include #include #define true 1struct student/声明一个结构体类型 char name60;/姓名 char ID7;/学号 char xueyuan60;/学院;int dq(struct student st);/声明函数void xianshi();/显示菜单功能函数的声明void bc(struct student st);/保存功能函数的声明void add(); /添加信息功能函数的声明void select();/查看信息功能函数声明void zz();/作者介绍功能函数声明void chazhao();/查找菜单功能函数声明void xhcz();/根据学号查找信息功能函数声明void xmcz();/根据姓名查找信息功能函数声明void xg();/修改菜单功能函数声明void xhxg();/根据学号修改信息功能函数声明 void xmxg();/根据姓名修改信息功能函数声明void bca();/提示已保存功能函数声明void fh();/提示返回菜单功能函数声明struct student st300; int Number=0; void main()/主函数 用于调用各个功能函数 int choose=0; FILE *fp=NULL;/打开输入文件 char yesorno; if(fp=fopen(C:/student.dat,rb)=NULL) printf(n=提示:文件不存在,是否要创建一个?(y/n)n); scanf(%c,&yesorno); if(yesorno=y|yesorno=Y) fp=fopen(C:/student.dat,wb);/为读写建立一个新的二进制文件 fclose(fp);/关闭fp else exit(0); else Number=dq(st); system(cls); while(true) xianshi(); printf(tt=请选择:); scanf(%d,&choose); system(cls); switch(choose)/用switch 实现功能函数的调用 case 0: exit(0);fh();break; case 1: add();fh();break; case 2: select();fh();break; case 3: chazhao();fh();break; case 4: xg();fh();break; case 5:zz();fh();break; case 6:bca();break; default:break; fflush(stdin); getchar(); system(cls); void bca()/功能函数 用来实现提示 已保存 printf(t=程序在运行时已自动保存.n);void fh()/功能函数 用来实现 提示 按enter 键返回主菜单 printf(t=按Enter键返回主菜单n);void xg() /功能函数 用来实现调出 修改菜单 int way=0; printf(请选择修改查找方式n); printf(1 按姓名查找修改n); printf(2 按学号查找修改n); scanf(%d,&way); switch(way)/用SWITCH通过调用功能函数来实现菜单的功能 case 1: xmxg();break; case 2: xhxg();break; default: printf(输入有误,结束!n);break; void xmxg() /功能函数 用来实现通过姓名修改信息 FILE *fp=NULL;/打开输入文件 char name60; int i=0; int changeIndex=0; int index=0; printf(请输入要修改的学生姓名:); scanf(%s,name);getchar(); for (i=0;iNumber;i+)/通过循环结构找出 与名字对应的i(位置) if (strcmp(name,) changeIndex=i; break; printf(t姓名t学号t成绩n); printf(t%st%st%dnn,stchangeI,stchangeIndex.ID,stchangeIndex.xueyuan); printf(请重新输入该学生信息); printf(姓名:); scanf(%s,stchangeI);getchar(); printf(学号:); scanf(%s,stchangeIndex.ID);getchar(); printf(学院:); scanf(%d,&stchangeIndex.xueyuan);getchar(); fp=fopen(C:/student.dat,wb);/保存 for (i=0;iNumber;i+) fwrite(&sti,sizeof(struct student),1,fp); fclose(fp);void xhxg()/原理同上 FILE *fp=NULL; char id60; int i=0; int changeIndex=0; int index=0; printf(请输入要修改的学生学号:); scanf(%s,id); for (i=0;iNumber;i+) if (strcmp(id,sti.ID) changeIndex=i; break; printf(t姓名t学号t学院n); printf(t%st%st%dnn,stchangeI,stchangeIndex.ID,stchangeIndex.xueyuan); printf(请重新输入该学生信息); printf(姓名:); scanf(%s,stchangeI);getchar(); printf(学号:); scanf(%s,stchangeIndex.ID);getchar(); printf(学院:); scanf(%d,&stchangeIndex.xueyuan);getchar(); fp=fopen(C:/student.dat,wb); for (i=0;i修改成功n);void chazhao()/功能函数 用来实现 调出查找菜单 int n=0; printf(1 按姓名查找n); printf(2 按学号查找n); scanf(%d,&n); switch(n)/通过switch调用功能函数来实现菜单的功能 case 1: xmcz();break; case 2: xhcz();break; default: printf(输入有误,结束!n); break; void xhcz() /功能函数 实现通过学号查找学生信息的功能 char id7; int i=0; printf(请输入要查找学生学号:); scanf(%s,id); system(cls); printf(t姓名t学号t学院n); for(i=0;iNumber;i+)/通过循环语句找出信息 if (strcmp(id,sti.ID)=0) printf(t%st%st%dn,,sti.ID,sti.xueyuan); void xmcz()/原理同上 char name7; int i=0; printf(请输入要查找学生姓名:); scanf(%s,name); system(cls); printf(t姓名t学号t学院n); for (i=0;iNumber;i+) if (strcmp(name,)=0) printf(t%st%st%dn,,sti.ID); void zz()/功能函数 用于输出作者信息 printf(t*nn); printf(t 学生学籍管理系统 nn); printf(t 南京信息工程大学 nn); printf(t 滨江学院 nn); printf(t 唐 磊 nn); printf(t*nn);void select()/功能函数 用于实现输出学生信息 int i=0; printf(以下是全部学生的信息n); printf(t姓名t学号t学院n); for(i=0;iNumber;i+)/通过FOR循环 输出 printf(t%st%st%dn,,sti.ID,sti.xueyuan); void add()/功能函数 用于实现添加学生信息 int numberTemp=0; int i=0; struct student temp; printf(请输入要增加学生成绩个数:); scanf(%d,&numberTemp); for(i=0;inumberTemp;i+)/通过FOR循环 依次将学生信息输入 printf(输入第%d个同学信息n,i+1); printf(姓名:); scanf(%s,); printf(学号:); scanf(%s,temp.ID); printf(学院:); scanf(%d,&temp.xueyuan);while(getchar() != n); stNumber+=temp; bc(&temp);/保存 printf(添加成功n);void bc(struct student *st) FILE *fp=NULL;/打开输入文件 fp=fopen(C:/student.dat,ab+);/将文件保存到指定位置 fwrite(st,sizeof(struct student),1,fp); fclose(fp);/关闭fpint dq(struct student st) FILE *fp=NULL;/打开输入文件 int i=0; fp=fopen(C:/student.dat,rb); while(fread(&sti,sizeof(struct student),1,fp)/当存入数据后将i自加 (新的存储位置) i+; fclose(fp);/关闭fp return

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论