完成杂志续订c语言程序,C语言程序设计报告杂志订阅管理软件.doc
C語言程序設計報告雜志訂閱管理軟件
C
語
言
程
序
設
計
學院: 工程學院
班級序號: 學號: 20071003303
姓名: 華進
指導老師: 劉文中
前言
我們學習C語言課程設計的主要目的是為了了解和熟悉C語言的編程。學習C語言要經過一個“理論→實踐→在理論→在實踐”的過程。而學習C語言課程設計就是要我們進行實踐,從中發現問題,解決問題,提高我們運用C語言的能力。是我們能夠運用C語言解決一些問題。通過不斷的編程,熟能生巧,是我們的理論學習也有了實踐基礎,學習理論知識就較為容易一些,然后再通過實踐不斷的提高,如此良性循環就能是我們的C語言編程能力更上一成樓。
正文
一.題目原文
雜志訂閱管理軟件
[要求]
使用計算機對一種雜志的訂閱進行管理,該雜志擁有的最多用戶不超過10人,每個訂戶信息包括:姓名,性別,地址,電話號碼,雜志單價,訂閱數,訂閱期限(××年××月)。
現要求用菜單選擇并完成下述功能。
(1)增加新訂戶,即將訂戶的全部信息輸進到文件中。
(2)根據當天的日期對訂戶文件進行查詢,刪除以到期的訂戶記錄。
(3)統計本期雜志訂戶數并打印運算結果。
二.題目的分析
本題主要是要求我編一個程序來管理訂閱,包括增加和刪除用戶記錄,統計運算結果。增加用戶就是在原有的文件中寫入一個新的用戶信息,但有一個前提就是用戶數不能超過10人。刪除以到期的用戶,就是從原有的文件中去掉一個用戶信息,這里需要把日期與當天的日期進行比較,而統計結果就是把文件中的用戶進行統計,并輸出。
三.整體設計和板塊劃分
本程序總思路
本程序有一個主函數和三個被調函數,三個被調函數分別解決增加新訂戶,刪除訂戶記錄,統計訂戶信息打印運算結果三個問題。
板塊劃分:
主函數
主函數
被調函數1
增加新訂戶模塊
被調函數2
刪除訂戶記錄模塊
被調函數3
統計訂戶信息并打印結果模塊
主要的結構體為magzine,他包括用戶的基本信息:姓名,性別,地址,電話號碼,單價,訂閱數和期限。全局變量為結構體變量mag。主函數用的是switch語句,3個結果分別對應3個函數,便于操作。
被調函數1,解決增加新用戶的問題。先打開文件,要判斷用戶數是否超過10,然后將新的用戶信息寫入文件中,這里用的是do……while語句對文價進行讀和寫,讀文件需要計算出訂戶數,并判斷。寫即是寫入新訂戶。
被調函數2,解決刪除訂戶記錄的問題。進行文件的讀出操作,并輸入當天的日期,用strcmp語句與定戶信息中的期限進行比較,如果訂戶信息中的期限與當日的期限相同,那么在寫文件時,該訂戶的記錄就不用寫入了,反之,就應當寫入。這樣變完成了刪除操作了。
被調函數3,統計用戶信息并打印運算結果。這里主要是進行文件的讀和寫,運用if語句完成,統計結果即是根據單價和數量算出總價格并把所有的價格求和即可。然后只需輸出用戶的姓名,訂閱數,單價和金額
流程圖
開始
開始
顯示一系列功能選擇
輸入n,判斷m
是否是0到3?
根據n值調用各
功能模塊函數
結束
N
開始1.增訂新用戶模塊
開始
struct magazine mag;
int n=0;
定義結構體全局變量,打開文件
定義結構體全局變量,打開文件
void insert(struct magazine mag)
閱讀資料,判斷是否是超過10人{
閱讀資料,判斷是否是超過10人
FILE *fp;
char ch;
if((fp=fopen("E:\\magazine","w"))==NULL)
N{
N
Y輸入新用戶信息printf("此文件不存在");
Y
輸入新用戶信息
exit(0);
}
結束do
結束
{
if(n<10)
{
printf("請輸入姓名:");gets(mag.name);
printf("請輸入性別:");gets(mag.sex);
printf("請輸入地址:");gets(mag.address);
printf("請輸入電話號碼:");gets(mag.tel);
printf("請輸入訂閱期限:");gets(mag.dataline);
printf("請輸入雜志單價:");scanf("%f",&mag.price);
printf("請輸入訂閱數:");scanf("%d",&mag.mount);
fwrite(&mag,sizeof(struct magazine),1,fp);
n++;
}
else printf(
總結
以上是生活随笔為你收集整理的完成杂志续订c语言程序,C语言程序设计报告杂志订阅管理软件.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】字符转换为 ASCII
- 下一篇: 图像处理------图像细化