课程设计选题管理系统

#include<fstream>
#include<cstring>
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
using namespace std;

#define OK 1
#define ERROR 0
#define OVERFLOW -1

#define List_INIT_SPACE 100           //存储空间初始分配量
#define List_INC_SPACE 10             //存储空间分配增量
int node = 1;
typedef struct Student
{
    int age;                          //年龄
    int student_id;                   //学号
    int course_id;                    //题目编号
    char student_name[40];            //姓名
    char sex[10];                     //性别
    char Class[40];                   //班级
    char specialty[40];               //专业
    char course_name[40];             //题目名称
    char keyword[40];                 //关键词
    char technology[40];
}Student;

typedef struct STent_list
{
    struct Student *stu;             //存储空间基址
    int length;                       //当前长度
    int listsize;                     //当前分配的存储容量(以sizeof(Student)为单位
}STent_list;

int STent_listInit(STent_list &S)
{
    //在内存中分配空间
    S.stu = (Student*)malloc(List_INC_SPACE*sizeof(Student));
    if(!S.stu) exit(OVERFLOW);      //存储空间分配失败

    //构造一个空的线性表
    S.length = 0;
    S.listsize = List_INC_SPACE;     //初始存储容量
    return OK;
}//函数STent_listInit结束

void write(STent_list &S, int n)
{
	fstream myfile;
	myfile.open("student.txt",ios::out|ios::binary);
	//fstream myfile("student.txt",ios::out|ios::binary);
	if(! myfile)
	{
	    cout<<"该文件不能打开!"<<endl;
		abort();        //异常终止函数
	}
	int count = n;
	myfile<<count<<endl<<endl;
	for(int i = 0; i <= count; i++)
	{
	     myfile<<(S.stu[i]).student_id<<"   "<<(S.stu[i]).student_name<<"    "<<(S.stu[i]).sex<<"  "<<(S.stu[i]).age<<"    "<<(S.stu[i]).Class<<"    "<<(S.stu[i]).specialty<<"  "<<S.stu[i].course_id<<"   "<<S.stu[i].course_name<<"   "<<S.stu[i].keyword<<"   "<<S.stu[i].technology<<"    "<<endl;
	}
	myfile.close();
}
/**************************************/
//函数名: read(STent_list &S)
//参数:   (传入) STent_list S顺序表
//返回值: int型,返回1表示创建成功,0表示失败
//功能:   读取顺序表中的内容
/*************************************/
int read(STent_list &S)
{
	fstream myfile;
	myfile.open("student.txt",ios::in|ios::binary);
	//fstream myfile("student.txt",ios::out|ios::binary);
	if(! myfile)
	{
		cout<<"该文件不能打开"<<endl;
		abort();
	}
	int count;
	myfile.seekg(0);
	myfile>>count;
	for(int i = 0; i <= count; i++)
	{
		myfile>>S.stu[i].student_id>>S.stu[i].student_name>>S.stu[i].sex>>S.stu[i].age>>S.stu[i].Class>>S.stu[i].specialty>>S.stu[i].course_id>>S.stu[i].course_name>>S.stu[i].keyword>>S.stu[i].technology;
	}
	myfile.close();
	return count;
}
/*****************************************/
//函数名:add(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值:  空
//功能:   添加学生信息
/*****************************************/
void add(STent_list &S)
{
	int n = read(S);
	int i = 0;
	char sign = 'F';
	cout<<endl<<"请输入增加的学生的相关信息:"<<endl;
	while(sign != 'N')
	{
		loop:
			cout<<"学号:";
			cin>>S.stu[i].student_id;
			cout<<endl;
			int c = 0;
			while(c < i)
			{
			    c++;
		    	if(S.stu[i].student_id == S.stu[i-c].student_id)
			    {
			        cout<<"你输入的学号已经存在!请重新输入" <<endl;
			        goto loop;
			    }
		    }
		    cout<<"姓名:";
			cin>>S.stu[i].student_name;
			cout<<endl;
			cout<<"性别:";
			cin>>S.stu[i].sex;
			cout<<endl;
			cout<<"年龄:";
			cin>>S.stu[i].age;
			cout<<endl;
			cout<<"班级:";
			cin>>S.stu[i].Class;
			cout<<endl;
			cout<<"专业:";
			cin>>S.stu[i].specialty;
			cout<<endl;
			cout<<"题目编号:";
			cin>>S.stu[i].course_id;
			cout<<endl;
			cout<<"题目名称:";
			cin>>S.stu[i].course_name;
			cout<<endl;
			cout<<"关键词:";
			cin>>S.stu[i].keyword;
			cout<<endl;
			cout<<"实现技术:";
			cin>>S.stu[i].technology;
			cout<<endl;
			cout<<"提示:是否继续写入学生信息?(Y/N):";
			cin>>sign;
			i++;
	}
	write(S, i);
}
/*****************************************************/
//函数名: search_student_id(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值: 空
//功能:   根据学号查找学生信息
/*****************************************************/
void search_student_id(STent_list &S)
{
    int n = read(S);
    int s;
    int i = 0;
    cout<<endl<<"查找学生信息:"<<endl;
	cout<<"请输入需要查找学生的学号:"<<endl;
	cin>>s;
	while((S.stu[i].student_id - s) != 0 && i < n) i++;
	if(i == n)
	{
	    cout<<"提示: 对不起,无法找到该学生的信息! "<<endl;
	}
	else
	{
		cout<<"***************************"<<endl;
		cout<<"学号:"<<S.stu[i].student_id<<endl;
		cout<<"姓名:"<<S.stu[i].student_name<<endl;
		cout<<"性别: "<<S.stu[i].sex<<endl;
		cout<<"年龄:"<<S.stu[i].age<<endl;
		cout<<"班级:"<<S.stu[i].Class<<endl;
		cout<<"专业:"<<S.stu[i].specialty<<endl;
		cout<<"题目编号:"<<S.stu[i].course_id<<endl;
		cout<<"题目名称:"<<S.stu[i].course_name<<endl;
		cout<<"关键词:"<<S.stu[i].keyword<<endl;
		cout<<"实现技术:"<<S.stu[i].technology<<endl;
	}
}
/*******************************************************/
//函数名: search_student_name(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值: 空
//功能:   根据学生姓名查找学生信息
/*******************************************************/
void search_student_name(STent_list &S)
{
	int n = read(S);
	char a[100];
	cout<<"请输入需要查找的姓名:"<<endl;
	cin>>a;
	 for(int i = 0; i < n; i++)
	 if(strcmp(S.stu[i].student_name, a) == 0)
	 {
	     cout<<"****************************"<<endl;
		 cout<<"学号:"<<S.stu[i].student_id<<endl;
		 cout<<"姓名:"<<S.stu[i].student_name<<endl;
		 cout<<"性别: "<<S.stu[i].sex<<endl;
		 cout<<"年龄:"<<S.stu[i].age<<endl;
		 cout<<"班级:"<<S.stu[i].Class<<endl;
		 cout<<"专业:"<<S.stu[i].specialty<<endl;
		 cout<<"题目编号:"<<S.stu[i].course_id<<endl;
		 cout<<"题目名称:"<<S.stu[i].course_name<<endl;
		 cout<<"关键词:"<<S.stu[i].keyword<<endl;
		 cout<<"实现技术:"<<S.stu[i].technology<<endl;
	}
}
/*******************************************************/
//函数名:  search_course_id(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值: 空
//功能:   根据学生课程设计的编号查找
/*******************************************************/
void search_course_id(STent_list &S)
{
	int n = read(S);
	int b;
	int i = 0;
	cout<<"请输入需要查找的题目编号:"<<endl;
	cin>>b;
	while((S.stu[i].course_id - b) != 0 && i < n) i++;
	if(i == n)
	{
		cout<<"提示:对不起,无法找到该信息!"<<endl;
	}
	else
	{
		for(i = 0; i < n; i++)
		if(S.stu[i].course_id - b == 0)
		{
		cout<<"******************************"<<endl;
		cout<<"学号:"<<S.stu[i].student_id<<endl;
		cout<<"姓名:"<<S.stu[i].student_name<<endl;
		cout<<"性别: "<<S.stu[i].sex<<endl;
		cout<<"年龄:"<<S.stu[i].age<<endl;
		cout<<"班级:"<<S.stu[i].Class<<endl;
		cout<<"专业:"<<S.stu[i].specialty<<endl;
		cout<<"题目编号:"<<S.stu[i].course_id<<endl;
		cout<<"题目名称:"<<S.stu[i].course_name<<endl;
		cout<<"关键词:"<<S.stu[i].keyword<<endl;
		cout<<"实现技术:"<<S.stu[i].technology<<endl;
	   }
	}
}
/****************************************************/
//函数名:  search_course_name(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值: 空
//功能:    根据课程设计名称查找
/***************************************************/
void search_course_name(STent_list &S)
{
	int n = read(S);
	char c[100];
	cout<<"请输入需要查找的题目名称:"<<endl;
	cin>>c;
	for(int i = 0; i < n; i++)
	if(strcmp(S.stu[i].course_name, c) == 0)
	{
		cout<<"******************************"<<endl;
		cout<<"学号:"<<S.stu[i].student_id<<endl;
		cout<<"姓名:"<<S.stu[i].student_name<<endl;
		cout<<"性别: "<<S.stu[i].sex<<endl;
		cout<<"年龄:"<<S.stu[i].age<<endl;
		cout<<"班级:"<<S.stu[i].Class<<endl;
		cout<<"专业:"<<S.stu[i].specialty<<endl;
		cout<<"题目编号:"<<S.stu[i].course_id<<endl;
		cout<<"题目名称:"<<S.stu[i].course_name<<endl;
		cout<<"关键词:"<<S.stu[i].keyword<<endl;
		cout<<"实现技术:"<<S.stu[i].technology<<endl;
	}
}
/******************************************************/
//函数名:  search(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值: 空
//功能:    选择查找关键词
/******************************************************/
void search(STent_list &S)
{
    int n = read(S);
	cout<<"**(1)根据学号查询 **"<<endl;
	cout<<"**(2)根据姓名查询 **"<<endl;
	cout<<"**(3)根据编号查询 **"<<endl;
	cout<<"**(4)根据名称查询 **"<<endl;
	cout<<endl;
	int c;
	cout<<"请输入选择: ";
	cin>>c;
	switch(c)
	{
	    case 1: search_student_id(S);break;
		case 2: search_student_name(S);break;
		case 3: search_course_id(S);break;
		case 4: search_course_name(S);break;
		default: cout<<"输入错误,请重新输入!"<<endl;
	}
	write(S, n);
}

