[程序设计]用C语言开发微型数据库管理系统 (高手帮忙啊!求救!!急急急!!!)
拜托各位高手帮帮忙拉!!题目如下,主要是程序源代码,其他的可不管,急需答案!拜托!拜托!!
设某班有n位同学,每位同学的数据包括以下内容:学号(字符串)、姓名(字符串)、数学成绩(字符串)、程序设计成绩(字符串)。设计程序完成以下五项功能:新建数据档案、添加数据、删除数据、对输入的数据进行排序和查询。
注: 采用模块化程序设计思想对系统进行设计; 学生的数据要求用文件保存; 学生的学号作为关键字段,不能相同,姓名可以相同。 要求使用结构体,链或数组等实现
一、文件名规定
1. 数据库文件名: students.dat(文本文件)
2. 数学成绩排序文件名:sxcj.dat(文本文件)
3. 程序设计成绩排序名:cxsj.dat(文本文件)
二、宏定义、记录结构和全局变量
#define NULL 0
#define LEN sizof(STD) typedef struct {
char xh[12]; /*学号*/
char xm[12]; /*姓名*/
char sxcj[5]; /*数学成绩*/
char cxsj[5]; /*程序设计成绩*/
char zf[5]; /*总分*/
struct std *next /*指向下条记录*/
struct std *prev /*指向上条记录*/
}STD;
STD *head=NULL; /*链表头指针,定义为全局变量*/
STD *tail=NULL; /*链表尾指针,定义为全局变量*/
STD *current=NULL; /*链表当前结点指针,定义为全局变量*/
【要求】 1.程序运行时,首先显示主菜单如下:
1.新建数据
2.添加数据
3.删除数据
4.排序
5.查询
6.退出 请输入序号选择相应操作
用户输入序号后,程序进行相应操作。
2.在主菜单中选择序号4,弹出子菜单选择排序方式,子菜单如下:
1.数学成绩排序
2.程序设计成绩排序
3.总分排序。
4.返回主菜单 请按序号选择相应操作
选择子菜单的序号后,程序能正确运行并在屏幕上显示按要求排序后的相关信息
3.在主菜单中选择序号5,弹出子菜单选择查询方式,子菜单如下:
1.学号查询
2.姓名查询
3.数学成绩查询
4.程序设计成绩查询
5.总分查询
6.返回主菜单
请按序号选择相应操作
在子菜单中选择序号后,程序按以下方式工作。
(1)学号查询:输入学号后,若该学号存在则显示与其相关的所有信息,否则显示找不到的提示信息;(提示:查询到满足条件的结果后,查询即可结束)
(2)姓名查询:输入姓名后,若该姓名存在则显示与其相关的所有信息,否则显示找不到的提示信息;(提示:使用字符串比较函数进行比较)
(3)按科目查询:输入指定分数,程序运行后显示该科目中考试成绩大于等于指定分数的同学的学号、姓名以及该科成绩并统计满足条件的人数;
(4)总分查询:输入指定分数,程序运行后显示总分成绩大于等于指定分数的同学的学号、姓名以及各科成绩并统计满足条件的人数。
[课程报告的具体格式示范] 课程报告必须有封面
1、数据结构:
此部分要求说明用来表示题目中数据的数据结构;
如: int m[MAXNUM];
m数组用来表示一个最多12个人队列;
m[2]:表示第二个人是否在队中,其取值为1表示在队列中,为0表示已出列,不在队列中;
2、算法描述:
此部分要求写出算法的基本思想以及程序中模块(函数)的划分原则;可选择采用伪代码或流程图的方式来说明各模块(函数)的基本思想和思路。
3、程序清单:
程序清单要求加详细注释;如下例所示:
/*本程序完成1到30的累加求和*/
main()
{int I,sum;/ *I:循环变量;sum:求和结果*/
/*开始求和*/
for(sum=0,I=1;I=30;I++)
sum+=I;
/*输出结果*/ printf(“SUM=%d\n”,sum);