校友信息管理系统源代码(毕业生信息管理系统代码)[20240421更新]
admin 发布:2024-04-21 22:01 117
本篇文章给大家谈谈校友信息管理系统源代码,以及毕业生信息管理系统代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
如何用C语言编写学生信息管理系统
参考如下学生信息管理系统的C源代码吧。
#include stdio.h
#include string.h
/*定义学生结构体*/
struct Student
{
char ID[20];
char Name[20];
float Mark1;
float Mark2;
float Mark3;
float Average;
};
/*声明学生数组及学生数量*/
struct Student students[1000];
int num=0;
/*求平均值*/
float Avg(struct Student stu)
{
return (stu.Mark1+stu.Mark2+stu.Mark3)/3;
}
/*通过学号返回数组下标*/
int Student_SearchByIndex(char id[])
{
int i;
for (i=0;inum;i++)
{
if (strcmp(students[i].ID,id)==0)
{
return i;
}
}
return -1;
}
/*通过姓名返回数组下标*/
int Student_SearchByName(char name[])
{
int i;
for (i=0;inum;i++)
{
if (strcmp(students[i].Name,name)==0)
{
return i;
}
}
return -1;
}
/*显示单条学生记录*/
void Student_DisplaySingle(int index)
{
printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("-------------------------------------------------------------\n");
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name,
students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);
}
/*插入学生信息*/
void Student_Insert()
{
while(1)
{
printf("请输入学号:");
scanf("%s",students[num].ID);
getchar();
printf("请输入姓名:");
scanf("%s",students[num].Name);
getchar();
printf("请输入成绩:");
scanf("%f",students[num].Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",students[num].Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",students[num].Mark3);
getchar();
students[num].Average=Avg(students[num]);
num++;
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*修改学生信息*/
void Student_Modify()
{
//float mark1,mark2,mark3;
while(1)
{
char id[20];
int index;
printf("请输入要修改的学生的学号:");
scanf("%s",id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要修改的学生信息为:\n");
Student_DisplaySingle(index);
printf("-- 请输入新值--\n");
printf("请输入学号:");
scanf("%s",students[index].ID);
getchar();
printf("请输入姓名:");
scanf("%s",students[index].Name);
getchar();
printf("请输入成绩:");
scanf("%f",students[index].Mark1);
getchar();
printf("请输入成绩:");
scanf("%f",students[index].Mark2);
getchar();
printf("请输入成绩:");
scanf("%f",students[index].Mark3);
getchar();
students[index].Average=Avg(students[index]);
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*删除学生信息*/
void Student_Delete()
{
int i;
while(1)
{
char id[20];
int index;
printf("请输入要删除的学生的学号:");
scanf("%s",id);
getchar();
index=Student_SearchByIndex(id);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要删除的学生信息为:\n");
Student_DisplaySingle(index);
printf("是否真的要删除?(y/n)");
if (getchar()=='y')
{
for (i=index;inum-1;i++)
{
students[i]=students[i+1];//把后边的对象都向前移动
}
num--;
}
getchar();
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*按姓名查询*/
void Student_Select()
{
while(1)
{
char name[20];
int index;
printf("请输入要查询的学生的姓名:");
scanf("%s",name);
getchar();
index=Student_SearchByName(name);
if (index==-1)
{
printf("学生不存在!\n");
}
else
{
printf("你要查询的学生信息为:\n");
Student_DisplaySingle(index);
}
printf("是否继续?(y/n)");
if (getchar()=='n')
{
break;
}
}
}
/*按平均值排序*/
void Student_SortByAverage()
{
int i,j;
struct Student tmp;
for (i=0;inum;i++)
{
for (j=1;jnum-i;j++)
{
if (students[j-1].Averagestudents[j].Average)
{
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
}
}
/*显示学生信息*/
void Student_Display()
{
int i;
printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");
printf("-------------------------------------------------------------\n");
for (i=0;inum;i++)
{
printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name,
students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);
}
}
/*将学生信息从文件读出*/
void IO_ReadInfo()
{
FILE *fp;
int i;
if ((fp=fopen("Database.txt","rb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
if (fread(num,sizeof(int),1,fp)!=1)
{
num=-1;
}
else
{
for(i=0;inum;i++)
{
fread(students[i],sizeof(struct Student),1,fp);
}
}
fclose(fp);
}
/*将学生信息写入文件*/
void IO_WriteInfo()
{
FILE *fp;
int i;
if ((fp=fopen("Database.txt","wb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
if (fwrite(num,sizeof(int),1,fp)!=1)
{
printf("写入文件错误!\n");
}
for (i=0;inum;i++)
{
if (fwrite(students[i],sizeof(struct Student),1,fp)!=1)
{
printf("写入文件错误!\n");
}
}
fclose(fp);
}
/*主程序*/
void main()
{
int choice;
IO_ReadInfo();
while(1)
{
/*主菜单*/
printf("\n------ 学生成绩管理系统------\n");
printf("1. 增加学生记录\n");
printf("2. 修改学生记录\n");
printf("3. 删除学生记录\n");
printf("4. 按姓名查询学生记录\n");
printf("5. 按平均成绩排序\n");
printf("6. 退出\n");
printf("请选择(1-6):");
scanf("%d",choice);
getchar();
switch(choice)
{
case 1:
Student_Insert();
break;
case 2:
Student_Modify();
break;
case 3:
Student_Delete();
break;
case 4:
Student_Select();
break;
case 5:
Student_SortByAverage();
Student_Display();
break;
case 6:
exit(0);
break;
}
IO_WriteInfo();
}
}
学生基本信息管理系统C++源代码
#include iostream
#include iomanip
#include string
using namespace std;
typedef struct student {
unsigned m_id;
string m_name;
unsigned m_age;
string m_sex;
string m_address;
string m_contact;
string m_dormitory;
struct student *m_next;
}student;
class CStudent {
private :
student *head;
public :
CStudent() {
head = new student;
head-m_id = 0;
head-m_name = "noname";
head-m_next = NULL;
}
~CStudent() {
student *p = head,*q;
while(p) {
q = p;
p = q-m_next;
delete q;
}
}
student readdata(int model); // model = 1:不读取学号,2:不读取姓名,其他,读取所有信息
void entering();
bool insert(const student astu);
student *findid(unsigned id) const;
student *findname(const string name) const;
student *findsex(const string sex) const;
student *finddormitory(const string dormitory) const;
unsigned boys() const;
unsigned girls() const;
unsigned headcount() const;
bool eraseid();
bool erasename();
bool modifyid();
bool modifyname();
void Show() const;
void query() const;
void friend statistics(const CStudent aclss);
void friend erase(CStudent aclss);
void friend modify(CStudent aclss);
};
string readstring() {
string str;
while(cin.get() != '\n');
cin str;
return str;
}
student CStudent::readdata(int model) {
student tmp;
if(model != 1) { cout "学 号: "; cin tmp.m_id; }
if(model != 2) { cout "姓 名: "; tmp.m_name = readstring(); }
cin tmp.m_age;
cout "性 别: ";
tmp.m_sex = readstring();
cout "住 址: ";
tmp.m_address = readstring();
cout "联系方式: ";
tmp.m_contact =readstring();
cout "寝 室: ";
tmp.m_dormitory = readstring();
return tmp;
}
void CStudent::entering() {
student tmp;
cout "学号(0 to return): ";
cin tmp.m_id;
while(tmp.m_id) {
if(findid(tmp.m_id) == NULL) {
cout "姓 名: ";
tmp.m_name = readstring();
cout "年 龄: ";
cin tmp.m_age;
cout "性 别: ";
tmp.m_sex = readstring();
cout "住 址: ";
tmp.m_address = readstring();
cout "联系方式: ";
tmp.m_contact = readstring();
cout "寝 室: ";
tmp.m_dormitory = readstring();
insert(tmp);
}
else cout "重复的学号:" tmp.m_id endl;
cout "学号(0 to return): ";
cin tmp.m_id;
}
}
student *CStudent::findid(unsigned id) const {
student *p;
for(p = head; p-m_next; p = p-m_next)
if(p-m_next-m_id == id) return p;
return NULL;
}
student *CStudent::findname(const string name) const {
student *p;
for(p = head; p-m_next; p = p-m_next)
if(p-m_next-m_name == name) return p;
return NULL;
}
student *CStudent::findsex(const string sex) const {
student *p;
for(p = head; p-m_next; p = p-m_next)
if(p-m_next-m_sex == sex) return p;
return NULL;
}
student *CStudent::finddormitory(const string dormitory) const {
student *p;
for(p = head; p-m_next; p = p-m_next)
if(p-m_next-m_dormitory == dormitory) return p;
return NULL;
}
bool CStudent::insert(const student astu) {
student *newnode,*p = head;
if(p-m_next == NULL) {
p-m_next = new student(astu);
p-m_next-m_next = NULL;
return true;
}
while(p-m_next) {
if(p-m_next-m_id == astu.m_id) {
cout "重复的学号,插入失败!\n";
return false;
}
if(p-m_next-m_id astu.m_id) {
newnode = new student(astu);
newnode-m_next = p-m_next;
p-m_next = newnode;
return true;
}
p = p-m_next;
}
p-m_next = new student(astu);
p-m_next-m_next = NULL;
return true;
}
unsigned CStudent::boys() const {
unsigned cnt = 0;
student *p;
for(p = head-m_next; p; p = p-m_next)
if(p-m_sex == "男") ++cnt;
return cnt;
}
unsigned CStudent::girls() const {
unsigned cnt = 0;
student *p;
for(p = head-m_next; p; p = p-m_next)
if(p-m_sex == "女") ++cnt;
return cnt;
}
unsigned CStudent::headcount() const {
unsigned cnt = 0;
student *p;
for(p = head-m_next; p; p = p-m_next,++cnt);
return cnt;
}
bool CStudent::eraseid() {
student *q,*p;
unsigned id;
cout "输入要删除的学号:";
cin id;
p = findid(id);
if(p == NULL) {
cout "没有找到学号是\"" id "\"的学生,删除失败!\n";
return false;
}
q = p-m_next;
p-m_next = q-m_next;
delete q;
return true;
}
bool CStudent::erasename() {
student *q,*p;
string name;
cout "输入要删除人的姓名:";
name = readstring();
p = findname(name);
if(p == NULL) {
cout "没有找到姓名是\"" name "\"的学生,删除失败!\n";
return false;
}
q = p-m_next;
p-m_next = q-m_next;
delete q;
return true;
}
bool CStudent::modifyid() {
student tmp,*p;
unsigned id;
cout "输入要修改的学号:";
cin id;
p = findid(id);
if(p == NULL) {
cout "没有找到学号是\"" id "\"的学生,修改失败!\n";
return false;
}
tmp = readdata(1);
tmp.m_id = id;
*p = tmp;
return true;
}
bool CStudent::modifyname() {
student *p,tmp;
string name;
cout "输入要修改人的姓名:";
name = readstring();
p = findname(name);
if(p == NULL) {
cout "没有找到姓名是\"" name "\"的学生,修改失败!\n";
return false;
}
tmp = readdata(2);
tmp.m_name = name;
*p = tmp;
return true;
}
int menu() {
int choice;
do {
system("cls");
cout "\t****************************\n";
cout "\t* 学生基本信息管理系统 *\n";
cout "\t*==========================*\n";
cout "\t* 1、录入学生信息 *\n";
cout "\t* 2、显示学生信息 *\n";
cout "\t* 3、查询学生信息 *\n";
cout "\t* 4、添加学生信息 *\n";
cout "\t* 5、统计学生信息 *\n";
cout "\t* 6、删除学生信息 *\n";
cout "\t* 7、修改学生信息 *\n";
cout "\t* 0、退出管理系统 *\n";
cout "\t****************************\n";
cout "\n\t请选择:";
cin choice;
}while(choice 0 || choice 7);
return choice;
}
void show(student *p) {
cout p-m_id " " p-m_name " " p-m_age " ";
cout p-m_sex " " p-m_address " ";
cout p-m_contact " " p-m_dormitory endl;
}
void CStudent::Show() const {
student *p;
cout "----------------------------------------------------------\n";
for(p = head-m_next; p; p = p-m_next) show(p);
cout "----------------------------------------------------------\n";
system("pause");
}
void CStudent::query() const {
int select;
unsigned id;
string name;
student *p;
cout "1、按学号查询\n2、按姓名查询\n0、返回\n";
cin select;
switch(select) {
case 1 : cout "请输入学号:"; cin id;
if(p = findid(id)) show(p-m_next);
break;
case 2 : cout "请输入姓名:"; name = readstring();
if(p = findname(name)) show(p-m_next);
break;
case 0 : return;
default : cout "选择错误。\n";
}
system("pause");
}
void statistics(const CStudent a) {
unsigned total = a.headcount();
unsigned boys = a.boys();
unsigned girls = a.girls();
cout "学生总数:" total "人。\n";
cout "其中,男生:" boys "名。";
cout "女生:" girls "名。\n";
system("pause");
}
void erase(CStudent a) {
int select;
unsigned id;
string name;
student *p,*q;
cout "1、按学号删除\n2、按姓名删除\n0、返回\n";
cin select;
switch(select) {
case 1 : cout "请输入学号:"; cin id;
if(p = a.findid(id)) {
q = p-m_next;
p-m_next = q-m_next;
delete q;
cout "成功删除 " id " 的信息。\n";
}
break;
case 2 : cout "请输入姓名:"; name = readstring();
if(p = a.findname(name)) {
q = p-m_next;
p-m_next = q-m_next;
delete q;
cout "成功删除 " name " 的信息。\n";
}
break;
case 0 : return;
default : cout "选择错误。\n";
}
system("pause");
}
void modify(CStudent a) {
int select;
cout "1、按学号修改\n2、按姓名修改\n0、返回\n";
cin select;
switch(select) {
case 1 : if(a.modifyid()) cout "修改成功。\n"; break;
case 2 : if(a.modifyname()) cout "修改成功。\n"; break;
case 0 : return;
default : cout "选择错误。\n";
}
system("pause");
}
int main() {
CStudent a;
int an;
do {
an = menu();
switch(an) {
case 1 : a.entering(); break;
case 2 : a.Show(); break;
case 3 : a.query(); break;
case 4 : a.entering(); break;
case 5 : statistics(a); break;
case 6 : erase(a); break;
case 7 : modify(a); break;
case 0 : break;
default : cout "选择错误。\n"; break;
}
}while(an);
return 0;
}
学生信息管理系统C++,使用Visual C++ 6.0编写。源代码参考
#includestdio.h
#includestdlib.h
#includestring.h
typedef struct list{
struct list *next;
int num; //学号
char name[30];//姓名
int age; //年龄
char sex; //性别
char addr[50];//地址
char mobile[11];//号码
int department; //寝室号
}user;
void insert(user *h);
void edit(user *h);
void del(user *h);
void S_byName(user *h);
void S_byNum(user *h);
void display(user *h);
int main()
{
int flag;
user *head=(user *)malloc(sizeof(user));
head-next=NULL;
while(1)
{
printf(" 1、添加新用户信息\n");
printf(" 2、修改用户信息\n");
printf(" 3、删除已有用户信息\n");
printf(" 4、根据用户名查询信息\n");
printf(" 5、根据学号查询信息\n");
printf(" 6、显示全部用户信息\n");
printf(" 7、清屏\n");
printf(" 8、退出\n");
printf("请选择:");
scanf("%d",flag);
if(flag==1)
insert(head);
else if(flag==2)
edit(head);
else if(flag==3)
del(head);
else if(flag==4)
S_byName(head);
else if(flag==5)
S_byNum(head);
else if(flag==6)
display(head);
else if(flag==7)
system("clear");
else if(flag==8)
return 0;
else
printf("输入有误,请重新选择!\n");
}
}
void insert(user *h)
{
user *p=(user *)malloc(sizeof(user));
p-next=h-next;
h-next=p;
printf("请输入新增用户学号:");
scanf("%d",p-num);
printf("请输入新增用户名称(最多30个字):");
scanf("%s",p-name);
printf("请输入新增用户年龄:");
scanf("%d",p-age);
printf("请输入新增用户性别:");
scanf("%c",p-sex);
printf("请输入新增用户的家庭住址(最多50字):");
scanf("%s",p-addr);
printf("请输入新增用户的电话号码(11位数):");
scanf("%s",p-mobile);
printf("请输入新增用户寝室号:");
scanf("%d",p-department);
printf("新用户记录成功添加:%d %s %d %c %s %s %d\n",p-num,p-name,p-age,p-sex, p-addr,p-mobile, p-department);
}
void edit(user *h)
{
int num;
int flag=0;
user *lh=h-next;
printf("输入要修改用户的学号:");
scanf("%d",num);
while(lh)
{
if(num == lh-num)
{
flag=1;
printf("请输入新增用户学号:");
scanf("%d",lh-num);
printf("请输入新增用户名称(最多30个字):");
scanf("%s",lh-name);
printf("请输入新增用户年龄:");
scanf("%d",lh-age);
printf("请输入新增用户性别:");
scanf("%c",lh-sex);
printf("请输入新增用户的家庭住址(最多50字):");
scanf("%s",lh-addr);
printf("请输入新增用户的电话号码(11位数):");
scanf("%s",lh-mobile);
printf("请输入新增用户寝室号:");
scanf("%d",lh-department);
printf("新用户记录成功添加:%d %s %d %c %s %s %d\n",lh-num,lh-name,lh-age,lh-sex, lh-addr,lh-mobile, lh-department);
break;
}
lh=lh-next;
}
if(!flag)
printf("不存在这样的用户\n\n");
}
void S_byName(user *h)
{
char name[30];
int flag=0;
user *lh=h-next;
printf("输入要查找的用户名称:");
scanf("%s",name);
while(lh)
{
if(strcmp(name,lh-name)==0)
{
flag=1;
printf("用户信息为:%d %s %d %c %s %s %d\n",lh-num,lh-name,lh-age,lh-sex, lh-addr,lh-mobile, lh-department);
break;
}
lh=lh-next;
}
if(!flag)
printf("用户名不存在\n\n");
}
void S_byNum(user *h)
{
int num;
int flag=0;
user *lh=h-next;
printf("输入要查找的学号:");
scanf("%d",num);
while(lh)
{
if(num == lh-num)
{
flag=1;
printf("用户信息:%d %s %d %c %s %s %d\n",lh-num,lh-name,lh-age,lh-sex, lh-addr,lh-mobile, lh-department);
break;
}
lh=lh-next;
}
if(!flag)
printf("找不到匹配的号码\n\n");
}
void display(user *h)
{
user *lh=h-next;
int i=1;
while(lh)
{
printf("第%d条用户信息:%d %s %d %c %s %s %d\n",i,lh-num,lh-name,lh-age,lh-sex, lh-addr,lh-mobile, lh-department);
lh=lh-next;
i++;
}
printf("\n");
}
void del(user *h)
{
int num;
int flag=0;
user *lh=h;
printf("输入要删除的用户学号:");
scanf("%d",num);
while(lh-next)
{
if(num == lh-next-num)
{
flag=1;
printf("删除用户成功:%d %s %d %c %s %s %d\n",lh-num,lh-name,lh-age,lh-sex, lh-addr,lh-mobile, lh-department);
lh-next=lh-next-next;
break;
}
lh=lh-next;
}
if(!flag)
printf("用户名不存在\n\n");
}
关于校友信息管理系统源代码和毕业生信息管理系统代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-04项目代码查询(建设项目代码查询)[20240504更新]
- 05-04用户注册关键代码(用户登录注册代码)[20240504更新]
- 05-043d校园源代码(3D虚拟校园)[20240504更新]
- 05-04jq滑块验证代码(滑块验证怎么操作)[20240504更新]
- 05-03php源代码大全(php的源代码)[20240503更新]
- 05-03bbs论坛源代码论文(个人论坛源码)[20240503更新]
- 05-03关于html5实例代码的信息[20240503更新]
- 05-03js广告代码对量(js底部悬浮广告代码)[20240503更新]
- 05-03禅道源代码与一键有什么区别(禅道开源版怎么样)[20240503更新]
- 05-03黄金矿工安桌源代码(黄金矿工编程代码)[20240503更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接