/*******************************************/
//函数名:  student_alter(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值: 空
//功能:   修改学生信息
/******************************************/
void student_alter(STent_list &S)
{
	int n = read(S);
	int s;
	int i = 0;
	cout<<endl<<"修改学生信息:"<<endl;
	cout<<"请输入需要修改学生的学号:"<<endl;
	cin>>s;
	while((S.stu[i].student_id - s) != 0 && i < n) i++;
	if(i == n)
	{
	    cout<<"提示:对不起,无该学生的信息!!!"<<endl;
	}
	else
	{
		cout<<"该学生的信息:"<<endl;
		cout<<"学号:"<<S.stu[i].student_id<<endl;
		cout<<"姓名:"<<S.stu[i].student_name<<endl;
		cout<<"性别: "<<S.stu[i].sex<<endl;
		cout<<"年龄:"<<S.stu[i].age<<endl;
		cout<<"班级:"<<S.stu[i].Class<<endl;
		cout<<"专业:"<<S.stu[i].specialty<<endl;
		cout<<"题目编号:"<<S.stu[i].course_id<<endl;
		cout<<"题目名称:"<<S.stu[i].course_name<<endl;
		cout<<"关键词:"<<S.stu[i].keyword<<endl;
		cout<<"实现技术:"<<S.stu[i].technology<<endl;
		cout<<"请重新输入该学生的信息"<<endl;
		cout<<"学号:";
		cin>>S.stu[i].student_id;
		cout<<endl;
		cout<<"姓名:";
		cin>>S.stu[i].student_name;
		cout<<endl;
		cout<<"性别:";
		cin>>S.stu[i].sex;
		cout<<endl;
		cout<<"年龄:";
		cin>>S.stu[i].age;
		cout<<endl;
		cout<<"班级:";
		cin>>S.stu[i].Class;
		cout<<endl;
		cout<<"专业:";
		cin>>S.stu[i].specialty;
		cout<<endl;
		cout<<"题目编号:";
		cin>>S.stu[i].course_id;
		cout<<endl;
		cout<<"题目名称:";
		cin>>S.stu[i].course_name;
		cout<<endl;
		cout<<"关键词:";
		cin>>S.stu[i].keyword;
		cout<<endl;
		cout<<"实现技术:";
		cin>>S.stu[i].technology;
		cout<<endl;
		char c;
		cout<<"是否保存数据?(y/n)"<<endl;
		cin>>c;
		if(c == 'y')
		cout<<"修改成功!"<<endl;
		write(S, n);
	}
}
/**************************************/
//函数名:  student_delete(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值: 空
//功能:   删除学生信息
/*************************************/

