C语言程序设计,有关管理系统的,急!
学校让做管理系统,从下面几个题目中选一个:1.电子通讯管理系统2.音像图书管理系统3.电子生词库4.学生信息管理系统【要求:】数据录入:录入系统所需的数据,用链表或结构体...
学校让做管理系统,从下面几个题目中选一个:
1.电子通讯管理系统
2.音像图书管理系统
3.电子生词库
4.学生信息管理系统
【要求:】
数据录入:录入系统所需的数据,用链表或结构体数组组织数据
数据存储:将录入的数据存储,用文件的形式将录入的数据存储
数据读写:对数据进行读写操作,并进行读写操作
数据修改:对数据进行更新操作,可以进行新数据的插入,旧数据的修改操作
数据删除:对数据进行删除操作,根据具体题目将对应记录删除
数据查询:按要求对数据进行查询,含简单查询及组合查询
数据统计:按要求对数据进行统计,含简单统计及综合统计
数据排序:按要求对数据进行排序,含升序排序及降序排序
数据报表:按要求对数据打印报表,依规定的报表格式对数据打印报表
界面:设计总体菜单界面,简单菜单、下拉式或弹出式
密码设置:用户进入系统时,有不同用户名和密码的输入
以电子通信管理系统为例
应包括:
1 创建通讯录
2 显示通讯录
3 查询通讯录
4 修改通讯录
5 添加通讯录
6 删除通讯录
7 排序通讯录
这几部分功能。
------------------------------------
哪位高手帮咱解决!!!!!!
只要能弄出来程序,我加赏!!!!!!
尽快!!!!!!!!
发到我的邮箱:709896028@qq.com
程序越简单越好,
用结构体什么的, 展开
1.电子通讯管理系统
2.音像图书管理系统
3.电子生词库
4.学生信息管理系统
【要求:】
数据录入:录入系统所需的数据,用链表或结构体数组组织数据
数据存储:将录入的数据存储,用文件的形式将录入的数据存储
数据读写:对数据进行读写操作,并进行读写操作
数据修改:对数据进行更新操作,可以进行新数据的插入,旧数据的修改操作
数据删除:对数据进行删除操作,根据具体题目将对应记录删除
数据查询:按要求对数据进行查询,含简单查询及组合查询
数据统计:按要求对数据进行统计,含简单统计及综合统计
数据排序:按要求对数据进行排序,含升序排序及降序排序
数据报表:按要求对数据打印报表,依规定的报表格式对数据打印报表
界面:设计总体菜单界面,简单菜单、下拉式或弹出式
密码设置:用户进入系统时,有不同用户名和密码的输入
以电子通信管理系统为例
应包括:
1 创建通讯录
2 显示通讯录
3 查询通讯录
4 修改通讯录
5 添加通讯录
6 删除通讯录
7 排序通讯录
这几部分功能。
------------------------------------
哪位高手帮咱解决!!!!!!
只要能弄出来程序,我加赏!!!!!!
尽快!!!!!!!!
发到我的邮箱:709896028@qq.com
程序越简单越好,
用结构体什么的, 展开
4个回答
展开全部
要求:
合理运用C语言的数组,指针,结构体以及文件操作等,实现一个模拟的班级通讯录管理系统。
该系统用来管理学生的基本信息,通信信息。具体的要如下:
1) 工作人员可以通过此程序来管理学生的信息,包括查询,添加,修改,删除等功能。
2) 在进行添加时,系统会自动监测所添加的学生信息是否已经存在,如果存在,会提示用户,
该学生已经存在。
3) 在删除时,要首先弹出对话框,让用户确认是否删除。只有经过确认才能够被删除。
4) 在进行学生信息管理时,不准用户修改学号。
5) 通过键盘或读取文件的方法读取学生的信息。
6) 能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如 do while,for,if-else,if等)。
7) 程序要有主菜单,能够完成主要的功能。
[附1]
有关学生的信息,包括,学号,姓名,性别,年龄,电话。
[附2]
我是大一的新生,现在C的内容还没有完全学完,关于枚举,链表,文件操作等还未学,所以请各位高手在帮小弟时多加一点提示,不然我可能看不懂```
还有,关于第(4)个要求和第(7)个要求,可以忽略```
*/
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
typedef struct Student//学生信息
{
signed short id;
char name[11];
char sex[7];
signed short age;
char telNum[16];
}Student;
typedef struct Node
{
Student data;
Node* next;
}Node;
static Node* begin=NULL;//哨兵结点
static signed short len=0;//链表长度
void printMenu();//打印菜单
void printBye();//打印结束语
void printList();//打印所有学生信息
void printStudent(Student st);//打印学生信息
Node* lookupNode(signed short stid);//根据学号查询学生信息。
int addNode(Student st);//添加学生信息。成功返回链表长度。内存分配失败-1;信息重复0
int deleteNode(signed short stid); //根据学号删除学生信息。成功返回链表长度;未找到-1
int updateNode(Student st);//根据学号修改学生信息。成功返回链表长度;未找到0
void main()
{
//初始化链表。
begin=(Node*)malloc(sizeof(Node));
begin->next=NULL;
printf("----------------------------------------------------------------------------\n");
printf("--- 班级信息管理系统 ---\n");
printf("--- 沙支夸依 2007-12-21 ---\n");
printf("----------------------------------------------------------------------------\n");
printf("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n");
printMenu();
while (1)
{
char ch;
ch=getchar();
fflush(stdin);
Student student;
memset(&student,0,sizeof(Student));
switch (ch)
{
case '1':
printf("---添加学生信息。(学号为 0 结束)\n");
while (1)
{
printf("请输入新学号: ");
scanf("%d", &student.id);
if (!student.id)
break;
printf("请输入学生姓名: ");
fflush(stdin);
gets(student.name);
printf("请输入学生姓别: ");
scanf("%s", student.sex);
printf("请输入学生年龄: ");
scanf("%d", &student.age);
printf("请输入学生电话: ");
scanf("%s", student.telNum);
int succ=addNode(student);
if (succ)
{
if (-1==succ)
printf("内存错误!请重新输入!\n");
}
else
printf("对不起!该学号已被占用!\n");
printf("\n");
}
break;
case '2':
printf("---删除学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要删除学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* delNode=lookupNode(stid);
if (!delNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(delNode->data);
printf("您确定要删除这条记录吗?(任意键删除/ n 取消)\n");
fflush(stdin);
char cDelete=getchar();
if ('n'==cDelete)
continue;
printf("删除成功!剩余记录数: %d\n",deleteNode(stid));
}
printf("\n");
}
break;
case '3':
printf("---修改学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要修改学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* updataNode=lookupNode(stid);
if (!updataNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(updataNode->data);
Student student;
student.id=stid;
printf("修改学生姓名: ");
fflush(stdin);
gets(student.name);
printf("修改学生姓别: ");
scanf("%s", student.sex);
printf("修改学生年龄: ");
scanf("%d", &student.age);
printf("修改学生电话: ");
scanf("%s", student.telNum);
updateNode(student);
printf("修改成功!\n");
printStudent(updataNode->data);
}
printf("\n");
}
break;
case '4':
printf("---查询学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要修改学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* findNode=lookupNode(stid);
if (!findNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(findNode->data);
}
printf("\n");
}
break;
case '5':
printList();
printMenu();
break;
case '6':
printBye();
return;
default:
printMenu();
}
}
}
void printMenu()
{
printf("----------------------------------------------------------------------------\n");
printf("--- 1、增加学生信息。 2、删除学生信息。 ---\n");
printf("--- 3、修改学生信息。 4、查询学生信息。 ---\n");
printf("--- 5、打印所有信息。 6、退出。 ---\n");
printf("----------------------------------------------------------------------------\n");
}
void printBye()
{
printf("----------------------------------------------------------------------------\n");
printf(" 感谢您使用班级信息管理系统 \n");
printf(" 再 见 \n");
printf("----------------------------------------------------------------------------\n");
}
void printList()
{
Node* temp=begin->next;
if (!temp)
{
printf("暂时无记录可供操作!\n");
}
while (temp)
{
printStudent(temp->data);
temp=temp->next;
}
}
void printStudent(Student st)
{
printf("学号:%-6d 姓名:%-10s 性别:%-6s 年龄:%-3d 电话:%-15s\n",
st.id, st.name, st.sex, st.age, st.telNum);
printf("--------------------------------------------------------------------------\n");
}
Node* lookupNode(signed short stid)
{
Node* temp=begin->next;
while (temp)
{
if (temp->data.id==stid)
return temp;
temp=temp->next;
}
return NULL;
}
int addNode(Student st)
{
if (lookupNode(st.id))
return 0;
Node* temp=(Node*)malloc(sizeof(Node));
if (!temp)
return -1;
temp->data=st;
temp->next=begin->next;
begin->next=temp;
return ++len;
}
int deleteNode(signed short stid)
{
Node* temp=begin;
Node* pos=NULL;
while (temp->next)
{
if (temp->next->data.id==stid)
{
pos=temp->next;
temp->next=pos->next;
free(pos);
return --len;
}
temp=temp->next;
}
return -1;
}
int updateNode(Student st)
{
Node* temp=lookupNode(st.id);
if (!temp)
return 0;
temp->data=st;
return len;
}
合理运用C语言的数组,指针,结构体以及文件操作等,实现一个模拟的班级通讯录管理系统。
该系统用来管理学生的基本信息,通信信息。具体的要如下:
1) 工作人员可以通过此程序来管理学生的信息,包括查询,添加,修改,删除等功能。
2) 在进行添加时,系统会自动监测所添加的学生信息是否已经存在,如果存在,会提示用户,
该学生已经存在。
3) 在删除时,要首先弹出对话框,让用户确认是否删除。只有经过确认才能够被删除。
4) 在进行学生信息管理时,不准用户修改学号。
5) 通过键盘或读取文件的方法读取学生的信息。
6) 能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如 do while,for,if-else,if等)。
7) 程序要有主菜单,能够完成主要的功能。
[附1]
有关学生的信息,包括,学号,姓名,性别,年龄,电话。
[附2]
我是大一的新生,现在C的内容还没有完全学完,关于枚举,链表,文件操作等还未学,所以请各位高手在帮小弟时多加一点提示,不然我可能看不懂```
还有,关于第(4)个要求和第(7)个要求,可以忽略```
*/
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
typedef struct Student//学生信息
{
signed short id;
char name[11];
char sex[7];
signed short age;
char telNum[16];
}Student;
typedef struct Node
{
Student data;
Node* next;
}Node;
static Node* begin=NULL;//哨兵结点
static signed short len=0;//链表长度
void printMenu();//打印菜单
void printBye();//打印结束语
void printList();//打印所有学生信息
void printStudent(Student st);//打印学生信息
Node* lookupNode(signed short stid);//根据学号查询学生信息。
int addNode(Student st);//添加学生信息。成功返回链表长度。内存分配失败-1;信息重复0
int deleteNode(signed short stid); //根据学号删除学生信息。成功返回链表长度;未找到-1
int updateNode(Student st);//根据学号修改学生信息。成功返回链表长度;未找到0
void main()
{
//初始化链表。
begin=(Node*)malloc(sizeof(Node));
begin->next=NULL;
printf("----------------------------------------------------------------------------\n");
printf("--- 班级信息管理系统 ---\n");
printf("--- 沙支夸依 2007-12-21 ---\n");
printf("----------------------------------------------------------------------------\n");
printf("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n");
printMenu();
while (1)
{
char ch;
ch=getchar();
fflush(stdin);
Student student;
memset(&student,0,sizeof(Student));
switch (ch)
{
case '1':
printf("---添加学生信息。(学号为 0 结束)\n");
while (1)
{
printf("请输入新学号: ");
scanf("%d", &student.id);
if (!student.id)
break;
printf("请输入学生姓名: ");
fflush(stdin);
gets(student.name);
printf("请输入学生姓别: ");
scanf("%s", student.sex);
printf("请输入学生年龄: ");
scanf("%d", &student.age);
printf("请输入学生电话: ");
scanf("%s", student.telNum);
int succ=addNode(student);
if (succ)
{
if (-1==succ)
printf("内存错误!请重新输入!\n");
}
else
printf("对不起!该学号已被占用!\n");
printf("\n");
}
break;
case '2':
printf("---删除学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要删除学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* delNode=lookupNode(stid);
if (!delNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(delNode->data);
printf("您确定要删除这条记录吗?(任意键删除/ n 取消)\n");
fflush(stdin);
char cDelete=getchar();
if ('n'==cDelete)
continue;
printf("删除成功!剩余记录数: %d\n",deleteNode(stid));
}
printf("\n");
}
break;
case '3':
printf("---修改学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要修改学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* updataNode=lookupNode(stid);
if (!updataNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(updataNode->data);
Student student;
student.id=stid;
printf("修改学生姓名: ");
fflush(stdin);
gets(student.name);
printf("修改学生姓别: ");
scanf("%s", student.sex);
printf("修改学生年龄: ");
scanf("%d", &student.age);
printf("修改学生电话: ");
scanf("%s", student.telNum);
updateNode(student);
printf("修改成功!\n");
printStudent(updataNode->data);
}
printf("\n");
}
break;
case '4':
printf("---查询学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要修改学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* findNode=lookupNode(stid);
if (!findNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(findNode->data);
}
printf("\n");
}
break;
case '5':
printList();
printMenu();
break;
case '6':
printBye();
return;
default:
printMenu();
}
}
}
void printMenu()
{
printf("----------------------------------------------------------------------------\n");
printf("--- 1、增加学生信息。 2、删除学生信息。 ---\n");
printf("--- 3、修改学生信息。 4、查询学生信息。 ---\n");
printf("--- 5、打印所有信息。 6、退出。 ---\n");
printf("----------------------------------------------------------------------------\n");
}
void printBye()
{
printf("----------------------------------------------------------------------------\n");
printf(" 感谢您使用班级信息管理系统 \n");
printf(" 再 见 \n");
printf("----------------------------------------------------------------------------\n");
}
void printList()
{
Node* temp=begin->next;
if (!temp)
{
printf("暂时无记录可供操作!\n");
}
while (temp)
{
printStudent(temp->data);
temp=temp->next;
}
}
void printStudent(Student st)
{
printf("学号:%-6d 姓名:%-10s 性别:%-6s 年龄:%-3d 电话:%-15s\n",
st.id, st.name, st.sex, st.age, st.telNum);
printf("--------------------------------------------------------------------------\n");
}
Node* lookupNode(signed short stid)
{
Node* temp=begin->next;
while (temp)
{
if (temp->data.id==stid)
return temp;
temp=temp->next;
}
return NULL;
}
int addNode(Student st)
{
if (lookupNode(st.id))
return 0;
Node* temp=(Node*)malloc(sizeof(Node));
if (!temp)
return -1;
temp->data=st;
temp->next=begin->next;
begin->next=temp;
return ++len;
}
int deleteNode(signed short stid)
{
Node* temp=begin;
Node* pos=NULL;
while (temp->next)
{
if (temp->next->data.id==stid)
{
pos=temp->next;
temp->next=pos->next;
free(pos);
return --len;
}
temp=temp->next;
}
return -1;
}
int updateNode(Student st)
{
Node* temp=lookupNode(st.id);
if (!temp)
return 0;
temp->data=st;
return len;
}
展开全部
学生管理系统要吗
更多追问追答
追问
要~!
追答
发生成的文件给你可以吗?不提供源代码
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
发到哪里?
追问
709896028@qq.com
谢啦!!
追答
稍等一会儿
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询