文章目录:
有没有学生档案管理系统,基于C#的,需要源码,
#includeiostream
#includestdlib.h
#includestring.h
#includemalloc.h
#define INIT_SIZE 10
#define INCRE_SIZE 10
#define SUBJECT_NUM 3
#define LEN 3
void show_Start();
void show_Table();
void addRecord();
void Info_delete();
void deleteRecord();
void delete_Num(int);
void delete_Name(char tarName[]);
void Info_modify();
void modifyRecord();
void modify_Num(int);
void modify_Name(char[]);
void Info_query();
void queryRecord();
void query_Num(int);
void query_Name(char[]);
void display();
void quit();
void menu_CMD();
char *subject[SUBJECT_NUM] = {"高代","数分","C语言"};
struct STUDENT
{
int num;
char name[20];
char sex;
float score[SUBJECT_NUM];
};
//struct STUDENT stu[LEN + 1];
//STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);
int static stuNum = 0;
//先暂时定义三个学生吧...
STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);;
int main()
{
//record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);
//STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);
/*
record[1].num = 1001;
strcpy(record[1].name,"Jason");
record[1].sex = 'M';
record[1].score[0] = 85.0;
record[1].score[1] = 90.0;
record[1].score[2] = 95.0;
record[2].num = 1002;
strcpy(record[2].name,"Jerry");
record[2].sex = 'M';
record[2].score[0] = 85.0;
record[2].score[1] = 90.0;
record[2].score[2] = 95.0;
record[3].num = 1003;
strcpy(record[3].name,"Jessie");
record[3].sex = 'F';
record[3].score[0] = 85.0;
record[3].score[1] = 90.0;
record[3].score[2] = 95.0;
*/
/*
Info_modify();
int key;
cout"请输入您的选择 : ";
cinkey;
if(key == 1)
{
int targetNum;
cout"请输入您欲修改的学生的学号 : ";
cintargetNum;
modify_Num(targetNum);
coutendl;
display();
}
if(key == 2)
{
char targetName[20];
cout"请输入您欲修改学生的姓名 : ";
cintargetName;
modify_Name(targetName);
coutendl;
display();
}
if(key == 3)
{
exit(0);
}
*/
show_Start();
menu_CMD();
return 0;
}
//修改完后还应该显示
void show_Start()
{
//coutendl;
cout" **************************************** "endl;
cout" 这是一个 "endl;
cout" 学生成绩管理系统 "endl;
cout" 可以对学生成绩进行管理 "endl;
cout" 欢迎大家使用 "endl;
cout" Made by Jason "endl;
cout" **************************************** "endl;
}
// 显示表头信息,即是 : 学号,姓名,性别,高代,数分,C语言.
void show_Table()
{
cout"学号""\t""姓名""\t""性别";
cout"\t"subject[0]"\t"subject[1]"\t"subject[2];
coutendl;
}
void menu_CMD()
{
int key;
while(1)
{
cout"1. 增加学生信息"endl;
cout"2. 删除学生信息"endl;
cout"3. 修改学生信息"endl;
cout"4. 查询学生信息"endl;
cout"5. 显示学生信息"endl;
cout"6. 退出"endl;
cout"请输入您的选择 : ";
cinkey;
while(1)
{
if((key 1)||(key 6))
{
int key;
cout"您的输入有误,请重新输入!"endl;
cout"请选(1 - 5) : ";
cinkey;
}
else
{
break;
}
}
switch(key)
{
case 1:
addRecord();
break;
case 2:
deleteRecord();
break;
case 3:
modifyRecord();
break;
case 4:
queryRecord();
break;
case 5:
display();
break;
case 6:
quit();
break;
}
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//增加学生信息
void addRecord()
{
if(stuNum == 0)
{
cout"原来没有记录,现在建立新表!"endl;
stuNum++;
}
else
{
cout"现在在当前表的末尾添加新的信息!"endl;
stuNum++;
}
//如果数组空间不够,重新申请空间
if(stuNum INIT_SIZE)
{
cout"内存空间不够,现在重新申请新的内存空间!"endl;
record = (STUDENT*)realloc(record,(INIT_SIZE + INCRE_SIZE)*sizeof(STUDENT));
cout"空间申请完成!"endl;
}
cout"您现在要添加一组新的信息,您确定吗?"endl;
cout"请输入您的选择(Y/N) : ";
char choi;
cinchoi;
if((choi == 'Y')||(choi == 'y'))
{
cout"请输入学号 : ";
cinrecord[stuNum].num;
cout"请输入姓名 : ";
cinrecord[stuNum].name;
cout"请输入性别(M为男,F为女) : ";
cinrecord[stuNum].sex;
int i;
for(i = 0;i SUBJECT_NUM;i++)
{
cout"请输入"subject[i]"的成绩 : ";
cinrecord[stuNum].score[i];
}
}
if((choi == 'N')||(choi == 'n'))
{
cout"退出添加新学生信息!"endl;
coutendl;
}
cout"现在已经有"stuNum"条学生的信息了!"endl;
coutendl;
}
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//删除信息 晚上完成...
//显示deleteRecord的表头信息
void Info_delete()
{
cout"请输入删除方式 : "endl;
cout"1. 按学号删除"endl;
cout"2. 按姓名删除"endl;
cout"3. 退出删除"endl;
}
//删除学生的信息,包含两个子函数
void deleteRecord()
{
int key;
coutendl;
Info_delete();
cout"请输入您的选择 : ";
cinkey;
if(key == 1)
{
int targetNum;
cout"请输入您欲删除学生的学号 : ";
cintargetNum;
//按学号删除
delete_Num(targetNum);
coutendl;
}
if(key == 2)
{
char targetName[20];
cout"请输入您欲删除学生的姓名 : ";
cintargetName;
//按姓名删除
delete_Name(targetName);
coutendl;
}
if(key == 3)
{
while(1)
{
menu_CMD();
}
}
}
//按学号删除学生信息
//只用完成删除操作,而不必输出. 输出的操作可以在主菜单中进行
void delete_Num(int tarNum)
{
int i;
for(i = 1;i = stuNum;i++)
{
if(record[i].num == tarNum)
{
//删除还要分两种情况讨论
//1. 欲删除的学生信息是最后一位
//2. 欲删除的学生信息不是最后一位
//第一种情况,欲删除的学生是最后一位
if(i = stuNum)
{
cout"您所要删除的学生信息是 : "endl;
show_Table();
coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t"
record[i].score[0]record[i].score[1]"\t"record[i].score[2];
coutendl;
coutendl"删除后学生信息表为 : "endl;
show_Table();
for(int i = 1;i = stuNum - 1;i++)
{
coutrecord[i].num"\t"record[i].name"\t"record[i].sex;
for(int j = 0;j SUBJECT_NUM;j++)
{
cout"\t"record[i].score[j];
}
coutendl;
}
//显示信息应该放在后面
/*
stuNum--;
cout"现在还剩下"stuNum"条学生的信息";
coutendl;
*/
}
//2.第二种情况,欲删除的学生不是最后一位
if(i != stuNum)
{
cout"您所要删除的学生信信息是 : "endl;
show_Table();
coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t"
record[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];
for(int j = i+1;j = stuNum;j++)
{
record[j-1] = record[j];
}
//接着完成输出
coutendl;
cout"删除后学生信息表为 : "endl;
show_Table();
for(int i = 1;i = stuNum-1;i++)
{
coutrecord[i].num"\t"record[i].name"\t"record[i].sex;
for(int j = 0;j SUBJECT_NUM;j++)
{
cout"\t"record[i].score[j];
}
coutendl;
}
/*
stuNum--;
cout"现在还剩下"stuNum"条学生的信息";
coutendl;
*/
}
stuNum--;
cout"现在还是剩下"stuNum"条学生的信息";
coutendl;
}
}
}
/*
//方法同上
void delete_Name(char tarName[])
{
int i;
for(i = 1;i = stuNum;i++)
{
if(strcmp(record[i].name,tarName) == 0)
{
//删除还要分两种情况讨论
//1. 欲删除的学生信息是最后一位
//2. 欲删除的学生信息不是最后一位
//第一种情况 : 欲删除学生是最后一位
if(i = stuNum)
{
cout"您所要删除的学生信息是 : "endl;
show_Table();
coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t"
record[i].score[0]record[i].score[1]"\t"record[i].score[2];
coutendl;
coutendl"删除后学生信息表为 : "endl;
show_Table();
for(int i = 1;i = stuNum - 1;i++)
{
coutrecord[i].num"\t"record[i].name"\t"record[i].sex;
for(int j = 0;j SUBJECT_NUM;j++)
{
cout"\t"record[i].score[j];
}
coutendl;
}
}
//第二种情况 : 欲删除学生不是最后一位
if(i != stuNum)
{
cout"您所要删除的学生信信息是 : "endl;
show_Table();
coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t"
record[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];
//整体往前 前移一位
for(int j = i+1;j = stuNum;j++)
{
record[j-1] = record[j];
}
coutendl;
//接着完成输出
cout"删除后学生信息表为 : "endl;
show_Table();
for(int i = 1;i = stuNum-1;i++)
{
coutrecord[i].num"\t"record[i].name"\t"record[i].sex;
for(int j = 0;j SUBJECT_NUM;j++)
{
cout"\t"record[i].score[j];
}
coutendl;
}
coutendl;
}
}
}
}
*/
void delete_Name(char tarName[])
{
int i;
for(i = 1;i = stuNum;i++)
{
//删除还要分两种情况讨论
//1. 欲删除的学生信息是最后一位
//2. 欲删除的学生信息不是最后一位
//当欲删除的学生是最后一位,直接输出前面LEN-1位学生的信息
if(strcmp(record[i].name,tarName) == 0)
{
if(i == stuNum)
{
cout"您所要删除的学生信息是 : "endl;
show_Table();
coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t"
record[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];
coutendl;
cout"删除后学生信息表为 : "endl;
show_Table();
for(int i = 1;i = stuNum-1;i++)
{
coutrecord[i].num"\t"record[i].name"\t"record[i].sex;
for(int j = 0;j SUBJECT_NUM;j++)
{
cout"\t"record[i].score[j];
}
coutendl;
}
/*
stuNum--;
cout"现在还剩下"stuNum"条学生的信息";
coutendl;
*/
}
//当欲删的学生不是最后一位,整体往前前移一位
if(i != stuNum)
{
cout"您所要删除的学生信息是 : "endl;
show_Table();
coutrecord[i].num"\t"record[i].name"\t"record[i].sex"\t";
coutrecord[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];
coutendl;
//整体往前前移一位
for(int j = i+1;j = stuNum;j++)
{
record[j-1] = record[j];
}
//然后输出
coutendl;
cout"删除后学生信息表为 : "endl;
show_Table();
for(int i = 1;i = stuNum-1;i++)
{
coutrecord[i].num"\t"record[i].name"\t"record[i].sex;
for(int j = 0;j SUBJECT_NUM;j++)
{
cout"\t"record[i].score[j];
}
coutendl;
}
/*
stuNum--;
cout"现在还剩下"stuNum"条学生的信息";
coutendl;
*/
}
stuNum--;
cout"现在还剩下"stuNum"条学生的信息";
coutendl;
}
}
}
/*****************************************************************************
******************************************************************************/
//显示modifyRecord的表头信息
void Info_modify()
{
cout"请输入修改方式 : "endl;
cout"1. 按学号修改"endl;
cout"2. 按姓名修改"endl;
cout"3. 退出修改"endl;
}
//查询学生的成绩,当然里面包括两个子函数
void modifyRecord()
{
int key;
coutendl;
Info_modify();
cout"请输入您的选择 : ";
cinkey;
//按学号修改
if(key == 1)
{
int targetNum;
cout"请输入您欲修改的学生的学号 : ";
cintargetNum;
modify_Num(targetNum);
coutendl;
//display();
}
//按姓名修改
if(key == 2)
{
char targetName[20];
cout"请输入您欲修改学生的姓名 : ";
cintargetName;
modify_Name(targetName);
coutendl;
//display();
}
//退出修改
if(key == 3)
{
while(1)
{
menu_CMD();
}
}
}
//按学号修改
void modify_Num(int tarNum)
{
int i;
for(i = 1;i = stuNum;i++)
{
if(record[i].num == tarNum)
{
coutendl"请修改该学生的信息"endl;
cout"请输入该学生的学号 : ";
cinrecord[i].num;
cout"请输入该学生的姓名 : ";
cinrecord[i].name;
cout"请输入该学生的性别 : ";
cinrecord[i].sex;
cout"请输入"subject[0]"的成绩 : ";
cinrecord[i].score[0];
cout"请输入"subject[1]"的成绩 : ";
cinrecord[i].score[1];
cout"请输入"subject[2]"的成绩 : ";
cinrecord[i].score[2];
}
}
}
//按姓名修改
void modify_Name(char tarName[])
{
int i;
for(i = 1;i = stuNum;i++)
{
if(strcmp(record[i].name,tarName) == 0)
{
coutendl"请修改该学生的信息 : "endl;
cout"请输入该学生的学号 : ";
cinrecord[i].num;
cout"请输入该学生的姓名 : ";
cinrecord[i].name;
cout"请输入该学生的性别 : ";
cinrecord[i].sex;
cout"请输入"subject[0]"的成绩 : ";
cinrecord[i].score[0];
cout"请输入"subject[1]"的成绩 : ";
cinrecord[i].score[1];
cout"请输入"subject[2]"的成绩 : ";
cinrecord[i].score[2];
}
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//显示queryRecord的表头信息
void Info_query()
{
cout"请输入查询方式 : "endl;
cout"1. 按学号查询"endl;
cout"2. 按姓名查询"endl;
cout"3. 退出查询"endl;
}
//查询学生信息queryRecord
void queryRecord()
{
int key;
coutendl;
Info_query();
cout"请输入您的选择 : ";
cinkey;
if(key == 1)
{
int targetNum;
cout"请输入您欲查询学生的学号 : ";
cintargetNum;
query_Num(targetNum);
coutendl;
}
if(key == 2)
{
char targetName[20];
cout"请输入您欲查询学生的学号 : ";
cintargetName;
query_Name(targetName);
coutendl;
}
//退出查询,退回到主菜单吧...
if(key == 3)
{
while(1)
{
menu_CMD();
}
}
}
//按学号查询
void query_Num(int tarNum)
{
int i;
for(i = 1;i = stuNum;i++)
{
if(record[i].num == tarNum)
{
//如果表中有该学生信息的话,仅用输出该学生的信息即可.
//输出该学生的信息
cout"该学生的信息如下 : "endl;
//显示表头信息
show_Table();
//显示该学生具体的信息
coutrecord[i].num"\t"record[i].name"\t"record[i].sex;
cout"\t"record[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];
coutendl;
}
}
}
//按姓名查询
void query_Name(char tarName[])
{
int i;
for(i = 1;i = stuNum;i++)
{
if(strcmp(record[i].name,tarName) == 0)
{
cout"该学生的信息如下 : "endl;
show_Table();
coutrecord[i].num"\t"record[i].name"\t"record[i].sex;
cout"\t"record[i].score[0]"\t"record[i].score[1]"\t"record[i].score[2];
coutendl;
}
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//先显示所有学生的信息吧
//显示record里所有学生的成绩
void display()
{
show_Table();
int i,j;
for(i = 1;i = stuNum;i++)
{
//cout"学号""\t""姓名""\t""性别";
coutrecord[i].num"\t"record[i].name"\t"record[i].sex;
for(j = 0;j SUBJECT_NUM;j++)
{
cout"\t"record[i].score[j];
}
coutendl;
}
coutendl;
}
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//退出
void quit()
{
char choi;
cout"您确定要退出吗?"endl;
cout"请输入您的选择(Y/N) : ";
cinchoi;
if((choi == 'Y')||(choi == 'y'))
{
cout"现在退出学生信息管理系统"endl;
exit(0);
}
//如果不是退出,则接着退回到主界面
else
{
coutendl;
menu_CMD();
}
}
这个是原创的... 在C-Free 4.0里跑过,可以正常运行
你可以试着跑一下,如果有什么问题可以和我联系
| 评论(1)
向TA求助
回答者: 伦落校园4914 来自团队 嘻嘻爱好者 | 二级采纳率:5%
擅长领域: C/C++ 数学
参加的活动: 暂时没有参加的活动
相关内容
2009-2-28求 学生信息管理系统 C程序源代码 1
2007-7-29学生信息管理系统 C/C++ 的 源代码 22
2011-3-16请高手紧急求救啊!!急求学生信息管理系统 源代码 JAVA的 myeclip...
2009-8-31求 MFC 学生信息管理系统 源代码 5
2010-9-9MFC 学生信息管理系统 源代码 那个。。。我也想要可以吗? 1
更多关于学生档案管理系统,源码的问题
学生信息管理系统:... 学生信息管理系统:... 学生信息管理系统:...
2012-2-18学生信息管理系统论文,求高手11
2012-1-22学生信息管理系统论文
2011-12-15谁有学生信息管理系统的论文,发过来哦!要求:B/S的,java+mysql的. ...
2011-12-19求毕业设计vb+access 题目是学生信息管理系统 哪位大神有的 全套发我...
2011-12-15谁有学生信息管理系统的论文,发过来哦!
更多关于学生信息管理系统:论文的问题
回答 共2条
2010-12-22 20:03 Shanglogo | 六级
不知道你要实现什么样的功能,下面的你可以参考一下。
#includeiostream.h
#includeiomanip.h
void input(); //声明7个函数
void output();
void paixu();
void chazhao();
void charu();
void shanchu();
void tongji();
struct Student //结构体
{
int num;
char name[12];
float math;
float eng;
float com;
float sum;
float ave;
};
Student x[30];
int N=0;
void main()
{
int m;
do
{ //开场效果
coutendl;
coutendl;
cout" * * * * * * * * * * * * * * * * * * * * * * *"endl;
cout" * 欢迎使用学生信息管理系统 *"endl;
cout" * 1.输入信息 2.输出信息 *"endl;
cout" * 3.总分排序 4.查找信息 *"endl;
cout" * 5.插入信息 6.删除信息 *"endl;
cout" * 7.统计分数 8.退出系统 *"endl;
cout" * Made by Shanglogo *"endl;
cout" * * * * * * * * * * * * * * * * * * * * * *"endl;
coutendl;
我们单位成立了一个档案中心,想购买一套档案管理系统,有没有好的软件公司给推荐一下!!
感觉楼主想找河北的软件公司,是考虑到售后维护吗?如果是这样,那大可不必,因为软件跟别的商品不同,它是最适合通过网络进行服务的商品。我研究过一些档案软件,我没注意过是哪个省开发的,我只从适用性上推荐几款给你吧,这几家无论是软件本身还是服务都是一流的,因为我推荐的这几款软件我都用过,而且也都通过网络跟对方交流过:
1、东图档案管理软件,牌子比较老,软件质量过硬;
2、量子伟业档案管理软件,用着感觉不错,多个版本各有特点,要买的话建议多试用几个版本,选择最适合自己的;
3、万能档案管理软件,近两年刚火起来的一款软件,感觉是操作最简单、最方便的一款,我个人比较喜欢这款软件的自定义档案模板、自定义打印样式功能。
其它还有一些不错的档案软件,但有的功能太简单,还有的在设计上我认为没有出彩,在以上三款里面选,应该不会有错,大大节省了你的时间。
档案管理系统的档案管理系统软件
“旗帜数字化干部人事档案管理系统”是一套既档案采集、档案管理、档案利用于一体的综合档案管理软件。该系统的应用可实现对档案及档案材料的收集、鉴别、整理、保管、转递、统计、查阅等日常工作的数字化管理,并可通过组织系统专网实现干部档案的网上浏览和远程查阅功能,进一步提高干部信息化管理水平,加强对干部工作的规范化管理,这为今后干部任用、干部提拔等工作带来了极大的方便。
“旗帜数字化干部人事档案管理系统”由三部分组成:档案管理系统、档案采集系统以及网上查阅系统。
档案管理系统:实现干部人事档案管理工作中对干部档案、材料的收集、鉴别、整理、保管、转递、统计、查阅等业务功能,主要由四大模块组成:业务管理、信息管理、系统维护及管理工具。
档案采集系统:档案采集系统主要完成对纸质档案材料的数字化采集处理功能。系统提供了目录整理、档案采集、档案审核、系统维护四大功能,并利用现化代网络技术,实现多人多客户端,对多本档案,不同材料同时采集功能,是一套高效、快捷的档案数字化采集软件。
网上查阅系统:数字化档案查阅系统是以组织系统专网为网络基础,采用B/S(浏览器/服务器)模式架构,在组织系统内部实现了本地及远程查档、阅档功能。并采用多种安全加密处理方式,确保系统运行安全可靠。 档案流水化采集功能
实现多人多客户端对多本档案同时进行扫描采集功能,并按操作角色进行分工及权限管理。
网上档案阅档功能
实现单位内部或异地对干部档案的查阅要求。在查档过程中,系统进行全面的日志记录,对信息传输、用户访问、数据打印等进行了全面的安全设计。
档案业务处理功能
紧密接合组织部门档案管理工作,完成日常档案业务处理功能。主要包括:档案案卷管理、档案材料的管理、档案零散材料收集、档案信息审核、任前档案审核等功能。
基础信息维护
包括单位信息、在职、后备、离退休干部管理、其他人员类别管理、各种样式名册输出等。
查询处理、统计分析
根据不同的需求实现对数据库人员信息、档案信息的综合查询及统计分析功能,条件设置灵活,结果以二维表、柱状图、花名册等形式显示。
其它辅助功能
包括数据的发送、接收;数据的备份、恢复;用户管理、日志管理功能以及事务提醒等。
理、其他人员类别管理、各种样式名册输出等。查询处理、统计分析根据不同的需求实现对数据库人员信息、档案信息的综合查询及统计分析功能,条件设置灵活,结果以二维表、柱状图、花名册等形式显示。其它辅助功能包括数据的发送、接收;数据的备份、恢复;用户管理、日志管理功能以及事务提醒等。
} //如果数组空间不够,重新申请空间 if(stuNum INIT_SIZE) { cout"内存空间不够,现在重新申请新的内存空间!"endl; record = (STUDENT*)realloc(record,(INIT_SIZE + INCRE_SIZE)*sizeof(S
coutendl; } }}//按姓名查询void query_Name(char tarName[]){ int i; for(i = 1;i = stuNum;i++) { if(strcmp(record[i].name,tarName) == 0)