研究生信息管理系统
printf("\t\t‖2、删除以离开学员5、清除所有学员信息‖\n");
printf("\t\t‖3、查询学员信息6、显示所有学员信息‖\n");
printf("\t\t‖〖按任意键退出〗‖\n");
printf("\t\t‖*********************************************‖\n");
//检测到空字符串,则将fp所指向的文件关闭,以读写方式重新打开
if(strcmp(str,"")==0)
{
fclose(fp);
fp=fopen("StudentMessage","rb+");
break;
}
k++;
}
offset=sizeof(stu)*k;
fseek(fp,offset,SEEK_SET);
}
while(!feof(fpp))
{
fread(&checkID,sizeof(stu),1,fpp);
//检测用户输入的学号是否已经存在,若存在则终止程序的执行
if(strcmp(checkID.ID,stuID)==0)
{
break;
}
id++;
}
fclose(fpp);
return id*k;
fwrite(&stu,sizeof(stu),1,fp);
fclose(fp);
printf("插入数据成功!\n");
}
}
/******************检测将要插入的学号是否已存在文件记录中**************************/
int check(char stuID[10])
{
printf("文件打开失败!\n");
return;
}
else
{
char message[10]; //接收用户需要删除的学号
int i;
long flength;
fseek(fp,0,SEEK_END); //把文件指针移到文件尾
flength=ftell(fp)/sizeof(struct student); //计算文件中有多少条记录
课程设计报告书
课程名称:数据库课程设计
设计题目:研究生信息管理系统
指导老师:
专业:
班级:
组员:
设计题目:研究生信息管理系统
功能描述:整个系统从总体上分为系统管理、专业管理、课程管理、研究生管理、成绩管理、用户管理;下分对应专业浏览、
课程浏览、研究生浏览、成绩浏览和修改密码。
概要设计:
系统总体流程图:
{
id=1;
break;
}
else
{
id=0;
}
}
fclose(fpp);
return id;
}
/*******************根据用户输入的学号删除已离开学员************/
void Delete()
{
printf("删除相应记录!\n");
if((fp=fopen("StudentMessage","rb+"))==NULL) //以可读可写方式打开一个二进制文件
详细设计:研究生信息管理系统界面
研究生管理代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
/***********************字定义函数声明********************************/
Search(); //查询学员信息
getch();
system("cls");
break;
case 4:
Alter(); //修改学员信息
getch();
system("cls");
break;
case 5:
delete_all(); //清空所有记录
getch();
system("cls");
break;
printf("籍贯:%s ",stu.nativePlace);
printf("电话:%s ",stu.phone);
printf("年级专业:%s\n",stu.major);
}
fclose(fp);
}
}
/******************修改学员信息********************************/
case 6:
Views(); //显示所有学员信息
getch();
system("cls");
break;
default:
exit(0);
}
}
}
/*****************插入新记录*******************************/
void Add()
{
if((fp=fopen("StudentMessage","ab+"))==NULL)
printf("\t请输入您要删除的学号:");
scanf("%s",message);
i=check(message);
long offset=sizeof(stu)*i; //记录要删除的学号的位置
if(flength==0)
{
printf("文件记录为空!\n");
return;
}
else if(i>flength)
fseek(fp,offset,SEEK_SET); //移动指针到要删除的学号的位置
fwrite(&stu,sizeof(stu),1,fp); //将置空的信息重新写回到文件中
printf("\t\t数据删除成功!\n");
}
fclose(fp);
}
}
/******************查找数据***************************************/
/*********************定义学员信息结构体**********/
struct student
{
//学员信息(学号,姓名,性别,籍贯,电话,年级专业);
char ID[10];
char name[10];
char sex[4];
char nativePlace[10];
char phone[13];
void Add(); //添加新学员
void Delete(); //删除已离开学员
void Search(); //查询学员信息
void Alter(); //修改学员信息
void Views(); //显示所有学员信息
void delete_all(); //清除所有记录
int check(char strID[]); //查找文件记录中已经存在的学员ID
{
printf("没有该学员信息!\n");
return;
}
else
{
//将要删除的字符串全部置为空
strcpy(stu.ID,"");
strcpy(,"");
strcpy(stu.sex,"");
strcpy(stu.major,"");
strcpy(stu.phone,"");
strcpy(stu.nativePlace,"");
void Search()
{
if((fp=fopen("StudentMessage","rb"))==NULL) //以只读方式打开StudentMessage文件
{
printf("\t文件打开失败!\n");
return;
}
else
{
char message[10]; //接收用户需要查找的信息
printf("\n");
scanf("%d",&flag);
switch(flag)
{
case 1:
Add(); //添加新学员
getch();
system("cls");
break;
case 2:
Delete(); //删除已离开学员
getch();
system("cls");
break;
case 3:
void Alter()
goto input_message; //跳转到“input_message”标记处继续执行
}
printf("\t姓名:");
scanf("%s",&);
printf("\t性别:");
scanf("%s",&stu.sex);
printf("\t籍贯:");
scanf("%s",&stu.nativePlace);