数据结构课程设计——英语四级考试报名管理
来源:互联网 发布:pc蛋蛋单双算法哪个准 编辑:程序博客网 时间:2024/04/28 21:58
/* * Copyright(c) 2017,烟台大学计算机学院 * All rights reserved. * 文件名称:axiao13.cpp * 作 者:李潇 * 完成日期:2017 年 12 月 21 日 * 版 本 号:v1.0 * * 问题描述: 英语四级考试报名管理* 输入描述:考生信息输入* 程序输出:测试结果输出 */
1、头文件 hhh.h
#ifndef HHH_H_INCLUDED#define HHH_H_INCLUDEDtypedef struct student{ char name[20]; char num[20]; char ID[20];}ElemType;typedef struct LNode //定义单链表结点类型{ ElemType data; struct LNode *next; //指向后继结点}LinkList;void CreateListF(LinkList *&L);//创建链表void LocateElem(LinkList *L);//查找信息void ListChange(LinkList *&L);//修改信息void ListDelete(LinkList *&L);//删除信息void DispList(LinkList *L);//输出信息void SortList(LinkList *&L);void menu();void Display(LinkList *&L);int ListLength(LinkList *&);void WAITING();#endif // HHH_H_INCLUDED
外部函数 hhh.cpp
#include <iostream>#include <malloc.h>#include <stdio.h>//使用putchar# include <time.h># include <windows.h>//修改运行窗口背景颜色#include <string.h>//使用strcmp#include "hhh.h"using namespace std;ElemType e;/*********************************************************** * 功能描述:采用尾插法增加考生信息 * 输入参数:该链表的总人数n * 输出参数:无 * 返回值 :无 * 其它说明:无 ************************************************************/ ///////////////////////////尾插法创建///////////////void CreateListF(LinkList *&L)//尾插法建立单链表{int i, n;///////n为报考人数LinkList *p = L, *s;//////p始终是尾节点,s为要插入节点L = (LinkList *)malloc(sizeof(LinkList));p = L;putchar('\n');putchar('\n');cout << "请输入报考人数:";cin >> n;for (i = 0; i<n; i++)//循环建立数据节点s{putchar('\n');putchar('\n');s = (LinkList *)malloc(sizeof(LinkList));cout << "请输入姓名:";cin >> s->data.name;putchar('\n');putchar('\n');cout << "请输入准考证号:";cin >> s->data.num;putchar('\n');putchar('\n');cout << "请输入身份证号:";cin >> s->data.ID;//创建数据结点sp->next = s;p = s;p->next = NULL;putchar('\n');putchar('\n');WAITING();cout << "报名成功" << endl;}}/*********************************************************** * 功能描述:查询考生信息 * 输入参数:要查找的准考证号e.num * 输出参数:考生信息 * 返回值 :无 * 其他说明:无 ************************************************************/ /////////////////////查询考生信息(按元素值查找(准考证号))////////////void LocateElem(LinkList *L){ LinkList *p=L->next; if(p==NULL) {putchar('\n');putchar('\n'); cout<<"该考生不存在,请重新输入:"; } else {putchar('\n');putchar('\n'); cout<<"请输入要查找的考生的准考证号:"; cin>>e.num; while(p!=NULL&&(strcmp(p->data.num,e.num)>0||strcmp(p->data.num,e.num)<0)) { p=p->next; } if(p==NULL) {putchar('\n');putchar('\n'); cout<<"该考生不存在,请重新输入:"; } else {WAITING();putchar('\n');putchar('\n'); cout<<"考生姓名:"<<p->data.name<<endl;putchar('\n');putchar('\n'); cout<<"考生身份证号:"<<p->data.ID<<endl;putchar('\n');putchar('\n'); cout<<"考生准考证号:"<<p->data.num<<endl; } }}/*********************************************************** * 功能描述:修改考生信息 * 输入参数:要修改的考生的姓名,身份证号 * 输出参数:修改成功 * 返回值 :无 * 其他说明:无 ************************************************************/ ///////////////////修改考生信息/////////////void ListChange(LinkList *&L){ LinkList *p=L;if (p->next == NULL){putchar('\n');putchar('\n');cout << "不存在该考生,请重新输入:";} else {putchar('\n');putchar('\n'); cout<<"请输入考生准考证号:"; cin>>e.num; while(p!=NULL&&(strcmp(e.num,p->data.num)<0||strcmp(e.num,p->data.num)>0)) { p=p->next; }if (p == NULL){putchar('\n');putchar('\n');cout << "不存在该考生,请重新输入:";} else { if((strcmp(p->data.num,e.num)==0)) {putchar('\n');putchar('\n');WAITING(); cout<<"找到该考生!"<<endl;putchar('\n');putchar('\n'); cout<<"请输入考生姓名:"; cin>>p->data.name;putchar('\n');putchar('\n'); cout<<"请输入考生身份证号:"; cin>>p->data.ID;putchar('\n');putchar('\n'); cout<<"请输入考生准考证号:"; cin>>p->data.num;putchar('\n');putchar('\n'); cout<<"修改成功!"<<endl; } else {putchar('\n');putchar('\n'); cout<<"该考生不存在,请重新输入:"; ListChange(L); } } }}/*********************************************************** * 功能描述:删除考生信息 * 输入参数:要删除的考生的准考证号e.num * 输出参数:删除成功 * 返回值 :无 * 其他说明:无 ************************************************************/ /////////////////////删除考生信息/////////void ListDelete(LinkList *&L){ LinkList *p=L,*q; if(p->next==NULL) {putchar('\n');putchar('\n'); cout<<"无考生信息"<<endl; } else {putchar('\n');putchar('\n'); cout<<"请输入要删除的考生准考证号:"; cin>>e.num; if(e.num<=0) {putchar('\n');putchar('\n'); cout<<"输入有误,请重新输入:"<<endl; } while(p->next != NULL && (strcmp(p->next->data.num,e.num)>0||strcmp(p->next->data.num,e.num)<0)) { p=p->next; } if (p->next==NULL) {putchar('\n');putchar('\n'); cout<<"未找到该考生准考证号"; } else { q=p->next; if(q==NULL) {putchar('\n');putchar('\n'); cout<<"未找到该考生准考证号"; } e=q->data; p->next=q->next; free(q);putchar('\n');putchar('\n');WAITING(); cout<<"删除成功"<<endl; } }}/*********************************************************** * 功能描述:显示考生信息 * 输入参数:无 * 输出参数:考生信息 * 返回值 :无 * 其它说明:无 ************************************************************/ ////////////////显示考生信息///////////////////////////void DispList(LinkList *L){ LinkList *p=L->next; if(p==NULL) {putchar('\n');putchar('\n'); cout<<"不存在考生信息"<<endl; } else { for(p=L->next; p!=NULL; p=p->next) {WAITING();putchar('\n'); cout<<"考生姓名:"<<p->data.name<<endl;putchar('\n'); cout<<"考生身份证号:"<<p->data.ID<<endl;putchar('\n'); cout<<"考生准考证号:"<<p->data.num<<endl; } }}/*********************************************************** * 功能描述:排序考生信息(根据准考证号或者四级成绩排序) * 输入参数:排序后的考生信息 * 输出参数:无 * 返回值 :无 * 其他说明:无 ************************************************************/ ///////////////考生信息排序/////////////////////////////void SortList(LinkList *&L){LinkList *p = L->next, *q, *r;if (p == NULL){putchar('\n');putchar('\n');cout << "\t\t\t无考生信息" << endl;}else{q = p->next;for (p = L->next; p != NULL; p = p->next){r = p;//////记录最小值for (q = p->next; q != NULL; q = q->next){if (strcmp(q->data.num, r->data.num) < 0)r = q;}if (r != p){ElemType tmp;tmp = p->data;p->data = r->data;r->data = tmp;}}WAITING();DispList(L);}}/*********************************************************** * 功能描述:菜单函数 * 输入参数:无 * 输出参数:无 * 返回值 :无 * 其他说明:无 ************************************************************/ void menu(){ system("color F0");cout << "\t\t\t\t\t ¥ ¥" << endl; cout<<"\t\t*********************· 四级考试报名系统·******************"<<endl;putchar('\n');time_t timep;time(&timep);cout << "\t\t\t 当前时间:" << ctime(&timep);putchar('\n'); cout<<"\t\t************************ 1.增加考生信息**********************"<<endl;putchar('\n'); cout<<"\t\t************************ 2.显示考生信息**********************"<<endl;putchar('\n'); cout<<"\t\t************************ 3.根据准考证号排序考生信息**********"<<endl;putchar('\n'); cout<<"\t\t************************ 4.查询考生信息**********************"<<endl;putchar('\n'); cout<<"\t\t************************ 5.修改考生信息**********************"<<endl;putchar('\n'); cout<<"\t\t************************ 6.删除考生信息**********************"<<endl;putchar('\n'); cout<<"\t\t************************ 7.安全退出**************************"<<endl;putchar('\n'); cout<<"\t\t请选择:";}/*********************************************************** * 功能描述:功能选择函数 * 输入参数:功能序号 * 输出参数:无 * 返回值 :无 * 其他说明:无 ************************************************************/ void Display(LinkList *&L){ while(true) { menu(); int x; cin>>x; switch(x) { case 1: CreateListF(L); break; case 2: DispList(L); break; case 3: SortList(L); break; case 4: LocateElem(L); break; case 5: ListChange(L); break; case 6: ListDelete(L); break ; case 7: { cout<<"************************************************"<<endl; cout<<"************************************************"<<endl; cout<<" 欢迎再次使用 "<<endl; cout<<"************************************************"<<endl; cout<<"************************************************"<<endl; exit(0); break; } } }}int ListLength(LinkList *&L){LinkList *p = L->next;int i = 0;while (p != NULL){i++;p = p->next;}return i;}/*********************************************************** * 功能描述:延时函数 * 输入参数:无* 输出参数:正在处理,请稍后..... * 返回值 :无 * 其他说明:无 ************************************************************/ void WAITING(){putchar('\n');char str[20] = "正在处理,请稍后";cout << str;int count;for (count = 0; count < 5; count++)
#include "hhh.h"/*********************************************************** * 功能描述:主函数 * 输入参数:无 * 输出参数:系统首页 * 返回值 :无 * 其他说明:无 ************************************************************/int main(){ LinkList *L; Display(L);}
{Sleep(200);cout << '.';}}主函数 main.cpp
#include "hhh.h"/*********************************************************** * 功能描述:主函数 * 输入参数:无 * 输出参数:系统首页 * 返回值 :无 * 其他说明:无 ************************************************************/int main(){ LinkList *L; Display(L);}
运行结果:
阅读全文
0 0
- 数据结构课程设计——英语四级考试报名管理
- 数据结构课程设计—考试报名管理系统
- 数据结构课程设计——考试报名管理系统
- 数据结构课程设计--考试报名管理
- 数据结构课程设计【考试报名管理系统】
- 课程设计--考试报名管理系统
- 考试报名管理系统课程设计
- 数据结构课程设计——CET-6报名管理系统
- 数据结构课程设计(考试管理系统)
- 考试报名管理
- 考试报名管理
- 考试报名管理系统
- 考试报名管理
- 考试报名管理系统
- 考试报名管理系统
- 数据结构课程设计考生报名系统
- 数据结构课程设计——通讯录管理系统
- 数据结构课程设计——学生成绩管理
- 如何进行安卓系统的开发学习
- 129. Sum Root to Leaf Numbers
- Linux iptables开放特定端口
- YII Session Cookie
- 工作流(Workflow)
- 数据结构课程设计——英语四级考试报名管理
- android mqtt
- Caused by: flex.messaging.MessageException: Cannot create class of type
- 自定义状态栏的颜色
- java日志详解--logback
- beyond compare过期解决办法
- Android系统view控件使用的一些坑
- java中借助Spring获取所有带有指定注解的接口、类、对象
- Python---map和reduce函数