void student_delete(STent_list &S)
{
	int n = read(S);
	int s;
	int i = 0, j;
	cout<<endl<<"删除学生信息:"<<endl;
	cout<<"请输入需要删除学生的学号:"<<endl;
	cin>>s;
	while((S.stu[i].student_id - s) != 0 && i < n) i++;
	if(i == n)
	{
	    cout<<"提示:记录为空!!!"<<endl;
	}
	else
	{
		cout<<"提示:已成功删除!"<<endl;
		cout<<"你要删除的信息如下:"<<endl;
	    cout<<"学号:"<<S.stu[i].student_id<<endl;
	    cout<<"姓名:"<<S.stu[i].student_name<<endl;
	    cout<<"性别: "<<S.stu[i].sex<<endl;
	    cout<<"年龄:"<<S.stu[i].age<<endl;
	    cout<<"班级:"<<S.stu[i].Class<<endl;
		cout<<"专业:"<<S.stu[i].specialty<<endl;
		cout<<"题目编号:"<<S.stu[i].course_id<<endl;
		cout<<"题目名称:"<<S.stu[i].course_name<<endl;
		cout<<"关键词:"<<S.stu[i].keyword<<endl;
		cout<<"实现技术:"<<S.stu[i].technology<<endl;
		for(j = i; j < n-1; j++)
		{
			S.stu[j].student_id = S.stu[j+1].student_id;
			strcpy(S.stu[j].student_name,S.stu[j+1].student_name);
			strcpy(S.stu[j].sex,S.stu[j+1].sex);
			S.stu[j].age = S.stu[j+1].age;
			strcpy(S.stu[j].Class,S.stu[j+1].Class);
			strcpy(S.stu[j].specialty,S.stu[j+1].specialty);
			S.stu[j].course_id = S.stu[j+1].course_id;
			strcpy(S.stu[j].course_name,S.stu[j+1].course_name);
			strcpy(S.stu[j].keyword,S.stu[j+1].keyword);
			strcpy(S.stu[j].technology,S.stu[j+1].technology);
		}
	}
	write(S, n-1);
}

