C++课程设计:学生基本信息管理系统
内容按照要求设计一个学生基本信息管理系统,实现对学生信息的综合管理。学生信息包括:学号、姓名、年龄、性别、家庭住址、联系电话、寝室号等信息。现要求编写程序来完成如下功能:...
内容
按照要求设计一个学生基本信息管理系统,实现对学生信息的综合管理。学生信息包括:学号、姓名、年龄、性别、家庭住址、联系电话、寝室号等信息。
现要求编写程序来完成如下功能:
(1)学生信息的输入
包含功能:对输入的学号是否重复进行判断(学号唯一);对输入的是否为有效性别进行判断。
(2)学生信息的显示
(3)学生信息的查询
包含功能:实现按“学号、姓名、性别、寝室号”等查询;若非法查询或未查到请给予提示。
(4)学生信息的统计
包含功能:统计学生的“男生人数、女生人数、总人数”
(5)学生信息的删除
包含功能:删除指定学号的学生信息;若无此记录,给予提示。
(6)学生信息的修改
包含功能:根据接收到的待修改的学生的学号,进行对相应信息的修改。
(7)清理屏幕
(8)退出
包含class类,string函数 展开
按照要求设计一个学生基本信息管理系统,实现对学生信息的综合管理。学生信息包括:学号、姓名、年龄、性别、家庭住址、联系电话、寝室号等信息。
现要求编写程序来完成如下功能:
(1)学生信息的输入
包含功能:对输入的学号是否重复进行判断(学号唯一);对输入的是否为有效性别进行判断。
(2)学生信息的显示
(3)学生信息的查询
包含功能:实现按“学号、姓名、性别、寝室号”等查询;若非法查询或未查到请给予提示。
(4)学生信息的统计
包含功能:统计学生的“男生人数、女生人数、总人数”
(5)学生信息的删除
包含功能:删除指定学号的学生信息;若无此记录,给予提示。
(6)学生信息的修改
包含功能:根据接收到的待修改的学生的学号,进行对相应信息的修改。
(7)清理屏幕
(8)退出
包含class类,string函数 展开
展开全部
比较类似,C语言链表+结构体实现,楼主可以自己改改,在结构体里加上须要的内容
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
int bExit = 0;
int total = 0;
#define Create(the_one) the_one=(Stu *)malloc(sizeof(Stu))
typedef
struct Student
{
char cnum[20]; // 字符串学号
int inum; // 数字学号
char name[20]; // 姓名
float score; // 成绩
struct Student *next;
}Stu;
Stu *the_one, *h, *pr, *last, *end;
//1.添加学生函数
void ADD()
{
int Four = 0;
printf("================================\n");
Create(the_one);
the_one->next = NULL;
end = last; //end指向倒数第二个结点
last->next = the_one;//将the_one放在链表的 最后
last = the_one; //last指向倒数第一个结点
//输入学号
printf("输入学生信息:\n学号:");
while (!Four)
{
gets(the_one->cnum);
if (strlen(the_one->cnum) != 4)
printf("输入非法:学号必须是4位,请重新输入!\n学号:");
else
Four = 1;
}
the_one->inum = atoi(the_one->cnum); //int型学号
//输入姓名
printf("学生姓名:");
gets(the_one->name);
//输入成绩
printf("学生成绩:");
scanf("%f", &the_one->score);
getchar(); //接收回车
//总数+1
total++;
//排序
//pr从空head开始,last指向下一个(前趋pr,后趋last)
for (pr = h, last = pr->next; last->next; pr = pr->next, last = pr->next)
{
if (last->inum>the_one->inum)
{
//插入元素the_one
the_one->next = last;
pr->next = the_one;
last = end; //插入完成,将last移到最后。
end->next = NULL;//最后结点指针域置空,last->next为NULL,跳出循环
break;
}
}
printf("================================\n");
}
//2.查询学生函数
void CHECK()
{
Stu *target, *p;
int fond = 0;
printf("================================\n");
printf("输入要查找学生的学号:\n学号:");
Create(target);
gets(target->cnum);
for (p = h->next; p; p = p->next)
{
if (!strcmp(p->cnum, target->cnum))
{
printf("学号为%s的学生信息:姓名(%s),分数(%.2f)\n", p->cnum, p->name, p->score);
free(target);
fond = 1;
}
}
if (!fond)
printf("Wrong Student NO.!\n");
printf("================================\n");
}
//3.编辑学生
void EDIT()
{
Stu *target, *p;
int fond = 0;
printf("================================\n");
printf("输入要编辑学生的学号:\n学号:");
Create(target);
gets(target->cnum);
for (p = h->next; p; p = p->next)
{
if (!strcmp(p->cnum, target->cnum))
{
printf("学号为%s的学生信息:姓名(%s),分数(%.2f)\n", p->cnum, p->name, p->score);
printf("请选择修改项目:\n1:姓名\n2:分数\n");
char c;
c = getch();
switch (c)
{
case '1':
printf("输入正确的姓名:");
gets(p->name);
break;
case '2':
printf("输入最新成绩:");
scanf("%f", &p->score);
break;
}
printf("学号为%s的学生最新信息:姓名(%s),分数(%.2f)\n", p->cnum, p->name, p->score);
free(target);
fond = 1;
}
}
if (!fond)
printf("Not Exit This NO.!\n");
printf("================================\n");
}
//4.删除学生
void DELETE1()
{
void PRINALL();
PRINALL();
Stu *target, *p, *pr;
int fond = 0;
printf("================================\n");
printf("输入要删除学生的学号:(如果删除所有学生信息,请输入0000)\n学号:");
Create(target);
gets(target->cnum);
target->inum = atoi(target->cnum);
// char *zero=&"0000";
if (!strcmp(target->cnum, "0000"))
{
h->next = NULL;
total = 0;
}
else
{
for (pr = h, p = h->next; p; pr = pr->next, p = p->next)
{
if (!strcmp(p->cnum, target->cnum))
{
printf("学号为%s的学生信息已删除\n", p->cnum);
free(target);
pr->next = p->next;
p->next = NULL;
// free(p);此句报错
fond = 1;
total--;
}
}
if (!fond)
printf("没有找到学号为%s的学生,请确认学号输入是否正确\n");
}
printf("================================\n");
}
//5.打印全部
void PRINALL()
{
int amounts = 1;
Stu *Op;
printf("================================\n");
printf("所有学生信息:\n");
for (Op = h->next; Op; Op = Op->next)
printf("%d.%s,%s,%.2f\n", amounts++, Op->cnum, Op->name, Op->score);
printf("================================\n");
}
//6.总人数
void TOTAL()
{
printf("================================\n");
printf("学生总人数:%d\n", total);
printf("================================\n");
}
//菜单函数
void Menu()
{
char order;
printf("================================\n");
printf("| 1.添加学生. |\n");
printf("| 2.查询学生. |\n");
printf("| 3.编辑学生. |\n");
printf("| 4.删除学生. |\n");
printf("| 5.打印全部. |\n");
printf("| 6.总人数. |\n");
printf("| 7.退出. |\n");
printf("================================\n");
order = getch();
system("cls");
switch (order)
{
case '1':
ADD();
break;
case '2':
CHECK();
break;
case '3':
EDIT();
break;
case '4':
DELETE1();
break;
case '5':
PRINALL();
break;
case '6':
TOTAL();
break;
case '7':
bExit = 1;
break;
}
while (!bExit)
{
getch();
system("cls");
Menu();
}
}
void main()
{
//创建链表头
Create(h);
pr = last = end = the_one = h;
the_one->next = NULL;
Menu();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |