1、学生活动管理系统:管理员能够登录该系统,可以设计学生活动基本信息,对学生活动信息能够进行录入、浏览、修改、删除、查找、退出系统等的操作,系统以菜单方式进行工作。学生活动信息应包括:活动时间、活动内容、活动场地等信息。学生可以登录该系统,显示的界面不同,学生可以进行浏览活动信息、报名参加活动、退出系统的操作。

2、程序编写可以两个文件,myList.h作为头文件,在这个头文件使用链表,指针实现数据元素的存储(按一定顺序存储),并编写一些函数,实现菜单里的功能;源.cpp进行调用myList.h里的函数,实现功能。

长久保存数据需要在编写程序时,进行文件的写入与读取。

3、代码实现。

myList.h 头文件

#include<iostream>
#include<string>
#include<fstream>using namespace std;
struct activity
//创建一个结构体,加入活动名字,时间,地点。内容。
{char name[20];char time[20];char place[20];char detail[20];
};//结构分结构去写
struct Node
{struct activity data;struct Node* next;
};
//创建一个链表
struct Node* creatList()
{//用一个结构体变量表示表头//指针变成结构体变量,用动态内存申请,让指针能够表示变量struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));headNode->next = NULL;//表头做差异化处理,对指针域进行初始化return headNode;
}
//创建结点
struct Node* createNode(struct activity data)
{struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));//newNode表示新的结点newNode->data = data;newNode->next = NULL;return newNode;
}
//插入结点
void insertNodeByHead(struct Node* headNode, struct activity data) {struct Node* newNode = createNode(data);//创建的结点加入到creatNode()中//头插法,每一个新结点的next始终指向头节点的next;头节点的next始终指向新结点。newNode->next = headNode->next;headNode->next = newNode;
}
//指定位置删除活动;
void deleteAppoinNode(struct Node* headNode, char* name)
{struct Node* posNode = headNode->next;//posNode 表示为 指定结点,//posFrontNode 表示为 指定删除节点的前面结点;struct Node* posFrontNode = headNode;if (posNode == NULL) {cout << "没有该项活动!\n";return;}while (strcmp(posNode->data.name,name)) {posFrontNode = posNode;posNode = posFrontNode->next;if (posNode == NULL) {cout << "未找到该活动!\n";return;}}posFrontNode->next = posNode->next;free(posNode);//释放指定位置的结点。
}
//查找活动信息;
struct Node* searchInfoByData(struct Node* headNode, char* name) {//只能以数据进行查找用   利用活动名称查找。struct Node* posNode = headNode->next;//posNode 表示为 指定结点,//posFrontNode 表示为 指定删除节点的前面结点;struct Node* posFrontNode = headNode;if (posNode == NULL){cout << "没有该项活动!\n";return NULL;}while (strcmp(posNode->data.name, name)){posFrontNode = posNode;posNode = posFrontNode->next;if (posNode == NULL){cout << "未找到该活动!\n";return 0;}}//return pmove;return posNode;
}
//打印链表(浏览活动信息);
void printList(struct Node* headNode)//打印的是用headNode做表头的表示的链表
{ofstream fout;fout.open("test.txt");//第一个结点没有做初始化数据,从第二个结点开始struct Node* pmove = headNode->next;cout << " 活动名字\t 时间\t 地点\t 内容\n";while (pmove){cout << pmove->data.name << "\t"<< pmove->data.time <<"\t"<<pmove->data.place<<"\t"<<pmove->data.detail<< endl;fout<< "活动名字:   \t 时间:   \t 地点:   \t 内容:   ";fout << pmove->data.name << "\t" << pmove->data.time << "\t" <<pmove-> data.place << "\t" <<pmove-> data.detail << endl;//将活动的信息写入文件中pmove = pmove->next;}cout << "\n";fout.close();
}

源文件