/******************************************/
//函数名:  total(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值: 空
//功能:   统计学生信息
/*****************************************/
void total(STent_list &S)
{

	    int n = read(S);
	    char c[100];
	    int ok = 0;
	    cout<<"请输入需要查找的题目名称:"<<endl;
	    cin>>c;
	    for(int i = 0; i < n; i++)
	    if(strcmp(S.stu[i].course_name, c) == 0)
	    {
		    cout<<"你要统计的信息如下:"<<endl;
	        cout<<"学号:"<<S.stu[i].student_id<<endl;
		    cout<<"姓名:"<<S.stu[i].student_name<<endl;
			cout<<"性别: "<<S.stu[i].sex<<endl;
			cout<<"年龄:"<<S.stu[i].age<<endl;
			cout<<"班级:"<<S.stu[i].Class<<endl;
			cout<<"专业:"<<S.stu[i].specialty<<endl;
			cout<<"题目编号:"<<S.stu[i].course_id<<endl;
			cout<<"题目名称:"<<S.stu[i].course_name<<endl;
			cout<<"关键词:"<<S.stu[i].keyword<<endl;
			cout<<"实现技术:"<<S.stu[i].technology<<endl;
			ok = 1;
		}
		if(ok == 0)
		{
			cout<<"没有此条记录!"<<endl;
    	}

}
/********************************************/
//函数名:  display(STent_list &S)
//参数:   (传入)STent_list S,顺序表
//返回值: 空
//功能:   输出所有学生的全部信息
/********************************************/
void display(STent_list &S)
{
	int n = read(S);
	cout<<endl<<"显示全部学生信息:"<<endl;
	if(! S.stu)
	{
		cout<<"没有记录"<<endl;
	}
	else
	{
		for(int i = 0; i < n; i++)
		 {
		 	cout<<"学号:"<<S.stu[i].student_id<<endl;
			cout<<"姓名:"<<S.stu[i].student_name<<endl;
			cout<<"性别: "<<S.stu[i].sex<<endl;
			cout<<"年龄:"<<S.stu[i].age<<endl;
			cout<<"班级:"<<S.stu[i].Class<<endl;
			cout<<"专业:"<<S.stu[i].specialty<<endl;
			cout<<"题目编号:"<<S.stu[i].course_id<<endl;
			cout<<"题目名称:"<<S.stu[i].course_name<<endl;
			cout<<"关键词:"<<S.stu[i].keyword<<endl;
			cout<<"实现技术:"<<S.stu[i].technology<<endl;
	     }
	 }
}

