欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

C語言實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊: 次

設(shè)計(jì)一個(gè)學(xué)生成績管理系統(tǒng),實(shí)現(xiàn)對學(xué)生成績的動(dòng)態(tài)管理,實(shí)現(xiàn)對學(xué)生成績的輸入,顯示,刪除,查找,插入,最佳,保存,計(jì)算,排序等主要功能。

功能要求

1、每一條記錄包括一個(gè)學(xué)生的學(xué)號、姓名、3門課成績、平均成績。
2、輸入功能:可以一次完成若干條記錄的輸入。
3、顯示功能:完成全部學(xué)生記錄的顯示。
4、查找功能:完成按姓名查找學(xué)生記錄,并顯示。
5、排序功能:按學(xué)生平均成績進(jìn)行排序。
6、插入功能:按平均成績高低插入一條學(xué)生記錄
7、刪除功能:如果輸入錯(cuò)誤,可以刪除學(xué)生記錄;
8、退出。

代碼:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE_NAME 10
#define SIZE_ID 20

int Record = 0;

typedef struct {
 char name[SIZE_NAME];
 char id[SIZE_ID];
 int a, b, c;
 int ava;
}pInfo;

typedef struct node {
 pInfo people;
 struct node *next;
}linkList;

int menu();
int create(linkList *head);
int display(linkList *head);
int search(linkList *head, char *info);
int modify(linkList *head, char *pid);
int add2(linkList *head, char *pid);
int delt(linkList *head, char *info);
int compare(int ava1, int ava2);
int sort(linkList *head, int boolean);//1升序 0降序 


int main()
{
 linkList head, *p;
 char info[SIZE_ID];
 int temp, chus, i;
 head.next = NULL;

 while (1) {
 switch (menu()) {
 case 1:
  create(&head);
  break;
 case 2:
  display(&head);
  break;
 case 3:
  printf("請輸入需要查詢的學(xué)號或姓名: ");
  scanf("%s", info);
  p = &head;
  p = p->next;
  for (i = 0; i < search(&head, info); i++) {
  p = p->next;
  }
  printf("搜索到:\n");
  printf("\t\t\t\t學(xué)生信息\n");
  printf("--------------------------------------------------------------------------------\n");
  printf("\t\t學(xué)號\t\t姓名\t\t\t平均成績\n");
  printf("--------------------------------------------------------------------------------\n");
  printf("%20s\t", p->people.id);
  printf("%10s\t", p->people.name);
  printf("%20d\n", p->people.ava);
  break;
 case 4:
  printf("請輸入需要修改的學(xué)號: ");
  scanf("%s", info);
  modify(&head, info);
  break;
 case 5:
  printf("請輸入需要添加的學(xué)號: ");
  scanf("%s", info);
  add2(&head, info);
  break;
 case 6:
  printf("請輸入需要?jiǎng)h除的學(xué)號或姓名: ");
  scanf("%s", info);
  delt(&head, info);
  break;
 case 7:
  printf("請輸入1或0:\n\t1:升序\n\t0:降序\n");
  scanf("%d", &temp);
  sort(&head, temp);
  break;
 case 8:
  exit(0);
  break;
 default:
  printf("輸錯(cuò)了,再來一次\n");
 }
 system("pause");
 system("cls");
 }
 system("pause");
 return 0;
}

int menu()
{
 int chus;
 printf("\t學(xué)生信息\n\n");
 printf("請輸入(1 -- 8):\n");
 printf("\t1.創(chuàng)建學(xué)生信息\n");
 printf("\t2.顯示學(xué)生信息\n");
 printf("\t3.查詢學(xué)生信息\n");
 printf("\t4.修改學(xué)生信息\n");
 printf("\t5.添加學(xué)生信息\n");
 printf("\t6.刪除學(xué)生信息\n");
 printf("\t7.排序?qū)W生成績\n");
 printf("\t8.退出\n");
 scanf("%d", &chus);
 return chus;
}