#include<iostream>
#include"myList.h"
#include<fstream>
#include<string>using namespace std;
struct Node* list = creatList();
void menu()//管理员菜单设计
{cout << "------------【活动管理】---------------\n";cout << "\t\t0、退出系统\n";cout << "\t\t1、活动信息录入\n";cout << "\t\t2、增加活动信息\n";cout << "\t\t3、浏览活动内容\n";cout << "\t\t4、修改活动信息\n";cout << "\t\t5、删除活动信息\n";cout << "\t\t6、查找活动信息\n";cout << "------------------------------------------\n";
}
void menu1()//学生菜单设计
{cout << "------------【活动管理】---------------\n";cout << "\t\t0退出系统\n";cout << "\t\t1浏览活动内容\n";cout << "\t\t2报名参加活动\n";
}
void activities()
{cout << "登录成功!\n";string actname;string b;ifstream fin;int choice = 0;int s;cin >> choice;switch (choice) {case 0:cout << "正常退出系统!\n";exit(0);break;case 1:fin.open("test.txt", ios::in);cout << "***********浏览活动的信息**********\n";while (getline(fin, b)) {cout << b << endl;}fin.close();break;case 2:cout << "***********报名参加活动*************\n";cout << "想报名参加活动的名称\n";cin >> actname;cout << "do you want to participat the activity? (yes=1||no=0)\n";cin >> s;if (s == 1){cout << "报名" << actname << "成功,请按时参加活动\n";}else {cout << "不报名参加活动\n";}break;default:cout << "输入错误,请重新选择!\n";break;}
}void keyDown()//根据所选的菜单选项,做相应的事。
{cout << "登陆成功!\n";struct Node* pmove = NULL;//动态指针pmove 初始化int choice = 0;struct activity data;cin >> choice;//fout.open("test.txt",'w');switch(choice){case 0:cout << "正常退出!\n";exit(0);break;case 1://fout.open("test.txt",'w');cout << "***********录入活动信息**********\n";//即插入链表cout << "请输入活动的名称,时间,地点,内容。\n";fflush(stdin);//清空处理cin >> data.name;cin >> data.time;cin >> data.place;cin >> data.detail;//调用myList.h里面的插入函数;insertNodeByHead(list, data);break;case 2://fout.open("test.txt");cout << "***********增加活动信息****\n";//即插入链表cout << "请输入活动的名称,时间,地点,内容。\n";fflush(stdin);//清空处理cin >> data.name;cin >> data.time;cin >> data.place;cin >> data.detail;insertNodeByHead(list, data);break;case 3:cout << "***********浏览活动信息**********\n";//打印链表printList(list);break;case 4:cout << "***********修改活动信息**********\n";cout << "输入你要修改的信息\n";cin >> data.name;deleteAppoinNode(list, data.name);cout << "请输入你要修改的信息:\n";cin >> data.name;cin >> data.time;cin >> data.place;cin >> data.detail;insertNodeByHead(list, data);break;case 5:cout << "***********删除活动信息**********\n";cout << "输入你要删除的活动名称\n";cin >> data.name;deleteAppoinNode(list,data.name);break;case 6:cout << "***********查找活动信息**********\n";cout << "输入要查找的活动名称:\n";cin >> data.name;pmove = searchInfoByData(list, data.name);//pmove初始化if (pmove == NULL){//cout << "未找到该活动!\n";system("pause");}else {cout << "活动名字:    \t时间:     \t地点:     \t内容:     \n";cout << pmove->data.name <<"\t"<<pmove->data.time<<"\t"<<pmove->data.place<<"\t"<<pmove->data.detail<< endl;}break;default:cout << "输入错误!请重新输入\n";break;}}int main()
{char a[20] = "score.txt";struct activity data;int adnum=2233,stnum=1122,zhanghao;int password1 = 123, password2 = 456,password;cout << "请输入账号、密码。\n";cin >> zhanghao;cin >> password;switch(zhanghao){case 2233:if (password == 123){cout << "管理员身份登陆成功\n";while (1){menu();keyDown();system("pause");system("cls");}}else {cout << "登录失败!\n";}break;case 1122:if (password == 456){cout << "学生身份登录成功!\n";while (1) {menu1();activities();system("pause");system("cls");}}else {cout << "登录失败!\n";}break;default:cout << "登陆失败!\n";break;}return 0;
}

C++实习任务之学生活动管理系统相关推荐

  1. 计算机实习项目:学生基本信息管理系统

    一.开发任务 开发任务的具体要求 实现平台是VisualStudio2022,大多数同学用的应该是devc++,区别主要体现在VisualStudio中scanf需要用scanf_s替代,gets需要 ...

  2. c语言设计学生活动管理系统,C语言大赛之学生信息管理系统设计报告.doc

    PAGE \* MERGEFORMAT11 第一届C语言大赛设计报告 题 目: 学生信息数据库 院系名称: 电气工程学院 专业班级: 测控1302 学生姓名及学号: 李凡丁 201323030221 ...

  3. 微信小程序校园活动管理系统-JAVA【数据库设计、源码、开题报告】

    1 前言 1.1开发背景及意义 校园活动管理是中职学生素质教育的重要途径及有效方式,特别是对于一个院校的校园文化建设.校风学风建设和学生综合素质方面的提高至关重要t叫".良好的学生活动组织可 ...

  4. 学生社团管理系统c语言代码,毕业设计—校园社团活动助手小程序

    应用场景 在高校,各个学生社团和学生组织都会在各个时间发布各式各样的活动信息,但是目前缺乏一个可靠.统一.简便的平台汇总各类的活动信息.社团活动助手小程序是基于自己大学校园内的各项信息开发的一款集报名 ...

  5. 学生信息管理系统实习报告(java版数据结构)

    一. 问题分析 1.1 什么是学生信息管理系统以及研究意义 学生信息管理系统是校园网络中一个重要的应用系统,它大大改善了学校教学.科研与管理的基础环境,在一定程度上反映出学校管理现代化的水平.信息管理 ...

  6. 【数据结构实习】学生信息管理系统2.0

    Student.h 1 #include<iostream> 2 #include<string> 3 #include<fstream> 4 using name ...

  7. 基于JAVA校园社团活动管理系统计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA校园社团活动管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA校园社团活动管理系统计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 ...

  8. 基于SSM的学生社团管理系统 毕业设计-附源码211531

    SSM学生社团管理系统设计与实现 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于社团管理也是十分常见的.过去使用手工的管理方式对学生社团进行管理,造成了管理繁琐.难以维 ...

  9. ssm学生社团管理系统毕业设计源码

    SSM学生社团管理系统设计与实现 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于社团管理也是十分常见的.过去使用手工的管理方式对学生社团进行管理,造成了管理繁琐.难以维 ...

最新文章

  1. json qbytearray 串 转_如何通过QByteArray在JSON中存储QPixmap?
  2. 天软考c语言,软考中C语言试题问答精选
  3. stm32 TIM2 重映射
  4. linux系统中用户切换
  5. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测
  6. YOLOv2训练:制作VOC格式的数据集
  7. 从字符串 到类型 Boolean 的转换无效。
  8. call()、apply()、bind()
  9. 记一次 .NET游戏站程序的 CPU 爆高分析
  10. C++ 向上转型初步01
  11. 【猜画小歌】辅助插件FunnyDraw江湖召集令
  12. eclipse和myeclipse的差别问题
  13. 内网搭建代理DNS使用内网域名代替ip地址
  14. 如果你想要做好抖音直播间需要注意的其他事项(三)
  15. POJ 1318 Word Amalgamation G++
  16. 36-基于51单片机士壤湿度检测及自动浇花系统
  17. 《软件体系结构》 第九章 软件体系结构评估
  18. 如何查看电脑上面的maven版本?
  19. 黑马程序员--C语言自学笔记---07预处理、进制、机器码
  20. ios12 siri 语音识别

热门文章

  1. android游戏中期检查表,课题中期检查填报表
  2. 电脑如何去除右键菜单选项
  3. atitit 方便搜索的文档文章结构框架.docx 目录 1.1. 三种搜索模式 tree hash关键词模式 关联搜索,对应的三种索引 1 1.2. 好的标题规范与副标题 1 1.3. Tr
  4. 大数据联合实验室落户青羊区
  5. mysql 错误2002_mysql中异常错误ERROR:2002的解决方法
  6. 单元测试--连接数据库CRUD
  7. N7100/GALAXY Note2 解决短信发件人实际发送短信时间
  8. 企业邮箱怎么注册账号?忘记邮箱密码怎么修改密码?
  9. 计算机u盘 硬盘无法读取,U盘无法进入win7系统,提示硬盘无法被识别怎么办?...
  10. 解决threejs后处理轮廓线outlinePass选中 transformControls的辅助线