c语言课设学生管理程序,c语言程序课程设计学生成绩管理程序.doc
c語言程序課程設計學生成績管理程序
武漢科技大學
二〇一〇~二〇一一學年第一學期
信息科學與工程學院
課程設計報告書
課程名稱: C語言課程設計
班 級: 自動化2009級2班
學 號:
姓 名:
指導老師:
二〇一〇 年 九 月
設計題目:學生成績管理程序
任務:自學C語言中相關知識,設計出學生成績管理程序。
設計要求:
能錄入學生信息存儲在文件中,每位學生錄入的信息有:姓名、學號、性別、班級、和三門功課(數學、英語、計算機)的成績;
能夠統計每個學生三門課程的總成績;
能按學生學號查詢其三門功課成績并顯示;
能瀏覽全部學生成績;
能按總成績有高到低顯示學生信息。
系統功能需求分析:
系統要求用戶必須輸入正確的信息格式;
系統應該提供已經記錄在案的信息數目;
系統應提供查詢、刪除、保存、瀏覽功能;
系統總體設計框架:
主界面
主界面
查詢學生資料
刪除學生資料
登記學生資料
修改學生資料
保存
瀏覽全部
排序瀏覽
系統功能模塊圖:1,登記學生資料盡快保存;
2,刪除學生信息;
3,查詢學生信息;
4,修改學生信息;
5,保存學生信息;
6,保存資料后瀏覽全部學生成績;
7,保存資料后按總成績排名;
退出系統。
功能模塊的算法設計思路:
1,增加學生:將指針放在鏈表尾,開辟一個結構體單元,輸入學號,查找是否有重復學號,如無,則寫入,再關閉文件。
2,查詢信息:如果l->next為空,則無信息;按學號查,輸入要查的學號,與鏈表中數據一個一個進行比較,找到所在處,指針指向,輸出信息。無信息則提示。
3,刪除信息:如果l->next為空,則無信息;按學號刪,輸入要刪的學號,在鏈表中號碼一個一個與所找學號比較,找到后將前一個數據的尾接到后一個的頭;
4,修改信息:如果l->next為空,則無信息,輸入要該的學號,在文件中找到,重新寫入各項信息,保存。
5,保存:打開一個制定文件,將鏈表的內容寫入文件中,關閉文件。
6,瀏覽:打開文件,找到鏈表頭,逐個輸出。
7,排序:建立一個新的結構體,將文件中內容復制到新結構體中,用冒泡排序將總成績排序,輸出。
工作流程圖:
主要源程序代碼:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int numbercount=0; /* */
struct student
{
char num[10];/* 學號 */
char name[20]; /*姓名*/
char sex[10];/*性別*/
char clas[10];/*班級*/
int mgrade;/*數學*/
int egrade; /*英語*/
int cgrade;/*計算機*/
int totle;/*總分*/
};
typedef struct node
{ struct student data;
struct node *next;
}Node,*Link;
void printenglish(Node *p)/* 本函數用于輸出英文 */
{ printf("%-12s%s\t%s\t%s\t%d\t%d\t%d\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.clas,p->data.mgrade,p->data.egrade,p->data.cgrade,p->data.totle);
}
void Add(Link l) /* 增加學生信息*/
{
Node *p,*r,*s;
char num[10],a[10];
r=l; /*l為小寫L*/
s=l->next;
while(r->next!=NULL)
r=r->next; /* 將指針置于最末尾 */
while(1)
{
printf("請你輸入學號:");
scanf("%s",num);
for(;s!=NULL;s=s->next)
{
if(strcmp(s->data.num,num)==0)
{
printf("提示:學號為'%s'的學生已經存在,若要修改請你選擇'4 修改'!\n",num);
printf("學號 姓名 性別 班級 數學成績 英語成績 計算機成績
總結
以上是生活随笔為你收集整理的c语言课设学生管理程序,c语言程序课程设计学生成绩管理程序.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京银行信用卡额度一般是多少 不同卡种
- 下一篇: c语言程序的标识符分类,华中科技大学计算