int main()
{
	char choice;
	cout<<endl<<endl<<"\t\t\t"<<" **欢迎使用课程设计选题管理系统**" <<endl<<endl;
	cout<<"\t\t\t"<<"1.*********添加新的记录**********"<<endl;
	cout<<"\t\t\t"<<"2.*********查询记录信息**********"<<endl;
	cout<<"\t\t\t"<<"3.*********修改学生信息**********"<<endl;
	cout<<"\t\t\t"<<"4.*********删除学生信息**********"<<endl;
	cout<<"\t\t\t"<<"5.*********统计所有记录**********"<<endl;
	cout<<"\t\t\t"<<"6.*********显示所有记录**********"<<endl;
	cout<<"\t\t\t"<<"0.*********  退出系统  **********"<<endl;
    STent_list S;
    STent_listInit(S);

	cout<<"\t\t\t"<<"请输入您的选择:";
	cin>>choice;
	if(choice == '0')
	{
	    cout<<endl<<"\t"<<"\t"<<"\t"<<"谢谢使用本系统!  "<<endl<<endl;
		exit(0);
	}
	else if(choice == '1')
		 {
		 	add(S);
		 	system("pause");
		 	main();
		 }
	else if(choice == '2')
		{
		  search(S);
		  system("pause");
		  main();
	    }
	else if(choice == '3')
	    {
	    	student_alter(S);
	    	system("pause");
	    	main();
	    }
	else if(choice == '4')
	    {
	      student_delete(S);
		  system("pause");
	  	  main();
	    }
    else if(choice == '5')
        {
          total(S);
		  system("pause");
		  main();
	    }
	else if(choice == '6')
        {
        	display(S);
        	system("pause");
        	main();
        }
    else
        {
        	cout<<"\t"<<"输入错误,请重新输入你的选择:";
			main();
		}
	return 0;
}

时间: 2024-10-06 20:55:44

课程设计选题管理系统的相关文章

课程设计——通讯录管理系统

整理了一下文件,找到了去年做课程设计的报告,保存一下代码,有一个说法:过了6个月再去看自己写的代码,假设认为写的不好,就说明有了一点进步:这样说明应该还是有那么一点点进步~ #include <stdio.h> #include <stdlib.h> #include <string.h> #include<conio.h>/*屏幕操作函数库*/ #define header1 "|***********************通讯录*******

