相信許多童鞋的第一次都給了這個項目吧,嘿嘿……嘿? ? 0.0
員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團(tuán)隊的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)建站堅持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因為“專注所以專業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡單”。公司專注于為企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、微信公眾號開發(fā)、電商網(wǎng)站開發(fā),微信小程序定制開發(fā),軟件按需規(guī)劃網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。??
?這里提供了一份源碼供大家參考,請自行食用。
項目功能:
?
(1)help函數(shù),打印菜單,獲取幫助信息。
(2)insert函數(shù):插入數(shù)據(jù)信息。
(3)sort函數(shù):對已有信息進(jìn)行排序。
(4)find函數(shù):索引查找信息。
(5)output函數(shù):遍歷信息。
(6)delete函數(shù):通過索引刪除信息。
運行展示:初始化界面:
運行界面:
到這里,我猜有人要說:"你啰嗦***呢?我不會自己操作嗎,還不快把源碼給朕呈上來?”
??
源碼參上:main.c文件
#include"student.h"
int main()
{
printf("\t\t\t\t\t迎使用學(xué)生信息管理系統(tǒng)\n");
Menu();
STU *head=NULL;
while(1)
{
printf("\t\t\t請輸入操作指令: ");
char str[32]=" ";
scanf("%s",str);
if(strcmp(str,"insert")==0)
{
printf("\t\t\t請輸入學(xué)生信息(學(xué)號 姓名 性別 年齡 四科成績):\n");
STU tmp;
printf("\t\t\t");
scanf("%d %s %s %d %d %d %d %d",&tmp.num,tmp.name,tmp.sex,&tmp.age,&tmp.score_Chinese,&tmp.score_Math,&tmp.score_Computer,&tmp.score_English);
tmp.score_average=(tmp.score_Chinese+tmp.score_Computer+tmp.score_English+tmp.score_Math)/4.0;
tmp.score_sum=tmp.score_Chinese+tmp.score_Computer+tmp.score_English+tmp.score_Math;
head=Insert(head,tmp);
}
else if(strcmp(str,"sort")==0)
{
Sort_num(head);
}
else if(strcmp(str,"find")==0)
{
STU *pf=NULL;
int num;
printf("\t\t\t按照學(xué)號查找為1,按照姓名查找為2\n");
int t;
printf("\t\t\t");
scanf("%d",&t);
if(t==1)
{
printf("\t\t\t請輸入查詢學(xué)生的學(xué)號:\n");
printf("\t\t\t");
scanf("%d",&num);
pf=Find_num(head,num);
}
else if(t==2)
{
printf("\t\t\t請輸入查詢學(xué)生的姓名:\n");
char n_name[32];
printf("\t\t\t");
scanf("%s",n_name);
STU *pi=head;
while(pi!=NULL&&strcmp(pi->name,n_name)!=0)
{
pi=pi->next;
}
if(pi!=NULL)
{
pf=Find_num(head,pi->num);
}
}
if(pf!=NULL)
{
print_data(pf);
}
else
{
printf("\t\t\t未查詢到該學(xué)生信息\n");
}
}
else if(strcmp(str,"output")==0)
{
output_a(head);
}
else if(strcmp(str,"delete")==0)
{
int num = 0;
printf("\t\t\t按照學(xué)號刪除為1,按照姓名刪除為2:\n");
int temp;
printf("\t\t\t");
scanf("%d",&temp);
if(temp == 1)
{
printf("\t\t\t請輸入刪除學(xué)生信息的學(xué)號:\n");
printf("\t\t\t");
scanf("%d",&num);
Delete_num(&head,num);
}
else
{
printf("\t\t\t請輸入查詢學(xué)生的姓名:\n");
char n_name[32];
printf("\t\t\t");
scanf("%s",n_name);
STU *pi = head;
while(pi && strcmp(pi->name,n_name) != 0)
{
pi = pi->next;
}
if(pi != NULL)
{
Delete_num(&head,pi->num);
}
}
}
else if(strcmp(str,"quit")==0)
{
printf("\t\t\t成功退出程序\n");
break;
}
else
{
printf("\t\t\t輸出錯入指令,請重新輸入\n");
}
}
return 0;
}
student.h文件
#ifndef STUDENT_H
#define STUDENT_H
#include#include#includetypedef struct Student
{
//數(shù)據(jù)域
int num;
char name[20];
char sex[10];
int age;
int score_Chinese;
int score_Math;
int score_Computer;
int score_English;
double score_average;
int score_sum;
//指針域
struct Student *next;
}STU;
void Menu(void);
STU* Insert(STU *head,STU tmp);//按照順序插入
void Sort_num(STU *head);//排序
STU* Find_num(STU *head,int num);//按照學(xué)號查找,按照姓名查找
void output_a(STU *head);//遍歷所有學(xué)生信息
void Delete_num(STU **head,int num);//按照學(xué)號刪除,按照學(xué)號刪除
void print_data(STU* pf);//遍歷單個學(xué)生信息
#endif
student.c文件
#include"student.h"
extern void Menu(void)
{
printf("\t\t\t----------------------------------------------------------\t\t\t\n");
printf("\t\t\t| (1)添加信息 insert |\n");
printf("\t\t\t| (2)信息排序 sort |\n");
printf("\t\t\t| (3)查找信息 find |\n");
printf("\t\t\t| (4)刪除信息 delete |\n");
printf("\t\t\t| (5)遍歷信息 output |\n");
printf("\t\t\t| (6)退出程序 quit |\n");
printf("\t\t\t----------------------------------------------------------\t\t\t\n");
return ;
}
STU* Insert(STU *head,STU tmp)
{
STU *pi=(STU*)calloc(1,sizeof(STU));
if(pi==NULL)
{
perror("calloc");
exit(-1);//如果申請失敗直接結(jié)束程序
}
*pi=tmp;
pi->next=NULL;
if(head==NULL)
{
head=pi;
}
else
{
STU *pf=head;
while(pf->next!=NULL)
{
pf=pf->next;
}
pf->next=pi;
pi->score_average=(pi->score_Computer+pi->score_English+pi->score_Math+pi->score_Chinese)/4;
pi->score_sum=pi->score_Computer+pi->score_English+pi->score_Math+pi->score_Chinese;
}
return head;
}
void Sort_num(STU *head)
{
if(head==NULL)
{
printf("\t\t\t信息庫為空\n");
}
else
{
STU *pi=head;
STU *pj=head;
//選擇法排序
while(pi->next!=NULL)
{
STU *min=pi;
pj=pi->next;
while(pj!=NULL)
{
if(min->num>pj->num)
{
min=pj;
}
pj=pi->next;
}
if(pi!=pj)
{
//交換數(shù)據(jù)
STU tmp=*pi;
*pi=*min;
*min=tmp;
//交換指針
tmp.next=pi->next;
pi->next=pj->next;
pj->next=tmp.next;
}
pi=pi->next;
}
}
return ;
}
STU* Find_num(STU *head,int num)
{
STU *pf=head;
if(head==NULL)
{
printf("\t\t\t信息庫為空\n");
}
else
{
while(pf!=NULL&&pf->num!=num)
{
pf=pf->next;
}
}
return pf;
}
void output_a(STU *head)
{
STU *pf = head;
if(pf == NULL)
{
printf("\t\t\t信息庫為空\n");
}
else
{
printf("\t\t\t學(xué)號 姓名 性別 年齡 語文成績 電腦成績 數(shù)學(xué)成績 英語成績 平均成績 總成績 \n");
while(pf != NULL)
{
printf("\t\t\t%d %s %s %d %d %d %d %d %.2f %d\n",pf->num,pf->name,pf->sex,pf->age,pf->score_Chinese,pf->score_Math,pf->score_Computer,pf->score_English,pf->score_average,pf->score_sum);
pf = pf->next;
}
}
return ;
}
void Delete_num(STU **head,int num)
{
STU **pf = head;
STU **pi = NULL;
if(*head == NULL)
{
printf("\t\t\t信息庫為空\n");
}
else
{
while(((*pf)->next != NULL) && ((*pf)->num != num))
{
*pi = *pf;
*pf = (*pf)->next;
}
if((*pf)->num == num)
{
if((*pf) == head)//頭部刪除
{
*head = (*head)->next;
//free(pf);
}
else//刪除中尾部節(jié)點
{
(*pf)->next = (*pf)->next;
//free(pf);
}
free(*pf);
printf("\t\t\t信息刪除成功\n");
}
else
{
printf("\t\t\t未查詢到該學(xué)生信息\n");
}
}
}
void print_data(STU* pf)
{
printf("\t\t\t學(xué)號 姓名 性別 年齡 語文成績 電腦成績 數(shù)學(xué)成績 英語成績 平均成績 總成績 \n");
printf("\t\t\t%d %s %s %d %d %d %d %d %.2f %d\n",pf->num,pf->name,pf->sex,pf->age,pf->score_Chinese,pf->score_Math,pf->score_Computer,pf->score_English,pf->score_average,pf->score_sum);
return;
}
到這里,作為戲精的我已經(jīng)忍不住開始得瑟了,又拯救哪個小伙伴的世界嘞?
?
?木哈哈哈哈?。?! 哈?看到這了竟還想要白嫖???那個……我承認(rèn)剛才說話聲音有點大,給個贊吧0.0??
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