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. 绝对经典的滑轮新闻显示(javascript+css)实现
  2. 低成本测距方案—单目深度估计
  3. XtraBackup
  4. 递归算法转换为非递归算法的技巧
  5. Kali Linux又增加一个顶级域名kali.download
  6. stm32 复位到内部bootloader
  7. sql server案例总结
  8. hiveserver2详解
  9. private函数php,php怎么修改private
  10. 驱动人生、驱动精灵等绿色去广告单文件版合集
  11. 免费OA办公系统评测 到底哪个适合本公司?
  12. Android手机打开开发者模式调试App
  13. js保留两位小数并四舍五入的方法
  14. 麒麟v10服务器系统搭建本地源
  15. Gerrit报错:Permission denied (publickey)
  16. char,varchar,nchar,nvarchar的区别
  17. MATLAB中assignment模块,Simulink Matlab Function 模块使用问题求教
  18. 【导航链接】计算机科研学习
  19. JXTA技术手册学习--------(1)通告
  20. 头脑风暴有两位盲人_盲人时如何获得开发人员工作:与有远见的团队一起工作的盲人开发人员的建议...

热门文章

  1. 面试题:设计模式记不住,来看看怎么办?
  2. 汽车中控如何与手机互联
  3. 公益创投|“共筑成长路”——流动儿童心理支持多元活动来啦
  4. 支线剧情(bzoj 3876)
  5. 重磅!2022年剑桥AI全景报告出炉,文本生成图像掀起新风暴!
  6. elasticsearch学习和实践01
  7. Java基础 面向对象的详解
  8. 记下默认端口为80的
  9. 联想y7000p怎么连接显示器_实测 | 笔记本电脑外接显示器能提升电脑性能?
  10. KNN算法身高、体重、鞋号预测男女性别