C语言课程设计—图书管理系统

这是本人大一第二学期初C语言课程设计的作品,嘿嘿,本来以为已经找不到原稿了,今天无意中居然在QQ网络硬盘中找到了当初的teta版,公布于此,以作纪念. C源码例如以下: #include<stdio.h> #include<stdlib.h> #include<string.h> struct book{ char book_name[30]; int bianhao; double price; char author[20]; char state[20]; cha

数据库+Java课程设计 人事管理系统 (一)

                                                                  一.JAVA与数据库的合作 此次开发语言为Java,所用的数据库驱动是mysql-connector-java-5.1.8-bin.jar 第一步   用Java连接MySQL数据库(驱动下载:https://dev.mysql.com/downloads/connector/j/   ) 将下载好的mysql-connector-java-5.1.8-bin.ja

数据结构-课程设计-职工管理系统

职工管理管理系统--课程设计 本次课程设计,我还挺幸运的,抽到一道这么简单的题,思路很简单,但拓展很强,相比其他同学的,我这个简直是...,真是运气太好了, 代码写了1500多行吧,做课程设计中,我也学到了很多东西,代码太多,就放到了github上了 下面是一个总体概述,和一个README.md 其中README中以前分开写过,这次把他都写到了一起,所以就有点多~~~ 先来一个总体概述: 1.fstream的使用 字符串使用 3.排序的实现 排序使用的选择排序,采用的存储方式为链式结构,根据对象

Java课程设计——人事管理系统

主界面代码: 1 package PersonSystem; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 import javax.swing.*; 6 import javax.swing.event.*; 7 import javax.swing.tree.*; 8 import java.net.*; 9 /** 10 * 11 * 人事管理系统主界面 12 * 13 */ 14 public class HrMain exten

asp.net,java,jsp,安卓Android,苹果ios,php,vb.net,c#免费毕业课程设计源码共享网盘下载

百度网盘下载地址1:  http://pan.baidu.com/s/1o67fybC 百度网盘下载地址2: http://pan.baidu.com/s/1kTxckmF163网盘下载地址:http://home.163disk.com/shuangyulin file://E:\计算机设计参考!!!!!!!!!!!\资料 (4 folders, 0 files, 0 bytes, 641.25 MB in total.) ├─QQ254540457 (0 folders, 49 files,

随便说下课程设计

引子 很快就是学期末尾,一个学年来了,然后又过去.我们的课本呼啦呼啦的又翻了一圈,这也是目前大学的常态了.这几天师弟们也在忙碌着他们的课程设计,帮他们修改了一下.自己也回味起当年事,借此反思,同时也确定当下需要做好的事情. 对于课程设计的态度 以前上学时候,学点知识,看书本总觉得这样应付考试就够了,所谓及格万岁.那个时候根本不知道这门课程到底意味着什么.也是,时下教育总是有着各种怪品味:‘考上大学就轻松了’,‘上学时候不要谈恋爱’不外如是,捎带着学习都成了贬义词.可是事实呢,离开了校园才是真正学

计算机毕业课程设计源码打包下载

下载地址1: http://dl.vmall.com/c06pluqz6r 10个数据结构课程设计实例二...冒泡排序快速排序等.rar  下载  9.99K asp+sqlserver2000网络书店系统.rar  下载  1.4M asp+sqlserver2000在线考试系统.rar  下载  1.21M ASP+sql精品在线试题库设计+论文.rar  下载  2.7M asp.net+sql2008在线论坛系统.rar  下载  3.09M asp.net_sql2008公司人事管理系

C#课程设计:基于Access的会员管理系统

C#课程设计:基于Access数据库的会员管理系统 本会员管理系统使用Access作为数据库,编写语言为C#,运行环境为.net4.0以上,本例程可以作为课程设计,感兴趣的同学当然也可以下载学习,有啥需要改进的地方希望大家也可以提提意见,对于相关源码我就不介绍了,直接展示部分图片吧.相关源码:点击下载