int create(linkList *head)
{
 linkList *s, *p;
 p = head;
 printf("請輸入學(xué)號 姓名 三科成績,輸入end結(jié)束\n");
 while (1) {
 s = (linkList*)malloc(sizeof(linkList));
 scanf("%s", s->people.id);
 if (!strcmp(s->people.id, "end")) {
  return 0;
 }
 scanf("%s", s->people.name);
 scanf("%d", &s->people.a);
 scanf("%d", &s->people.b);
 scanf("%d", &s->people.c);
 s->people.ava = (s->people.a + s->people.b + s->people.c) / 3;

 s->next = p->next;
 p->next = s;
 p = s;
 Record++;
 }
 return 0;
}

int display(linkList *head)
{
 int i;
 linkList *p;
 p = head;
 p = p->next;
 printf("\t\t\t\t學(xué)生信息\n");
 printf("--------------------------------------------------------------------------------\n");
 printf("\t\t學(xué)號\t\t姓名\t\t\t平均成績\n");
 printf("--------------------------------------------------------------------------------\n");
 for (i = 0; i < Record; i++, p = p->next) {
 printf("%20s\t", p->people.id);
 printf("%10s\t", p->people.name);
 printf("%20d\n", p->people.ava);
 }

 return 0;
}

int search(linkList *head, char *info)
{
 int i;
 linkList *p;
 p = head;
 p = p->next;
 for (i = 0; i < Record; i++, p = p->next) {
 if ((!strcmp(p->people.id, info)) || (!strcmp(info, p->people.name))) {
  return i;
 }
 }
 return -1;
}

int modify(linkList *head, char *pid)
{
 int i;
 linkList *p;
 p = head;
 p = p->next;
 for (i = 0; i < search(head, pid); i++) {
 p = p->next;
 }
 printf("請輸入新信息:\n");
 scanf("%s", p->people.id);
 scanf("%s", p->people.name);
 scanf("%d", &p->people.a);
 scanf("%d", &p->people.b);
 scanf("%d", &p->people.c);
 p->people.ava = (p->people.a + p->people.b + p->people.c) / 3;
 return 0;
}

int add2(linkList *head, char *pid)
{
 int i;
 linkList *p, *s;
 p = head;
 p = p->next;
 s = (linkList*)malloc(sizeof(linkList));
 while (p->next != NULL) {
 p = p->next;
 }
 printf("請輸入需要添加的姓名和成績:\n");
 strcpy(s->people.id, pid);
 scanf("%s", s->people.name);
 scanf("%d", &s->people.a);
 scanf("%d", &s->people.b);
 scanf("%d", &s->people.c);
 s->people.ava = (s->people.a + s->people.b + s->people.c) / 3;
 if (search(head, s->people.id) == -1) {
 s->next = p->next;
 p->next = s;
 Record++;
 }
 else {
 printf("學(xué)號重復(fù)了\n");
 }
 sort(head, 0);
 return 0;
}

int delt(linkList *head, char *info)
{
 int i, n;
 linkList *p, *s;
 p = head;
 n = search(head, info);
 if (-1 == n) {
 printf("沒有找到\n");
 return 0;
 }
 for (i = 0; i < n; i++) {
 p = p->next;
 }
 p->next = p->next->next;
 Record--;
 return 0;
}
int compare(int ava1, int ava2)
{
 if (ava1 < ava2) {
 return 1;
 }
 return 0;
}

int sort(linkList *head, int boolean)
{
 linkList *p, *pre;
 pInfo temp;
 if (boolean) {
 for (p = head->next; p != NULL; p = p->next) {
  for (pre = p->next; pre != NULL; pre = pre->next) {
  if (0 == compare(p->people.ava, pre->people.ava)) {
   temp = p->people;
   p->people = pre->people;
   pre->people = temp;
  }
  }
 }
 }
 else {
 for (p = head->next; p != NULL; p = p->next) {
  for (pre = p->next; pre != NULL; pre = pre->next) {
  if (1 == compare(p->people.ava, pre->people.ava)) {
   temp = p->people;
   p->people = pre->people;
   pre->people = temp;
  }
  }
 }
 }
 return 0;
}

更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:C語言八皇后問題解決方法示例【暴力法與回溯法】

欄    目:C語言

下一篇:人臉檢測中AdaBoost算法詳解

本文標(biāo)題:C語言實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/982.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有